Сейчас на форуме: (+5 невидимых)

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

Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 28 марта 2008 15:30 · Поправил: vnekrilov
· Личное сообщение · #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]:
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, который можно скачать по ссылке --> Link <--




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

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

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




Ранг: 199.9 (ветеран), 4thx
Активность: 0.120.02
Статус: Участник

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

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

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




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 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




Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

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

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


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

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


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

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




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

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

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

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

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

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

-----
Computer Security Laboratory





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

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

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

-----
Yann Tiersen best and do not fuck




Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

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

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


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

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


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




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 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





Ранг: 81.7 (постоянный), 10thx
Активность: 0.030
Статус: Участник

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

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



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

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

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



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

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

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

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



Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 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, не просмотришь ли ты черновики этих статей, с целью их рецензирования и советов по уточнению тех вопросов, которые я, вероятно, не полностью отразил в этих туториалах. Заранее буду очень признателен.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

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

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

-----
Yann Tiersen best and do not fuck





Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

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

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



Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

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



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

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

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

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




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

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

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

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

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

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

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


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

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


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



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

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

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

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



Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

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

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


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




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

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

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

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




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

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

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

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

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





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

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

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


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

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





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

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

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


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

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

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

---




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

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

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


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

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


не понял



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

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

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

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

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




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

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

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

-----
Yann Tiersen best and do not fuck




Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 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
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати