Делимся опытом ручной распаковки и снятия протекторов. Я начну.
[ASProtect]
Жертва - Advanced Dialer. Я про нее уже писал, но тогда я применял online patch и про распаковку ничего не говорил. Теперь пришло время показать как это делается на практике.
Версия протектора ASProtect 1.22 - 1.23 Beta 21 -> Alexey Solodovnikov, так сказал PeId.
Загружаю в OllyDbg модуль Adialer.exe. Первое, что я делаю - включаю остановку на всех исключениях. Делается это нажатием комбинации Alt+O и снятием все галочек на вкладочке Exceptions
Теперь начнем. Жмем Shift+F9 и останавливаемся на первом исключении. Теперь, так как это ASProtect исключений будет много и нужно считать нажатия. Так рекомендую делать в начале, но в принципе можно и на глаз определить. Теперь, когда количество исключений до запуска проги записано, надо перезапустить ее и на последнем except- е запустить трассировку. Значит нажать надо Ctrl+T и настроить трассировку таким образом, чтобы она прерывалась при встрече команды popad (восстановление всех регистров). Для этого поставьте галочку
около Commands is one of и в окне рядом напишите popad. Теперь OK. Непосредственно запускаем трассировку с помощью Ctrl+F11 потом жмем Shift+F9, а потом снова Ctrl+F11............ После начала трассировки надо подождать чуток и нажать F12... Прерываем трассировку и обходим длинный цикл...
Теперь возобновляем трассировку и ждем. С моим медленным компом у меня трассировалось минут 5.
Прога остановилась на этом фрагменте
008F2F48 61 POPAD008F2F49 FFE0 JMP EAX
Это переход на oep. С помощью F7 иду к джампу и перехожу на точку входа.
И вижу следующия start-up:
0041BF2C . 55 PUSH EBP0041BF2D . 8BEC MOV EBP,ESP0041BF2F . 83C4 F4 ADD ESP,-0C
Вердикт - написано Делфи.
Записываем oep......
Теперь дамп.........
Отлично сдампилось....... Реконструируем импорт............... Запускаем imprec и выбираем наш процесс..
Пишем oep и жмем Iat AutoSearch...... теперь Get Import...
Импорт восстановился не полностью..... Нажимаем Show Invalid и, выбрав неопределенные функции, запускаем Tracer Level 1(Disasm).... То есть определение функций
путем дизассемблирования.... Но импорт опять не восстановлен полностью.....
Теперь пришло время воспользоваться плагином imprec, восстанавливающим функции, искаженные Asprotect.
Ура! Восстановил!
Теперь склеиваем с дампом.... жмем Fix Dump
Проверяем дамп..... Все работает без проблем!!!)
Таким же образом распаковываем params.ovl (переименованный exe - я об этом уже писал во Взлом Advanced Dialer)
На рисунке переход на OEP
Потом выходим из длинного цикла в начале трассировки, как и в предыдущем случае.........
А потом, восстановив импорт, запускаем полностью работоспособный дамп
Ура! Распаковали)
Аспротект вообще не такой уж и простой протектор. Это просто попался не очень сложный вариант. Бывают очень даже неслабые трюки.