Добрый день, ломаю игру на эмуляторе PPSSPP (32-битный процесс). До этого с эмуляторными играми не работал. Со структурами я знаком, поэтому нашёл адрес здоровья машины и попытался через отладчик в CE (использую последнюю версию 7.5) найти что пишет или читает этот адрес.
Ожидал увидеть что-то такое опкод [регистр+смещение], значение (если есть)
, где в регистре содержится базовый адрес структуры конкретной машины в игровом мире, а смещение - это смещение в байтах от начала структуры до адреса/поля со здоровьем в структуре. Для примера в играх GTA 3, VC, SA на PC это работает так да и в принципе во всех играх, так как такая штука как структура устроена везде одинаково.
Однако увидел нечто такое movss [edi+0C400268], xmm2
по логике в edi должен быть базовый адрес структуры, но там адрес, который в памяти находиться сильно сильно выше относительно адреса здоровья машины и смещение как можно видеть 0x0C400268
тоже весьма огромное. Попытался через автоматический поиск указателей в CE найти хоть что-то, но там 0, однако если указать максимальное значение смещение перед началом поиска в 999999 то что-то начнёт находить, только начало указателя будет чем-то таким "PPSSPPWindows.exe"+0004D110
.
Вопрос, в чём тут хитрость и можно ли найти всё таки базовый адрес структуры?