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

 eXeL@B —› Протекторы —› Анализ ASProtect
<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 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 <--



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

Создано: 12 января 2010 19:12
· Личное сообщение · #2

ClockMan пишет:
Распарсил я таблицу эспорта kernel32.dll и вытащил ашь 30шт подменных api список прилагаю в аттаче


Большое спасибо, за список. Я добавлю его в скрипт. Я еще собираю информацию о такой подмене библиотек:
WS2_32.dll заменяется на wsock32.dll, ntdll.dll заменяется на kernel32.dll (это то, что я учел в скрипте) Возможно имеются еще какие-то библиотеки, которые заменяются на аналогичные. Это тоже очень важно.




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

Создано: 12 января 2010 22:08
· Личное сообщение · #3

Не ntdll.dll заменяется на kernel32.dll, а наоборот. Это называется import forwarding, а список функций из основных длл можно получить, написав несложный парсер.
Имейте в виду, что тупо все подряд грести не надо, например, некоторый функции без имени с ординалом из shlwapi ссылаются на user и kernel.
Да и вообще особо нет необходимости, вполне можно оставить, как есть.



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

Создано: 12 января 2010 22:44
· Личное сообщение · #4

угу, ручками допиливается.




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

Создано: 13 января 2010 05:06
· Личное сообщение · #5

Archer пишет:
Не ntdll.dll заменяется на kernel32.dll, а наоборот. Это называется import forwarding

Спасибо за замечание,если нетрудно пусть кто небуть из модераторов поправит мой аттач
Archer пишет:
некоторый функции без имени с ординалом из shlwapi ссылаются на user и kernel

Пускай с сылаются мы та новую таблицу имён пишем а не старую восстонавливаем

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





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 13 января 2010 06:20
· Личное сообщение · #6

> И второе. Например, если проводить исследование создания протектором Asprotect.dll (а это
> оченьинтересный процесс), то без восстановления подпрограмм с эмулированными инструкциями
> здесь не обойтись. Ведь разработчики заэмулировали именно те подпрограммы, которые делают
> наиболее интересные вещи, и таких подпрограмм в протекторе - около двух десятков.
> И третье. Да, написание статей занимает довольно много времени. Но, когда имеется набор скриптов,
> то распаковка программы занимает намного меньше времени, чем инлайн.

Фак мой мозг! Йа думал мы о деле говорим!
И эти люди еще запрещают мне ковырять в носу =)
Меня интересует только виртуализация импорта и точки фхода!
Ту VM, что защищает саму рантаймовую dll аспра я разобрал за 2 вечера - она не замусорена и однозначно декомпилится в исходные инструкции. На 20 билдов (1.35-1.5, 2.1-2.5) получилось 5 декомпилеров, однотипных, но немного отличающихся друг от друга.
Меняю ошкуренные dll на ключи от 1.6 и 2.6, а то у них ребрендинг и снова денег просят.




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

Создано: 13 января 2010 08:42
· Личное сообщение · #7


Это на анпаке валялось - www.multiupload.com/82I4FWHBOG




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

Создано: 13 января 2010 16:08 · Поправил: ClockMan
· Личное сообщение · #8

vnekrilov пишет:
WS2_32.dll заменяется на wsock32.dll

Там всего одна айпи отличается а остальные все одиннаковые по имени,в аттаче я прилагаю этот список и скрипт которым я парсил длл, единнственное что надо учесть это имена бибблиотек, некоторые пишутся большими буквами, а некоторые мелкими поэтому смотрите в memory map


cfb1_13.01.2010_CRACKLAB.rU.tgz - import parsing script.7z

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




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

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

Еще ковыряясь под Вынь 98 я заметил кое-что:

Code:
  1. Win98 SE
  2. USER32.dll
  3.   139  .BFC059A1 DestroyCursor
  4.   140  .BFC059A1 DestroyIcon
  5. KERNEL32.dll
  6.   486  .BFF748B4 GlobalAlloc
  7.   560  .BFF748B4 LocalAlloc
  8.  
  9. WinXP SP2
  10. USER32.dll
  11.   150  .77D4E8CE DestroyCursor
  12.   151  .77D4E8CE DestroyIcon
  13. KERNEL32.dll
  14.   491  .7C80FF2D GlobalAlloc
  15.   584  .7C8099BD LocalAlloc

особенно актуально для дельфи-программ



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

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

vnekrilov,
Не пойму что за версия, глянь пожалуйста - что-то не хочет распаковываться.
Спасибо!



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

Создано: 14 января 2010 18:40 · Поправил: Kiev78
· Личное сообщение · #11

---



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 14 января 2010 20:51
· Личное сообщение · #12

А что делать если
Ошибка!!! Подготовка к дампированию памяти программы: не найдено свободное место в конце области SBOEP! ?
В туторах об этом нигде не писалось?



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

Создано: 15 января 2010 11:07
· Личное сообщение · #13

LoveLab пишет:
Не пойму что за версия, глянь пожалуйста - что-то не хочет распаковываться.


2.1 build 02.19 Release. Кинь полную ссылку на программу, чтобы ее можно было запустить. Попробую помочь.

Vovan666 пишет:
А что делать если
Ошибка!!! Подготовка к дампированию памяти программы: не найдено свободное место в конце области SBOEP! ?


Такое может произойти, если конец области SBOEP содержит менее 24 нолей (скрипт "Восстановление таблицы IAT и вызовов APIs.osc" предусматривает поиск 24 нолей в конце области SBOEP). Если этих нолей меньше 24, то будет показано такое сообщение. Тогда нужно выполнить трассирование скрипта вручную, до строки 1996, вручную найти конец области SBOEP, и ввести найденный адрес в переменную $RESULT (это нужно для поиска таблицы прыжков в SBOEP). И дать возможность отработать скрипту.



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

Создано: 16 января 2010 16:30 · Поправил: uev61
· Личное сообщение · #14

Сейчас исследую справочник лекарственных средств и столкнулся вот с чем. Я не могу найти указатель на расположение массива данных для эмулированных инструкций. По туториалу у меня не получилось и я поступил так. Я взял бинарную строку вм (60 89 e0 9c 8b 14 24 55 89 e5 ) и выписал точку входа в неё (это адрес 00f768a8 или 00f768a5), но интересно то, что процедур вызова с такими прототипами (call 00f768a8) я не обнаружил. А как известно до этого вызова есть указатель на вм. Подскажите пожалуста Извините если пишу не в ту тему. Всем спасибо.



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

Создано: 16 января 2010 17:08
· Личное сообщение · #15

uev61 пишет:
Сейчас исследую справочник лекарственных средств и столкнулся вот с чем.


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

uev61 пишет:
Я взял бинарную строку вм (60 89 e0 9c 8b 14 24 55 89 e5 ) и выписал точку входа в неё (это адрес 00f768a8 или 00f768a5), но интересно то, что процедур вызова с такими прототипами (call 00f768a8) я не обнаружил.


Если это подпрограммы с эмулированными инструкциями в коде программы, то сначала ищется последовательность push xxxxxxxx, push xxxxxxxx, push xxxxxxxx, call xxxxxxxx. Затем на первую инструкцию push xxxxxxxx устанавливается eip (Ctrl+* на вспомогательной клавиатуре), и выполняются все инструкции, с заходом в call xxxxxxxx. Этот call xxxxxxxx выполняется до инструкции RETN, и возвращаетесь на первую инструкцию push xxxxxxxx, вместо которой теперь записана инструкция push 0. Третья инструкция push xxxxxxxx и является указателем на массив данных для эмулированных инструкций этой подпрограммы.



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

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

мне не помогло к сожалению ( пробывал и так. Вот линк slil.ru/28497109



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

Создано: 16 января 2010 23:15
· Личное сообщение · #17

vnekrilov,
xttp://warcraft.cosmostv.by/files/amh.rar
заранее спасибо!



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

Создано: 17 января 2010 05:16
· Личное сообщение · #18

LoveLab

По ссылке multi-up.com/203795 заберите распакованный файл. Там оказалась заполненной мусорным кодом таблица Импорта, и скрипт для восстановления секции импорта потребовал вручную ввести адрес таблицы Импорта, которая находится перед таблицей IAT, поскольку программа скомпилирована компилятором Delphi. Здесь, кстати, обнаружился баг скрипта по восстановлению секции импорта, когда первой dll идет ntdll.dll (об этом баге писал ClockMan, но мне он раньше не встречался, и я не пофиксил скрипт). После исправления этого бага, я выложу скрипт на форуме.



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

Создано: 17 января 2010 13:39
· Личное сообщение · #19

vnekrilov
Спасибо огромное! Запускается и работает, теперь можно поковырять что там к чему. Ещё бы было круто набросать маленькую кратенькую инструкцию как такое сделать самому именно для этого ехе. Так сказать без лирики и отступлений, только частный случай



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

Создано: 18 января 2010 09:55
· Личное сообщение · #20

LoveLab пишет:
Ещё бы было круто набросать маленькую кратенькую инструкцию как такое сделать самому именно для этого ехе. Так сказать без лирики и отступлений, только частный случай


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



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

Создано: 20 января 2010 14:15
· Личное сообщение · #21

По просьбам читателей данного топика, сегодня я выложил тринадцатую часть второго выпуска из обещанного цикла статей по распаковке Asprotect, в которой рассмотрена распаковка очередной программы, защищенной Asprotect, которая использует сравнительно новые методы проверки CRC, и требует корректировки эмулированных APIs Asprotect. Кроме того, к этой части статьи приложены три скрипта - Восстановление секции импорта (.idata) в распакованных программах.osc, Поиск областей со Stolen Code и восстановление в них эмулированных инструкций.osc и Устранение проверки целостности кода (CRC) программы.osc от 18 января 2010 года, в которых устранены некоторые ошибки, и расширены их возможности.

Буду признателен за отзывы, замечания, критику и пожелания.

079c_20.01.2010_CRACKLAB.rU.tgz - Распаковка Asprotect (часть 13, выпуск 2).rar




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

Создано: 20 января 2010 16:08 · Поправил: Coderess
· Личное сообщение · #22

0

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




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

Создано: 21 января 2010 11:29 · Поправил: foxyc
· Личное сообщение · #23

Вот что у меня получилось:
--> dumped.exe <--
не могу понять из-за чего секция с украденным кодом (.aspr) заполняеться нолями?

оригинальный файл программы:
--> beditor.exe <--
установочный файл:
--> с оффсайта <--
ASProtect 2.4 build 04.01 Beta

:UPD: перезалил на multi-up



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

Создано: 21 января 2010 16:12
· Личное сообщение · #24

foxyc

Не можешь ли ты перезалить файлы на другой обменник, например, на multi-up.com/. А то я чего-то не могу выйти на депозит.




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

Создано: 21 января 2010 20:44
· Личное сообщение · #25

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

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

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




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

Создано: 22 января 2010 01:30
· Личное сообщение · #26

DrGolova пишет:
Меняю ошкуренные dll на ключи от 1.6 и 2.6, а то у них ребрендинг и снова денег просят.

Не могли бы вы предоставить пруфлинки существования версии 1.6? 2.6 была альфой, потом они её переименовали обратно в 2.5. Может и есть какие-либо кастомные билды, которым они дали версии 1.6 и 2.6, но купить это точно не реал (в смысле в обычной поставке). Это за отдельные деньги делается запрос на кастомизацию.



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

Создано: 22 января 2010 08:11
· Личное сообщение · #27

mak пишет:
Ты не хочешь сделать Часть посткриптум ...то есть ты не пишешь новую статью ...а ты берешь публичный вопрос отсюда , овет на него ,


Не вопрос. Я вообще так и решил это сделать. Единственное, что я всегда спрашиваю - то это разрешение на использование выложенной программы для туториала. Поэтому посмотрю этот материал.



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

Создано: 22 января 2010 14:45 · Поправил: vnekrilov
· Личное сообщение · #28

На обменнике http://multi-up.com/206893 я выложил распакованный файл Unbeditor.rar для программы SunRav BookOffice 3. Я правда немного поизвращался, и восстановил полностью оригинальный код программы, который был протектором перенесен в области со Stolen Code. Эта программа имеет вечный триал в 30 дней, но можно его сделать 3650 дней (10 лет). Ничего сложного в распаковке нет.

foxyc

Посмотрел твой дамп. Во-первых, почему-то у тебя получился маленький размер секции .aspr - 1000 байтов. У меня он был 2000 байтов. Во-вторых, в дампе не исправлены прыжки из области кода в секцию .aspr. Здесь нужно учесть, что код программы расположен в двух секциях. Причем прыжок на SBOEP выполняется со второй секции, а все остальные прыжки - из первой секции. Поэтому, нужно скрипт для перенаправления прыжков запускать на дампе программы - дважды. И, по отдельности сохранять первую и вторую секции кода.



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

Создано: 22 января 2010 14:48
· Личное сообщение · #29

vnekrilov пишет:
Ничего сложного в распаковке нет.


интересно было бы почитать статью по этой программе.



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

Создано: 22 января 2010 15:00
· Личное сообщение · #30

foxyc пишет:
интересно было бы почитать статью по этой программе


Хорошо, я подготовлю такую статью.



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 05 февраля 2010 19:07
· Личное сообщение · #31

Скажите пожалуста, а скрипты всё так же актуальны для новой версии (2.51 build 09.22 Beta)?

При распаковке другой програмы с такими же опциями защиты(и от того же производителя софта), но на которой версия аспра (2.4 build 04.01 Beta), проблем не было, программа нормально запускалась и работала. А вот при снятии прота (2.51 b09.22) с проги, дамп никаких ошибок не выдает, главное окно программы не появляется, а тупо висит в памяти с загрузкой процессора 99%...
вот программа (необходимый минимум)www.multiupload.com/0RIRHQ8LBE
вот мой дамп www.multiupload.com/RYMLUWJOJM


<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 38 . 39 . >>
 eXeL@B —› Протекторы —› Анализ ASProtect
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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