Сейчас на форуме: ==DJ==[ZLO], kris_sexy, Wenzel, r0lka (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› Распаковка ASProtect 1.23 RC4 - 1.3.08.24
Посл.ответ Сообщение

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

Создано: 21 мая 2006 21:40
· Личное сообщение · #1

Программа Space Plasma 3D Screensaver 1.5
www.digimindsoft.com/dl.php?id=8 (1.6 Мб)

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

Итак по-порядку что я делаю.

Переименовал .scr в .exe, добавил в олли аргумент /s, сделал hide debuger.
По shift-f9 прохожу 26 екшепшенов до кода:

00B439EC xor dword ptr ds:[eax],eax
00B439EE pop dword ptr fs:[0]
00B439F5 pop eax
00B439F6 cmp dword ptr ds:[B47EB0],0
00B439FD je short 00B43A13
00B439FF push 0C
00B43A01 mov ecx,0B47EB0
00B43A06 lea eax,dword ptr ss:[ebp-8]
00B43A09 mov edx,4
00B43A0E call 00B40B40
00B43A13 push dword ptr ss:[ebp-4]
00B43A16 push dword ptr ss:[ebp-8]
00B43A19 mov eax,dword ptr ss:[ebp-C]
00B43A1C cmp dword ptr ds:[eax],0
00B43A1F je short 00B43A23
00B43A21 push dword ptr ds:[eax]
00B43A23 push dword ptr ss:[ebp-10]
00B43A26 push dword ptr ss:[ebp-14]
00B43A29 retn

на retn ставлю F2, затем по shift-f9 перехожу на бряк. убираю бряк. открываю по alt-m карту памяти, на секцию код ставлю Set breakpoint on memoru access. По shift-f9 попадаю на распакованный участок оригинальной программы. получаю OEP = 44DDF9

Смотрю выше call'a - там нули. Украденные байты. Нахожу эти украденные байты, вот код:
PUSH EBP
MOV EBP,ESP
PUSH -1
PUSH 484090
PUSH 454694
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
SUB ESP,58
PUSH EBX
PUSH ESI
PUSH EDI
MOV DWORD PTR SS:[EBP-18],ESP

стандартный код начала программ на vc++, важно было только узнать какие адреса заносятся двумя push'ами. Это всё узнал. Сместил точку входа в дампеном .езе так, чтоб начало было как у всех прог.

Затем запускаю ImportRec, пишу в OEP - 4ddf9, autosearch.
Затем GetImport - получаю все импорты. С помощью плагина для импрека (аспр1.22) получаю все импорты в нормальном виде, делаю фикс дампа с галочкой Add new section.
Запускаю .ехе получившийся и выдается мне окошко что-то ок и всё валится.

что делать?




Ранг: 299.6 (наставник)
Активность: 0.30
Статус: Участник
Armadillo Killer

Создано: 21 мая 2006 21:46
· Личное сообщение · #2

liky возможно CRC проверочка



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

Создано: 21 мая 2006 22:30
· Личное сообщение · #3

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



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 21 мая 2006 22:40
· Личное сообщение · #4

Z0oMiK пишет:
возможно CRC проверочка

нет там проверок (хотя я может не эту версию ломал )



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

Создано: 21 мая 2006 22:50
· Личное сообщение · #5

вот, доковырял опять до такого.

мессаджбокс:
--------------заголовок-------------
Space Plasma 3D Screensaver:
---------текст------------------
CSaverApp::Run()

"Unknown Error"
---------кнопочка------------------
ОК
---------------------------

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



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

Создано: 21 мая 2006 22:50
· Личное сообщение · #6

Переименую обратно в .scr



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

Создано: 21 мая 2006 22:54
· Личное сообщение · #7

и похоже каким-то чудом вызывается TerminateProcess... непойму где и как



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

Создано: 21 мая 2006 22:58
· Личное сообщение · #8

agentru
нет, оригинальный scr файл запускается как переименованный .ехе прекрасно. не в этом дело.



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

Создано: 21 мая 2006 23:00
· Личное сообщение · #9

Тогда это может быть фишка разработчика. В этом аспре ели не ошибаюсь ещё не было проверок на распаковку. Сегодня может гляну.



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

Создано: 21 мая 2006 23:02
· Личное сообщение · #10

ну точно, терминейтпроцесс валит... блин




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

Создано: 22 мая 2006 08:09
· Личное сообщение · #11

Скорее всего это проверка имени юзера. Там должен быть адрес на имя и он указывает в никуда. (это только мои догадки)

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




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

Создано: 22 мая 2006 12:35
· Личное сообщение · #12

так и куда копать тогда




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

ну посмотри для начала, как это код проходиться в оригинальной проге

-----
[nice coder and reverser]




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

Создано: 22 мая 2006 14:57
· Личное сообщение · #14

вот допер уже буду смотреть после распаковки как оно проходит...
что-то с вечера ступил, сидел весь день уже матом начал на эту прогу ))
никто смотреть не хочет? поможет мож кто...



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 22 мая 2006 15:01
· Личное сообщение · #15

liky пишет:
буду смотреть после распаковки как оно проходит

Смотри в отладчике параллельно, оригинал и дамп. Иногда помогает.



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

Создано: 22 мая 2006 15:11
· Личное сообщение · #16

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




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

Создано: 22 мая 2006 15:14
· Личное сообщение · #17

liky пишет:
всё понял. там почему то в дампеной проге вызывается TerminateProcess, а должна в оригинале быть другая функция


liky пишет:
С помощью плагина для импрека (аспр1.22) получаю все импорты в нормальном виде


Скорее всего тут и ошибка...

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




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

Создано: 22 мая 2006 15:15
· Личное сообщение · #18

утро вечера мудреннее всем спасибо за наводящие мысли...

Кто-нибудь копал BulletProof FTP Server и Animabilis RS File Encryption ? там в первой ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov, а во второй ASProtect 2.0x Registered -> Alexey Solodovnikov [Overlay]

Я так понял со второй я обломаюсь да?



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

Создано: 22 мая 2006 15:16
· Личное сообщение · #19

я читал что импрек имеют глюки с нахождением некоторых функций. дайте плиз урл на последний исправленный импрек.




Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 22 мая 2006 17:29
· Личное сообщение · #20

liky пишет:
всё понял. там почему то в дампеной проге вызывается TerminateProcess, а должна в оригинале быть другая функция. подменил адреса и всё заработало.

Можно занопить следущие команды
004ADC5E FF30 PUSH DWORD PTR DS:[EAX]
004ADC60 8F00 POP DWORD PTR DS:[EAX]

И работает...

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться




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

Создано: 22 мая 2006 21:17
· Личное сообщение · #21

0041364E FF35 60014800 push dword ptr ds:[480160]
00413654 B8 5CDC4A00 mov eax,4ADC5C
00413659 FFD0 call eax

вот этот call превращался в TerminateProcess.

push dword ptr ds:[480160] заменил на Push b50780 который подсмотрел в оригинальной программе после её распаковки в память и всё заработало


 eXeL@B —› Крэки, обсуждения —› Распаковка ASProtect 1.23 RC4 - 1.3.08.24
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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