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

 WASM Phorum —› WASM.ASSEMBLER —› дисассемблер

<< . 1 . 2 .

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


Дата: Дек 30, 2003 01:14:57

Dr.Golova ну эт понятно =)
а вот кстате как его заставить не глюкнуть

P.S. бумаю - хы по клаве не попал =)


Дата: Дек 30, 2003 06:08:22

angel_aka_ks
берет первый опкод например это e8
До первого опкода нужно ещё добраться через заголовок PE. Ещё, между функциями может быть всякий левый код, для выравнивания. Короче, там много тонкостей...


Дата: Дек 30, 2003 12:34:04

> а вот кстате как его заставить не глюкнуть

На а вот эта задача уже тянет на докторскую, и полностью пока никем не решена. в общем (и простейшем) случае для каждого байта строится таблица код/данные - точку входа метим как как код, все остальное как данные, дальше дизасмим и метим все как код, отмечая как код то куда делаются jmp/call, ну и так пока не сглючит =)


Дата: Дек 30, 2003 14:57:14

На а вот эта задача уже тянет на докторскую
Замечательные слова... :)

а совсем продвинутые вещи еще и понимают, что в AllocateHwnd передается адрес WndProc, которую также маркируют как код и в дальнейшем трассируют.
А еще есть mov fs:[0],SehHandler, CreateThread, CreateFiber и много чего еще...


Дата: Дек 30, 2003 15:07:15

...а еще важно не трассировать системные вызовы длл, ибо так можно и охренеть, помнить, что из ExitProcess и подобных ему не бывает возврата, что не любой call возвращает управление (напр. на делфях есть такая функция, называется Halt0), что надо обрабатывать экспорт, что в длл есть DllMain и т.д.
Вообщем, тут есть над чем подумать.

З.Ы. Может еще кто что вспомнит...


Дата: Дек 31, 2003 04:25:24

ну и так пока не сглючит =)

=)

через заголовок PE.
да это и так ясно

между функциями может быть всякий левый код,

ну можно же делать проверку типа есть такой опкод или нету если нету смотрим следущий а этот маркируем как мусор или я не правильно думаю ??

<< . 1 . 2 .


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