Поиск базового адреса структуры машины в игре GTA LCS на эмуляторе PPSSPP
-
Добрый день, ломаю игру на эмуляторе PPSSPP (32-битный процесс). До этого с эмуляторными играми не работал. Со структурами я знаком, поэтому нашёл адрес здоровья машины и попытался через отладчик в CE (использую последнюю версию 7.5) найти что пишет или читает этот адрес.
Ожидал увидеть что-то такое
опкод [регистр+смещение], значение (если есть)
, где в регистре содержится базовый адрес структуры конкретной машины в игровом мире, а смещение - это смещение в байтах от начала структуры до адреса/поля со здоровьем в структуре. Для примера в играх GTA 3, VC, SA на PC это работает так да и в принципе во всех играх, так как такая штука как структура устроена везде одинаково.Однако увидел нечто такое
movss [edi+0C400268], xmm2
по логике в edi должен быть базовый адрес структуры, но там адрес, который в памяти находиться сильно сильно выше относительно адреса здоровья машины и смещение как можно видеть0x0C400268
тоже весьма огромное. Попытался через автоматический поиск указателей в CE найти хоть что-то, но там 0, однако если указать максимальное значение смещение перед началом поиска в 999999 то что-то начнёт находить, только начало указателя будет чем-то таким"PPSSPPWindows.exe"+0004D110
.Вопрос, в чём тут хитрость и можно ли найти всё таки базовый адрес структуры?
-
@Sergey99 привет! С эмуляторами картина отличается от картины с обычными играми. Скорее всего, то, что ты видишь - это инструкция выполнения кода "транслятора" (из кода консоли в код х86). Почему такое большое смещение - скорее всего, потому, что тут работа идёт со всем регионом эмулируемой памяти, который в самом эмуляторе лежит единым блоком.
-
А что в EDI. Может что-то наподобие смещения.
А пробывал ли ты артмани?
Вроде артмани заточен под эмуляторы?
Да и отладчик появился с 8 версии.
Какой отладчик СЕ использывал?И кстати в навороченых эмулях обычно бывает встроеная чит утилита.
Вроде как в gens для сеги
-
@Partizan1078
В EDI был адрес памяти который каждый кадр или каждую секунду хранил разные значения, примерно от 0 до 7-ми значного. Тут я пока не понял что это такое. Ну и да если прибавить смещение, получаю адрес изначальный.
Artmoney пробовал, но давно и только чтоб пару значений найти.
В CE использовал его же отладчик, правой кнопкой по адресу и "what access", "what writes to this address".P.S. Попробовал Artmoney, адреса находит, даже показывает как бы реальные адреса (те которые в игре, например,
0997FE78
- это адрес в игре или эмулируемый, а есть17D7FE78
- это уже адрес на ПК то есть, который эмулирует), но при попытке присоединить отладчик снова вижуmovss [edi+0C400268], xmm2
. Выходит надо отлаживать именно тот самый реальный игровой адрес -> попробовал, не хочет, даже в CE пытался найти именно реальный адрес, но безуспешно, значит в памяти ПК его нет, CE его не видит, а он есть.