· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Откуда Jump???

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Апр 3, 2004 23:41:43

2 Asterix
Не поняли друг друга??? Можешь по подробнее о идее?
2 Four-F
Sorry! ро контекст был неправ. Проверил. Спасибо.
Про бряк:
call ?
push eax
jmp ?
xor eax,eax (!!!)
push ebx
call ?
(!!!) сюда прога как-то попадает (видно, ч/з JMP)
задача узнать откуда. При наличии "MSR LastBranchFromIp" - это не проблема, но что такое "MSR LastBranchFromIp"???
может и туплю, но почитав доку нашел комманду TRACE, имеющую отношение к back trace buffer, но в SoftIce-е у меня такой комманды нет. И я не гуру SoftIce, хоть и чё-то знаю, и (стыдно, конечно) про MSR и такую халяву, как
"LastBranchFromIp" не слыхал. Очень, очень благодарен буду if объясните!!!

2 nice
Спасибо, продегустирую...


Дата: Апр 4, 2004 01:32:50

[ PavPS: (!!!) сюда прога как-то попадает (видно, ч/з JMP) задача узнать откуда. ]

Если перед этим был jmp (и его разнавидности) или call, то поставив туда bpm ты увидишь этот адрес в LastBranchFromIp. Я в предыдущем своем посте такой же пример приводил - все работает.


[ PavPS: ...нашел комманду TRACE, имеющую отношение к back trace buffer, но в SoftIce-е у меня такой комманды нет. ]

Если ты под NT+, то забудь. Я ж говорил только маздай, т.е. Windows 9x. Если у тя этот самый маздай, то открывай "SoftICE Command Reference Help" и ищи описания команд BPR, BPRW, SHOW, TRACE, XRSET, XT. Вкратце делается это так: ставишь такой бряк на диапазон адресов:

BPR <start-address> <end-address> T

И прогоняешь свою прогу. Айс записывает каждую выполненную инструкцию в этот самый back trace buffer. И потом ты можешь используя "trace simulation mode" бродить по этому буферу вперед или назад - весьма удобно иногда. Под NT+ это не работает из-за того, что там нет bpr.


[ PavPS: про MSR и такую халяву, как "LastBranchFromIp" не слыхал. Очень, очень благодарен буду if объясните!!! ]

Идешь на интел.ком, сливаешь оттуда доку по камню (можно только третий том).

IA-32 Intel Architecture
Software Developer’s Manual Volume 3:
System Programming Guide

И читаешь там про Model Specific Registers - MSR.

"The MSRs (which were introduced into the IA-32 architecture in the P6 family proces-sors)
monitor branches, interrupts, and exceptions and record the addresses of the last branch,
interrupt or exception taken and the last branch taken before an interrupt or exception.

The IA-32 branch instructions that are tracked with the last branch recording mechanism are the
JMP, Jcc, LOOP, and CALL instructions."


Дата: Апр 4, 2004 01:43:23

PavPS

Ты читал об "Упаковщиках в последний раз", часть вторая? Там тоже кой-чего написано.


Дата: Апр 4, 2004 01:46:46 · Поправил: PavPS

Four-F
Спасибо!
"Если ты под NT+"
Да именно, просто принял NT за равноправного члена семейства мастдайных. А про BPR я почитал малость , пока писал ответ. Не думал, что такие сложности возникнуть. Будем бороться...


Дата: Апр 6, 2004 15:24:58

nice
Воспользуйся ОllyDbg - запускаешь, ставишь бряку на jmp, потом трейсишь TC EIP==JMP и идешь кофе пить

Глупый вопрос: "ваш любимый" OllyDbg умеет трассировать вот такие
clc
pushfd
btr dword ptr [esp], 8
jnc $+7
bts dword ptr [esp], 0
popfd
jc FormatAnyDisk
вещи без форматирования дисков? ;)

"Мой любимый" WinDbg не умеет, однако... А если более тяжелый случай, Get/SetThreadContext, тогда что?

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.105