Сейчас на форуме: (+5 невидимых) |
eXeL@B —› Протекторы —› Анализ ASProtect |
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 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, который можно скачать по ссылке |
|
Создано: 28 марта 2008 16:00 · Личное сообщение · #2 |
|
Создано: 28 марта 2008 17:31 · Личное сообщение · #3 |
|
Создано: 28 марта 2008 17:51 · Личное сообщение · #4 vnekrilov хотелось бы немного попинать. Так как ты долго разбирал ВМ тебе понятны все твои обозначения, но вот когда читаешь первый раз - вообще ничего не понятно. При этом ты сам описываешь что та или иная переменная означает, не проще ли их обзывать осмысленно? Например: Во-первых, в регистр EDI записывается значение 0C7h, которое мы обозначили буквой ЗЕТА. Это значение указывает на число эмулируемых инструкций в данной таблице ТЭИ. Так не проще обозвать это не ЗЕТА, а CountInstructions (InstCount) ну или сложно с английским то ChisloInstr. Тогда далее всё станет ясно. Ну и еще пару примеров: Во-вторых, в регистр EAX записывается значение 06, которое мы обозначили буквой ЭТА. Это значение является указателем на адрес назначения для инструкции CALL EBP, PointerToCallEbp (UkazFuncEbp) Эта инструкция записывает в регистр ESI указатель на начало блока данных для текущей эмулируемой инструкции, которую сейчас выполняет программа. Этот указатель обозначим буквой ЭПСИЛОН. BlockPointer При этом в файле "Извлеченные данные для инструкций" у тебя нормально всё расписано, парадокс Автор ASProtect, Алексей Солодовников, использует первый опкод Эту ВМ писал не солод, да и вообще он уже года 3-4 ниче не пишет, он был директором компании, а потом ее продал. Ну а в целом - молодец, далеко продвинулся. PS Правда я не понял, разве тебе не встретилась вторая ВМ? Часть кода первой ВМ покрыта второй ВМ и чтобы расковырять полностью первую надо восстановить сначала ее кусок. В защищенной части эмулится всего 1 тип инструкций, но я не нашел упоминания об этом ----- Yann Tiersen best and do not fuck |
|
Создано: 28 марта 2008 18:08 · Личное сообщение · #5 PE_Kill пишет: vnekrilov хотелось бы немного попинать. Спасибо за замечание. Учту. PE_Kill пишет: PS Правда я не понял, разве тебе не встретилась вторая ВМ? Об этом будет чуть далее. Я еще выложил на dump.ru/files/o/o2151005278/ две части туториала, в которых описал прохождение на OEP и восстановление таблицы IAT. Кстати, в этой статье подробно разобрана работа ВМ. Как всегда, буду благодарен за пинки, предложения, пожелания и отзывы |
|
Создано: 28 марта 2008 18:20 · Поправил: [HEX] · Личное сообщение · #6 vnekrilov Еще маленькое пожелание по оформлению тутора: раз уж используешь цветовое выделение на картинках, то былоб не плохо тогда и в самом тексте рядом с названием его привести кусок подобного цвета. Например: Травянистым цветом ( [маленький образец цвета] ) Либо пронумеровать как то блоки (выделения) на картинках. P.S. Я не дальтоник, но жутко не удобно думать какой же он травянистый цвет ----- Computer Security Laboratory |
|
Создано: 28 марта 2008 18:21 · Личное сообщение · #7 |
|
Создано: 28 марта 2008 18:41 · Личное сообщение · #8 |
|
Создано: 28 марта 2008 21:39 · Поправил: PE_Kill · Личное сообщение · #9 По поводу цвета, я тоже подумал зачем выделять текст курсивом, достаточно его раскрасить в тот же цвет и что и указан. Щас подробнее ознакомился с тутором и мне стало грустно. Сейчас расскажу немного теории и станет понятно почему. Та ВМ, что описывал я в своем туторе у разработчика называется QuickVM, а та что исползуется для скрытия кода аспра (именно в EXE!) - DelayVM. В свою очередь небольшая часть кода DelayVM накрыта DelayVM2. Она выполнена несколько проще и работает быстрее, иначе бы DelayVM вообще бы тормозила. Но DelayVM2 используется не только для скрытия кода DelayVM но и для покрытия кода ASProtect.DLL, что тоже понятно. Этот код выполняется при каждой загрузке и не должен тормозить программу. Так вот ты изучал код ASProtect.DLL и соответственно разбирал DelayVM2 поэтому ты и не увидел вторую ВМ т.к. на DelayVM2 ничего не навешано, и именно поэтому у тебя так всё шоколадно получилось (индексы опкодов соответствуют самим опкодам). Посмотри вызовы DelayVM в самом EXE ASProtect вызовы имеют такой же вид, но вот ВМ совсем другая. Да и смысла разбирать ее больше т.к. иногда аспр навешывает ее на пользовательские EXE, а вот DelayVM2 используется только для внутренних целей ----- Yann Tiersen best and do not fuck |
|
Создано: 29 марта 2008 00:04 · Личное сообщение · #10 |
|
Создано: 29 марта 2008 04:40 · Личное сообщение · #11 vnekrilov Малодец!!! Написано что тутор для опытных crackers, мне так не показалось, при большом желании и новичёк справится. Особо радует что всё по русски написано, и программы что русские используешь. Самое главно что нет Сайса, ну если OllyDbg справился, то в пример новичкам используйте иммено этот отладчик, так как уж OllyDbg у всех есть |
|
Создано: 29 марта 2008 05:41 · Личное сообщение · #12 |
|
Создано: 29 марта 2008 08:07 · Поправил: vnekrilov · Личное сообщение · #13 PE_Kill пишет: Та ВМ, что описывал я в своем туторе у разработчика называется QuickVM, а та что исползуется для скрытия кода аспра (именно в EXE!) - DelayVM. Я полностью с тобой согласен. Дело в том, что в ASProtect v2.4 build 12.20 сильно урезана защита. Здесь не эмулирована таблица INIT, нет Stolen Bytes в области OEP, и т.д. Если сравнить защиту самого ASProtect v2.4 build 12.20 с защитой, например, ASProtect v2.3 build 03.19, то в ASProtect v2.3 build 03.19 все это имеется. Я использовал ASProtect v2.4 build 12.20 только для того, чтобы посмотреть работу ключа активации программы. Дело в том, что пошифрованные участки кода в ASProtect v2.4 build 12.20, которые раскриптовываются при наличии валидного регистрационного кода, используют ту же самую таблицу RSA, как и в ASProtect v2.3 build хх.хх. Разработчики программы используют те же самые константы для создания Hex-строки, которая используется для раскриптовки зашифрованного кода. Однако реализация проверки корректности регистрационного кода здесь несколько другая. Вот именно эту проверку я хочу описать на базе ASProtect v2.4 build 12.20. Для полного освещения работы всех защит протектора, я уже практически подготовил туториал на базе ASProtect v2.3 build 03.19, где имеется и закриптованная таблица INIT, и Stolen Bytes, и эмулированная таблица IAT, и VM. После завершения подготовки этого туториала, с учетом всех высказанных замечаний, я выложу его для изучения. И имеется одно пожелание к PE_Kill, не просмотришь ли ты черновики этих статей, с целью их рецензирования и советов по уточнению тех вопросов, которые я, вероятно, не полностью отразил в этих туториалах. Заранее буду очень признателен. |
|
Создано: 29 марта 2008 17:26 · Личное сообщение · #14 |
|
Создано: 30 марта 2008 11:42 · Личное сообщение · #15 |
|
Создано: 30 марта 2008 12:25 · Личное сообщение · #16 Bit-hack пишет: эта вм до vmprota не дотягивает... ждём анализа другой вм Другая VM, к сожалению, не используется в защите AsProtect v2.4 build 12.20. Поэтому я сейчас заканчиваю третью часть статьи по анализу ASProtect v2.3 build 03.19, который включает все элементы защиты. Первые две части я отправил PE_Kill для замечаний. Статью по анализу AsProtect v2.4 build 12.20 я выложил потому, что нигде не встретил материалов, которые бы освещали вопросы эмуляции такого рода инструкций. Поэтому я полагал, что этот материал может оказаться полезных для тех, кто занимается снятием протектора с программ. |
|
Создано: 30 марта 2008 12:54 · Личное сообщение · #17 |
|
Создано: 30 марта 2008 13:15 · Личное сообщение · #18 |
|
Создано: 31 марта 2008 09:58 · Личное сообщение · #19 pavka пишет: Хм интересно к чьему сожалению? К сожалению, для полного анализа. Bronco пишет: //Волк нехило автоматизировал унпак, в привате, мну так понял ВМ разобрали ещё круче. К сожалению, Волк не разобрал процесс восстановления эмулируемых инструкций, что значительно затрудняет анализ программы по восстановлению закриптованных участков кода. |
|
Создано: 31 марта 2008 12:33 · Личное сообщение · #20 |
|
Создано: 31 марта 2008 14:30 · Личное сообщение · #21 |
|
Создано: 31 марта 2008 15:08 · Личное сообщение · #22 |
|
Создано: 31 марта 2008 16:51 · Личное сообщение · #23 dermatolog пишет: Пожалейте StarForce !!! У них и так уже все сломали, осталась последняя надежда - аспр Ну мы же не вандализмом занимаемся... А просто безобидно исследуем защиты vnekrilov Человеческое спасибо! Нужным делом занят - знания до масс доносишь, да ещё и в таком доступном виде! Молодец... Побольше бы таких писателей! ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 31 марта 2008 17:03 · Личное сообщение · #24 |
|
Создано: 31 марта 2008 17:07 · Поправил: GPcH · Личное сообщение · #25 |
|
Создано: 31 марта 2008 20:36 · Поправил: Kiev78 · Личное сообщение · #26 |
|
Создано: 01 апреля 2008 02:53 · Личное сообщение · #27 |
|
Создано: 01 апреля 2008 03:27 · Личное сообщение · #28 |
|
Создано: 01 апреля 2008 05:30 · Личное сообщение · #29 ИМХО Паблик релиза нет только потому, что еще ВМ ку не разобрали. Т.к. чтобы подменить ключи - надо знать алго новой криптопроцедуры, которая декритует константы. Она покрыта ВМ, которую описывает внекрилов. А для анпака аспра надо разобрать DelayVM, которая на порядок круче. Ну а всякие лодыри и инлайны они просто не хотят, делать, хотя и сделать довольно быстро и будет фулл версия. ----- Yann Tiersen best and do not fuck |
|
Создано: 01 апреля 2008 08:03 · Личное сообщение · #30 Bronco пишет: не уверен, что не имея валидной пары, этот задачу можно решить Дело в том, что для раскриптовки закриптованных участков кода используется Hex-цепочка, которая создается из набора числовых констант, которые не меняются от версии к версии протектора. Для получения валидной Hex-цепочки применяется всего лишь один DWORD - D3244A57, который получается из корректного регистрационного кода. Поэтому, зная этот DWORD, можно раскриптовать закриптованные участки кода. |
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >> |
eXeL@B —› Протекторы —› Анализ ASProtect |