Сейчас на форуме: (+5 невидимых) |
eXeL@B —› Протекторы —› Анализ ASProtect |
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 38 . 39 . >> |
Посл.ответ | Сообщение |
|
Создано: 28 марта 2008 15:30 · Поправил: vnekrilov · Личное сообщение · #1 Я выложил свой первый туториал по анализу ASProtect v2.4 build 12.20 (Анализ подпрограммы эмуляции инструкций.rar http://dump.ru/files/o/o489862518/ ). В этом туториале я подробно описал процесс восстановления эмулированных инструкций типа: Code:
Полный цикл статей по распаковке ASProtect (Актуальная версия 25 декабря 2009): ASProtect_Unpacking_Tutorial_2009-12-25.rar http://rapidshare.com/files/325720799/ASProtect_Unpacking_Tutorial_2009-12-25.rar 7,9 МБ Программы, рассматриваемые в статьях: ASProtect_Unpacking_Apps_2009-12-25.rar http://rapidshare.com/files/325718084/ASProtect_Unpacking_Apps_2009-12-25.rar 22,2 МБ Буду благодарен за критику, замечания, пожелания и отзывы. Скрипты: Текущая рекомендуемая версия ODBGScript [1.78.3]: ecf1_03.06.2010_CRACKLAB.rU.tgz - ODbgScript.dll Последний текущий комплект скриптов [от 19 февраля 2011]: 69ca_18.02.2011_CRACKLAB.rU.tgz - Скрипты для распаковки Asprotect от 19 февраля 2011.rar Статьи по частям: Актуальная версия статей [Последняя - 25.11.2010]: Выпуск 2 0754_29.11.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 1 2844_29.11.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 2 8e06_30.11.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 3 50a0_03.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 4 1b51_05.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 5 0ff8_05.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 5 (продолжение) a182_06.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 6 82b8_15.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 7 74e4_16.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 8 b2e1_17.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 9 532c_18.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 10 76af_20.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 11 fe67_22.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 12 079c_20.01.2010_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 13 8415_03.06.2010_CRACKLAB.rU.tgz - Распаковка Asprotect - Часть 14 0a66_18.02.2011_CRACKLAB.rU.tgz - Распаковка Asprotect - Части 15 и 16 DriEm конвертировал мой цикл статей в формате PDF, который можно скачать по ссылке |
|
Создано: 24 сентября 2010 17:50 · Личное сообщение · #2 |
|
Создано: 25 сентября 2010 08:41 · Личное сообщение · #3 sfd43 пишет: Как открыть журнал регистрации чтобы увидеть результат работы скрипта? В отладчике выполни команду Plugins -> OdbgScript -> Script Window, через это окно загрузи нужный скрипт, и выполни трассирование скрипта с помощью клавиши "S", которая выполняет пошаговое трассирование скрипта. Кроме того, скрипты имеют большое число основных диагностических сообщений, которые помогают найти встреченные ошибки. А результат работы скриптов виден в виде файлов dumped.exe, и целого ряда других файлов (дамп таблицы INIT, дампы таблиц прыжков в области со Stolen Code, и т.д.). |
|
Создано: 25 сентября 2010 09:07 · Личное сообщение · #4 vnekrilov подскажи плиз, запускаю твой скрипт "Восстановление таблицы IAT и вызовов APIs.osc" и получаю: --------------------------- OllyScript error! --------------------------- Error on line 1102 Text: asm temp_1,$RESULT Label expected --------------------------- ОК --------------------------- как побороть? |
|
Создано: 25 сентября 2010 11:26 · Личное сообщение · #5 aleopold пишет: Text: asm temp_1,$RESULT Причина появления этой ошибки - проста; в настройках отладчика, на вкладке Addresses (Адреса) надо убрать флажок с чекбокса "Show name of local module" (Показать имя локального модуля). Когда отладчик показывает имя модуля (например, CALL Robo.444444), то при оценке этого выражения с помощью команды eval, в переменную $RESULT записывается также имя модуля Robo, которое не может быть ассемблировано с помощью команды asm temp_1,$RESULT. И появляется это сообщение. Нужно просто убрать флажок с этого чекбокса. У Вас в отладчике должны отображаться просто дизассемблированные команды - типа CALL 444444, JMP 123456, и т.д. |
|
Создано: 25 сентября 2010 14:41 · Личное сообщение · #6 vnekrilov посмотрел свои настройки и у меня там этот чекбокс и небыл выставлен, что еще посмотреть. Вот пример того, что у меня видно в отладчике: 00682CD1 E8 BAE6FFFF CALL AtomicVB.00681390 00682CD6 FF0C24 DEC DWORD PTR SS:[ESP] 00682CD9 03B3 E4000000 ADD ESI,DWORD PTR DS:[EBX+E4] 00682CDF 833C24 00 CMP DWORD PTR SS:[ESP],0 00682CE3 ^0F87 55FEFFFF JA AtomicVB.00682B3E 00682CE9 53 PUSH EBX 00682CEA E8 5D000000 CALL AtomicVB.00682D4C 00682CEF 0183 EC000000 ADD DWORD PTR DS:[EBX+EC],EAX |
|
Создано: 25 сентября 2010 15:04 · Личное сообщение · #7 |
|
Создано: 25 сентября 2010 19:46 · Личное сообщение · #8 aleopold пишет: что-то я не вижу этого файла, и в каком месте скрипта править нужно? Файл 'recovery_emulate_inst_Asprotect_dll.bin' имеется в комплекте скриптов от 3.06.2010 г. Его можно поместить в любую папку (желательно в ту, в которую распакованы скрипты из архива "4024_03.06.2010_CRACKLAB.rU.tgz"). Далее, в скрипте "Восстановление таблицы IAT и вызовов APIs.osc" имеются следующие команды: Code:
У меня записан путь к файлу "recovery_emulate_inst_Asprotect_dll.bin" такой: "C:\Закачки с Интернета\ASProtect - Распаковка по vnekrilov\recovery_emulate_inst_Asprotect_dll.bin". А Вы укажите свой путь к этому файлу. Скрипт легко можно откорректировать в любом текстовом редакторе, например, в блокноте. |
|
Создано: 26 сентября 2010 05:41 · Личное сообщение · #9 |
|
Создано: 26 сентября 2010 06:15 · Личное сообщение · #10 |
|
Создано: 26 сентября 2010 07:29 · Личное сообщение · #11 |
|
Создано: 26 сентября 2010 07:53 · Личное сообщение · #12 |
|
Создано: 26 сентября 2010 08:29 · Личное сообщение · #13 |
|
Создано: 26 сентября 2010 10:01 · Личное сообщение · #14 |
|
Создано: 26 сентября 2010 11:10 · Поправил: gena-m · Личное сообщение · #15 ну непонятно где брать OEP Скрипт случаем не называется Поиск OEP (SBOEP).osc? А вообще похоже рано еще браться за аспр, потренируйся распаковке на упыхах. ЦИТАТА ИЗ СТАТЬИ ПО РАСПАКОВКЕ: - протектор может защищать Оригинальную точку входа программы (OEP) путем выполнения части кода в специальной области памяти (Stolen Bytes OEP, или SBOEP); Иногда смотри в окно лога Ольги (после отработки скрипта), там скрипы указывают OEP, или SBOEP и ее адрес и много другой полезной информации. А при запуске скрипта "Поиск OEP (SBOEP).osc", после его выполнения отладчик будет стоять на OEP, или SBOEP. ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше |
|
Создано: 26 сентября 2010 11:44 · Личное сообщение · #16 aleopold пишет: в том то и дело читаю, ну непонятно из этих статей где брать OEP Старайся читать вдумчиво, чтобы понимать суть, а не порядок действий. Материала предостаточно - читай и изучай, тогда не будешь валиться на первой же проблеме. Ты должен научиться познавать, а не только повторять за кем-то. ----- EnJoy! |
|
Создано: 26 сентября 2010 13:53 · Поправил: aleopold · Личное сообщение · #17 gena-m ________________________________________________ ЦИТАТА ИЗ СТАТЬИ ПО РАСПАКОВКЕ: - протектор может защищать Оригинальную точку входа программы (OEP) путем выполнения части кода в специальной области памяти (Stolen Bytes OEP, или SBOEP); Иногда смотри в окно лога Ольги (после отработки скрипта), там скрипы указывают OEP, или SBOEP и ее адрес и много другой полезной информации. А при запуске скрипта "Поиск OEP (SBOEP).osc", после его выполнения отладчик будет стоять на OEP, или SBOEP. _______________________________________________ запускал я этот скрипт, там SBOEP: 1. Поиск OEP (SBOEP).osc * SBOEP: 00DC02E5 ======================================= Программа имеет следующие опции защиты: + эмулированные APIs! + SBOEP! + вызовы APIs Asprotect 1.xx! как получить OEP? |
|
Создано: 26 сентября 2010 14:06 · Личное сообщение · #18 aleopold пишет: - протектор может защищать Оригинальную точку входа программы (OEP) путем выполнения части кода в специальной области памяти (Stolen Bytes OEP, или SBOEP); aleopold пишет: Программа имеет следующие опции защиты: + эмулированные APIs! + SBOEP! Прикалываешся чтоли... ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. |
|
Создано: 26 сентября 2010 14:18 · Личное сообщение · #19 как получить OEP? есть два варианта (я не помню скрипты восстанавливают или нет) для воссановления спертой ОЕП(SBOEP): первый - скопипастить на родное место; второй - прилепить в виде отдельной секции, если по каким либо причинам невозможно вставить на родное место. Так что тренируйся, удачи...., но похоже вопросов станет еще больше. ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше |
|
Создано: 28 сентября 2010 15:44 · Личное сообщение · #20 На родное место, насколько я знаю никто (из автоматизаторов) не ставит, ибо нужен полный дизасм кода/чистка морфа и эмуляции mov reg32, const/ассемблирование кода в несколько прогонов для оптимизации. И то фиг угадаешь с какой оптимизацией был скомпилен оригинал, кода может получиться и больше и меньше. А еще в Delphi есть finally конструкции, которые аспр не трогает, и их можно легко случайно убить при восстановлении. ----- Yann Tiersen best and do not fuck |
|
Создано: 30 сентября 2010 23:42 · Личное сообщение · #21 Помогите советом, пытаюсь распаковать программу, но спотыкаюсь на самом конечном шаге. Вот сама прога - narod.ru/disk/25520026000/tw.7z.html Что я делаю: 1. В отладчике запускаю ехе и скрипт - Поиск OEP (SBOEP).osc Получаю: * SBOEP: 021B02ED ======================================= Программа имеет следующие опции защиты: + эмулированные APIs! + поврежденную таблицу INIT! + области памяти со Stolen Code! + SBOEP! + вызовы APIs Asprotect 2.xx SKE! 2. Перезапускаю ехе и запускаю скрипт - Восстановление таблицы INIT.osc 3. Еще раз перезапускаю ехе и запускаю - Восстановление таблицы IAT и вызовов APIs.osc 4. Запускаю - Эмуляция APIs Asprotect, вызываемых из кода программы.osc 5. Потом - Устранение проверки целостности кода (CRC) программы.osc 6. Следующий скрипт - Восстановление секции импорта (.idata) в распакованных программах.osc 7. Поиск областей со Stolen Code и восстановление в них эмулированных инструкций.osc 8. И заканчиваю - Перенос Stolen Code в секцию файла RSRC.osc В итоге получаю набор нужных файлов. Затем, в PETools открываю dumped.exe и удаляю 4 последние секции. После на вкладке Optional Header нажимаю "?" напротив 3-х нужных пунктов, на вкладке Directory Editor - Base Relocation Table везде ставлю 00000000 (т.к нужный фрагмент кода не ищется в Memory Map), а для TLS Directory - 001A5000. После этого - добавляю новую секцию из файла section_ASPR_RSRC.bin и называю ее .aspr, плюсую нужные значения для получения ресурсов и делаю дамп из Resource Binder с RVA 0x001C7FA0. И прикручиваю этот дамп. В Directory Editor прописываю новые значения для Resource Directory 001C7FA0 и 0012F000. Затем делаю дамп секции JCLDEBUG из dumped_control.exe и вставляю ее в dumped.exe Казалось на этом сборка должна получиться и файл dumped.exe должен открываться в отладчике, чтобы продолжить распаковку со скриптом - Перенаправление прыжков из кода программы в новую секцию файла.osc, но у меня он не открывается Что я сделал не правильно и что вообще не сделал, прошу совета. |
|
Создано: 01 октября 2010 05:40 · Личное сообщение · #22 |
|
Создано: 01 октября 2010 07:18 · Поправил: vnekrilov · Личное сообщение · #23 Airenikus пишет: но у меня он не открывается В Вашем описании процесса распаковки программы я не вижу корректировки адреса расположения TLS Dyrectory, который в этой программе находится по адресу 001A5000. Аспр переносит значения TLS в свою секцию .data. И когда Вы отрезали эту секцию, но не изменили адрес TLS, то этот файл не откроется в отладчике. Запишите в PE Tools адрес TLS 001A5000, обнулите значения в Base Relocation Table, и у Вас все нормально откроется в отладчике. Кстати, в этой программе Вы можете не дампировать и прикручивать секцию JCLDEBUG. Программа прекрасно запускается без этой секции. |
|
Создано: 01 октября 2010 10:04 · Поправил: Airenikus · Личное сообщение · #24 |
|
Создано: 01 октября 2010 12:48 · Поправил: Konstantin · Личное сообщение · #25 Airenikus делаю дамп из Resource Binder с RVA 0x001C7FA0 Странные у вас циферки для RVA которые вы указываете в биндере. В нем нужно прописывать virtual offset, он должен быть кратен 1000 т.е. адрес должен указывать на начало секции. В Directory Editor прописываю новые значения для Resource Directory 001C7FA0 и 0012F000 Распишите подробнее какая цифра относится к offset, а какая к size? |
|
Создано: 01 октября 2010 14:12 · Поправил: vnekrilov · Личное сообщение · #26 |
|
Создано: 01 октября 2010 14:28 · Поправил: Airenikus · Личное сообщение · #27 |
|
Создано: 01 октября 2010 14:58 · Поправил: Konstantin · Личное сообщение · #28 Airenikus В этом дампе не видится иконка файла при его просмотре в командире. С ресурсами, что то не так. Они у вас располагаются в секции с RVA=1с8000, а вы какое значение забивали в биндер при восстановлении? Удалите секцию с ресурсами в вашем дампе, заново сделаейте дамп секции ресурсов в биндаре на указанный мной адрес и прикрипите эту секцию к дампу. Поправил ресурсы вашего дампа, так как описал выше - dump.ru/file/4817571 P.S. В дампе вы еще не перенаправили прыжки из кода программы в новую секцию файла .aspr, воспользуйтесь соответствующим скриптом. |
|
Создано: 01 октября 2010 15:00 · Личное сообщение · #29 |
|
Создано: 01 октября 2010 15:41 · Поправил: vnekrilov · Личное сообщение · #30 Airenikus пишет: вот мой дамп с правленными секциями Посмотрел твой дамп в PE Tools, и сразу же обратил внимание на то, что в дампе нет иконки программы, что указывает на повреждение секции ресурсов. Попытался сдампить твою секцию ресурсов в PE Tools, но он ругнулся на то, что может ее сохранить. Тогда я вырезал твою секцию ресурсов, и прикрутил свою (которую я получил с помощью Resource Binder). Сразу же после этого у файла появился значок, и он нормально загрузился в отладчик. По ссылке При сравнении двух файлов в Hex Workshop, четко видны различия в секции ресурсов. Сорри! Не обратил внимания на посты выше. Вопрос, видимо, закрыт. |
|
Создано: 01 октября 2010 15:46 · Личное сообщение · #31 |
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 38 . 39 . >> |
eXeL@B —› Протекторы —› Анализ ASProtect |