Автор Тема: (PSX) Самомодификация кода?  (Прочитано 3358 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1297
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
(PSX) Самомодификация кода?
« : 16 Июнь 2012, 20:34:17 »
Отлаживаю вот игрушку одну. Декомпилировал ее через IDA. Отлаживал себе PCSXR Debug'ом.
И вот, дошел в одном месте до адреса 800A59E4. Отладчик показывает, что имеются команды:
800A59E4 sltu   v0, s2, v0
800A59E8 bne    v0, zero, La5aac [$800a5aac]
800A59EC lui    s0, $800a
800A59F0 lui    v0, $800a
800A59F4 addiu  s3, v0, $0120
800A59F8 addiu  s0, s1, $0003
Хотел посмотреть на него через IDA, а там:
RAM:800A59E4                 .space 1
RAM:800A59E5                 .space 1
RAM:800A59E6                 .space 1
RAM:800A59E7                 .space 1
RAM:800A59E8                 .space 1
RAM:800A59E9                 .space 1
RAM:800A59EA                 .space 1
RAM:800A59EB                 .space 1
RAM:800A59EC                 .space 1
RAM:800A59ED                 .space 1
RAM:800A59EE                 .space 1
RAM:800A59EF                 .space 1
RAM:800A59F0                 .space 1
RAM:800A59F1                 .space 1
RAM:800A59F2                 .space 1
RAM:800A59F3                 .space 1

Облом. Отсюда вопрос: игра могла откуда-то извлечь команды на выполнение для себя?

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1612
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Re: (PSX) Самомодификация кода?
« Ответ #1 : 17 Июнь 2012, 01:14:53 »
Скорее всего неправильно дизасемблировал. Не сталкивался с самомодификацией.  o_0
Можешь через дебагер проверить, кто пишет инструкцию в адрес(800A59E4) и откуда.

Оффлайн Megaplex

  • Пользователь
  • Сообщений: 23
    • Просмотр профиля
Re: (PSX) Самомодификация кода?
« Ответ #2 : 17 Июнь 2012, 13:03:41 »
В IDA ты ram не загружал, поэтому там и пусто,, а код в оперативке для того чтобы си-ди привод лишний раз не мутузить..