Что нового

[Lineage II] Тупик в процессе поиска offset

SemEMP

Знающий
Сообщения
42
Репутация
7
Пытался найти оффсет на игру lineage, использовал для поиска материалы из http://zhyk.ru/forum/showthread.php?t=116666, так же http://autoit-script.ru/index.php/topic,4334.msg42199.html#msg42199, однако, найти "зеленый офсет не удалось.
Вместо этого нашлось что-то типа
Код:
mov eax, [edi]
.
Все найденное похоже.
Попробовал несколько раз - получилось одно и то же.
Подскажите как тут ищется оффсет? :stars:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Через Pointer Scanner
 
Автор
S

SemEMP

Знающий
Сообщения
42
Репутация
7
Наконец-то вроде нашел оффсет, но удивила арифметика Cheat Engin
ну как может
Код:
75EF5B00+20=189С5400
?? Правильно же
Код:
75EF5B00+20=75EF5B20

Подскажите как понять эту арифметику...даже прикрутить так не выйдет, адреса неправильно вычисляются
Код:
dim $b[7]=['24F13C','20','b4','8','8','254']
global $sModule = 'l2.bin'
global $ProcessID = WinGetProcess($handle)
SetPrivilege("SeDebugPrivilege", 1)
global $DllInformation = _MemoryOpen($ProcessID)
global $baseADDR = _MemoryModuleGetBaseAddress($ProcessID, $sModule)
$addr=_MemoryRead("0x"&hex($baseADDR), $DllInformation, 'ptr')
$CurrentHP = dec(StringTrimLeft($addr, 2))
InputBox('',$addr,$CurrentHP)

$addr = _MemoryRead("0x"&hex($addr+$b[0]), $DllInformation, 'ptr')
$addr = _MemoryRead("0x"&hex($addr+$b[1]), $DllInformation, 'ptr')
$addr = _MemoryRead("0x"&hex($addr+$b[2]), $DllInformation, 'ptr')
$addr = _MemoryRead("0x"&hex($addr+$b[3]), $DllInformation, 'ptr')
$addr = _MemoryRead("0x"&hex($addr+$b[4]), $DllInformation, 'ptr')
$addr = _MemoryRead("0x"&hex($addr+$b[5]), $DllInformation, 'ptr')
$MaxHP = dec(StringTrimLeft($addr, 2))
InputBox('','',$MaxHP)
 

scanfail

Знающий
Сообщения
244
Репутация
17
Код:
#include "NomadMemory.au3"
SetPrivilege("SeDebugPrivilege", 1)
$sText = WinGetTitle("Lineage ")
global $sModule = "l2.bin"
global $ProcessID = WinGetProcess($sText)
SetPrivilege("SeDebugPrivilege", 1)
global $DllInformation = _MemoryOpen($ProcessID)
global $baseADDR = _MemoryModuleGetBaseAddress($ProcessID, $sModule)
$Base =$baseADDR+0x0024F13C
Global $HP_max_offset[6] = [0, 0x20, 0xb4, 0x8, 0x8, 0x254]
$test = _MemoryPointerRead($Base, $DllInformation,  $HP_max_offset, "dword")
MsgBox(0,"$HP_Max",$test[1])
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
75EF5B00+20=189С5400
75EF5B00 - Первая ячейка памяти
20 - Оффсет
189С5400 - Адрес хранящийся в ячейке памяти находящейся по адресу 75EF5B00+20
Когда же вы наконец поймете что CE показывает вам не результат сложения Адреса и Оффсета, он показывает вам то, что хранится в ячейке адрес которой определяет складывая Адрес и Оффсет.
 
Автор
S

SemEMP

Знающий
Сообщения
42
Репутация
7
mov edi,[esi+eax] :shok:
Если это встречается, тоже делать pointer scan?




Добавлено:
Сообщение автоматически объединено:

Вот помогло нашел наконец "зеленый адрес" :laugh:
Терь осталось прикрутить и немного пошаманить на автоите 8)


Добавлено:
Сообщение автоматически объединено:

Код:
Код: AutoIt [Выделить]
#include "NomadMemory.au3"
SetPrivilege("SeDebugPrivilege", 1)
$sText = WinGetTitle("Lineage ")
global $sModule = "l2.bin"
global $ProcessID = WinGetProcess($sText)
SetPrivilege("SeDebugPrivilege", 1)
global $DllInformation = _MemoryOpen($ProcessID)
global $baseADDR = _MemoryModuleGetBaseAddress($ProcessID, $sModule)
$Base =$baseADDR+0x0024F13C
Global $HP_max_offset[6] = [0, 0x20, 0xb4, 0x8, 0x8, 0x254]
$test = _MemoryPointerRead($Base, $DllInformation,  $HP_max_offset, "dword")
MsgBox(0,"$HP_Max",$test[1])

Твой код как пытался так и не смог завести, ну не работает всё 0 показывает
Сделал так( поискав на форуме):
Код:
dim $b[5]=[0x4cc,0x37c,0x2f4,0x34,0x254]
global $sModule = 'l2.bin'
global $ProcessID = WinGetProcess($handle)
SetPrivilege("SeDebugPrivilege", 1)
global $DllInformation = _MemoryOpen($ProcessID)
global $baseADDR = _MemoryModuleGetBaseAddress($ProcessID, $sModule)
$baseADDR =$baseADDR+0x001739C4
$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,$MaxHP)
 
Верх