RCE.SU - реверсинг, кодинг, выделенные сервера, ICQ, proxy

AssProtect и его применение в случае LanTalk Pro v2.6.1.3 от EXXZERRO (C) Research Lab.


Target: LanTalk Pro v2.6.1.3
Protection: AssProtect vX.YYY
Source: http://www.lanTalk.net
Toolz: SoftICE v4.05
Revirgin v1.2 (public)
ImpRecomstructor v1.2
Hiew v6.76 Demo Toolz source: http://protools.cjb.net
Letz begin:))

Как было написанно выше данная программа пошита AssProtect. Раз так, пробуем первый инструмент который в таком случае нужно проверить CASPR v1.1 beta 3. И что мы видим? Неизвестная версия AssProtect:(( Когда хоть Солодовников угомониться, и перестанет постоянно мутировать свой продукт?:)) Ну ладно не беда:)) На счастье у нас по мимо чужих инструментов есть и свои - МОЗГИ:)) Так что идем в инет и ищем, как умные люди воюют с данной защитой. И что мы видим? Несколько прекрастных статей от членов нашей группы:)) И все в них есть - и нахождение OEP, и расспаковка, и восстановление иморта.

Части по поиску OEP и по расспаковке я пропущу, так как они довольно подробно описанны членами нашей группы Kop&{Hex}. Вот только добавлю одно замечание:)) Почему-то ни кто не описывает как приводить полученный дамп в рабочее состояние, а ведь это далеко не всем ясно:)) Что бы дамп был рабочим, при условии что импорт нормальный, необходимо что бы у ВСЕХ секций, в полученном дампе, было Phizikal Size = Virtual Size и Offset = RVA. Это необходимо поставить у всех секций, а не только у секции ресурсов. Мной это проверенно на многих пакованных екзе и длл модулях.

Ну вот мы получили дамп, но он все равно не живой, потому как поломан импорт. Но это не беда. Ведь есть два прекрастных средства для его восстановления. Почему два? Да потому, что и ReVirg и ImpRec не всегда могут поодиночке правильно восстановить импорт целиком. И использование каждого из этих средств по одиночке оставляет еще гигантский простор для работы ручками:)) Покрайне мере в данном случае ReVirg на некоторых неопределенных ф-ях просто ронял мои винды с ошибкой 0E. Ну начнем:))

Запускаям прогу и оба наших прекрастных средства:)) Оба сказали, что не могут найти импорт:(( Ну не беда вводим и там и там полученную ранее OEP, в данном случае это .417370. Жмем в ReVirg Fetch IAT а потом IAT Resolver. Ура получили импорт. Но внем слишком много не ресолвенных функций. Пробуем нажать Resolve Again. Не ресолвенных ф-й осталось всего 6. Так, теперь беремся за ImpRec. Жмем IAT Autosearch, Get Import, Auto Trace. Ура получили импорт со всего только 4 нересолвенными ф-ями. К сожалению ImpRec не так хорошо умеет работать с не распознанными ф-ями, но зато он умеет прекрастно добовлять полученный импорт в дамп. Поэтому вернемся в ReVirg и попробуем ресолвить оставшиеся ф-ии в нем. Сразу предупреждаю: при Api Emulate последней ф-и винда может упасть:))

Ну приступим. Смотрим в ИмпРеке первую не расспознанную ф-ю. У меня получилась ф-я с RVA 3914А. Идем в РеВирг и ищем ф-ю с таким RVA там. Она тоже не ресолвенна. Ну чтож жмем на ней правую кнопку мыши и выбираем API Emulator. Видим, что ее адрес изменился. Прекрастно. Жмем Resolve8 Again. Ура получилось. Это ф-я GetCommandLineA из Kernel32.dll. Теперь возвращаемся в ИмпРек и два раза кликаем мышой на этой ф-ции. В появившемся окошке выбираем в верхнем комбо боксе kernel32.dll, а в нижнем GetCommandLineA. Жмем ОК. Ну вот и все, первая ф-я готова. Повторяем аналогичные действия для 3-х оставшихся ф-й. И ура у нас нормальный имопрт для нашей проги. В ИмпРеке жмем Fix Dump и выбираем дамп, который мы получили ранее. Если вы все сделали правильно, то после всех этих монипуляций прога запустится. И как бы вы не меняли время на машине прога будет работать:)) Вот что бывает когда авторы рассчитывают только на навесную защиту:))

Так первую часть мы выполнили:)) Осталось еще 4 момента: Абоут бокс при старте проги, к каждому посылаемому сообщению добавляется Unregistered, не сохроняются настройки трех секций - Messaging Settings, Automatic Settings и Filters Settings и надпись в Абоут боксе о том, что нам осталось Х дней ло конца использования проги. Все лни не сильно мешают, но немножко раздражают, особенно Unregisterd после каждого сообщения.

Разберемся с этой проблеммой. Открываем LanTalk.exe в Hiew. Ищем строчку Unregistered. Находим и видим, что перед ней стоит еще два байта 0D, 0A. Становимся на 0D и жмем Ф6. И что мы видим:

je .00040F914
push .000447DF8
Пробуем изменить je на jmp. Запускаем прогу, посылаем ссобщение и опа ... Строчка Unregistered исчезла:)) Проблемма решена:))

Ну вот вроде как и все:)) Остальные проблеммы если хотите можете попробовать решить сами:))

With best regards,

--------------------
CraF {craf@uofg.cc}
--------------------
    [UOFG Crew] 
 \|/www.uofg.cc\|/
    [UOFG Crew]
--------------------
Дискламер:

Данный материал был написан для разработчиков защит программного обеспечения с целью указать на слабости в защите. За использования данного материала в незаконных целях автор ответственности не несет.


<= Вернуться к статьям


Rambler's Top100