Сейчас на форуме: (+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 <--



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

Создано: 24 сентября 2010 17:50
· Личное сообщение · #2

По L я ничего не увидел.

А так - Alt+L ?

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше




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

Создано: 25 сентября 2010 08:41
· Личное сообщение · #3

sfd43 пишет:
Как открыть журнал регистрации чтобы увидеть результат работы скрипта?


В отладчике выполни команду Plugins -> OdbgScript -> Script Window, через это окно загрузи нужный скрипт, и выполни трассирование скрипта с помощью клавиши "S", которая выполняет пошаговое трассирование скрипта. Кроме того, скрипты имеют большое число основных диагностических сообщений, которые помогают найти встреченные ошибки. А результат работы скриптов виден в виде файлов dumped.exe, и целого ряда других файлов (дамп таблицы INIT, дампы таблиц прыжков в области со Stolen Code, и т.д.).



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

Создано: 25 сентября 2010 09:07
· Личное сообщение · #4

vnekrilov подскажи плиз, запускаю твой скрипт "Восстановление таблицы IAT и вызовов APIs.osc" и получаю:

---------------------------
OllyScript error!
---------------------------
Error on line 1102
Text: asm temp_1,$RESULT
Label expected
---------------------------
ОК
---------------------------

как побороть?



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

Создано: 25 сентября 2010 11:26
· Личное сообщение · #5

aleopold пишет:
Text: asm temp_1,$RESULT


Причина появления этой ошибки - проста; в настройках отладчика, на вкладке Addresses (Адреса) надо убрать флажок с чекбокса "Show name of local module" (Показать имя локального модуля). Когда отладчик показывает имя модуля (например, CALL Robo.444444), то при оценке этого выражения с помощью команды eval, в переменную $RESULT записывается также имя модуля Robo, которое не может быть ассемблировано с помощью команды asm temp_1,$RESULT. И появляется это сообщение. Нужно просто убрать флажок с этого чекбокса. У Вас в отладчике должны отображаться просто дизассемблированные команды - типа CALL 444444, JMP 123456, и т.д.



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

Создано: 25 сентября 2010 14:41
· Личное сообщение · #6

vnekrilov посмотрел свои настройки и у меня там этот чекбокс и небыл выставлен, что еще посмотреть.
Вот пример того, что у меня видно в отладчике:

00682CD1 E8 BAE6FFFF CALL AtomicVB.00681390
00682CD6 FF0C24 DEC DWORD PTR SS:[ESP]
00682CD9 03B3 E4000000 ADD ESI,DWORD PTR DS:[EBX+E4]
00682CDF 833C24 00 CMP DWORD PTR SS:[ESP],0
00682CE3 ^0F87 55FEFFFF JA AtomicVB.00682B3E
00682CE9 53 PUSH EBX
00682CEA E8 5D000000 CALL AtomicVB.00682D4C
00682CEF 0183 EC000000 ADD DWORD PTR DS:[EBX+EC],EAX



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

Создано: 25 сентября 2010 15:04
· Личное сообщение · #7

vnekrilov нашел, все нормально с отображением.
Теперь после запуска пишет:

Укажите путь файла 'recovery_emulate_inst_Asprotect_dll.bin'. Для этого перейдите в Script Window, нажмите клавишу Е, и выполните необходимую корректировку.

что-то я не вижу этого файла, и в каком месте скрипта править нужно?



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

Создано: 25 сентября 2010 19:46
· Личное сообщение · #8

aleopold пишет:
что-то я не вижу этого файла, и в каком месте скрипта править нужно?


Файл 'recovery_emulate_inst_Asprotect_dll.bin' имеется в комплекте скриптов от 3.06.2010 г. Его можно поместить в любую папку (желательно в ту, в которую распакованы скрипты из архива "4024_03.06.2010_CRACKLAB.rU.tgz"). Далее, в скрипте "Восстановление таблицы IAT и вызовов APIs.osc" имеются следующие команды:

Code:
  1. // Загружаем виртуальную машину для восстановления эмулированных инструкций в ASProtect.dll
  2. load_Inject:
  3. MSG "Укажите путь файла 'recovery_emulate_inst_Asprotect_dll.bin'. Для этого перейдите в Script Window, нажмите клавишу Е, и выполните необходимую корректировку."
  4. PAUSE
  5. lm Address_Inject,5000,"C:\Закачки с Интернета\ASProtect - Распаковка по vnekrilov\recovery_emulate_inst_Asprotect_dll.bin"
  6. cmp $RESULT,0


У меня записан путь к файлу "recovery_emulate_inst_Asprotect_dll.bin" такой: "C:\Закачки с Интернета\ASProtect - Распаковка по vnekrilov\recovery_emulate_inst_Asprotect_dll.bin". А Вы укажите свой путь к этому файлу. Скрипт легко можно откорректировать в любом текстовом редакторе, например, в блокноте.



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

Создано: 26 сентября 2010 05:41
· Личное сообщение · #9

vnekrilov спасибо разобрался с этим, сделал дамп и все такое но нету адреса OEP, в PEtools написано 1000h в скрипте там SBOEP?




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

Создано: 26 сентября 2010 06:15
· Личное сообщение · #10

aleopold, может быть Вам уже теорию почитать?



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

Создано: 26 сентября 2010 07:29
· Личное сообщение · #11

Gideon Vi не против, ссылку подскажите.




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 26 сентября 2010 07:53
· Личное сообщение · #12

aleopold
Счас как Gideon Vi даст тебе по шапке

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 26 сентября 2010 08:29
· Личное сообщение · #13

Откуда ж вы такие берётесь, сидит в топике, который напичкан статьями, которые вынесены в шапку, сидит и задаёт вопрос, где читать.



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

Создано: 26 сентября 2010 10:01
· Личное сообщение · #14

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



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

Создано: 26 сентября 2010 11:10 · Поправил: gena-m
· Личное сообщение · #15

ну непонятно где брать OEP

Скрипт случаем не называется Поиск OEP (SBOEP).osc?

А вообще похоже рано еще браться за аспр, потренируйся распаковке на упыхах.

ЦИТАТА ИЗ СТАТЬИ ПО РАСПАКОВКЕ:
- протектор может защищать Оригинальную точку входа программы (OEP) путем выполнения части кода
в специальной области памяти (Stolen Bytes OEP, или SBOEP);

Иногда смотри в окно лога Ольги (после отработки скрипта), там скрипы указывают OEP, или SBOEP и ее адрес и много другой полезной информации.
А при запуске скрипта "Поиск OEP (SBOEP).osc", после его выполнения отладчик будет стоять на OEP, или SBOEP.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше





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

Создано: 26 сентября 2010 11:44
· Личное сообщение · #16

aleopold пишет:
в том то и дело читаю, ну непонятно из этих статей где брать OEP


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

-----
EnJoy!




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

Создано: 26 сентября 2010 13:53 · Поправил: aleopold
· Личное сообщение · #17

gena-m

________________________________________________

ЦИТАТА ИЗ СТАТЬИ ПО РАСПАКОВКЕ:
- протектор может защищать Оригинальную точку входа программы (OEP) путем выполнения части кода
в специальной области памяти (Stolen Bytes OEP, или SBOEP);

Иногда смотри в окно лога Ольги (после отработки скрипта), там скрипы указывают OEP, или SBOEP и ее адрес и много другой полезной информации.
А при запуске скрипта "Поиск OEP (SBOEP).osc", после его выполнения отладчик будет стоять на OEP, или SBOEP.
_______________________________________________

запускал я этот скрипт, там SBOEP:

1. Поиск OEP (SBOEP).osc
* SBOEP: 00DC02E5
=======================================
Программа имеет следующие опции защиты:
+ эмулированные APIs!
+ SBOEP!
+ вызовы APIs Asprotect 1.xx!

как получить OEP?




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 26 сентября 2010 14:06
· Личное сообщение · #18

aleopold пишет:
- протектор может защищать Оригинальную точку входа программы (OEP) путем выполнения части кода в специальной области памяти (Stolen Bytes OEP, или SBOEP);

aleopold пишет:
Программа имеет следующие опции защиты:
+ эмулированные APIs!
+ SBOEP!

Прикалываешся чтоли...

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




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

Создано: 26 сентября 2010 14:18
· Личное сообщение · #19

как получить OEP?

есть два варианта (я не помню скрипты восстанавливают или нет) для воссановления спертой ОЕП(SBOEP):
первый - скопипастить на родное место;
второй - прилепить в виде отдельной секции, если по каким либо причинам невозможно вставить на родное место.

Так что тренируйся, удачи...., но похоже вопросов станет еще больше.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше





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

Создано: 28 сентября 2010 15:44
· Личное сообщение · #20

На родное место, насколько я знаю никто (из автоматизаторов) не ставит, ибо нужен полный дизасм кода/чистка морфа и эмуляции mov reg32, const/ассемблирование кода в несколько прогонов для оптимизации. И то фиг угадаешь с какой оптимизацией был скомпилен оригинал, кода может получиться и больше и меньше. А еще в Delphi есть finally конструкции, которые аспр не трогает, и их можно легко случайно убить при восстановлении.

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





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

Создано: 30 сентября 2010 23:42
· Личное сообщение · #21

Помогите советом, пытаюсь распаковать программу, но спотыкаюсь на самом конечном шаге.

Вот сама прога - narod.ru/disk/25520026000/tw.7z.html

Что я делаю:

1. В отладчике запускаю ехе и скрипт - Поиск OEP (SBOEP).osc

Получаю:
* SBOEP: 021B02ED
=======================================
Программа имеет следующие опции защиты:
+ эмулированные APIs!
+ поврежденную таблицу INIT!
+ области памяти со Stolen Code!
+ SBOEP!
+ вызовы APIs Asprotect 2.xx SKE!

2. Перезапускаю ехе и запускаю скрипт - Восстановление таблицы INIT.osc
3. Еще раз перезапускаю ехе и запускаю - Восстановление таблицы IAT и вызовов APIs.osc
4. Запускаю - Эмуляция APIs Asprotect, вызываемых из кода программы.osc
5. Потом - Устранение проверки целостности кода (CRC) программы.osc
6. Следующий скрипт - Восстановление секции импорта (.idata) в распакованных программах.osc
7. Поиск областей со Stolen Code и восстановление в них эмулированных инструкций.osc
8. И заканчиваю - Перенос Stolen Code в секцию файла RSRC.osc

В итоге получаю набор нужных файлов.

Затем, в PETools открываю dumped.exe и удаляю 4 последние секции. После на вкладке Optional Header нажимаю "?" напротив 3-х нужных пунктов, на вкладке Directory Editor - Base Relocation Table везде ставлю 00000000 (т.к нужный фрагмент кода не ищется в Memory Map), а для TLS Directory - 001A5000.

После этого - добавляю новую секцию из файла section_ASPR_RSRC.bin и называю ее .aspr, плюсую нужные значения для получения ресурсов и делаю дамп из Resource Binder с RVA 0x001C7FA0. И прикручиваю этот дамп. В Directory Editor прописываю новые значения для Resource Directory 001C7FA0 и 0012F000.

Затем делаю дамп секции JCLDEBUG из dumped_control.exe и вставляю ее в dumped.exe

Казалось на этом сборка должна получиться и файл dumped.exe должен открываться в отладчике, чтобы продолжить распаковку со скриптом - Перенаправление прыжков из кода программы в новую секцию файла.osc, но у меня он не открывается

Что я сделал не правильно и что вообще не сделал, прошу совета.




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

Создано: 01 октября 2010 05:40
· Личное сообщение · #22

Там есть пошифрованый кусок кода:

Possible crypted code found at 0058ACE3, Size: 0000009A

И юзается CheckKeyAndDecrypt:

Found at RVA: 0006B920, jmp dword ptr [005A0B74]...

Ее вызов спрятан в украденом коде.

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




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

Создано: 01 октября 2010 07:18 · Поправил: vnekrilov
· Личное сообщение · #23

Airenikus пишет:
но у меня он не открывается


В Вашем описании процесса распаковки программы я не вижу корректировки адреса расположения TLS Dyrectory, который в этой программе находится по адресу 001A5000. Аспр переносит значения TLS в свою секцию .data. И когда Вы отрезали эту секцию, но не изменили адрес TLS, то этот файл не откроется в отладчике. Запишите в PE Tools адрес TLS 001A5000, обнулите значения в Base Relocation Table, и у Вас все нормально откроется в отладчике.

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




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

Создано: 01 октября 2010 10:04 · Поправил: Airenikus
· Личное сообщение · #24

vnekrilov, как же нет, есть

>>а для TLS Directory - 001A5000.



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 01 октября 2010 12:48 · Поправил: Konstantin
· Личное сообщение · #25

Airenikus
делаю дамп из Resource Binder с RVA 0x001C7FA0
Странные у вас циферки для RVA которые вы указываете в биндере. В нем нужно прописывать virtual offset, он должен быть кратен 1000 т.е. адрес должен указывать на начало секции.

В Directory Editor прописываю новые значения для Resource Directory 001C7FA0 и 0012F000
Распишите подробнее какая цифра относится к offset, а какая к size?



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

Создано: 01 октября 2010 14:12 · Поправил: vnekrilov
· Личное сообщение · #26

Airenikus пишет:
как же нет, есть

Чтобы указать на сделанную Вами ошибку, сбросьте полученный Вами дамп файла с прикрученными секциями. Или я могу сбросить мой дамп распакованной программы, чтобы Вы смогли провести сравнения.




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

Создано: 01 октября 2010 14:28 · Поправил: Airenikus
· Личное сообщение · #27

vnekrilov, вот мой дамп с правленными секциями - narod.ru/disk/25537904000/dumped.7z.html

Хотя, Konstantin правильно подсказал, я неправильно посчитал данные для дампа ресурсов



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 01 октября 2010 14:58 · Поправил: Konstantin
· Личное сообщение · #28

Airenikus
В этом дампе не видится иконка файла при его просмотре в командире. С ресурсами, что то не так. Они у вас располагаются в секции с RVA=1с8000, а вы какое значение забивали в биндер при восстановлении? Удалите секцию с ресурсами в вашем дампе, заново сделаейте дамп секции ресурсов в биндаре на указанный мной адрес и прикрипите эту секцию к дампу.

Поправил ресурсы вашего дампа, так как описал выше - dump.ru/file/4817571

P.S. В дампе вы еще не перенаправили прыжки из кода программы в новую секцию файла .aspr, воспользуйтесь соответствующим скриптом.




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

Создано: 01 октября 2010 15:00
· Личное сообщение · #29

Konstantin, да, все получилось, спасибо, теперь дамп прекрасно запускается



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

Создано: 01 октября 2010 15:41 · Поправил: vnekrilov
· Личное сообщение · #30

Airenikus пишет:
вот мой дамп с правленными секциями


Посмотрел твой дамп в PE Tools, и сразу же обратил внимание на то, что в дампе нет иконки программы, что указывает на повреждение секции ресурсов. Попытался сдампить твою секцию ресурсов в PE Tools, но он ругнулся на то, что может ее сохранить. Тогда я вырезал твою секцию ресурсов, и прикрутил свою (которую я получил с помощью Resource Binder). Сразу же после этого у файла появился значок, и он нормально загрузился в отладчик. По ссылке http://multi-up.com/347703 скачай файл Twidium.rar, к которому приложена моя секция ресурсов, доработанный твой дамп и мой распакованный файл. Очевидно, что при восстановлении секции ресурсов, что-то было сделано неверно.
При сравнении двух файлов в Hex Workshop, четко видны различия в секции ресурсов.

Сорри! Не обратил внимания на посты выше. Вопрос, видимо, закрыт.




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

Создано: 01 октября 2010 15:46
· Личное сообщение · #31

vnekrilov, спасибо, уже сделал, только прога один фиг выдает наг-окно, правда уже не 7 дней, а 30


<< 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 » Выход » ЛС
   Для печати Для печати