Распаковка и восстановление файлов упакованых tElock 0.98Delphi , Программа и Интерфейс , Исследование программРаспаковка и восстановление файлов упакованых tElock 0.98Автор: Hex О защите: Полиморфный упаковщик, как обычно с антидебаговыми примочками, поганит импорт, секции в файле обзывает именами других упаковщиков. Вот так :( Инструменты: Softice, IceDump, Imprec. Как найти OEP: bpx GetModulehandleA, потом /tracex imagebase xxxxxx , где xxxxxx число примерно пониже базы распаковщика. А вот с импортом не все так просто. Взяв Imprec будет сразу видно что 2 секции никак не востанавливаются. И элементы этих секций указывают на какие-то разные области памяти, даже не в области упаковщика. Если глянуть в эти области, то нас постигает огромный облом... Некоторые элементы указывают в пустые куски памяти (те что с ?? ?? ...), а остальные указывают на вызовы процедур из библиотек через полиморфные куски кода!!! Хана... Это ж даже не подизасмишь. Но выход есть! Берем к примеру первый не найденый элемент к примеру 5b140 ссылается на 700000. Смотрим на код по адресу 700000. Он имеет вид:
Делаем u 00700005 и видим:
теперь делаем d 00700690+1 (+1 тошо inc eax). Видим:
Это кусок импорта! Теперь делаем хитрую вещь... /dump 700691 a4 c:\1.dmp и /load 45b140 a4 c:\1.dmp Я подменил кусок таблицы импорта на реальные адреса апи функций. Прога на этот момент запущена. И прекрасно работает ничего не заметив. Так мы поборем полиморфные вызовы. Остаются вызовы которые ведут в никуда. В никуда они вести не могут. Поэтому нужно просто глянуть на эти места когда EIP=OEP :) И действительно! В момент когда прога тока собирается запустится, все наместе и можно дописать оставшиеся куски. Там тоже будут полиморфы. Еще останется несколько вызовов процедур типа:
Причем по адресу 46C48D или ноль идет или пустота... Поэтому ячейки которые указывают на такие процедуры нужно просто отсекать (cut thunks). Итак нужно просто остановить прогу на OEP скопировать правильные адреса в таблицу импорта, а потом дать проге запуститься и дальше уже в Imprec завершить "косметику" :) Распаковка и восстановление файлов упакованых tElock 0.98 - статья Hex описывает способ разблокировки и восстановления файлов, упакованих с помощью полиморфного упаковщика tElock 0.98. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Исследование программ ::
|
||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |