Добрый день,столкнулся с проблемой вычисления оффсета,вычислил его через CE ,он статичный и после перезапуска определяется правильно,но как только переношу его в скрипт выдает разные значение (ни одно из них не верное ) оффсет 0x002D2288 ,пути вывода которые пробовал:
http://www.autoitscript.com/forum/topic/96164-memorypointerread-understanding/#entry691696
http://autoit-script.ru/index.php/topic,4334.msg31302.html#msg31302
http://autoit-script.ru/index.php/topic,11078.msg73330.html#msg73330
и еще несколько которые уже потерял,прошу помощи хотя бы в наставлении на путь истинный :(
библиотеки NomadMemory.au3 менял результата 0,
Вот код который хотелось бы допилить,скорее всего трабла в самом чтении а не оффсете но я не знаю как ее устранить
http://www.autoitscript.com/forum/topic/96164-memorypointerread-understanding/#entry691696
http://autoit-script.ru/index.php/topic,4334.msg31302.html#msg31302
http://autoit-script.ru/index.php/topic,11078.msg73330.html#msg73330
и еще несколько которые уже потерял,прошу помощи хотя бы в наставлении на путь истинный :(
библиотеки NomadMemory.au3 менял результата 0,
Вот код который хотелось бы допилить,скорее всего трабла в самом чтении а не оффсете но я не знаю как ее устранить
Код:
#include <GUIConstants.au3>
#include <nomadmemory.au3>
dim $b[5]= [0x238,0x34,0x64,0x3f8,0x18]
global $sModule = 'l2.exe'
global $ProcessID =WinGetProcess("II", "")
SetPrivilege("SeDebugPrivilege", 1)
global $DllInformation = _MemoryOpen($ProcessID)
global $baseADDR = _MemoryModuleGetBaseAddress($ProcessID, $sModule)
HotKeySet('{F1}','_CurrentHP')
While 1
Sleep(100)
WEnd
Func _CurrentHP()
$baseADDR =$baseADDR+0x002D2288
$addr=_MemoryRead($baseADDR, $DllInformation, 'ptr')
$addr = _MemoryRead($addr+$b[0], $DllInformation, 'ptr')
$addr = _MemoryRead($addr+$b[1], $DllInformation, 'ptr')
$addr = _MemoryRead($addr+$b[2], $DllInformation, 'ptr')
$addr = _MemoryRead($addr+$b[3], $DllInformation, 'ptr')
$addr = _MemoryRead($addr+$b[4], $DllInformation, 'dword')
InputBox('',$addr);$ProcessID,$baseADDR)
endFunc