|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Получение ANSI и UNICODE строк из тела PE
Приветствую!
Задача: получить список строковых констант 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
|
||||
|
||||
Спасибо за исчерпывающий ответ)
М-да, я явно не сделаю такой дизассемблер - анализатор, жаль, придется по старинке сравнивать с кодовой таблицей, вот тока Юникод точно в пролете будет |
#8
|
||||
|
||||
Ну это только делфи кладёт в секцию с кодом строки и прочие константы. А другие компили для этого отводят отдельно секцию. Ну еще может совет, в прогах на вб только юникод строки.
Ну для начала научись определять компиль. Это не сложно, по сигнатуром можно. Раз ты не ставишь перед собой цель исследование упакованных файлов, то сигнатур будет мало. А потом в зависимости от компиля выбираешь стиль анализа. Встречал кажется раньше дизассемблерные модуля заточенные под делфи, думаю они бы упростили анализ. Ну в общем не сдавайся. З.Ы. А что собственно ты хочешь создать в итоге, если не секрет? Меня греют ваши плюсы к моей репутации... |
#9
|
||||
|
||||
Цитата:
Определять компиль я умею и у меня именно поставлена цель исследования всех исполняемых и не исполняемых файлов на упакованность и тд и тп Написать хочу что то типа антивируса, в первом посте глянь внимательно), и тд и тп (иммунизатор и оптимизатор системы). Наработок рабочих много, надо лишь объединить в один движок и проработать множество нюансов. Был бы в команде ответственный честный ПРО кодер с кучей времени - получился бы в короткие сроки антивирь получше там всяких авастов, ИМХО) ЗЫ Это моя мечта, но рано или позно, но что то напишу |
#10
|
||||
|
||||
У меня тоже когда-то была такая розовая мечта :-) но смог написать только конкретно для индюка. Пытался потом что-то большее сделать но самому было скучно писать и я бросил.
Меня греют ваши плюсы к моей репутации... |
#11
|
||||
|
||||
Цитата:
Ну начать снова никогда не поздно ЗЫ У меня также, то начинаю, то забрасываю, в итоге в выхлопе разрозненные части единой системы |