Сейчас на форуме: (+5 невидимых) |
eXeL@B —› Протекторы —› Анализ ASProtect |
<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 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, который можно скачать по ссылке |
|
Создано: 07 декабря 2009 13:43 · Личное сообщение · #2 |
|
Создано: 07 декабря 2009 18:09 · Поправил: vnekrilov · Личное сообщение · #3 Подкорректировал скрипт "Восстановление секции импорта (.idata) в распакованных программах.osc" - ввел туда команду refresh. Огромное спасибо за подсказку Nightshade. В аттаче приложен обновленный скрипт. Замените его у себя. BoRoV У себя исправил, спасибо! 9918_07.12.2009_CRACKLAB.rU.tgz - Восстановление секции импорта (.idata) в распакованных программах.osc |
|
Создано: 14 декабря 2009 10:38 · Личное сообщение · #4 Работал все это время над скриптом "Восстановление секции импорта (.idata) в распакованных программах.osc", чтобы он сам определял таблицу импорта. Кроме того, при использовании заказных DLL, которые могут иметь длину более 8 символов, плагин ODbgScript обрезает такое имя до 8 символов (формат DOS), загрузчик импорта не находит такую DLL, и выдает ошибку. Я ввел проверку имени DLL из окна "Модули" отладчика, и возможность ввода полного имени DLL. Как мог, я протестировал этот скрипт на нескольких программах. Вроде бы он работает нормально. Прошу еще потестировать этот скрипт, на выявление возможных ошибок. Кстати, разработчики выложили у себя новую версию аспра - v2.52 SKE build 12.08 ac55_13.12.2009_CRACKLAB.rU.tgz - Восстановление секции импорта (.idata) в распакованных программах.osc |
|
Создано: 14 декабря 2009 19:19 · Поправил: Nightshade · Личное сообщение · #5 Кто-нибудь может проверить код: Code:
В кавычках должен быть бэкслэш, но форум режет этот символ find name_start, "" find name_start, #5C# Так же можно удалять offset |
|
Создано: 15 декабря 2009 20:03 · Личное сообщение · #6 Сегодня я выложил седьмую часть второго выпуска из обещанного цикла статей по распаковке Asprotect, к которому приложены скрипты - "Поиск областей со Stolen Code и восстановление в них эмулированных инструкций.osc", "Перенос Stolen Code в секцию файла ADATA.osc" и "Перенос Stolen Code в секцию файла RSRC.osc". Все скрипты очищены от лишних комментариев. Буду признателен за отзывы, замечания, критику и пожелания. 82b8_15.12.2009_CRACKLAB.rU.tgz - Распаковка Asprotect (часть 7, выпуск 2).rar |
|
Создано: 16 декабря 2009 15:27 · Личное сообщение · #7 Сегодня я выложил восьмую часть второго выпуска из обещанного цикла статей по распаковке Asprotect, к которому приложен скрипт - "Перенаправление прыжков из кода программы в новую секцию файла.osc". Этот скрипт очищен от лишних комментариев. В этой части я немного осветил второй тип проверки целостности кода, на базе восстановленных подпрограмм с эмулированными инструкциями. К моему большому сожалению, я пока не нашел методику поиска таких проверок, кроме методы "тыка". Возможно, что кто-то из читателей этого топика предложит такой метод. Далее будет 9-я, относительно короткая часть, в которой я немного расскажу об очистке мусорного кода с помощью скрипта, предложенного bronco. И, затем, я хотел бы привести несколько свежих примеров по распаковке программ, упакованных этим пакером. Мне бы хотелось, чтобы Вы сами предложили несколько программ для распаковки, и, желательно, небольшого размера. А затем, я весь выложенный здесь материал сделаю в виде одного флакона, со всеми скриптами, и выложу его на какой-либо обменник. Буду признателен за отзывы, замечания, критику и пожелания. 74e4_16.12.2009_CRACKLAB.rU.tgz - Распаковка Asprotect (часть 8, выпуск 2).rar |
|
Создано: 17 декабря 2009 13:15 · Личное сообщение · #8 Сегодня я выложил девятую часть второго выпуска из обещанного цикла статей по распаковке Asprotect, к которому приложен скрипт - "Очистка мусорного кода в областях со Stolen Code.osc". Этот скрипт очищен от лишних комментариев. Поскольку не поступило никаких предложений по свежим примерам по распаковке программ, упакованных этим пакером, то я приступаю к созданию обобщенного материала в виде одного флакона, со всеми скриптами, и выложу его на какой-либо обменник. Буду признателен за отзывы, замечания, критику и пожелания. b2e1_17.12.2009_CRACKLAB.rU.tgz - Распаковка Asprotect (часть 9, выпуск 2).rar |
|
Создано: 17 декабря 2009 14:06 · Личное сообщение · #9 |
|
Создано: 17 декабря 2009 15:14 · Поправил: SVLab · Личное сообщение · #10 vnekrilov Возник такой вопрос. Часть 5, раздел 8. Устранение проверок целостности кода (CRC) в распакованной программе. Можно ли назвать проверку, которая здесь описана, проверкой CRC? Там ведь проверяются только отдельные байты. И еще вопрос, возможно, не имеющий отношения к распаковке . Не сталкивался ли ты с проверкой такого типа Code:
В результате такой проверки, если вычисленная CRC не соответствует находящейся в первом PUSH, RET может отправить нас куда угодно, и обычно прямиком к нагу исключения. В распакованной программе такие проверки, по-видимому, не выполняются, но, если сталкивался, просвети, пожалуйста, этот вопрос. |
|
Создано: 17 декабря 2009 16:04 · Личное сообщение · #11 SVLab пишет: Можно ли назвать проверку, которая здесь описана, проверкой CRC? Да, такая проверка и называется проверкой целостности кода. В этой проверке проверяется байт опкода E8 инструкции, которая вызывает эмулированную API. Когда мы восстанавливаем вызовы эмулированных APIs, то мы меняем байт опкода E8 на байт опкода FF (FF15 или FF25). В результате чего программа падает. SVLab пишет: В распакованной программе такие проверки, по-видимому, не выполняются, В распакованных программах я таких проверок не встречал, а вот в Asprotect.dll такие проверки есть, и я применяю принудительный прыжок на нужную инструкцию практически во всех скриптах, где происходит поиск OEP (SBOEP). tihiy_grom пишет: лучше сам выбери какую-нибудь программу, которая на твой взгляд наиболее полно защищена. Хорошо, выберу. Но я думал о том, что кто-то столкнулся со сложной запакованной программой, и хотелось не только помочь человеку, но и использовать эту программу в качестве учебного пособия. |
|
Создано: 18 декабря 2009 14:36 · Личное сообщение · #12 Сегодня я выложил десятую часть второго выпуска из обещанного цикла статей по распаковке Asprotect, к которому приложен откорректированный скрипт - "Восстановление таблицы IAT и вызовов APIs.osc". В этом скрипте добавлена корректировка значения Entry Point в PE-заголовке файла, когда в программе нет SBOEP. В этой части рассмотрен процесс распаковки программы "Sticky Password", и дана ссылка на скачивание этой программы. Буду признателен за отзывы, замечания, критику и пожелания. 532c_18.12.2009_CRACKLAB.rU.tgz - Распаковка Asprotect (часть 10, выпуск 2).rar |
|
Создано: 18 декабря 2009 15:55 · Поправил: mak · Личное сообщение · #13 vnekrilov спроси у Бронко , он посоветует нужное и с полным набором. Сколько всего частей ожидается? может есть изменения ? P.S. Кто нибудь будет оформлять в общий схм со всем содержимым внутри?! правка - вот о чем tihiy_grom пишет: лучше сам выбери какую-нибудь программу, которая на твой взгляд наиболее полно защищена. Хорошо, выберу. Но я думал о том, что кто-то столкнулся со сложной запакованной программой, и хотелось не только помочь человеку, но и использовать эту программу в качестве учебного пособия. ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 18 декабря 2009 18:04 · Личное сообщение · #14 mak пишет: спроси у Бронко , он посоветует нужное и с полным набором. Я что-то не понял, о чем спросить у bronco? mak пишет: Сколько всего частей ожидается? Планирую еще две части с распаковкой конкретных программ. mak пишет: Кто нибудь будет оформлять в общий схм со всем содержимым внутри? Затем будет один флакон. |
|
Создано: 18 декабря 2009 18:28 · Поправил: ARCHANGEL · Личное сообщение · #15 Пробовал распаковать программу по примеру с 10-ой части, используя скрипты в шапке и исправленный по правке IAT, но в результате получилось всё не так, как в примере. Скрипт для восстановления секции .idata требует указать расположение IAT, я посмотрел в отладчике адрес начала таблицы, и указал его, далее скрипт заработал и в ходе своей работы попросил ввести вручную имя одной API, в это время в стэке был оффсет на строку lstrlenA, я, недолго думая, ввёл это имя. Далее скрипт написал, что получен полностью распакованный дамп. Я его запустил, а он упал. Начал смотреть, в чём дело - оказалось, что таблица импорта не заполнена значениями. Как так? ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 18 декабря 2009 18:46 · Личное сообщение · #16 ARCHANGEL пишет: Пробовал распаковать программу по примеру с 10-ой части, используя скрипты в шапке и исправленный по правке IAT, Ко всем частям я прикладываю доработанные скрипты. Последний скрипт для восстановления секции .idata от 14 декабря 2009 года сам определяет адрес таблицы импорта, и ничего вводить не надо. При своей работе скрипт просит ввести только одно имя API из библиотеки ntdll.dll - TryEnterCriticalSection. В 10-й части я подробно, пошагово описал процесс распаковки программы. Просто внимательно читайте статьи, и используйте те скрипты, которые приложены к разным частям. |
|
Создано: 18 декабря 2009 18:57 · Личное сообщение · #17 vnekrilov Я всё равно распаковал программу без этого скрипта, используя импрек и вручную фикся вызовы эмулируемых API, а в этих частях довольно сложно разобраться - я уже один раз скачал их все, но там не было исправленных версий скриптов, а я не знал, что они есть. Теперь буду юзать исправленные, спасибо. ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 18 декабря 2009 19:25 · Личное сообщение · #18 |
|
Создано: 18 декабря 2009 21:24 · Личное сообщение · #19 |
|
Создано: 19 декабря 2009 01:25 · Поправил: SER[G]ANT · Личное сообщение · #20 на правах оффтопа mak пишет: P.S. Кто нибудь будет оформлять в общий схм со всем содержимым внутри?! vnekrilov пишет: Затем будет один флакон. Только, по возможности, перепеши статьи в другом редакторе, у тебя сами htm страницы весят раз в 100 больше, чем могли бы. (Легко понят почему, отрыв исходный код) |
|
Создано: 19 декабря 2009 21:01 · Личное сообщение · #21 Товарищи, сейчас распаковываю программу, защищённую версией Аспра 1.4 build 11.20 Release. Скрипт для прохождения на ОЕР от vnekrilov в логе среди опций защиты показывает такую: + вызовы APIs ASPRotect 1.xx. Скажите, что это значит? Может, я статьи невнимательно курил, будьте любезны, укажите на оплошность. ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 19 декабря 2009 23:46 · Личное сообщение · #22 |
|
Создано: 20 декабря 2009 00:27 · Личное сообщение · #23 |
|
Создано: 20 декабря 2009 02:47 · Поправил: ARCHANGEL · Личное сообщение · #24 Сейчас запустил скрипт на вышеупомянутой программе. Скрипт называется Восстановление таблицы IAT и вызовов APIs Он пишет, что это - новая версия Аспра, и просит указать путьфайла recovery_emulate_inst_Asprotect_dll.bin. Из-за чего это происходит, и что нужно указать? Читал четвёртую часть, но там больше описывается, как эмулировать сам код аспровских функций, а не как их найти для версии 1.ххх. Ага, всё, я разобрался, но этот исправленный скрипт по восстановлению секции импорта всё равно глючит - опять запросил адрес таблицы импорта, но перед этим выпытал, что программа написана на С++, а потом убил её напроч, забив нулями и сказал, типа, таблица восстановлена. Да где ж она восстановлена? ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 20 декабря 2009 04:54 · Личное сообщение · #25 ARCHANGELМожет вам к херургу обратится скрипт с этого поста скачай --> #18 <-- в шапке старый. vnekrilov Счас попробовал прогу всё прошло как по маслу ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. |
|
Создано: 20 декабря 2009 07:36 · Личное сообщение · #26 |
|
Создано: 20 декабря 2009 09:04 · Личное сообщение · #27 |
|
Создано: 20 декабря 2009 09:19 · Личное сообщение · #28 ARCHANGEL пишет: + вызовы APIs ASPRotect 1.xx. Скажите, что это значит? Может, я статьи невнимательно курил, будьте любезны, укажите на оплошность. Возможно, я что-то не очень понятно написал. Разработчики разрабатывают две версии протектора: - с длинным ключом, и эти версии имеют номер 1.хх build xx.xx - с коротким ключом, и эти версии имеют номер 2.xx SKE build xx.xx В версиях протектора с длинным ключом (1.хх) имеются свои APIs Asprotect, которые вызываются из Asprotect.dll, и выполняются до прохождения на OEP (SBOEP) программы. В версиях протектора с коротким ключом (2.xx SKE) имеются свои APIs Asprotect, они вызываются из секции импорта программы, и выполняются после прохождения на OEP (SBOEP) программы. Поэтому, при распаковке программ, защищенных версией аспра с длинным ключом, и имеется эта фраза, которая означает, что Вам не нужно запускать скрипт "Эмуляция APIs Asprotect, вызываемых из кода программы.osc", поскольку эмуляция APIs Asprotect будет выполнена при запуске скрипта "Восстановление таблицы IAT и вызовов APIs.osc". И, наоборот, если программа защищена аспром с коротким ключом, то нужно, после запуска скрипта "Восстановление таблицы IAT и вызовов APIs.osc", обязательно запустить скрипт "Эмуляция APIs Asprotect, вызываемых из кода программы.osc". Я очень благодарен за появление разных вопросов, поскольку они означают, что я что-то не очень доходчиво описал, и описанное нуждается в дополнении. |
|
Создано: 20 декабря 2009 09:39 · Личное сообщение · #29 gegter пишет: имхо замечание не к месту, лучше сказать спасибо за труды. Это было всего лишь пожеланием, которое, да, никак не относится к содержанию статей, но написал т.к. появилось сообщение о архиве все в одном, который, в итоге, весил бы намного меньше, чем ценность статей, но намного больше, чем мог бы. Понимаю, что на дворе почти 2010 год и о перевесе в пару мегабайт говорить глупо и все же.. оптимизация лучший друг человека А автору я благодарен, как и все, кто хоть раз зашел в данную тему. vnekrilov пишет: подскажи, какой можно использовать редактор. Лично я использую Macromedia Dreamweaver 8. |
|
Создано: 20 декабря 2009 09:58 · Личное сообщение · #30 |
|
Создано: 20 декабря 2009 11:45 · Личное сообщение · #31 По поводу скрипта Восстановление секции импорта (.idata) нашёл в нём небприятный баг если таблица импорта функций начинается с такой последовательности 00FB1344 00000000 00FB1348 7C91135A ntdll.RtlDeleteCriticalSection 00FB134C 7C9010E0 ntdll.RtlLeaveCriticalSection 00FB1350 7C901000 ntdll.RtlEnterCriticalSection 00FB1354 7C809F81 kernel32.InitializeCriticalSection 00FB1358 7C809B74 kernel32.VirtualFree то скрипт пишет что это вызова с ntdll хотя это секция принадлежит полностью kernel32 ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. |
<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 38 . 39 . >> |
eXeL@B —› Протекторы —› Анализ ASProtect |