Восстановление таблицы импортов после AsProtect 1.2 Автор......: Kop Редакция...: NightCat.T-53 Инструменты: Revirgin 1.2 by +Tsehp Будем считать что у вас уже есть дамп программы с исправленной точкой входа, пусть его имя будет dump.exe. 1. Запускаем запакованную прогу. 2. Запускаем Revirgin 3. Выбираем в списке процессов Revirgin нашу прогу и жмем Fetch IAT - Revirgin найдет адрес начала IAT и ее размер. 4. Жмем IAT Resolver, после того как Revirgin найдет функции он покажет окошко для выбора дампа - выбирете Ваш дамп (dump.exe). 5. После нажимаем Resolve again и Revirgin находит большенство функций IAT 6. Выбираем в списке Show ALL или Show Unresolved - второе и Revirgin покажет не восстановленные автоматически функции IAT. 7. Выбираем первую не восстановленную функцию, жмем на ней правой кнопкой мыши и выбираем Api Emulation, если все нормально то Revirgin изменит поле Name на emulated. Если этого не случилось, тогда выбираем Enable Trace и поле Name меняется на to_resolve, после этого выбираем Trace и поле Name меняется на traced. 8. После этого жмем Resolve again и вместо на найденной функции появляется ее Имя, модуль, ординал и адрес. 9. Последние два пункта повторяем для каждой не найденной функции. 10. Жмем IAT Generator и получаем восстановленный dump.exe уже с полной таблицей импортов. 11. Жмем Save resolved и сохраняем текст IAT. 12. В идеале с помощью пунктов 7, 8 можно восстановить все не найденные функции, но у меня было так, что некоторых функций я не находил и при помощи Api Emulation с Trace. Тогда поступаем так: 12.1. смотрим поле IATRva не найденной функции прибавляем к нему Image Base и ищем в дампе вызов этой функции (Для HIEW 6.7x поступаем так: F4->F7->F7-> Вводим ?? (где IATRva + ImageBase - адрес не найденной функции)-> Enter и ищем до тех пор пока не увидим нечто такое jmp d,[IATRva+ImageBase], запоминаем адрес этой инструкции. 12.2. Потом запускаем оригинальный exe и ставим такой бряк: bpm <адрес инструкции> x и ждем выполнения. 12.3. После этого входим в эту инструкцию и смотрим функцию, которая выполняется. (Возможно эта функция не выполнится никогда и тогда просто проигнорируйте сообщение о не полном восстановлении IAT). 12.4. В Revirgin правим все ее параметры с помощью пункта Edit в меню правой кнопки и после этого выполняем пункты 10 и 11. В пункте 12 есть маленькая заморочка с исправлением параметров функции (Revirgin иногда не принимает ихи восстанавливает ее как не распознаную функцию). С этим вопросом Вам предстоит разобраться уже самим. Hint: Решение надо искать не в самом Revirgin, а в одном из выходных файлов, а в каком подумайте сами. Вот и все! :) ========================================================================= TEAM-53 TUTORiALs \ \ www.BSUiR.com \ \ #team-53 , IRC.By, IRC.BYNETS.ORG =========================================================================