Перейти к содержанию

При поиске указателей находится адрес, по которому и искали указатель


meft

Рекомендуемые сообщения

Добрый день.

Ниже по ссылке картинка, в которой показано, что при поиске указателя мы находим исходный адрес.

Картинка не моя, а найдена в интернете. У меня были похожие ситуации.

Просьба объяснить, в каких ситуациях такое происходит, и как найти базовый адрес в таких случаях.

http://funkyimg.com/view/E6iq

 

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, meft сказал:

У меня были похожие ситуации.

"При поиске указателей находится адрес, по которому и искали указатель " - довольно частый случай, особенно в играх, где инструкций работающих с нужными адресами мало (обычно 1 на запись и 1 на чтение), а адресов, с которыми работают эти инструкции очень много. Я сам практически никогда не ищу указателей, но изредка бывает необходимость и тоже сталкивался с такими ситуациями.

 

Предложу способы:

1. Воспользоваться Сканом указателей самой СЕ (кстати, по-моему в версии СЕ 6.4  в настройках Скана был пункт, как раз касающийся этой проблемы, по-моему звучал так "Не учитывать указатели, приводящие к зацикливанию". В СЕ 6.5 я этого пункта не нашёл.), т.е. автоматическим поиском указателей.  

2. При ручном поиске указателей откатиться на 1 (а может быть два) указателя назад и выбрать другой адрес. (Помню ну очень было обидно когда после 8 смещения нарвался на зацикливание :wacko:, тогда так и бросил поиск не доделал).

3. Попробовать самому составить указатели прыгая по коду игры. В этом случае нужны высокие навыки в реверсе кода. По этому пункту лучше сразу же обратиться к MasterGH.

4. Отказаться от поиска указателей. ;) И написать скрипты. 

 

Ссылка на комментарий
Поделиться на другие сайты

Но ведь edi перезаписывается значением, хранящимся по адресу edi. Т.е. новое значение edi становится равным предыдущему значению edi.

Просьба подсказать, где я не прав.

Ссылка на комментарий
Поделиться на другие сайты

Аппаратные брейкпоинты тормозят после выполнения инструкции, а брейкпоинты на память - до выполнения. Отсюда можно будет увидеть, что изначально было в edi.

Ссылка на комментарий
Поделиться на другие сайты

14 минуты назад, meft сказал:

Я не понимаю, как в edi может быть что то другое, отличное от edi?

До этой инструкции "edi,[edi]" edi было одно, после неё стало другим.

Поэтому либо поставь бряк повыше этой инструкции.

Либо можешь написать скрипт и получить в таблицу значения edi до инструкции.

Скрытый текст

label(address)
registersymbol (address)
-----------
newmem:
mov [address],edi   // в табличке добавь адресс с адресом "address" 4 байта HEX
mov edi,[edi]
------------
address:
dd 0
------------

unregistersymbol (address)

 

 

 

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.