Перед этим рекомендуется скопировать динамическую
Перед этим рекомендуется скопировать динамическую библиотеку dbghelp.dll из Debugging Tools в коревой каталог IDA Pro, иначе плагин pdb.plw может не сработать.
Но прежде, чем загружать символы, перейдем на место сбоя и посмотрим как выглядит оригинальный дизассемблерный текст. Нажимаем <G> (goto) и вводим адрес "75ACC4DA", сообщенный Др. Ватсоном. Мы оказываемся в уже знакомой нам процедуре (см. листинг 8), вызывающей безымянную функцию 75A9211Dh о назначении которой пока можно только гадать:
.text:75ACC4C0 sub_75ACC4C0 proc near ; CODE XREF: sub_75AB7EE6+1E2p
.text:75ACC4C0 ; sub_75AC4C20+2Ep ...
.text:75ACC4C0 push esi
.text:75ACC4C1 mov esi, ecx
.text:75ACC4C3 call sub_75A9211D
.text:75ACC4C8 mov si, [esi+6Ch]
.text:75ACC4CC test si, si
.text:75ACC4CF jz short loc_75ACC4E9
.text:75ACC4D1 movzx ecx, si
.text:75ACC4D4 imul ecx, 98h
.text:75ACC4DA mov eax, [eax+420h] ; ß место сбоя
.text:75ACC4E0 pop esi
.text:75ACC4E1 lea eax, [ecx+eax-98h]
.text:75ACC4E8 retn
.text:75ACC4E9 ; -------------------------------------------------------------------
.text:75ACC4E9
.text:75ACC4E9 loc_75ACC4E9: ; CODE XREF: sub_75ACC4C0+Fj
.text:75ACC4E9 mov eax, offset unk_75C8D1A0
.text:75ACC4EE pop esi
.text:75ACC4EF retn
.text:75ACC4EF sub_75ACC4C0 endp
.text:75ACC4EF
Листинг 8 дизассемблерный текст до загрузки символьной информации
После загрузки символьной информации (file à load file à PDB file) листинг радикально преображается (см. листинг 9) и мы получаем вполне осмысленные имена:
; struct INSTANTCLASSINFO * __thiscall COleSite::GetInstantClassInfo(void)
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий