1.
查壳:用PEiD v0.92查出是:
UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo [Overlay]
用OD 载入如下:
00465090 > 60 pushad '壳的入口
00465091 BE 00104400 mov esi,regtools.00441000
00465096 8DBE 0000FCFF lea edi,dword ptr ds:[esi+FFFC000>
0046509C C787 B0F40400 2>mov dword ptr ds:[edi+4F4B0],4012>
004650A6 57 push edi
004650A7 83CD FF or ebp,FFFFFFFF
004650AA EB 0E jmp short regtools.004650BA
004650AC 90 nop
004650AD 90 nop
004650AE 90 nop
004650AF 90 nop
004650B0 8A06 mov al,byte ptr ds:[esi]
按F8一下后:
00465091 BE 00104400 mov esi,regtools.00441000
这时的寄存器:
EAX 00000000
ECX 0012FFB0
EDX 7FFE0304
EBX 7FFDF000
ESP 0012FFA4 ‘ESP 0012FFA4
EBP 0012FFF0
ESI 77F57D70 ntdll.77F57D70
EDI 77F944A8 ntdll.77F944A8
EIP 00465091 regtools.00465091
在Command中下 dd 12FFA4 回车
设置硬件访问断点----WORD
按F9运行
004651E7 ^\E9 847FFEFF jmp regtools.0044D170 ’重要部分找到OEP
004651EC 04 52 add al,52
004651EE 46 inc esi
004651EF 000C52 add byte ptr ds:[edx+edx*2],cl
004651F2 46 inc esi
004651F3 00B0 04450000 add byte ptr ds:[eax+4504],dh
004651F9 0000 add byte ptr ds:[eax],al
004651FB 0000 add byte ptr ds:[eax],al
004651FD 0000 add byte ptr ds:[eax],al
004651FF 0000 add byte ptr ds:[eax],al
00465201 0000 add byte ptr ds:[eax],al
00465203 0000 add byte ptr ds:[eax],al
.....
按F8一次:
0044D170 55 push ebp ,在此脱壳
0044D171 8BEC mov ebp,esp
0044D173 83C4 F4 add esp,-0C
0044D176 B8 28D04400 mov eax,regtools.0044D028
0044D17B E8 8485FBFF call regtools.00405704
0044D180 A1 64F84400 mov eax,dword ptr ds:[44F864]
0044D185 8B00 mov eax,dword ptr ds:[eax]
0044D187 E8 78D7FDFF call regtools.0042A904
0044D18C 8B0D FCF84400 mov ecx,dword ptr ds:[44F8FC] ; regtools.004507D0
0044D192 A1 64F84400 mov eax,dword ptr ds:[44F864]
0044D197 8B00 mov eax,dword ptr ds:[eax]
0044D199 8B15 7CB04400 mov edx,dword ptr ds:[44B07C] ; regtools.0044B0BC
0044D19F E8 78D7FDFF call regtools.0042A91C
。。。。
脱壳成功后查Delphi编写不在有壳了,但是程序不能运行,修复一下
用ImportREC
改OEP为:4D170-----点自动搜索IAT----获取输入表 ----修复抓取文件
此过成中都正确啊
但是程序还是不能运行,我又试了一下重建PE结构,成功后还是不能正常运行,,
我不只什么原因,请FLY 等高手指点
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!