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

 eXeL@B —› Протекторы —› Анализ ASProtect
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 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 <--




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

Создано: 02 июля 2009 11:12
· Личное сообщение · #2

o_nix
судя по выложенному тобой логу, ты распаковываешь прогу MultiPoster 2.0.9.99

вот кусок декодированного отчёта:

Code:
  1. Version: WlZSR3tza3ZxWComXDUmOFQlKgcBUD4iOS1se2ZjdDAgIDwgIzNGcXlwd2VySjQ4Qsj/6v j+9TzO7PL+8vHCfQ8=
  2. ImageBase: 00400000
  3. Eip: B75D0C
  4. Eax: 1C50012
  5. Ecx: 0
  6. Edx: 0
  7. Ebx: 0
  8. Esi: 1C50012
  9. Edi: 1C50012
  10. Ebp: 12FED0
  11. Esp: 12FEAC
  12. ErrorCode: 
  13. 8A,3,3A,46,1,74,23,8B,4B,1,8A,56,1,8A,3,E8,10,93,0,0,84,C0,74,16,8B,57 ,2,8B,4B,1,8A,46,1,E8,E6,FE,FF,FF,84,C0,74,4,33,C0,EB,2,B0,1,5F,5E,5B, 0...
  14. Code = [213]
  15. - 184
  16. - 4
  17. - 227
  18. - 0
  19. - 0
  20. - []
  21. > C:\crackme\crackme.exe
  22.  
  23. MPPR
  24. MultiPoster
  25. 2.0.9.99
  26. Sergey Usmanov
  27. 2.0
  28.  
  29. > C:\WINDOWS\system32\ntdll.dll
  30.  
  31. Корпорация Майкрософт
  32. Системная библиотека NT
  33. 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
  34. ntdll.dll
  35. © Корпорация Майкрософт. Все права защищены.
  36. ntdll.dll
  37. 5.1.2600.2180
  38. Операционная система Microsoft® Windows®


программа защищена данной версией:
[WPExport], [2.0],
[2.4 build 11.20 Release], [Сергей Усманов].

-----
EnJoy!




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

Создано: 02 июля 2009 11:14
· Личное сообщение · #3

господа я конечно извиняюсь за возможный оfftop, но есть действительно проги в которых не работает ни один автоматический проход на oep (с использованием скриптов VoIX'a и Vnekrolov'a), сам сталкивался и уже не раз, при том что скрипты сбора IAT и не которые другие уважаемого Vnekrolov'a все таки делают свое дело порой завешивая намертво отладчик с прогой

To: o_nix
пробуй другие модификации ольги к примеру RAMOllyDBG или EXECrytor Edition (tuts4you.com тебе в помощь), со всеми включенными галочками в Exceptions, насчет багов ODbgScript скажу, что особой разницы по отработке скриптов что на 1.48 версии что на 1.67 версии я не заметил, а твои крякозяблы частенько выскакивают при отладке прог накрытых последними версиями aspr'aми и особливо при установке хардварных бряков и правки кода, прыжков в коде самого aspr'a , с обычными бряками дела вроде обстоят лучше, поэтому если ты роешься ручками к ОЕП, учитывай то, что aspr во многих местах начинает контролить изменения своего кода, и зачастую мы получаем такой же сабж с крякозяблами.

P.s.: воспользуюсь случаем, спрошу уважаемые господа может, кто-нибудь подскажет хороший способ как пройти до Stolen OEP в последних версиях аспра (1.4 - 1.5), естественно в сложных случаях к примеру когда аспр кует HWID, ругается на то, что он явно не тот а затем тут же ExitThread! или с последними версиями только здравый инлайн помогает?!

В обычных случаях и со Stolen OEP скрипты VoIX'a и Vnekrolov'a очень хорошо работают, даже на последних версиях ASPR'a..




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 02 июля 2009 11:55
· Личное сообщение · #4

Jupiter пишет:
вот кусок декодированного отчёта

а можно поинтересоватся, а с помощью чего ты получил этот отчет?

-----
Лучше быть одиноким, но свободным © $me




Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 02 июля 2009 11:59 · Поправил: MasterSoft
· Личное сообщение · #5

Jupiter пишет:
судя по выложенному тобой логу, ты распаковываешь прогу MultiPoster 2.0.9.99

Мож я тупой канеш..... Просвети меня, плиз! Как ты по этому логу узнал чё за прогу он анпакает (вплоть до версии) и какой версией прота она защищенна???

Added:
Ипать, чёт я долго писал




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

Создано: 02 июля 2009 12:33
· Личное сообщение · #6

он же выложил отчёт в base64!
всё, что идёт после Application data: и есть закодированные в base64 данные
аспр просто не светит в явном виде данные, которые планирует отправить разработчику ))
для расшифровки base64 можно воспользоваться любым онлайн декодером base64

а версию прота определил, скачав эту прогу и прогнав её через ASPriNF v1.6

-----
EnJoy!




Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 02 июля 2009 12:59
· Личное сообщение · #7

Jupiter
Thanks, я вот например не знал, что он шифрует логи в base64 .

Например тут



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

Создано: 02 июля 2009 13:53
· Личное сообщение · #8

Я внимательно прочитал последние вопросы и ответы этого топика. Первое, что хочу отметить, что приложенные мной скрипты не являются панацеей на все случаи жизни. Мне встречаются программы, очень умело защищенные этим протектором, на котором скрипты падают. Кроме того, иногда приходится менять установки Phantom, поскольку программа не останавливается на OEP, а просто запускается, а бывает, что и заваливается отладчик. Поэтому, в каждом конкретном случае, приходится все это анализировать, и применять соответствующие меры, чтобы распаковать программу. ODBScript намертво зависает, если нет какого-либо дампа, которые должны сделать предлагаемые мной скрипты. В этом случае, как я уже писал, приходится убивать сеанс отладки через диспетчер задач, и смотреть, какой пропущен дамп.
Цель моих статей - это не тупое выполнение инструкций, а понимание того, что происходит в процессе распаковки программы, и, тем самым, приобретение опыта в распаковке не только этого пакера, но и других протекторов.
И я признателен этой переписке, поскольку она показывает на упущенные мной вопросы, на которые следует обратить внимание. Хотя, откровенно говоря, все нюансов, которые имеются при распаковке программы, учесть практически невозможно.



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

Создано: 02 июля 2009 14:01 · Поправил: Konstantin
· Личное сообщение · #9

o_nix
но последующий запуск любого другого скрипта контроль crc (прога написана на Delphi) или Эмуляция API Asprotect в главной области кода.osc подвешивает ollydbg намертво
у меня оба скрипта отрабатывают нормально (пользуюсь чистой олькой + плаг phantom)

И ещё прозьба ... нельзяли уделить немного внимания распаковке программ при наличии валидного ключа
Как и писал MasterSoft - сначала регистрируешь прогу, а потом анпакаешь любым скриптом. Это нужно чтобы восстановился криптованный код. Для твоего случая, например вот здесь:

Code:
  1. 0053BCAC   . /E9 17000000   JMP 0053BCC8
При анпаке с валидным ключем здесь будет не прыжок через мусор, а нормальный код.

До этого делал через VolX - так он работает только со своими данными реги
Он не работает со своими рег. данными, как и скрипт vnekrilov-а, они эмулируют работу API аспра. Что тебе мешает подсмотреть что возвращают эти апи при запуске твоей нераспакованной, зареганой проги, и сравнить что подставляет скрипт при эмуляции?




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

Создано: 02 июля 2009 14:06
· Личное сообщение · #10

vnekrilov пишет:
Цель моих статей - это не тупое выполнение инструкций, а понимание того, что происходит в процессе распаковки программы, и, тем самым, приобретение опыта в распаковке не только этого пакера, но и других протекторов.


и вот это - основная фишка, ибо таких статей мало



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

Создано: 02 июля 2009 16:08
· Личное сообщение · #11

o_nix пишет:
нельзяли уделить немного внимания распаковке программ при наличии валидного ключа


Мне приходилось распаковывать программу с валидным ключем, что позволило восстановить закриптованные участки кода. Однако, разработчик программы привязал проверку прочитанных данных регистрационного ключа при дальнейшей работе программы. Поэтому мне пришлось изменить немного код программы, в котором, перед переходом на OEP, пришлось дописать код, который обеспечил выполнение некоторых подпрограмм, которые в упакованной программе, вызывались с помощью APIs Asprotect. Еще раз хочу подчеркнуть, что я писал чуть выше - опытные программисты могут настолько сильно защитить свои программы, что с этой защитой не справятся любые скрипты, и приходится проводить подробный анализ этой защиты, чтобы обеспечить нормальную работу распакованной программы.



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

Создано: 02 июля 2009 16:44
· Личное сообщение · #12

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

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

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

По поводу ошибки что выкладывал пробовал и на ollydrx получается тоже самое аспр палит что над ним издеваются




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 02 июля 2009 17:39
· Личное сообщение · #13

Вопрос относительно лога, а как заставить прогу выдать такой лог? Очень нужно

-----
Лучше быть одиноким, но свободным © $me




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

Создано: 02 июля 2009 17:42
· Личное сообщение · #14

o_nix пишет:
цель научиться делать это самому...

Использовать чьи-то скрипты - это не значит научиться самому. В идеале надо прочесть все туторы и по ним сделать свои собственные скрипты. Тогда не будет вопросов почему что-то не работает.




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

Создано: 02 июля 2009 18:23
· Личное сообщение · #15

BoRoV пишет:
Вопрос относительно лога, а как заставить прогу выдать такой лог


в общем случае достаточно вызвать исключение при распаковке проги загрузчиком аспра
например, похучить вызов API ASProtect и вызвать исключение в похученой ф-ции

-----
EnJoy!




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

Создано: 17 июля 2009 12:33
· Личное сообщение · #16

следующий вопрос

вот есть dll-ка, запакованная аспротектом, примерно 2.2-2.4(как определить точно не знаю, мож подскажете?)
при ее загрузке появляется окно, там указан ID вида 23B56253-EAFB, требуется имя и ключ
у меня есть валидные ID, имя и ключ
ключ вида XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

так вот, в пробовал подменить значение, генерируемое функцией которая его генерирует (там цикл с константами 9C3B248E и C1A7F39A), пишет что ключ не верный
затем я узнал номер винта, по которому генерится этот ID, и по выполнению функции DeviceIoControl заменял в буфере свой серийник на тот, для которого есть имя и ключ, генерировался верный ID, но при этом имя и ключ все равно не подходят

так же я обратил вниамание на то, что обращение через DeviceIoControl к винту при проверки серийника происходит дважды, при том второй раз генерится не ID а какое то другое число. номер серийника я подменял и второй раз.

так вот, вопрос, кто разбирался с этими ID в старших версиях аспротекта? в чем может быть дело?

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

может ли в аспротекте пара имя-ключ привязываться еще к чему то кроме собственно проги и ID, которае она выводит в окошке?



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

Создано: 17 июля 2009 13:47 · Поправил: gegter
· Личное сообщение · #17

wizz2
ну и завернул. интуитивно понятно, что 23B56253-EAFB генерируется уже по данным компа (аля привязка), ключ в свою очередь генерируется основываясь на 23B56253-EAFB.
к сожалению не помнит, после чего он получил пару имя-ключ
он отправил 23B56253-EAFB, получил ключ в ответ. все.



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

Создано: 17 июля 2009 15:27 · Поправил: Модератор
· Личное сообщение · #18

wizz2 пишет:
там цикл с константами 9C3B248E и C1A7F39A


Патчить надо около трёх раз. Всё прекрасно патчится. В старших версиях практически нет отличий.

P.S. Могу проинлайнить с тем хвидом который нужен. Ссылку на файл в личку или на мыло.




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

Создано: 17 июля 2009 15:28
· Личное сообщение · #19

9C3B248Eh и 0C1A7F39Ah - это константы, используемые в функции хэширования строки хвида, на выходе - в eax дворд хвида, по которому потом считается 16-ти битный (двухбатный) CRC
пример:
4A555021-3501
где 4A555021 - dword, хэш строки хвида (серийный номер харда, например)
3501 - word, CRC16 от строки "4A555021"

если кому нужно, могу выложить утиль, которая формирует валидный хвид от любых данных

-----
EnJoy!




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

Создано: 17 июля 2009 15:32 · Поправил: Модератор
· Личное сообщение · #20

Jupiter пишет:
могу выложить утиль

Твой утиль не пашет для некоторых случаев. В частности для Win98 аспр открывает не "\\.\Scsi", а "\\.\SMARTVSD".

Скоро я закончу сорец для получения хвид. Он будет действовать с точной логикой, какая присутсвует при генерации хвида в ASProtect. Тогда сюда и кину.



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

Создано: 17 июля 2009 15:56 · Поправил: user_
· Личное сообщение · #21

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

Добавлено:
progopis пишет: Это типа был реквест?
Скорее пожелание.



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

Создано: 17 июля 2009 16:48
· Личное сообщение · #22

user_ пишет:
Надеюсь, что статья по инлайну с полученным хвидом будет прилогаться.

Это типа был реквест?




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

Создано: 17 июля 2009 19:13
· Личное сообщение · #23

ASProtect HWiD

создание валидного хвида из любой строки-источника (может быть серийным номером харда, например)

create valid hwid from any source string (may be hdd serial number, for example)

1ed9_17.07.2009_CRACKLAB.rU.tgz - ASProtect_HWiD.v1.0.rar

-----
EnJoy!




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

Создано: 17 июля 2009 19:51
· Личное сообщение · #24

Jupiter
гы, ты читер я думал ты имел в виду тулзу которая сама считывает номер харда




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

Создано: 17 июля 2009 22:19
· Личное сообщение · #25

progopis пишет:
я думал ты имел в виду тулзу которая сама считывает номер харда


вообще-то я вполне определённо выразился ;)

Jupiter пишет:
если кому нужно, могу выложить утиль, которая формирует валидный хвид от любых данных


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

-----
EnJoy!




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

Создано: 18 июля 2009 00:08 · Поправил: Модератор
· Личное сообщение · #26

А если патчить хвид, то патчить надо только первый DWORD, причём уже после того как прохэшируется. Так что париться о валидности не надо.

Так что смысл тулзы не понятен. Если только поиграться.




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

Создано: 18 июля 2009 00:42
· Личное сообщение · #27

progopis пишет:
причём уже после того как прохэшируется


если уж патчить - то не после, а вместо
чтобы ф-ция хэширования всегда возвращала в eax одно и то же значение. и всё.

-----
EnJoy!




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

Создано: 18 июля 2009 00:50
· Личное сообщение · #28

Jupiter пишет:
чтобы ф-ция хэширования всегда возвращала в eax одно и то же значение. и всё.


Функция хеширования вызывается много раз (около 100), патчить надо только в том случае если CRC-функция вызывается для хвида. Если нужен пример, глянь релиз аспра. Там патчится на хвид двордом 35BE0DF3 (первая часть хвида).




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

Создано: 18 июля 2009 01:07
· Личное сообщение · #29

как я уже писал выше, ф-ция хэширования возвращает DWORD (4 байта | 32 бита) хэша
после чего этот дворд переводится в строку
и лишь потом считается crc16 от этой строки и добавляется в конец хвида
всё это я описал и разобрал на примере в посте #29

поэтому мои слова "если уж патчить - то не после, а вместо" относятса как раз к получению хвида, а не к другим ф-циям

-----
EnJoy!




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

Создано: 18 июля 2009 08:47
· Личное сообщение · #30

Всё дело в том, что то что я называл progopis пишет: CRC-функция это как раз твоя
Jupiter пишет: ф-ция хэширования возвращает DWORD

Ну так вот. Эта хэширующая функция используется МНОГО раз и не только во время получения хвида.

И всё же вот:

progopis пишет:
Если нужен пример, глянь релиз аспра. Там патчится на хвид двордом 35BE0DF3

На этом холивар окончим.




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

Создано: 19 июля 2009 03:03
· Личное сообщение · #31

Jupiter пишет:
если уж патчить - то не после, а вместо

Хз..патчат обычно на подмену, под конкретный ключ, если есть валидная пара. Тут обычно последовательность действий, и "после", и "вместо", а на выходе из функи, или каком-то этапе - это уже частность...

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



<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 38 . 39 . >>
 eXeL@B —› Протекторы —› Анализ ASProtect
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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