|
|
| Посл.отвђт | Сообщен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, тогда что? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.105 |