Сейчас на форуме: zds, -Sanchez- (+9 невидимых)

 eXeL@B —› Протекторы —› ASProtect ручная распаковка
Посл.ответ Сообщение


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

Создано: 01 ноября 2005 06:49
· Личное сообщение · #1

Драсте all,

вот первая в жизни попытка ручками распаковать прогу: notepad.gridinsoft.com После прочитывания пачки tutorials делал вот что:

1) PiD говорит что это asprotect 1.23

2) Olly ловит кучу исключений, последнее из которых на 0xDAA76A где видим вот что:

00DAA76A mov dword ptr ds:[eax],44D9AD1F
00DAA770 mov byte ptr ds:[10FDFEFA],al
00DAA775 lods byte ptr ds:[esi]
00DAA776 pop dword ptr fs:[0]
00DAA77C add esp,4
00DAA77F lea eax,dword ptr ds:[ecx+edx*2+7]
00DAA783 pop eax
00DAA784 mov eax,dword ptr ds:[DB9804]
00DAA789 mov eax,dword ptr ds:[eax]
00DAA78B mov ebp,dword ptr ds:[eax+1C]
..........................

3) этот блок отличается от описаного во всех tutorials....
4) поставил breakpoint на 0xDAA77C
5) по достижении 0xDAA77C убрал этот breakpoint и добавил "memory breakpoin on access" на главную

секцию (start=0x410000, size=0x317000)
6) попал в 0x7175f8 который похож на OEP
7) чуть позже исполняется 0x4076e4 что точно есть дельфийский код

Ну а теперь вопросы:
a) 0xDAA76A это кусок asprotect-a? Что он делает?
b) 0x7175f8 вроде самый первый application code. Это и есть origianl entry point? И его надо прописать в PE header-e&
c) зациклил, сделал dump LordPE, а как исправлять imports? ImpRec/Revirgin просто так на работают...

Спасибо.



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

Создано: 01 ноября 2005 08:23
· Личное сообщение · #2

http://www.exelab.ru/f/action=vthread&forum=1&topic=2707



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

Создано: 02 ноября 2005 05:50
· Личное сообщение · #3

s0larian пишет:
6) попал в 0x7175f8 который похож на OEP

Чем похож, какой- код? Как правило, прога начинается с push ebp или эмуляции этой команды.
s0larian пишет:
a) 0xDAA76A это кусок asprotect-a? Что он делает?

Это код аспра. Конечно можно разбираться построчно в этом коде - но зачем?
s0larian пишет:
0x7175f8 вроде самый первый application code. Это и есть origianl entry point?

Не обязательно. Как можно ответить не видя кода проги?
s0larian пишет:
c) зациклил, сделал dump LordPE, а как исправлять imports

Если в Олли - то не надо циклить. Что касается импорта, то смотри по форуму, как его восстанавливать в аспре. Писать слишком много.




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

Создано: 02 ноября 2005 08:38
· Личное сообщение · #4

tar4 пишет:
Чем похож, какой- код? Как правило, прога начинается с push ebp или эмуляции этой команды.

007175F8 push ebp
007175F9 mov ebp, esp
007175FB mov ecx, 5
00717600 push 0
00717602 push 0
00717604 dec ecx
00717605 jnz short loc_717600
00717607 push ebx
00717608 mov eax, offset dword_7168B8
0071760D call sub_4076E4
00717612 xor eax, eax
00717614 push ebp
00717615 push offset loc_717772
0071761A push dword ptr fs:[eax]
0071761D mov fs:[eax], esp
00717620 mov eax, ds:dword_724204
00717625 mov eax, [eax]
00717627 call sub_493A64
0071762C call sub_402C44
00717631 dec eax
00717632 jnz loc_717706
00717638 lea edx, [ebp+var_14]
0071763B mov eax, 1
00717640 call sub_402CA4
00717645 mov eax, [ebp+var_14]
00717648 mov edx, offset aUninstallgridi ; "/uninstallgridinsoft"
...........

Функция начинает разбирать command line arguments - логично. Похоже на entry point. Единственное что странно так это адрес. Остальные функции находятся в начале секции: sub_4076E4, sub_402C44....



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 02 ноября 2005 11:03
· Личное сообщение · #5

s0larian
Я смотрел последнюю версию с сайта -
0071916C PUSH EBP
0071916D MOV EBP,ESP
0071916F MOV ECX,5
00719174 PUSH 0
00719176 PUSH 0
00719178 DEC ECX
00719179 JNZ SHORT gsnote3.00719174
0071917B PUSH EBX
0071917C MOV EAX,gsnote3.00718424
00719181 CALL gsnote3.00407704
00719186 XOR EAX,EAX
00719188 PUSH EBP
00719189 PUSH gsnote3.007192E6
0071918E PUSH DWORD PTR FS:[EAX]
00719191 MOV DWORD PTR FS:[EAX],ESP
00719194 MOV EAX,DWORD PTR DS:[726204]
00719199 MOV EAX,DWORD PTR DS:[EAX]
0071919B CALL gsnote3.00493A2C
007191A0 CALL gsnote3.00402C44
007191A5 DEC EAX
007191A6 JNZ gsnote3.0071927A
007191AC LEA EDX,DWORD PTR SS:[EBP-14]
007191AF MOV EAX,1
007191B4 CALL gsnote3.00402CA4
007191B9 MOV EAX,DWORD PTR SS:[EBP-14]
007191BC MOV EDX,gsnote3.007192FC ; ASCII "/uninstallgridinsoft"

Это оеп, причем не защищен. Каллы аспра - CALL 01030000
Секция кода имеет длину 00319000h,следовательно 00401000+00319000h = 0071A000 - т.е. OEP лежит в секции кода, всё верно. Судя по адресу последнего экспепшена имеешь дело с аспром версии 1.33 build 03.07

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels





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

Создано: 02 ноября 2005 12:09
· Личное сообщение · #6

Smon хм я почему то тут встал
007174C8 55 PUSH EBP
007174C9 8BEC MOV EBP,ESP
007174CB 83C4 F0 ADD ESP,-10
007174CE 53 PUSH EBX
007174CF 56 PUSH ESI
007174D0 57 PUSH EDI
007174D1 33C9 XOR ECX,ECX
007174D3 894D F0 MOV DWORD PTR SS:[EBP-10],ECX
007174D6 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
007174D9 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
007174DC 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
007174DF E8 90DECEFF CALL gsnote3.00405374
007174E4 33C0 XOR EAX,EAX
007174E6 55 PUSH EBP
007174E7 68 54757100 PUSH gsnote3.00717554
007174EC 64:FF30 PUSH DWORD PTR FS:[EAX]
007174EF 64:8920 MOV DWORD PTR FS:[EAX],ESP
007174F2 C745 F4 FFFFFFF>MOV DWORD PTR SS:[EBP-C],-1
007174F9 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
007174FC 8B40 08 MOV EAX,DWORD PTR DS:[EAX+8]
007174FF 8B10 MOV EDX,DWORD PTR DS:[EAX]
00717501 FF52 14 CALL DWORD PTR DS:[EDX+14]
00717504 8BF0 MOV ESI,EAX
00717506 4E DEC ESI
00717507 85F6 TEST ESI,ESI



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 02 ноября 2005 12:35
· Личное сообщение · #7

Z0oMiK
Эт ты удачно встал

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels





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

Создано: 04 ноября 2005 01:47
· Личное сообщение · #8

Ага, с OEP разобралить. А что это за мусор:

00407B7C call near ptr 1430004h

или вот

00407B84 call near ptr 1370004h

ASProtect API? Эту чушь придётся отрезать и отлаживать.... Кто-нить знает что вообще ASProtect предоставляет? Точнее что прога от него ожидает? ;)




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

Создано: 04 ноября 2005 03:56
· Личное сообщение · #9

вот ещё мусор:
00401360 -FF25 B0D27300 jmp dword ptr ds:[73D2B0] ; kernel32.CreateFileA

Olly делает symbol lookup по указателям - лепота. Картина проясняется.




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

Создано: 04 ноября 2005 04:37 · Поправил: s0larian
· Личное сообщение · #10

Хмм..... По идее, каждый переход такого типа находится в мелкой библиотечной функции, которая делает переход по адресу из import table. То есть, в
jmp dword ptr ds:[73D2B0]
73D2B0 это указатель который находится в IAT. Так?

Если так, то теперь мне надо понять где этот IAT начинается, где заканчивается. В памяти есть секция по адресу 73D000 размером 0x4000, в которой находятся эти указатели. Елки, а что делать дальше?




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

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

ОК, смотрю в Olly на этот IAT:
0073D1F4 7C91188A ntdll.RtlDeleteCriticalSection
0073D1F8 7C9010ED ntdll.RtlLeaveCriticalSection
0073D1FC 7C901005 ntdll.RtlEnterCriticalSection
0073D200 7C809FA1 kernel32.InitializeCriticalSection
0073D204 7C809B14 kernel32.VirtualFree
0073D208 7C809A81 kernel32.VirtualAlloc
0073D20C 7C80995D kernel32.LocalFree
0073D210 7C8099BD kernel32.LocalAlloc
0073D214 7C8092AC kernel32.GetTickCount
0073D218 1E5A5B73
0073D21C 7C8114AB kernel32.GetVersion
0073D220 2374811B
0073D224 7C809794 kernel32.InterlockedDecrement
...............
попадаются пробелы без имён функций с какими-то кривыми адресами...



Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 04 ноября 2005 11:36
· Личное сообщение · #12

s0larian
http://www.exelab.ru/art/arc4.php

-----
once you have tried it, you will never want anything else



 eXeL@B —› Протекторы —› ASProtect ручная распаковка
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати