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

 eXeL@B —› Протекторы —› Анализ ASProtect
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 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 <--



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 20 апреля 2010 06:31
· Личное сообщение · #2

[offtopic]
vnekrilov, а вы еще занимаетесь реверсом электронных ключей?
[/offtopic]



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

Создано: 20 апреля 2010 09:56
· Личное сообщение · #3

Av0id пишет:
vnekrilov, а вы еще занимаетесь реверсом электронных ключей?


Только Sentinel Super Pro, и то только с программой Passolo. Если нужна какая-то помощь, пиши на ПМ. Извиняюсь за offtop.



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

Создано: 20 апреля 2010 10:07
· Личное сообщение · #4

В аттаче я выложил обновленные скрипты "Восстановление таблицы IAT и вызовов APIs.osc" и "Восстановление секции импорта (.idata) в распакованных программах.osc". В этих скриптах сделаны следующие модернизации:

1. В скрипте "Восстановление таблицы IAT и вызовов APIs.osc" убрана ручная проверка начала таблицы IAT. Теперь скрипт сам правильно определяет все параметры таблицы IAT (начало, конец и размер).

2. В скрипте "Восстановление секции импорта (.idata) в распакованных программах.osc" я убрал ручную проверку имени wsock32.dll при работе с WS2_32.dll. Теперь скрипт сам проверяет наличие имени wsock32.dll в блоке WS2_32.dll, и, если такое имя имеется, автоматически изменяет имя WS2_32.dll на wsock32.dll.

f65d_20.04.2010_CRACKLAB.rU.tgz - Откорректированные скрипты от 20 апреля 2010.rar




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

Создано: 23 апреля 2010 12:18
· Личное сообщение · #5

А что Часть 12 так и не появилась в полном виде?
В связи с чем она отсутствует в шапке?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 23 апреля 2010 13:17
· Личное сообщение · #6

Isaev
приват



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 23 апреля 2010 13:52
· Личное сообщение · #7

Isaev, на 26-ой странице в общей куче нету?



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

Создано: 23 апреля 2010 14:45
· Личное сообщение · #8

Isaev пишет:
А что Часть 12 так и не появилась в полном виде?

int пишет:
Isaev
приват

По ссылке https://cracklab.ru/f/files/fe67_22.12.2009_CRACKLAB.rU.tgz (на 25 странице) можно скачать 12-ю часть туториала, которая никогда не была приватом. Просто модераторы топика почему-то не поправили шапку.




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 23 апреля 2010 14:48
· Личное сообщение · #9

Видимо модератор просто проглядел. Надеюсь шапка будет поправлена и находиться по возможности в актуальном состоянии.

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 23 апреля 2010 14:49
· Личное сообщение · #10

vnekrilov
Да я стебусь над Isaev'ом. Просто народ думает, что от них что-то утаили. Уже давно выложена была, как правильно заметил Av0id, chm-версия с полным комплектом статей. Видимо, невнимательно читают тему. Кстати попробуйте исправить сами свой пост, я сбросил статус правки модератором.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 23 апреля 2010 15:56
· Личное сообщение · #11

добавил 12-ю часть в шапку, хотя, как заметили Av0id и progopis, всё и так есть в сборке

-----
EnJoy!





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

Создано: 24 апреля 2010 13:23
· Личное сообщение · #12

int а чего надо мной стебаться, она у меня есть... просто вроде писали что там что-то надо бы поправить и это сделаем позже, думал в связи с этим её и нет в шапке... ждал изменений ))
то ли их не должно быть, толи уже внесли это только vnekrilov может знать...

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 24 апреля 2010 14:23
· Личное сообщение · #13

Isaev пишет:
просто вроде писали что там что-то надо бы поправить и это сделаем позже,


Сам текст туториала по распаковке Asprotect я править не собирался, поскольку я и так написал вроде-бы все, что хотел. Другое дело - это корректировка скриптов, применяемых для распаковки Asprotect. Здесь еще всплывают баги, которые не были проявлены ранее, и, видимо, еще будут всплывать. Поэтому я сейчас готовлю комплект откорректированных скриптов, с которым работаю при распаковке программ, упакованных этим протектором. Также возможно появление статей, связанных с распаковкой программ, упакованных заказными версиями протектора. Здесь бывают интересные нюансы, особенно связанные с применением APIs Asprotect. Кстати, если у кого-то имеются интересные примеры, я с благодарностю приму ссылки на эти программы, чтобы написать соответствующие статьи, или откорректировать скрипты.



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

Создано: 27 апреля 2010 08:18
· Личное сообщение · #14

В аттаче я прикладываю обещанный обновленный комплект скриптов для распаковки программ, упакованных Asprotect. Все обновления сделаны по состоянию на 27 апреля 2010 года. Этот комплект скриптов выполняет распаковку программ, упакованных Asprotect по версии 1.56 build 03.17/2.56 SKE build 03.17, включительно.

5d99_26.04.2010_CRACKLAB.rU.tgz - Обновленные скрипты для распаковки Asprotect от 27 апреля 2010.rar




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 27 апреля 2010 14:50 · Поправил: Coderess
· Личное сообщение · #15

vnekrilov Нет планов по созданию статьи по самой быстрой распаковке файла,
для некоторых важен конечный результат - распакованный файл, а не сам процесс
Просто было-б не плохо, если такая статья
увидит свет, что скажете по-этому поводу?

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




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

Создано: 27 апреля 2010 17:56 · Поправил: vnekrilov
· Личное сообщение · #16

Coderess пишет:
Нет планов по созданию статьи по самой быстрой распаковке файла,
для некоторых важен конечный результат - распакованный файл, а не сам процесс


В туториале по распаковке программ, упакованных Asprotect, имеется довольно большая часть, которая называется "Практика распаковки программ". В этой части я постарался как можно компактнее показать процесс распаковки разных программ. Можно было бы объединить все скрипты в один скрипт (как это сделал VolX), но такой скрипт получается очень громоздкий, и его сложно применять для распаковки программ, упакованных новыми версиями протектора, поскольку мной предусмотрена корректировка скриптов по необходимости. В своей работе я применяю именно предложенный комплект скриптов, который меня вполне устраивает, и позволяет за 20-30 минут распаковать любую программу (много времени занимает процесс восстановления секции импорта, поскольку скрипт работает достаточно медленно).
Но, даже распаковав программу с помощью скриптов, не всегда удается ее запустить, поскольку зачастую разработчики программ встраивают и свои методы антидампирования. Поэтому наиболее трудоемкой работой именно является доработка дампа программы, с целью обеспечения его работы.
А если упакованная программа имеет подпрограммы с эмулированными инструкциями, то здесь приходится дорабатывать VM для восстановления этих эмулированных инструкций, и без ручного труда здесь не обойтись. Ведь надо создать файл Asprotect.dll, его проанализировать, чтобы получить закриптованные значения первого байта инструкций, и т.д. И об этом я также писал в туториале.
Поэтому написать статью по быстрой распаковке файлов мне кажется невозможным. Другое дело, если имеются какие-то изюминки при распаковке, то есть резон писать статьи об этих изюминках. Так, например, в некоторых программах, приходится, до OEP, выполнять некоторые подпрограммы, чтобы снять защиту от антидампирования.



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

Создано: 01 мая 2010 08:04
· Личное сообщение · #17

mak в личном сообщении указал на одну ошибку в скрипте "Эмуляция APIs Asprotect, вызываемых из кода программы.osc", которая находится здесь:

enter_free_space:
ask "Для записи эмулированных APIs Asprotect нужно иметь 120h байтов! Введите выбранный Вами адрес свободного места."
cmp $RESULT,0
jne enter_free_space
ask "Вы не ввели адрес свободного места для записи эмулированных APIs Asprotect! Введите выбранный Вами адрес свободного места."
mov Write_Emul_APIs_Asprotect,$RESULT

Эта ошибка устранена в прилагаемой новой версии скрипта "Эмуляция APIs Asprotect, вызываемых из кода программы.osc" от 01 мая 2010 года. Большое спасибо mak за указанную ошибку.

28ce_30.04.2010_CRACKLAB.rU.tgz - Эмуляция APIs Asprotect, вызываемых из кода программы.osc



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

Создано: 05 мая 2010 10:09
· Личное сообщение · #18

Мной доработаны скрипты "Восстановление секции импорта (.idata) в распакованных программах.osc" и "Эмуляция APIs Asprotect, вызываемых из кода программы.osc" (обновление от 05 мая 2010), в которых усовершенствован поиск APIs Asprotect в таблице IAT в программах, упакованных Asprotect SKE (с коротким ключем), а также запись эмулированных APIs Asprotect на свободное место в секции импорта программы. Эти доработанные скрипты приложены в аттаче к этому сообщению.

8314_05.05.2010_CRACKLAB.rU.tgz - Обновленные скрипты от 05.05.2010.rar




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

Создано: 05 мая 2010 22:02
· Личное сообщение · #19

vnekrilov пишет:
если имеются какие-то изюминки при распаковке, то есть резон писать статьи об этих изюминках.

выбирай любой --> архив <--, в каждом с изюминкой.
//саму прогу как-то высылал, так что извлечь из архива обнову, не сложно будет.

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




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

Создано: 06 мая 2010 15:30
· Личное сообщение · #20

Знаю что не в тему, но тему для этого не нашел , если только в запросы на взлом, но это ж не взлом...
Распакуйте пожалуйста - 11.7Мб


От модератора: В запросы!



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

Создано: 07 мая 2010 08:10 · Поправил: vnekrilov
· Личное сообщение · #21

Встретился с одной программой, на которой скрипт "Эмуляция APIs Asprotect, вызываемых из кода программы.osc" записал эмулированные APIs Asprotect на месте имеющегося кода, а не на свободном месте. Причиной этой ошибки стало то, что OdbgScript не может сравнивать отрицательное значение с положительным значением. Нужно было выполнить инструкции:

cmp temp_1,120
jae check_Count_APIs_Asprotect


Здесь temp_1 = FFFFFFF0 - отрицательное значение (-10)

Ясно, что значение (-10) меньше значения 120, и прыжок jae check_Count_APIs_Asprotect не должен быть выполняться, а он выполняется, что является причиной этой ошибки. Мне пришлось ввести в скрипт следующую проверку:

cmp temp_1,temp_2 // temp_1 меньше temp_2?
jb no_free_code


И эта проверка позволяет корректно работать данному скрипту.

В аттаче приложен скрипт "Эмуляция APIs Asprotect, вызываемых из кода программы.osc" от 07.05.2010, в котором устранена эта ошибка.

202e_06.05.2010_CRACKLAB.rU.tgz - Эмуляция APIs Asprotect, вызываемых из кода программы.osc



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

Создано: 08 мая 2010 10:16
· Личное сообщение · #22

yanus0 прислал мне сообщение, в котором он указал на падение скрипта "Восстановление таблицы IAT и вызовов APIs.osc" при его работе на программе Activity Monitor. Причина сбоя в работе скрипта оказалась следующей. При заполнении протектором таблицы IAT, во время загрузки программы, скрипт одновременно записывает во вспомогательную таблицу, расположенную в специально созданной области памяти, значения идентификаторов закриптованных APIs в массиве данных для таблицы IAT, и соответствующие адреса таблицы IAT. Эти данные используются для восстановления вызовов эмулируемых APIs. В скрипте я заложил размер этой области памяти в 6000h байтов, которого хватало для записи вспомогательной таблицы для всех программ, которые я распаковывал. Однако в этой программе этого размера оказалось недостаточно для записи всех идентификаторов закриптованных APIs в массиве данных для таблицы IAT, и, когда достигается конец этой области памяти, то и показывается сообщение о сбое скрипта при восстановлении таблицы IAT. Поэтому на строке 543 скрипта "Восстановление таблицы IAT и вызовов APIs.osc" я изменил значение 6000 на значение 18000. После такого изменения, скрипт нормально восстанавливает таблицу IAT и вызовы APIs.

Спасибо yanus0 за указанный баг. В аттаче приложен откорректированный скрипт "Восстановление таблицы IAT и вызовов APIs.osc" от 07.05.2010.

07e6_08.05.2010_CRACKLAB.rU.tgz - Восстановление таблицы IAT и вызовов APIs.osc




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 08 мая 2010 12:05
· Личное сообщение · #23

Можно архивом залить , последняя версия откоректированных скриптов на сегодняшний день ? Спсб!

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




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

Создано: 10 мая 2010 06:46
· Личное сообщение · #24

mak пишет:
Можно архивом залить ,


Да, можно. Я это сделаю немного позже.

А пока прошу у ЗНАЮЩИХ совета. Вопрос следующий. При распаковке программы Activity Monitor, и восстановлении секции импорта с помощью скрипта "Восстановление секции импорта (.idata) в распакованных программах.osc" я столкнулся с тем, что при загрузке дампа распакованной программы в отладчик получил сообщение о том, что не найдена Entry Point API ??0greg_weekday@gregorian@boost@@QAE@G@Z в библиотеке boost_date_time-vc90-mt-1_40.dll. Когда я начал искать причину появления этой ошибки, то выяснил, что отладчик показывает имя этой API как:

0049E940 00C43DA0 boost_da.??0greg_weekday@gregorian@boost@@QAE@G@Z

Здесь библиотека boost_date_time-vc90-mt-1_40.dll загружена по базовому адресу 00С40000. Поэтому RVA этой API будет равно 00003DA0. А по этому адресу в этой библиотеке записано имя API -

??0?$constrained_value@V?$simple_exception_policy@G$0A@$05Ubad_weekday @gregorian@boost@@@CV@boost@@@CV@boost@@QAE@G@Z

, т.е. абсолютно другое имя, чем прочитал имя отладчик по этому адресу.

Как известно, для получения имени используется функция GetProcAddress, и вот эта функция, в некоторых библиотеках, не правильно показывает имя API. Сможет кто-то посоветовать, как исправить эту ситуацию.
Заранее благодарен за советы и подсказки.




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

Создано: 10 мая 2010 14:18
· Личное сообщение · #25

vnekrilov пишет:
Как известно, для получения имени используется функция GetProcAddress, и вот эта функция, в некоторых библиотеках, не правильно показывает имя API. Сможет кто-то посоветовать, как исправить эту ситуацию.

Из плагина я делаю следующим образом, ошибок в определении АПИ функций пока не было:
Code:
  1. BOOL vAnalyzerCodes::CheckApiCall(DWORD addr)
  2. {
  3.          char sym[1024];
  4.          char buf[TEXTLEN];
  5.          if(!Decodeaddress(addr, 0, ADC_ENTRY, sym, 1024, buf))
  6.                  return FALSE;
  7.          char* tmp = strstr(sym, ".");
  8.          if(!tmp)
  9.                  return FALSE;
  10.          strtok(sym, ">");
  11.          *tmp = '\0';
  12.          m_sDllName = sym;
  13.          m_sApiName = tmp + 1;
  14.          return TRUE;
  15. }

В скриптах есть этому аналог - gapi

-----
Everything is relative...




Ранг: 2.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 мая 2010 16:49
· Личное сообщение · #26

мож там forward export используется



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

Создано: 10 мая 2010 17:49
· Личное сообщение · #27

Vamit пишет:
мож там forward export используется


Нет, здесь нет форвардинга!



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

Создано: 16 мая 2010 16:06
· Личное сообщение · #28

Для восстановления секции импорта в распаковываемых программах мной был предложен скрипт "Восстановление секции импорта (.idata) в распакованных программах.osc". Однако, при распаковке некоторых программ выяснилось, что отладчик не всегда корректно определяет имена функций, используемых в разных библиотеках. Я попытался находить корректные имена функций с помощью Таблицы Экспорта библиотек, но это значительно увеличивает время работы скрипта. Да и на разных программах, в зависимости от размера таблицы IAT, этот скрипт работает достаточно долго.
С другой стороны, утилита ImpRec работает очень быстро, но ее недостатком является то, что она секцию с Import Table и именами DLLs и APIs помещает в специально создаваемую секцию с именем mackt, располагаемую в конце файла, что не всегда является удобным, особенно, если требуется выполнить локализацию распакованной программы. Иногда, при локализации, повреждается эта секция импорта, и файл не запускается.
Я решил доработать скрипт "Восстановление секции импорта (.idata) в распакованных программах.osc" таким образом, чтобы он мог переносить данные из секции mackt на родное место в секции импорта распаковываемой программы. Как выполнить перенос данных:
1. Сначала запускаем скрипт "Восстановление таблицы IAT и вызовов APIs.osc", и, после завершения его работы, запускаем скрипты "Восстановление эмулированных подпрограмм в коде программы.osc", "Устранение проверки целостности кода (CRC) программы.osc" и "Эмуляция APIs Asprotect, вызываемых из кода программы.osc". Скрипт "Восстановление секции импорта (.idata) в распакованных программах.osc" НЕ ЗАПУСКАЕМ.
2. Запускаем утилиту IMPRec, вводим требуемые данные, получаем импорт распакованной программы.
3. Исправляем файл dumped.exe (не убираем флажок с чекбокса "Add New Section")
4. Загружаем полученный файл dumped_.exe в PE Tools (или любой другой редактор PE-файлов), переходим на вкладку Directory Editor, и обнуляем значение RVA в окне Import Directory.
5. Загружаем доработанный файл dumped_.exe в отладчик OllyDbg, и запускаем скрипт "Перенес данных из секции mackt, созданной ImpRec, в родную секцию импорта файла.osc".
6. Проверяем загрузку полученного файла после работы скрипта - dumped.exe, и просматриваем таблицу IAT.
7. Отрезаем в PE Tools секцию .mackt, а также секции, созданные протектором (эту процедуру я описывал в своих туториалах).

Просьба для читателей этого топика протестировать этот скрипт на своих распаковываемых программах. При наличие каких-либо ошибок, и замечаний, просьба писать в личку или e-mail vnekrilov@yandex.ru

2b5e_16.05.2010_CRACKLAB.rU.tgz - Перенес данных из секции mackt, созданной ImpRec, в родную секцию импорта файла.osc



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

Создано: 23 мая 2010 08:16
· Личное сообщение · #29

В последнее время мне пришлось распаковать несколько программ, упакованных Asprotect, к которым был приложен регистрационный ключ. Наличие регистрационного ключа позволяет раскриптовать закриптованный код в программе, и получить распакованную программу с восстановленным кодом. Разработанный мной скрипт "Восстановление таблицы IAT и вызовов APIs.osc" не предусматривал работу с регистрационным ключом, поэтому он обнулял адрес вызова API SetRegistrationKey. Для возможности работы с регистрационным ключем, я доработал скрипт "Восстановление таблицы IAT и вызовов APIs.osc", который позволяет распаковывать программы и с регистрационным ключем:

Code:
  1. API_SetRegistrationKey:
  2. mov temp_1,Table_APIs_Asprotect           
  3. cmp [temp_1],0                            
  4. je API_GetRegistrationInformation         
  5. mov ASPR_SetRegistrationKey,[temp_1]      
  6. log [temp_1]," * Вызов из Asprotect.dll API SetRegistrationKey: " 
  7. msgyn "ВНИМАНИЕ!!! Если Вы работаете с зарегистрированной программой (с корректным регистрационным ключем), то нажмите кнопку 'ДА'. Если у Вас нет регистрационного ключа, то нажмите кнопку 'НЕТ'."
  8. cmp $RESULT,0
  9. je no_reg_key
  10. cmp $RESULT,1
  11. je present_reg_key
  12. cmp $RESULT,2
  13. je finalize
  14.  
  15. present_reg_key:
  16. mov ASPR_SetRegistrationKey,[temp_1]
  17. bp ASPR_SetRegistrationKey
  18. jmp API_GetRegistrationInformation
  19.  
  20. no_reg_key:
  21. mov [temp_1],0                                  // API SetRegistrationKey не эмулируется


При работе обновленной версии этого скрипта от 23 мая 2010 года, он запрашивает Пользователя, работает ли он с зарегистрированной версией программы, или нет. При этом Вы должны нажать кнопку ДА или НЕТ. Если Вы работаете с зарегистрированной версией программы, то, после завершения работы этого скрипта, Вы получите дамп с полностью восстановленным закриптованным кодом.

В аттаче я прикладываю обновленный скрипт "Восстановление таблицы IAT и вызовов APIs.osc" от 23 мая 2010 года.

e143_22.05.2010_CRACKLAB.rU.tgz - Восстановление таблицы IAT и вызовов APIs.osc



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

Создано: 23 мая 2010 08:57
· Личное сообщение · #30

mak пишет:
Можно архивом залить , последняя версия откоректированных скриптов на сегодняшний день ?


В аттаче приложены обновленные скрипты от 23 мая 2010 года.

eb56_22.05.2010_CRACKLAB.rU.tgz - Скрипты от 23 мая 2010.rar



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

Создано: 29 мая 2010 08:08
· Личное сообщение · #31

При работе скрипта "Перенос данных из секции mackt, созданной ImpRec, в родную секцию импорта файла.osc" в коде прививки для переноса адресов имен APIs в таблицу IAT был обнаружен баг, который был мной устранен в доработанной версии этого скрипта от 29 мая 2010 года.

В аттаче приложен откорректированный скрипт "Перенос данных из секции mackt, созданной ImpRec, в родную секцию импорта файла.osc" от 29 мая 2010 год.

e3c2_28.05.2010_CRACKLAB.rU.tgz - Перенос данных из секции mackt, созданной ImpRec, в родную секцию импорта файла.osc


<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 38 . 39 . >>
 eXeL@B —› Протекторы —› Анализ ASProtect
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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