На глаза попался интересный скрипт...хоть и годовалой давности
но не могу найти #include <kernel.au3> в идеале с описанием ....может кто встречал ? оО
Код:
#include <kernel.au3>
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
Global $pid = wingetprocess("Аллоды Онлайн")
Global $h = _MemOpen($pid)
Global $address_coord_hook = 0x00BA9379
Global $address_coord_orig = 0x00BB5400
Global $coord_x
Global $coord_y
Global $coord_z
$buf = 0
$allocated = _MemAlloc($h, 128)
$structptr = $allocated+12
;Прописываем код для логирования регистра
_MemWrite($h, $allocated, _MemAddr(0x89, "byte"));
_MemWrite($h, $allocated+1, _MemAddr(0x0D, "byte"));
_MemWrite($h, $allocated+2, _MemAddr($structptr, "dword"))
_MemWrite($h, $allocated+6, _MemAddr(0x68, "byte"));
_MemWrite($h, $allocated+7, _MemAddr($address_coord_orig, "dword"))
_MemWrite($h, $allocated+11, _MemAddr(0xC3, "byte"));
;Хукаем функцию
_MemWrite($h, $address_coord_hook, _MemAddr(0x68, "byte"));
_MemWrite($h, $address_coord_hook+1, _MemAddr($allocated, "dword"));PUSH allocated
_MemWrite($h, $address_coord_hook+5, _MemAddr(0xC3, "byte"));RET
;Ждем пока сработает хук
While $buf = 0
$buf = _MemReadDw($h, $structptr, "dword")
sleep(1)
WEnd
;Получаем адрес структуры координат
$structptr = _MemReadDw($h, $buf - 24, "dword")
;MsgBox(0,"",)
$gui = GuiCreate("", 340, 190)
$x = GUICtrlCreateInput("",10,10,100,20)
$y = GUICtrlCreateInput("",10,35,100,20)
$z = GUICtrlCreateInput("",10,60,100,20)
$mx = GUICtrlCreateInput("",10,85,100,20)
$my = GUICtrlCreateInput("",10,110,100,20)
$mz = GUICtrlCreateInput("",10,135,100,20)
$x1 = GUICtrlCreateInput("",120,10,100,20)
$y1 = GUICtrlCreateInput("",120,35,100,20)
$z1 = GUICtrlCreateInput("",120,60,100,20)
$mx1 = GUICtrlCreateInput("",120,85,100,20)
$my1 = GUICtrlCreateInput("",120,110,100,20)
$mz1 = GUICtrlCreateInput("",120,135,100,20)
$xc = GUICtrlCreateCheckbox("",230,15);
$yc = GUICtrlCreateCheckbox("",230,40);
$zc = GUICtrlCreateCheckbox("",230,65);
$mxc = GUICtrlCreateCheckbox("",230,90);
$myc = GUICtrlCreateCheckbox("",230,115);
$mzc = GUICtrlCreateCheckbox("",230,140);
GUISetState(@SW_SHOW)
While 1
If (GUIGetMsg() == $GUI_EVENT_CLOSE) Then
ExitLoop
EndIf
GUICtrlSetData($x,Round(_MemReadDw($h, $structptr+36, "float")))
GUICtrlSetData($y,Round(_MemReadDw($h, $structptr+40, "float")))
GUICtrlSetData($z,Round(_MemReadDw($h, $structptr+44, "float")))
GUICtrlSetData($mx,_MemReadDw($h, $structptr+48, "int"))
GUICtrlSetData($my,_MemReadDw($h, $structptr+52, "int"))
GUICtrlSetData($mz,_MemReadDw($h, $structptr+56, "int"))
If (GUICtrlRead($xc)==1) Then
;_MemWrite($h, $allocated+20, _MemAddr(Int(GUICtrlRead($x1)), "float"))
MsgBox(0,"",Hex(Int(GUICtrlRead($x1))))
$v = DllStructCreate("float val;")
DllStructSetData($v,"val",GUICtrlRead($x1))
MsgBox(0,"",Hex($v))
EndIf
Sleep(1)
WEnd
но не могу найти #include <kernel.au3> в идеале с описанием ....может кто встречал ? оО