![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Приветствую!
Задача: получить список строковых констант ANSI и UNICODE из тела подопытного PE-файла. Цель: конечная цель - программно получить ПОЛНЫЙ список зависимостей НЕ ЗАПУЩЕННОГО PE (а также используемых файлов) для их анализа самописной антивиркой. Импорт получать умею, но многие проги вызывают ДЛЛ динамически. Умею получать список загруженных прогой ДЛЛ, когда она запущена, а также список используемых файлов. Аналог: с этим отлично справляется дизасм PE Explorer, но, бывает, глючит. Что уже было предпринято: получение списка строк, сверяя каждый символ с ANSI-таблицей символов, но очень долго, много мусора, строки приходится дополнительно форматировать. Те получается медленно и неточно. Также была предпринята попытка подключить сторонние дизасмы, но они, во-первых, дизасмят как то странно (возможно, неправильно), а во-вторых, вообще не выводят каких либо строк, кроме инструкций, хотя может плохо искал нужный двиг. Мысли в слух: возможно, требуется написать простенький дизасм, но в дизасме, кроме основных инструкций, я не разбираюсь. ЗЫ За любую помощь заранее благодарю. |
#2
|
||||
|
||||
![]() А где ты видел чистые не упакованые/криптованые вирусняки? Если такие и есть, то это какие-то ламовири и строки зачастую шифруют.
Меня греют ваши плюсы к моей репутации... |
#3
|
|||
|
|||
![]() Ну тогда просто ищи вызов LoadLibrary.
Т.е. тебе нужен именно код обращения к этой функции. Хотя, на сколько я помню, даже DependencyView из VisualStudio не показывает зависимости от динасически подгружаемых библиотек. |
#4
|
||||
|
||||
![]() Нужно хукнуть LoadLibraryW (чтоб отловить больше длл). Но некоторые вири, хотя даже большинство из них используют антиотладочные трюки, проверка брекпоинтов и хуков на важных апи, и прочее. Но зачастую это глупая школота, которая нашла на просторах интернета антиотладочный модуль, подключила его а толком не знают как им пользоваться.
Меня греют ваши плюсы к моей репутации... |
#5
|
||||
|
||||
![]() Мне неважно, шифрованные строки или нет, главное получить их так. как это делает дизассемблер PE Explorer'a, относительно быстро и без мусора.
|
#6
|
||||
|
||||
![]() Цитата:
Код:
PUSH <addr> MOV r32, <addr> А потом проверяешь эти адреса на строки. Ну как-то так, но всё равно не выйдет хорошо анализатора. В идеале нужно с кода строить граф, но это уже другая история. ![]() Меня греют ваши плюсы к моей репутации... Последний раз редактировалось BoRoV, 14.12.2010 в 09:02. |
#7
|
||||
|
||||
![]() Спасибо за исчерпывающий ответ)
М-да, я явно не сделаю такой дизассемблер - анализатор, жаль, придется по старинке сравнивать с кодовой таблицей, вот тока Юникод точно в пролете будет |