Blog. Just Blog

Программы для восстановления импорта PE-файлов

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Сперва немного теории. Импортируемая функция - это API-функция, которая не находится в исполняемом модуле, но вызывается им. Такие функции физически находятся в одной или более внешних DLL, а в вызывающем исполняемом модуле находится только информация о них. Эта информация оформлена в виде таблицы, включающей сами имена вызываемых функций и названия DLL, в которых они находятся. Более подробную информацию можете поискать в интернете, здесь я останавливаться не буду. Упаковщики и протекторы обрабатывают таблицу импорта и очень часто вносят в нее изменения, направленные на затруднение их снятия. Поэтому восстановление таблицы импорта исполняемых файлов - обязательный процесс при ручной и автоматизированной распаковке. Для восстановления таблицы импорта созданы специальные программы, некоторые из которых есть в свободном доступе.

Скриншот программы ImpRec
Скриншот программы ImpRec

Самая известная программа для восстановления импорта - ImpRec от MackT. ImpRec позволяет выполнять автоматический поиск таблицы импорта, трассировать несколькими способами нераспознанные функции, а также сохранять таблицу импорта в текстовый файл для последующего анализа и в дальнейшем использовать ее для работы. Поддерживаются плагины определения функций импорта для разных протекторов, в архиве есть примеры с исходными текстами. Также ImpRec распространяется в виде отдельного DLL-файла, который используется во многих проектах (например, ArmaGeddon). Последняя официальная версия ImpRec 1.6 Final, но так как автор открыл исходные тексты, последователями были созданы несколько версий линейки 1.7. Несмотря на все полезные нововведения, я уже несколько раз сталкивался с тем, что версии 1.7 не могут правильно восстановить таблицу импорта, поэтому продолжаю пользоваться классической версией 1.6

ImpRec 1.6 FinalImpRec 1.6 Final

ImpRec.1.6.zip (388,026 bytes)

ImpRec 1.7cImpRec 1.7c

ImpRec.1.7c.zip (601,553 bytes)

ImpRec 1.7eImpRec 1.7e

ImpRec.1.7e.zip (575,584 bytes)

Скриншот программы Revirgin
Скриншот программы Revirgin

Если я не ошибаюсь, то программа Revirgin была самой первой разработкой в области автоматического восстановления импорта. С тех пор она претерпела множество доработок и изменений, но лично у меня популярностью не пользуется. При установке Revirgin копирует несколько своих файлов в системные директории, что несколько затрудняет ее использование на съемных носителях, в отличие от полностью портативной ImpRec.

Revirgin 1.5 PrivateRevirgin 1.5 Private

Revirgin.1.5.Private.zip (676,929 bytes)

Скриншот программы The Cheap Imports Reconstructor
Скриншот программы The Cheap Imports Reconstructor

CHimpREC: The Cheap Imports Reconstructor от известной команды ARTeam - в настоящее время одна из немногих программ для восстановления импорта 64-битных файлов, но в комплекте есть версия и для 32-битных систем. Интерфейс очень похож на классический ImpRec, есть встроенный дампер процессов (в том числе и 64-битных) и ручной редактор импорта. К сожалению, часть функций типа трейсера и поддержки плагинов пока не реализованы, но CHimpREC уже является мощным инструментом, в некоторых случаях даже превосходящим ImpRec. С нетерпением жду новых релизов от автора.

The Cheap Imports Reconstructor 1.0.0.1The Cheap Imports Reconstructor 1.0.0.1

The.Cheap.Imports.Reconstructor.1.0.0.1.zip (97,326 bytes)

Скриншот программы imp64
Скриншот программы imp64

Еще один инструмент от ARTeam - imp64. Как можно предположить из названия, это еще одна программа для восстановления импорта 64-битных файлов, плюс в ней есть дампер процессов. Но основная ценность заключается в том, что imp64 распространяется с исходниками. Скачать все это добро можно с офсайта.

Скриншот программы Imports Fixer
Скриншот программы Imports Fixer

Imports Fixer от крякерской команды SnD. Попытка собрать в одну программу все подручные инструменты: восстановление импорта, дампер, дизассемблер, HEX-редактор и калькулятор. Ни разу не пользовался ей на практике, так что больше ничего сказать не могу.

Imports Fixer 1.6Imports Fixer 1.6

Imports.Fixer.1.6.zip (1,063,181 bytes)

Скриншот программы Scylla Imports Reconstruction
Скриншот программы Scylla Imports Reconstruction

Scylla Imports Reconstruction - один из новых инструментов, но уже успевший завоевать популярность. Как пишет сам автор, во всех программах для восстановления импорта есть недостатки, и он решил сделать свой инструмент, в котором их не будет. Есть версия как для х86-платформ, так и для 64-битных, а главное, что полностью открыты исходные коды. Рекомендую к использованию.

Scylla Imports Reconstruction 0.9.6Scylla Imports Reconstruction 0.9.6

Scylla.Imports.Reconstruction.0.9.6.zip (998,291 bytes)

Ну и напоследок выложу несколько вспомогательных утилит, которые могут пригодиться при работе с импортом исполняемых файлов.

Скриншот программы Universal Import Fixer
Скриншот программы Universal Import Fixer

Universal Import Fixer помогает восстановить и перестроить таблицу импорта в памяти процесса, защищенного такими протекторами, как Armadillo, ASProtect, Enigma, ExeCryptor, eXPressor, PeSpin, RlPack, Themida, WinLicense и других. UIF восстанавливает перенаправленный, эмулированный импорт, прямые вызовы, и прочую мутотень, которую аффтары протекторов используют для защиты. В комплекте прилагается видеоролик, демонстрирующий пример распаковки защищенного файла с помощью UIF. Вы также можете использовать Universal Import Fixer как внешний модуль в своих проектах, для этого в архиве есть SDK с документацией. При грамотном использовании будет очень серьезным инструментом.

Universal Import Fixer 1.2 FinalUniversal Import Fixer 1.2 Final

Universal.Import.Fixer.1.2.Final.zip (2,005,743 bytes)

Скриншот программы IT Compare
Скриншот программы IT Compare

Программа IT Compare предназначена для сравнения таблиц импорта, созданных ImpRec и Revirgin. Это помогает в ситуациях, когда по какой-либо причине после восстановления импорта каждой программой по отдельности полученный файл все равно не работает. В этом случае вы сохраняете в текстовый файл таблицу импорта сперва при помощи ImpRec, затем при помощи Revirgin, а потом программой IT Compare сравниваете результаты. В некоторых случаях это действительно помогает найти причину вылета.

IT Compare 1.0IT Compare 1.0

IT.Compare.1.0.zip (651,068 bytes)

Скриншот программы UnpkT0l
Скриншот программы UnpkT0l

Утилита UnpkT0l позволяет автоматически исправить значения SizeOfImage, Checksum, TLS и Relocation Table, а также таблицы импорта в распакованном файле. Пригодится на всякий случай.

UnpkT0l 1.5UnpkT0l 1.5

UnpkT0l.1.5.zip (322,554 bytes)

На этом пока все, если в свободном доступе появятся еще какие-нибудь полезные инструменты, то я обязательно их сюда добавлю.

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 13395 | Комментариев: 13

Метки: реверсинг
Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
Anonymous (01.07.2018 в 13:35):
user, ищите гуглом по запросу "Import REConstructor v1.7f.7z"
Оно, на текущий момент, лежит тут: https://gironsec.com/code/
user (22.10.2017 в 01:51):
Упоминалась версия Import Reconstructor v.1.7 F - якобы неофициальная, пофиксенная.
Но найти её не удалось.
ManHunter (15.11.2011 в 17:11):
Voffka, да, видел его, но пока руки не дошли выложить.
Voffka (13.11.2011 в 14:30):
Вот еще опенсурсный
Scylla Imports Reconstruction
http://forum.tuts4you.com/topi...tion-source/
http://forum.tuts4you.com/topi...onstruction/
will shine (08.10.2011 в 04:43):
> 1)http://www.wasm.ru/article.php?article=ollydbg33
> 2)http://www.wasm.ru/article.php?article=ollydbg34

Спасибо за наводку, отличные туториалы!
Владислав (24.09.2011 в 19:35):
Дорогой писатель! Пока не читал вашу статью,но обязательно это сделаю,так как я новичок и мне это интересно,но советую также к прочтению две зачемательные статьи от Рикардо Нарвахи для понимания процесса импорта!:

1)http://www.wasm.ru/article.php?article=ollydbg33
2)http://www.wasm.ru/article.php?article=ollydbg34
ManHunter (20.06.2011 в 01:12):
Vnv, добавил, спасибо!
Vnv (08.06.2011 в 09:29):
ManHunter, UnpkT0l_1.5.rar - http://rghost.ru/9872771
ManHunter (01.06.2011 в 22:53):
Isaev, Dependency Walker у меня есть, а вот UnpkT0l что-то не нашел. Залей куда-нибудь, если не сильно секретная тулза.
Isaev (27.05.2011 в 23:34):
Хотелось бы добавить UnpkT0l v1.5 by Spirit
ну и старый добрый Dependency Walker тоже часто полезен бывает
disciple27 (27.05.2011 в 15:36):
Ничего себе... Самые нужные инструменты :) ManHunter, спасибо огромное :)
ManHunter (27.05.2011 в 15:35):
Обновил, спасибо. У автора UIF дурная привычка выпускать какие-то фиксы без изменения номера версии. За все время я насобирал уже штуки три билдов "1.2 Final", теперь вот еще одна добавилась :)
Vnv (27.05.2011 в 15:31):
Отличная статья, отличный блог! Все, что нужно - собрано в одном месте с комментариями. 5 баллов!
Маленькая добавочка по Universal Import Fixer - на сайте автора релиз свежее, чем выложенный Вами: v1.2 FINAL update (2009.02.23)

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2018
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.0056 сек.) / Память: 4.75 Mb
Наверх