Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Протекторы —› Анализ ASProtect
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >>
Посл.ответ Сообщение

Ранг: 329.6 (мудрец)
Статус: Участник

Создано: 28 марта 2008 15:30 · Поправил: vnekrilov New!
Цитата · Личное сообщение · #1

Я выложил свой первый туториал по анализу ASProtect v2.4 build 12.20 (Анализ подпрограммы эмуляции инструкций.rar http://dump.ru/files/o/o489862518/ ). В этом туториале я подробно описал процесс восстановления эмулированных инструкций типа:
Code:
  1. PUSH 0
  2. PUSH 0CC5850
  3. PUSH 0DB180C
  4. CALL 00CEB814


Полный цикл статей по распаковке 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]:
{ Атач доступен только для участников форума } - ODbgScript.dll

Последний текущий комплект скриптов [от 19 февраля 2011]:
{ Атач доступен только для участников форума } - Скрипты для распаковки Asprotect от 19 февраля 2011.rar

Статьи по частям:
Актуальная версия статей [Последняя - 25.11.2010]:
Выпуск 2
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 1
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 2
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 3
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 4
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 5
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 5 (продолжение)
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 6
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 7
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 8
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 9
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 10
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 11
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 12
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 13
{ Атач доступен только для участников форума } - Распаковка Asprotect - Часть 14
{ Атач доступен только для участников форума } - Распаковка Asprotect - Части 15 и 16

DriEm конвертировал мой цикл статей в формате PDF, который можно скачать по ссылке --> Link <--


Ранг: 88.4 (постоянный)
Статус: Участник

Создано: 28 марта 2008 16:00 New!
Цитата · Личное сообщение · #2

vnekrilov
Как всегда на высоком уровне. Респект. Вообще таких актуальных статей по разбору ВМ протеторов, не много, можно сказать единицы, где расматривается полное восстановление эмулируемых команд, тем более на русском языке и с отличным оформлением.


Ранг: 199.4 (ветеран)
Статус: Участник

Создано: 28 марта 2008 17:31 New!
Цитата · Личное сообщение · #3

VaZeR пишет:
Вообще таких актуальных статей по разбору ВМ протеторов, не много, можно сказать единицы

Именно этой VM - вообще похоже первая.
Спасибо.


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 28 марта 2008 17:51 New!
Цитата · Личное сообщение · #4

vnekrilov хотелось бы немного попинать. Так как ты долго разбирал ВМ тебе понятны все твои обозначения, но вот когда читаешь первый раз - вообще ничего не понятно. При этом ты сам описываешь что та или иная переменная означает, не проще ли их обзывать осмысленно? Например:

Во-первых, в регистр EDI записывается значение 0C7h, которое мы обозначили буквой ЗЕТА. Это значение указывает на число эмулируемых инструкций в данной таблице ТЭИ.

Так не проще обозвать это не ЗЕТА, а CountInstructions (InstCount) ну или сложно с английским то ChisloInstr. Тогда далее всё станет ясно. Ну и еще пару примеров:

Во-вторых, в регистр EAX записывается значение 06, которое мы обозначили буквой ЭТА. Это значение является указателем на адрес назначения для инструкции CALL EBP,

PointerToCallEbp (UkazFuncEbp)

Эта инструкция записывает в регистр ESI указатель на начало блока данных для текущей эмулируемой инструкции, которую сейчас выполняет программа. Этот указатель обозначим буквой ЭПСИЛОН.

BlockPointer

При этом в файле "Извлеченные данные для инструкций" у тебя нормально всё расписано, парадокс


Автор ASProtect, Алексей Солодовников, использует первый опкод

Эту ВМ писал не солод, да и вообще он уже года 3-4 ниче не пишет, он был директором компании, а потом ее продал.

Ну а в целом - молодец, далеко продвинулся.

PS Правда я не понял, разве тебе не встретилась вторая ВМ? Часть кода первой ВМ покрыта второй ВМ и чтобы расковырять полностью первую надо восстановить сначала ее кусок. В защищенной части эмулится всего 1 тип инструкций, но я не нашел упоминания об этом

Ранг: 329.6 (мудрец)
Статус: Участник

Создано: 28 марта 2008 18:08 New!
Цитата · Личное сообщение · #5

PE_Kill пишет:
vnekrilov хотелось бы немного попинать.


Спасибо за замечание. Учту.

PE_Kill пишет:
PS Правда я не понял, разве тебе не встретилась вторая ВМ?


Об этом будет чуть далее.

Я еще выложил на dump.ru/files/o/o2151005278/ две части туториала, в которых описал прохождение на OEP и восстановление таблицы IAT. Кстати, в этой статье подробно разобрана работа ВМ.
Как всегда, буду благодарен за пинки, предложения, пожелания и отзывы


Ранг: 467.7 (мудрец)
Статус: Участник
Иной :)

Создано: 28 марта 2008 18:20 · Поправил: [HEX] New!
Цитата · Личное сообщение · #6

vnekrilov
Еще маленькое пожелание по оформлению тутора:
раз уж используешь цветовое выделение на картинках, то былоб не плохо тогда и в самом тексте рядом с названием его привести кусок подобного цвета.

Например:
Травянистым цветом ( [маленький образец цвета] )

Либо пронумеровать как то блоки (выделения) на картинках.

P.S. Я не дальтоник, но жутко не удобно думать какой же он травянистый цвет


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 28 марта 2008 18:21 New!
Цитата · Личное сообщение · #7

Ну тогда еще один пинок. Перестань называть архивы по русски. Попробуй слей свои файлы и сам всё поймешь.

Ранг: 329.6 (мудрец)
Статус: Участник

Создано: 28 марта 2008 18:41 New!
Цитата · Личное сообщение · #8

[HEX] пишет:
Либо пронумеровать как то блоки (выделения) на картинках.


Учту в будущем.

PE_Kill пишет:
Перестань называть архивы по русски.


Понял, в дальнейшем учту.


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 28 марта 2008 21:39 · Поправил: PE_Kill New!
Цитата · Личное сообщение · #9

По поводу цвета, я тоже подумал зачем выделять текст курсивом, достаточно его раскрасить в тот же цвет и что и указан.

Щас подробнее ознакомился с тутором и мне стало грустно. Сейчас расскажу немного теории и станет понятно почему. Та ВМ, что описывал я в своем туторе у разработчика называется QuickVM, а та что исползуется для скрытия кода аспра (именно в EXE!) - DelayVM. В свою очередь небольшая часть кода DelayVM накрыта DelayVM2. Она выполнена несколько проще и работает быстрее, иначе бы DelayVM вообще бы тормозила. Но DelayVM2 используется не только для скрытия кода DelayVM но и для покрытия кода ASProtect.DLL, что тоже понятно. Этот код выполняется при каждой загрузке и не должен тормозить программу.

Так вот ты изучал код ASProtect.DLL и соответственно разбирал DelayVM2 поэтому ты и не увидел вторую ВМ т.к. на DelayVM2 ничего не навешано, и именно поэтому у тебя так всё шоколадно получилось (индексы опкодов соответствуют самим опкодам). Посмотри вызовы DelayVM в самом EXE ASProtect вызовы имеют такой же вид, но вот ВМ совсем другая. Да и смысла разбирать ее больше т.к. иногда аспр навешывает ее на пользовательские EXE, а вот DelayVM2 используется только для внутренних целей


Ранг: 81.7 (постоянный)
Статус: Участник

Создано: 29 марта 2008 00:04 New!
Цитата · Личное сообщение · #10

Респект. Спасибо

Ранг: 5.2 (гость)
Статус: Участник

Создано: 29 марта 2008 04:40 New!
Цитата · Личное сообщение · #11

vnekrilov Малодец!!!
Написано что тутор для опытных crackers, мне так не показалось, при большом желании и новичёк справится.
Особо радует что всё по русски написано, и программы что русские используешь.
Самое главно что нет Сайса, ну если OllyDbg справился, то в пример новичкам используйте иммено этот отладчик, так как уж OllyDbg у всех есть

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 29 марта 2008 05:41 New!
Цитата · Личное сообщение · #12

Boss пишет:
Самое главно что нет Сайса

lol Ты хоть подумал чего сказал то? Освайвай лучше сайс чем нести такие вещи

Ранг: 329.6 (мудрец)
Статус: Участник

Создано: 29 марта 2008 08:07 · Поправил: vnekrilov New!
Цитата · Личное сообщение · #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, не просмотришь ли ты черновики этих статей, с целью их рецензирования и советов по уточнению тех вопросов, которые я, вероятно, не полностью отразил в этих туториалах. Заранее буду очень признателен.


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 29 марта 2008 17:26 New!
Цитата · Личное сообщение · #14

vnekrilov давай, только одним архивом.


Ранг: 303.7 (мудрец)
Статус: Участник
tPORt Manager

Создано: 30 марта 2008 11:42 New!
Цитата · Личное сообщение · #15

эта вм до vmprota не дотягивает... ждём анализа другой вм

Ранг: 329.6 (мудрец)
Статус: Участник

Создано: 30 марта 2008 12:25 New!
Цитата · Личное сообщение · #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 я выложил потому, что нигде не встретил материалов, которые бы освещали вопросы эмуляции такого рода инструкций. Поэтому я полагал, что этот материал может оказаться полезных для тех, кто занимается снятием протектора с программ.

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 30 марта 2008 12:54 New!
Цитата · Личное сообщение · #17

vnekrilov пишет:
Другая VM, к сожалению, не используется в защите AsProtect v2.4 build 12.20

Хм интересно к чьему сожалению?


Ранг: 276.3 (наставник)
Статус: Участник
Advisor

Создано: 30 марта 2008 13:15 New!
Цитата · Личное сообщение · #18

Bit-hack пишет:
ждём анализа другой вм

О какой "другой" идёт речь???
//Волк нехило автоматизировал унпак, в привате, мну так понял ВМ разобрали ещё круче..
//жаль паблика нет..

Ранг: 329.6 (мудрец)
Статус: Участник

Создано: 31 марта 2008 09:58 New!
Цитата · Личное сообщение · #19

pavka пишет:
Хм интересно к чьему сожалению?


К сожалению, для полного анализа.

Bronco пишет:
//Волк нехило автоматизировал унпак, в привате, мну так понял ВМ разобрали ещё круче.


К сожалению, Волк не разобрал процесс восстановления эмулируемых инструкций, что значительно затрудняет анализ программы по восстановлению закриптованных участков кода.

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 31 марта 2008 12:33 New!
Цитата · Личное сообщение · #20

vnekrilov пишет:
К сожалению, для полного анализа.

Так аспр v2.4 до сих пор не заломан

Ранг: 329.6 (мудрец)
Статус: Участник

Создано: 31 марта 2008 14:30 New!
Цитата · Личное сообщение · #21

pavka пишет:
Так аспр v2.4 до сих пор не заломан


Я практически подошел к слому аспра v2.4. Потерпите немного, и я выложу полную версию.


Ранг: 116.6 (ветеран)
Статус: Участник

Создано: 31 марта 2008 15:08 New!
Цитата · Личное сообщение · #22

vnekrilov пишет:
Я практически подошел к слому аспра v2.4. Потерпите немного, и я выложу полную версию.

Пожалейте StarForce !!! У них и так уже все сломали, осталась последняя надежда - аспр )


Ранг: 756.2 (! !)
Статус: Участник
Student

Создано: 31 марта 2008 16:51 New!
Цитата · Личное сообщение · #23

dermatolog пишет:
Пожалейте StarForce !!! У них и так уже все сломали, осталась последняя надежда - аспр

Ну мы же не вандализмом занимаемся... А просто безобидно исследуем защиты
vnekrilov
Человеческое спасибо! Нужным делом занят - знания до масс доносишь, да ещё и в таком доступном виде!
Молодец... Побольше бы таких писателей!


Ранг: 631.1 (!)
Статус: Участник
Автор VB Decompiler

Создано: 31 марта 2008 17:03 New!
Цитата · Личное сообщение · #24

vnekrilov пишет:
На ... я выложил свой первый туториал по анализу AsProtect v2.4 build 12.20.


Обе ссылки 403 Forbidden. Быстро они Я даж скачать не успел.


Ранг: 631.1 (!)
Статус: Участник
Автор VB Decompiler

Создано: 31 марта 2008 17:07 · Поправил: GPcH New!
Цитата · Личное сообщение · #25

dermatolog пишет:
Пожалейте StarForce !!! У них и так уже все сломали


Нее, от Authorware файлов (*.a4r) StarForce еще никто не научился отвязывать. Так что не все у них плохо.

Ранг: 67.4 (постоянный)
Статус: Участник

Создано: 31 марта 2008 20:36 · Поправил: Kiev78 New!
Цитата · Личное сообщение · #26

---


Ранг: 1122.0 (!!!!)
Статус: Участник

Создано: 1 апреля 2008 02:53 New!
Цитата · Личное сообщение · #27

Bronco пишет:
- "И это...правильно.."


а давайте запретим релизить винду! Люди начнуть писать под линух, появится больше проектов с открытым кодом, наступит мир и благоденствие.

Bronco пишет:
Без обид, но это то же самое что заплатить за такси, и .....не поехать...


не понял

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 1 апреля 2008 03:27 New!
Цитата · Личное сообщение · #28

Bronco пишет:
Моё имхо, нет просто паблик_релиза

Это вряд ли.. Китайцам подобные доводы до фонаря то что могут сломать они ломаютBronco пишет:
А поморфленный стаб и процедура инициализации, неужели это препятствие для анализа???

+1 имхо и старвецы это поняли и лишний мусор перестали пихать


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 1 апреля 2008 05:30 New!
Цитата · Личное сообщение · #29

ИМХО Паблик релиза нет только потому, что еще ВМ ку не разобрали. Т.к. чтобы подменить ключи - надо знать алго новой криптопроцедуры, которая декритует константы. Она покрыта ВМ, которую описывает внекрилов. А для анпака аспра надо разобрать DelayVM, которая на порядок круче. Ну а всякие лодыри и инлайны они просто не хотят, делать, хотя и сделать довольно быстро и будет фулл версия.

Ранг: 329.6 (мудрец)
Статус: Участник

Создано: 1 апреля 2008 08:03 New!
Цитата · Личное сообщение · #30

Bronco пишет:
не уверен, что не имея валидной пары, этот задачу можно решить


Дело в том, что для раскриптовки закриптованных участков кода используется Hex-цепочка, которая создается из набора числовых констант, которые не меняются от версии к версии протектора. Для получения валидной Hex-цепочки применяется всего лишь один DWORD - D3244A57, который получается из корректного регистрационного кода. Поэтому, зная этот DWORD, можно раскриптовать закриптованные участки кода.
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >>
 eXeL@B —› Протекторы —› Анализ ASProtect

Видеокурс ВЗЛОМ