Сейчас на форуме: -Sanchez-, morgot, sashalogout (+3 невидимых) |
eXeL@B —› Софт, инструменты —› PEAnatomist - внутренности PE-файлов |
. 1 . 2 . 3 . 4 . 5 . 6 . >> |
Посл.ответ | Сообщение |
|
Создано: 11 октября 2019 19:56 · Поправил: RamMerlabs · Личное сообщение · #1 Хочу поделиться небольшой программкой для просмотра внутренностей PE-файлов - PEAnatomist. Да, это очередной просмотрщик PE. Но с некоторыми востребованными (по крайней мере мной ) возможностями, которых мне не удалось найти нигде более. Помимо обычного набора из базовых заголовков, импорта, экспорта, ресурсов и т.д. PEAnatomist глубоко вонзает "скальпель" в таблицы Base Relocations, LoadConfig и ExceptionsData. Вскрываются все поля и таблицы из LoadConfig - вплоть до самых свежих из Win SDK 18362 (Enclave и Volatile Metadata). Производится лёгкий анализ содержимого по релоцируемым VA, в т.ч. для специфичных типов релокации архитектур ARM7 Thumb и IA64. И, наконец, полный разбор таблиц ExceptionsData для архитектур x64, ARM7, ARM7 Thumb, ARM64, IA64 и специфичных для языка данных. Например так отображается таблица Exceptions для x64 и для ARM64 с разбором кодов раскрутки. На закуску ещё есть декодирование всех элементов из Rich-подписи с указанием всех используемых при создании PE инструментов, отображение многих типов отладочной информации. Установка программы не требуется, дополнительных зависимостей нет. Административные права программа не требует, но без них не получится добавить ассоциации с файлами в проводнике. Программа никуда кроме файла настроек (рядом с программой или в %appdata% в зависимости от ряда условий) ничего не пишет, не отправляет. Ознакомиться подробнее с возможностями программы и скачать её можно на | Сообщение посчитали полезным: mak, Adler, Qbik, Hugo Chaves, HandMill, plutos, MarcElBichon, hors, Bronco, morgot, v00doo, BlackCode, GPcH, DICI BF, ==DJ==[ZLO], CyberGod, TRPD, crypto, DenCoder, UniSoft, exZet, dosprog, -=AkaBOSS=-, SReg, Orlyonok, icerix, topmo3, Jupiter, r_e, Jaa, stnt, ELF_7719116, Bad_guy, WELL, igorcauret, =TS=, dimon3d, anony-mouse, Artem_N, Jim DiGriz, Alchemistry |
|
Создано: 12 октября 2019 05:32 · Личное сообщение · #2 |
|
Создано: 12 октября 2019 12:19 · Личное сообщение · #3 Bronco Согласен, с дизайном GUI конечно не всё по феншую, старался вместить сразу побольше данных для быстрого просмотра. А что именно для Вас оказалось неудобным? Сами списки, из размеры или наполнение? Сейчас в разработке новая версия GUI, планирую сделать с MDI и по умолчанию выделить бОльшее пространство для списков. Поиск и фильтр впишу в todo. Локализация структур - это Вы имеете ввиду заголовки списков? Если так, то пока могу предложить переключиться на английский язык. И тогда получается, что во всей проге и "локализовывать" нечего Спасибо за Ваш комментарий! |
|
Создано: 12 октября 2019 15:14 · Поправил: hors · Личное сообщение · #4 Интересная программа. Много полезной информации, например EXCEPTION_DATA_DIRECTORY и разбор RICH сигнатур. Есть ряд замечаний по интерфейсу(например сделать более продуманным диалог Options), но в целом всё очень достойно. Также хочу заметить, что основной функционал полностью написан с использованием компилятора MASM. Что очень круто в 2019 году, хотя и создаёт известные проблемы с переносимостью. ----- http://ntinfo.biz |
|
Создано: 12 октября 2019 18:06 · Личное сообщение · #5 |
|
Создано: 12 октября 2019 19:02 · Поправил: Adler · Личное сообщение · #6 |
|
Создано: 12 октября 2019 19:05 · Личное сообщение · #7 |
|
Создано: 12 октября 2019 19:54 · Личное сообщение · #8 |
|
Создано: 12 октября 2019 23:48 · Личное сообщение · #9 |
|
Создано: 13 октября 2019 00:15 · Личное сообщение · #10 |
|
Создано: 13 октября 2019 00:27 · Поправил: RamMerlabs · Личное сообщение · #11 GPcH Спасибо! Уже разбираюсь. morgot Спасибо! 1. Так и есть, Base relocations. Перевод устоявшихся терминов с английского, похоже, неудачный. Если Вам будет удобнее, переключитесь в настройках на английский язык. 2. Верно, I - элемент IAT. Подробное описание скоращений есть на сайте, позволю процитировать здесь: - импортируемых функций (сокращение "I:") - адреса переходника импорта ("IT:", Import Thunk) - отложенно-импортируемых функций ("DI:", Delayed Import) - адреса переходника отложенного импорта ("DIT:") - адреса структуры отложенного импорта IMGDELAYDESCR ("DID:", Delayed Import Descriptor) - экспортируемых функций ("E:") - адресов из списков и полей из LoadConfig Directory ("SEH Handler", "CFG Check Function", "CFG Dispatch Function", "RFG Failure Routine", "RFG Verify Stack Function", "Security Cookie", "GFIDs Table") - значение глобального указателя, если это предусмотрено целевой архитектурой PE-файла ("Global Pointer") A - ANSI строки; U - UTF16, производится поиск символов, соответствующим таковым ANSI (0x00XX), а также символов, соответствующим cp1251 (кириллица). Со временем планирую расширить поиск и другими кодовыми страницами (скорее всего всеми европейскими, азиатские великоваты всё же). | Сообщение посчитали полезным: Hugo Chaves, morgot |
|
Создано: 13 октября 2019 06:46 · Поправил: Bronco · Личное сообщение · #12 RamMerlabs пишет: старался вместить сразу побольше данных для быстрого просмотра сорян, к всё и сразу оказался не готов..+ запустилась на кирилице, и не сразу вкурил где что. а вот парс таблиц реально впечатлил, особенно таблицы егоров. но хотелось бы чтобы структуры отображались в полях, как у мелких в энумах расписано. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 13 октября 2019 08:49 · Личное сообщение · #13 RamMerlabs Возможно, что я много хочу и это не относится к данной программе, но можно ли добавить поиск криптосигнатур ? Спасибо! | Сообщение посчитали полезным: BlackCode |
|
Создано: 13 октября 2019 09:25 · Поправил: BlackCode · Личное сообщение · #14 |
|
Создано: 13 октября 2019 11:27 · Личное сообщение · #15 |
|
Создано: 13 октября 2019 14:28 · Личное сообщение · #16 Bronco но хотелось бы чтобы структуры отображались в полях, как у мелких в энумах расписано Если Вас не затруднит, напишите на примере каких-нибудь данных из проги как бы Вы хотели это видеть? Скриншот, исправленный даже в пейнте, был бы вообще шикарен. Hugo Chaves Спасибо за отзыв и за идею, рассмотрю, что и где можно прикрутить. Признаюсь, идей по функционалу много, но в теущих рамках GUI новые возможности уже не вмещаются. Поэтому пока приоритетной задачей стоит переделка интерфейса и увеличение информативности (например, сообщения об ошибках остались за бортом). |
|
Создано: 13 октября 2019 16:03 · Личное сообщение · #17 |
|
Создано: 13 октября 2019 19:02 · Личное сообщение · #18 |
|
Создано: 14 октября 2019 07:51 · Поправил: crypto · Личное сообщение · #19 |
|
Создано: 14 октября 2019 12:54 · Личное сообщение · #20 |
|
Создано: 14 октября 2019 13:59 · Личное сообщение · #21 |
|
Создано: 14 октября 2019 14:05 · Личное сообщение · #22 exZet Спасибо! Редактирование пока в ооочень далёких планах. Файл не освобождается до конца работы с ним, т.к. образ проецируется в память, а не читается через ReadFile. Хотелось бы конечно уйти от MapViewOfFile, но придётся переписать процентов 80 кода. | Сообщение посчитали полезным: ==DJ==[ZLO] |
|
Создано: 14 октября 2019 21:04 · Личное сообщение · #23 exZet Только не совсем удобно, что нет редактирования полей, и что файл не освобождается после парсинга(удалить файл или внести изменения не получится пока он открыт) Дампы - наверно дампы секций, ресурсов, етс. Понабегут разные хемели с "хотелками". Ширше смотрите на инструмент. (to Author - есть пару "вылетов" не стану сейчас отправлять. Протестирую. Соберу в кучу с мЫслями ) Отправлю... |
|
Создано: 15 октября 2019 00:04 · Личное сообщение · #24 RamMerlabs пишет: Файл не освобождается до конца работы с ним, т.к. образ проецируется в память Так можно же с ним работать в неэксклюзивном режиме, при чём с тем же MapViewOfFile. ----- EnJoy! | Сообщение посчитали полезным: dezmand07 |
|
Создано: 15 октября 2019 07:24 · Личное сообщение · #25 |
|
Создано: 15 октября 2019 12:06 · Личное сообщение · #26 |
|
Создано: 15 октября 2019 16:26 · Поправил: exZet · Личное сообщение · #27 RamMerlabs, таки да, достаточно ведь атрибуты поменять или у MapViewOfFile или у CreateFileMapping. В общем-то последний я себе пропатчил. Кстати, небольшой баг-репорт: на больших файлах, при переключении на вкладку Исключения тулз подвисает до тех пор, пока сканирование не завершится. Или такой случай - если ранее была выбрана вкладка Исключения, и потом из контекстного меню выбрать большой файл, то окно тулза не появится, опять же, пока сканирование не завершится. ==DJ==[ZLO], упырте мел, уважаемый, и оставьте свое мнение там, где оно было до моего поста. |
|
Создано: 15 октября 2019 17:03 · Личное сообщение · #28 exZet Похоже, что недостаточно. Несмотря на CreateFile (..., FILE_SHARE_READ, ...), последующий CreateFileMapping так просто не даст расшарить ресурс. Заметка на Насчёт баг-репорта - увы, пока только так. Многопоточности ещё нету (будет), поэтому обработка большой таблицы exceptions подвешивает гуй. Небольшая возможность оптимизации процедуры есть, уже в разработке. | Сообщение посчитали полезным: exZet |
|
Создано: 15 октября 2019 19:01 · Личное сообщение · #29 |
|
Создано: 15 октября 2019 19:59 · Личное сообщение · #30 |
. 1 . 2 . 3 . 4 . 5 . 6 . >> |
eXeL@B —› Софт, инструменты —› PEAnatomist - внутренности PE-файлов |