Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+5 невидимых)

 eXeL@B —› Основной форум —› Ссылки в оле
Посл.ответ Сообщение

Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 декабря 2004 08:19
· Личное сообщение · #1

Вот, допустим, я попадаю на новую процедуру. Чтобы узнать какая процедура её вызвала я выбираю Find references to/Selected command и меня перебрасывает в вызывающую процедуру. А если их несколько: как поступить в этом случае?



Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 декабря 2004 08:22 · Поправил: Dex
· Личное сообщение · #2

И как мне узнать, что лежит по этому адресу:
push crackme.00411021?




Ранг: 260.3 (наставник), 2thx
Активность: 0.120
Статус: Участник
PPC-PROTECT author

Создано: 17 декабря 2004 08:40
· Личное сообщение · #3

Dex пишет:
И как мне узнать, что лежит по этому адресу:
push crackme.00411021?

пипец читай доки, глупый вопрос... способов масса, например нажать правой кнопокй и выбрать Follow in Dump

-----
Пиво, сиськи, транс




Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 декабря 2004 08:45
· Личное сообщение · #4

-= ALEX =- пишет:
читай доки

Хе..где ж их найдёшь?



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 17 декабря 2004 08:47 · Поправил: deNULL
· Личное сообщение · #5

Dex пишет:
Чтобы узнать какая процедура её вызвала я выбираю Find references to/Selected command

Чтобы узнать, какая процедура её вызвала, используй окошко Call Stack (Alt-K)



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 17 декабря 2004 08:48
· Личное сообщение · #6

Dex пишет:
Хе..где ж их найдёшь?

Help / Contents



Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 декабря 2004 08:53
· Личное сообщение · #7

deNULL пишет:
Чтобы узнать, какая процедура её вызвала

Там написано Stack(00401313), а вызывающая процедура находиться 0040130E т.е. на шаг первее. Эт что, так надо?



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 17 декабря 2004 09:01
· Личное сообщение · #8

> А если их несколько: как поступить в этом случае?

Поставить бряки на все и перезапустить программу ну или повторить ситуацию, которая привела к попаданию на искомую процедуру ;)



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 17 декабря 2004 09:03 · Поправил: deNULL
· Личное сообщение · #9

Dex пишет:
Там написано Stack(00401313), а вызывающая процедура находиться 0040130E т.е. на шаг первее. Эт что, так надо?

Да будет тебе известно, что данные в окне Call Stack берутся из стека, а в стеке хранится адрес возврата, то есть адрес, по которому будет передано управление после RET (на этом, кстати, основано использование команды RET как JMP). При вызове процедуры в стек кладется адрес команды, следующей за CALL.
В окне Call Stack:
Address - адрес на адрес ( ) в стеке
Stack - значение стека по вышеназванному адресу
Procedure / Arguments - адрес и, возможно, аргументы вызываемой процедуры
Called from - адрес, откуда был произведен вызов (CALL ...)
P.S. В OllyDebug двойной щелчок контекстно-зависим. То есть щелкаешь по Address - переходишь в стек; щелкаешь по Procedure / Arguments - переходишь в начало вызываемой процедуры; по Called from - переходишь к адресу вызова.



Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 декабря 2004 09:06
· Личное сообщение · #10

deNULL
Всё понял. Теперь знаю.


 eXeL@B —› Основной форум —› Ссылки в оле
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати