首页
论坛
专栏
课程

ASProtect1.2x-1.3x脱壳

2005-7-20 09:45 17583

ASProtect1.2x-1.3x脱壳

2005-7-20 09:45
17583
【破解作者】 layper
【作者邮箱】 layper2002@yahoo.com.cn
【作者主页】 http://free4.e-168.cn/layper
【使用工具】 PEID,OD,LordPE,ImportREC
【破解平台】 Win9x/NT/2000/XP
【软件名称】 ABC Amber Excel Converter 1.20 多国语言
【下载地址】 http://www.onlinedown.net/soft/28806.htm
【软件简介】 ABC Amber Excel Converter是一个可以帮助你快速方便的将XLS文件 (MS Excel)很多格式(DBF,

CSV, XML, PDF, HTML, CHM, RTF, HLP, DOC等),方便你保存收藏,程序内置了对近50种语言的支持,其中包括

简体中文和繁体中文!

【软件大小】 1182KB

【加壳方式】 ASProtect 1.2x - 1.3x [已经注册] -> Alexey Solodovnikov
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】

OD载入,忽略所有异常,隐藏OD
00401000 >  68 01B05700     push abslogde.0057B001    ;停在入口处
00401005    E8 01000000     call abslogde.0040100B
0040100A    C3              retn

在命令行下:he GetModuleHandleA,Shift+F9运行两次后,清除硬件断点,Alt+F9返回到这里
00C094AC    85C0            test eax,eax                            ; kernel32.77E40000,返回这里

,F8单步,直到00C095D1
00C094AE    75 07           jnz short 00C094B7                      ;
00C094B0    53              push ebx
00C094B1    FF95 F0314400   call dword ptr ss:[ebp+4431F0]
00C094B7    8985 4D294400   mov dword ptr ss:[ebp+44294D],eax
00C094BD    C785 51294400 0>mov dword ptr ss:[ebp+442951],0
00C094C7    8B95 D8304400   mov edx,dword ptr ss:[ebp+4430D8]
00C094CD    8B06            mov eax,dword ptr ds:[esi]
00C094CF    85C0            test eax,eax
00C094D1    75 03           jnz short 00C094D6
00C094D3    8B46 10         mov eax,dword ptr ds:[esi+10]
00C094D6    03C2            add eax,edx
00C094D8    0385 51294400   add eax,dword ptr ss:[ebp+442951]
00C094DE    8B18            mov ebx,dword ptr ds:[eax]
00C094E0    8B7E 10         mov edi,dword ptr ds:[esi+10]
00C094E3    03FA            add edi,edx
00C094E5    03BD 51294400   add edi,dword ptr ss:[ebp+442951]
00C094EB    85DB            test ebx,ebx
00C094ED    0F84 A2000000   je 00C09595
00C094F3    F7C3 00000080   test ebx,80000000
00C094F9    75 04           jnz short 00C094FF
00C094FB    03DA            add ebx,edx
00C094FD    43              inc ebx
00C094FE    43              inc ebx
00C094FF    53              push ebx
00C09500    81E3 FFFFFF7F   and ebx,7FFFFFFF
00C09506    53              push ebx
00C09507    FFB5 4D294400   push dword ptr ss:[ebp+44294D]
00C0950D    FF95 E8314400   call dword ptr ss:[ebp+4431E8]
00C09513    85C0            test eax,eax
00C09515    5B              pop ebx
00C09516    75 6F           jnz short 00C09587
00C09518    F7C3 00000080   test ebx,80000000
00C0951E    75 19           jnz short 00C09539
00C09520    57              push edi
00C09521    8B46 0C         mov eax,dword ptr ds:[esi+C]
00C09524    0385 D8304400   add eax,dword ptr ss:[ebp+4430D8]
00C0952A    50              push eax
00C0952B    53              push ebx
00C0952C    8D85 53314400   lea eax,dword ptr ss:[ebp+443153]
00C09532    50              push eax
00C09533    57              push edi
00C09534    E9 99000000     jmp 00C095D2
00C09539    81E3 FFFFFF7F   and ebx,7FFFFFFF
00C0953F    8B85 DC304400   mov eax,dword ptr ss:[ebp+4430DC]
00C09545    3985 4D294400   cmp dword ptr ss:[ebp+44294D],eax
00C0954B    75 24           jnz short 00C09571
00C0954D    57              push edi
00C0954E    8BD3            mov edx,ebx
00C09550    4A              dec edx
00C09551    C1E2 02         shl edx,2
00C09554    8B9D 4D294400   mov ebx,dword ptr ss:[ebp+44294D]
00C0955A    8B7B 3C         mov edi,dword ptr ds:[ebx+3C]
00C0955D    8B7C3B 78       mov edi,dword ptr ds:[ebx+edi+78]
00C09561    035C3B 1C       add ebx,dword ptr ds:[ebx+edi+1C]
00C09565    8B0413          mov eax,dword ptr ds:[ebx+edx]
00C09568    0385 4D294400   add eax,dword ptr ss:[ebp+44294D]
00C0956E    5F              pop edi
00C0956F    EB 16           jmp short 00C09587
00C09571    57              push edi
00C09572    8B46 0C         mov eax,dword ptr ds:[esi+C]
00C09575    0385 D8304400   add eax,dword ptr ss:[ebp+4430D8]
00C0957B    50              push eax
00C0957C    53              push ebx
00C0957D    8D85 A4314400   lea eax,dword ptr ss:[ebp+4431A4]
00C09583    50              push eax
00C09584    57              push edi
00C09585    EB 4B           jmp short 00C095D2
00C09587    8907            mov dword ptr ds:[edi],eax
00C09589    8385 51294400 0>add dword ptr ss:[ebp+442951],4
00C09590  ^ E9 32FFFFFF     jmp 00C094C7
00C09595    8906            mov dword ptr ds:[esi],eax
00C09597    8946 0C         mov dword ptr ds:[esi+C],eax
00C0959A    8946 10         mov dword ptr ds:[esi+10],eax
00C0959D    83C6 14         add esi,14
00C095A0    8B95 D8304400   mov edx,dword ptr ss:[ebp+4430D8]
00C095A6  ^ E9 EBFEFFFF     jmp 00C09496
00C095AB    8B85 652A4400   mov eax,dword ptr ss:[ebp+442A65]
00C095B1    50              push eax
00C095B2    0385 D8304400   add eax,dword ptr ss:[ebp+4430D8]
00C095B8    5B              pop ebx
00C095B9    0BDB            or ebx,ebx
00C095BB    8985 112F4400   mov dword ptr ss:[ebp+442F11],eax
00C095C1    61              popad
00C095C2    75 08           jnz short 00C095CC
00C095C4    B8 01000000     mov eax,1
00C095C9    C2 0C00         retn 0C
00C095CC    68 00000000     push 0
00C095D1    C3              retn                              ;执行到这里

接下来是避开IAT加密
Ctrl+S 搜索命令序列:
mov edx,dword ptr ss:[ebp+C]
mov edx,dword ptr ds:[edx]
mov dword ptr ds:[edx],eax
刚开始我怎么也搜索不到,后来才发现第一次搜索时要选定整个区块,接着后面的搜索再把整个区块这里去掉

,不知是否是我机子的问题
搜索得以下四处,全部下断:
(1)
00BF58CF    8B55 0C         mov edx,dword ptr ss:[ebp+C]
00BF58D2    8B12            mov edx,dword ptr ds:[edx]
00BF58D4    8902            mov dword ptr ds:[edx],eax
(2)
00BF593F    8B55 0C         mov edx,dword ptr ss:[ebp+C]
00BF5942    8B12            mov edx,dword ptr ds:[edx]
00BF5944    8902            mov dword ptr ds:[edx],eax
(3)
00BF5953    8B55 0C         mov edx,dword ptr ss:[ebp+C]
00BF5956    8B12            mov edx,dword ptr ds:[edx]
00BF5958    8902            mov dword ptr ds:[edx],eax

(4)
00BF5961    8B55 0C         mov edx,dword ptr ss:[ebp+C]
00BF5964    8B12            mov edx,dword ptr ds:[edx]
00BF5966    8902            mov dword ptr ds:[edx],eax

Shift+F9运行,运行之后按顺序断在(1)(3)(4)三处,
00BF58CF    8B55 0C         mov edx,dword ptr ss:[ebp+C]      ;断在这里,取消断点
00BF58D2    8B12            mov edx,dword ptr ds:[edx]
00BF58D4    8902            mov dword ptr ds:[edx],eax         ;修改为mov dword ptr ds:[edx],ebx
寄存器ebx保存正确的函数,继续Shift+F9运行
00BF5953    8B55 0C         mov edx,dword ptr ss:[ebp+C]       ;断在这里,取消断点
00BF5956    8B12            mov edx,dword ptr ds:[edx]
00BF5958    8902            mov dword ptr ds:[edx],eax
Shift+F9继续运行
00BF595C    B8 B846BF00     mov eax,0BF46B8                      ;注意这里
00BF5961    8B55 0C         mov edx,dword ptr ss:[ebp+C]         ;断在这里,取消断点,F8走
00BF5964    8B12            mov edx,dword ptr ds:[edx]
00BF5966    8902            mov dword ptr ds:[edx],eax            ;走到这里,此时EAX=0BF46B8
Ctrl+G到达0BF46B8看看
00BF46B8    55              push ebp
00BF46B9    8BEC            mov ebp,esp
00BF46BB    8B55 0C         mov edx,dword ptr ss:[ebp+C]
00BF46BE    8B45 08         mov eax,dword ptr ss:[ebp+8]
00BF46C1    3B05 F823C000   cmp eax,dword ptr ds:[C023F8]
00BF46C7    75 09           jnz short 00BF46D2
00BF46C9    8B0495 F823C000 mov eax,dword ptr ds:[edx*4+C023F8]
00BF46D0    EB 07           jmp short 00BF46D9
00BF46D2    52              push edx
00BF46D3    50              push eax
00BF46D4    E8 2710FFFF     call 00BE5700                           ; jmp to

kernel32.GetProcAddress
00BF46D9    5D              pop ebp
00BF46DA    C2 0800         retn 8

原来是GetProcAddress,Ctrl+G到达00BE5700

00BE5700  - FF25 7852C000   jmp dword ptr ds:[C05278]               ; kernel32.GetProcAddress

在OD下方可以看到

ds:[00C05278]=77E5B332 (kernel32.GetProcAddress)

返回00BF5966,修改EAX的值为77E5B332

(二)Pre-Dip:用自己名字注册

到这里,我们要处理Pre-Dip完成注册,取消前面所有断点,重新设置OD,去掉OD的内存访问异常的钩选(即不

忽略内存访问异常)。
Shift+F9运行,注意堆栈中的变化,当第二次在堆栈中看到"W4kI2ABwYqk="硬盘指纹时,来到这里

00C00DE4    0172 00         add dword ptr ds:[edx],esi          ;来到这里
00C00DE7    6F              outs dx,dword ptr es:[edi]
00C00DE8    09D9            or ecx,ebx
00C00DEA    67:64:8F06 0000 pop dword ptr fs:[0]
00C00DF0    EB 01           jmp short 00C00DF3
00C00DF2    9A 83C404C1 D23>call far 31D2:C104C483
00C00DF9    BA 5A294100     mov edx,41295A
00C00DFE    5A              pop edx
00C00DFF    A1 9026C000     mov eax,dword ptr ds:[C02690]
00C00E04    C700 DD000000   mov dword ptr ds:[eax],0DD
00C00E0A    8B15 3C26C000   mov edx,dword ptr ds:[C0263C]
00C00E10    A1 8C26C000     mov eax,dword ptr ds:[C0268C]

堆栈处为
0012FF1C   0012FF2C  指针到下一个 SEH 记录
0012FF20   00C00CEF  SE 句柄
0012FF24   40E2D32B
0012FF28   00C50564  ASCII "W4kI2ABwYqk="
0012FF2C   0012FF80  指针到下一个 SEH 记录
0012FF30   00C0114C  SE 句柄

现在可以在内存查看处下断点了,Alt+M打开内存查看窗口,在00401000处下内存访问断点,Shift+F9运行来到

这里
004A3A00    8B4424 04       mov eax,dword ptr ss:[esp+4]            ;停在这里F8网下走
004A3A04    8B0D 38245000   mov ecx,dword ptr ds:[502438]
004A3A0A    85C9            test ecx,ecx
004A3A0C    A3 885B5100     mov dword ptr ds:[515B88],eax           ;走到这里,eax保存注册名的地

方,我们要注册,就要在这里对eax动手脚了
004A3A11    8B4424 08       mov eax,dword ptr ss:[esp+8]
004A3A15    A3 8C5B5100     mov dword ptr ds:[515B8C],eax
004A3A1A    7D 05           jge short abslogde.004A3A21
004A3A1C    A3 38245000     mov dword ptr ds:[502438],eax
004A3A21    C2 0800         retn 8

找一块空地写下名字,然后把004A3A0C处的EAX修改为你名字的地址就行了,我找了004D2FE4这里用laype注册

修改004A3A0C处的EAX=004D2FE4,处理完毕

查找OEP
刚才我们设置的内存访问断点继续保持有效,但重新设置OD,OD中的内存访问异常重新打上勾(忽略所有异常)

,Shift+F9运行多次,来到这里

00470B7D    6A 60           push 60                               ;停在这里,这里就是OEP了
00470B7F    68 C8374D00     push abslogde.004D37C8
00470B84    E8 77020000     call abslogde.00470E00
00470B89    BF 94000000     mov edi,94
00470B8E    8BC7            mov eax,edi
00470B90    E8 9B6F0000     call abslogde.00477B30
00470B95    8965 E8         mov dword ptr ss:[ebp-18],esp
00470B98    8BF4            mov esi,esp
00470B9A    893E            mov dword ptr ds:[esi],edi
00470B9C    56              push esi
00470B9D    FF15 E0324D00   call dword ptr ds:[4D32E0]              ; kernel32.GetVersionExA
00470BA3    8B4E 10         mov ecx,dword ptr ds:[esi+10]

不关闭OD,用LordPE完整脱壳保存为dumped,在用ImportREC抓取修复dumped
运行ImportREC,选择这个进程。
修改OEP=70B7D、自动搜索IAT,RAV=000D3000,大小=00000608,获取输入表显示全为真修复抓取dumped的

dumped_即为脱壳后的文件。

去除2个暗桩

试运行脱壳后的dumped_,这个软件有暗桩,我这里是用跟踪原程序来找暗桩
第一处:
004A3D5A   /74 1B           je short abslogde.004A3D77              ;这里是第一处
004A3D5C   |6A 10           push 10
004A3D5E   |68 70904E00     push abslogde.004E9070                  ; ASCII "Absolute Log

Analyzer"
004A3D63   |68 88904E00     push abslogde.004E9088                  ; ASCII "Failed to initialize

application"
004A3D68   |53              push ebx
004A3D69   |FF15 14344D00   call dword ptr ds:[4D3414]              ; user32.MessageBoxA

原程序004A3D5A这里为跳,而脱壳后的不跳,修改脱壳后的je为jmp,试运行,还有一个暗桩
第二处:
004C8A1C   /74 1E           je short abslogde.004C8A3C             ;这里为第二处
004C8A1E   |6A 10           push 10
004C8A20   |68 18934D00     push abslogde.004D9318                  ; ASCII "Absolute Log

Analyzer"
004C8A25   |68 30934D00     push abslogde.004D9330                  ; ASCII "CRC check failed.

Application corrupted.
Execution impossible."
004C8A2A   |6A 00           push 0
004C8A2C   |FF15 14344D00   call dword ptr ds:[4D3414]              ; user32.MessageBoxA

同样修改004C8A1C的je为jmp保存,脱壳成功。
呵呵,这篇参照了fly大侠的ASProtect V2.0 脱壳――Registry Clean Expert V3.52 UnPacked + 去除自检验,在此表示谢谢了。
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[公告][征集寄语] 看雪20周年年会 | 感恩有你,一路同行

最新回复 (42)
yygx 2005-7-20 12:52
2
0
经典!学习。
basaiyv1 2005-7-20 17:51
3
0
详细,晚上学习一下
dfui 2005-7-20 19:11
4
0
为什么我用LordPE完整脱壳保存为dumped 这个是不可执行的文件呢。就是用IMP修复后也是一个不可执行的文件为什么。迷茫中。
我的LORDPE为1.4版本
zbqy 2005-7-20 21:21
5
0
回家实践去
辛苦啦
hyd009 2005-7-21 00:27
6
0
经典!学习。
pendan2001 4 2005-7-21 11:00
7
0
wynney 24 2005-7-22 00:12
8
0
呵呵~搜索区段搜不到~。。
wynney 24 2005-7-22 00:31
9
0
ABC Amber Excel Converter 1.20 多国语言

按http://www.onlinedown.net/soft/28806.htm
下载到的是1.03,而且呢~壳是1.2的版本~

很好脱。。。。

我用google搜索不到真正的1.20版本。。。

晕`~不知道楼主这个过程是按哪个版本写出来的

如果是按你提供的哪个下载地址写的话~~那就搞“大”了~

呵呵~~
keroine 2005-7-22 18:06
10
0
怎么我在脱另外的一个东西的时候,也是搜索到
mov edx,dword ptr ss:[ebp+C]
mov edx,dword ptr ds:[edx]
mov dword ptr ds:[edx],eax
有4处,就是shift+f9到最后一个断点前就跳出一个ERRORD的提示框出来啊,这该怎么办才行了啊???
wynney 24 2005-7-23 18:17
11
0
楼主怎么都不出来给一个解释??
layper 9 2005-7-23 19:36
12
0
搜索一下这里的文章,多看看看雪五周年精华,里面基本上都讲有了,
wynney 24 2005-7-24 02:12
13
0
最初由 layper 发布
搜索一下这里的文章,多看看看雪五周年精华,里面基本上都讲有了,


现在不是我懂懂的问题~~

现在是你给的哪个下载地址的软件的ASPr壳的版本是1.2/1.2C的`~

1.2/1.2C的简单得不得了。。。

可是你现在说壳是1.2X-1.3X。。。

奇怪啊。。。
layper 9 2005-7-24 09:58
14
0
你试试脱看,是那种壳,我直接查PEID就是ASProtect 1.2x - 1.3x ,呵呵,现在我还属于菜鸟阶段
wynney 24 2005-7-24 10:11
15
0
最初由 layper 发布
你试试脱看,是那种壳,我直接查PEID就是ASProtect 1.2x - 1.3x ,呵呵,现在我还属于菜鸟阶段


呵呵~我已经脱好了~~动画也完成了~~看看我们谈的到底是那里有出入了。。
kisony 2005-7-24 12:12
16
0
这个壳有点难度哦
keroine 2005-7-24 12:42
17
0
希望能看到更高版本的asprotect的脱壳文章
dchong 2005-7-24 17:34
18
0
这个壳脱掉了,但对更高版本的壳还是没有办法,希望看到更高版本的例子.
sassy 2005-7-25 01:14
19
0
最初由 keroine 发布
怎么我在脱另外的一个东西的时候,也是搜索到
mov edx,dword ptr ss:[ebp+C]
mov edx,dword ptr ds:[edx]
mov dword ptr ds:[edx],eax
有4处,就是shift+f9到最后一个断点前就跳出一个ERRORD的提示框出来啊,这该怎么办才行了啊???


我也是这样?该如何解决?
sassy 2005-7-25 01:16
20
0
错误内容如下:
OS: Windows 2000 Professional, SP4
CPU: GenuineIntel, Intel Pentium 4, MMX @ 1500 MHz

Application data:
VmVyc2lvbjogYUUxcmJHZ3ZKRFVyTmpjTERUVW1PVGdwYUg5aVoyZ3N
QVDRnUHp3dlFuVjlkSE5oZGowPQ0KSW1hZ2VCYXNlOiAwMDQwMDAwMA
0KLTENCkNvZGUgPSBbMjEwXQ0KLSAxNDQNCi0gMjA5DQotIDIyNw0KL
SAwDQotIFtdDQo+IEU6XFRvb2xzXGlMaW5rIDEuM1xpTGluay5leGUN
Cg0KUFA5NjguQ09NDQppTGluaw0KMS4zLjEuMA0KaUxpbmsNClBQOTY
4LkNPTSCw5sioy/nT0A0KaUxpbmsuZXhlDQoxLjMuMS4wDQppTGluaw
0KDQo+IEM6XFdJTk5UXHN5c3RlbTMyXG50ZGxsLmRsbA0KPiBDOlxXS
U5OVFxzeXN0ZW0zMlxrZXJuZWwzMi5kbGwNCj4gQzpcV0lOTlRcc3lz
dGVtMzJcdXNlcjMyLmRsbA0KPiBDOlxXSU5OVFxzeXN0ZW0zMlxHREk
zMi5kbGwNCj4gQzpcV0lOTlRcc3lzdGVtMzJcYWR2YXBpMzIuZGxsDQ
o+IEM6XFdJTk5UXHN5c3RlbTMyXFJQQ1JUNC5ETEwNCj4gQzpcV0lOT
lRcc3lzdGVtMzJcb2xlYXV0MzIuZGxsDQo+IEM6XFdJTk5UXHN5c3Rl
bTMyXG9sZTMyLmRsbA0KPiBFOlxUb29sc1xpTGluayAxLjNcYm9ybG5
kbW0uZGxsDQoNCkJvcmxhbmQgU29mdHdhcmUgQ29ycG9yYXRpb24NCk
JvcmxhbmQgTWVtb3J5IE1hbmFnZXINCjYuMC42LjE2Mw0KQm9ybG5kb
W0NCkNvcHlyaWdodCA/IDE5OTYsMjAwMSBCb3JsYW5kIFNvZnR3YXJl
IENvcnBvcmF0aW9uDQpCb3JsbmRtbS5EbGwNCjYuMA0KQm9ybGFuZCB
NZW1vcnkgTWFuYWdlcg0KDQo+IEM6XFdJTk5UXHN5c3RlbTMyXHZlcn
Npb24uZGxsDQo+IEM6XFdJTk5UXHN5c3RlbTMyXExaMzIuRExMDQo+I
EM6XFdJTk5UXHN5c3RlbTMyXGNvbWN0bDMyLmRsbA0KPiBDOlxXSU5O
VFxzeXN0ZW0zMlxpbW0zMi5kbGwNCj4gQzpcV0lOTlRcc3lzdGVtMzJ
cd2luc3Bvb2wuZHJ2DQo+IEM6XFdJTk5UXHN5c3RlbTMyXE1QUi5ETE
wNCj4gQzpcV0lOTlRcc3lzdGVtMzJcc2hlbGwzMi5kbGwNCj4gQzpcV
0lOTlRcc3lzdGVtMzJcU0hMV0FQSS5kbGwNCj4gQzpcV0lOTlRcc3lz
dGVtMzJcbXN2Y3J0LmRsbA0KPiBDOlxXSU5OVFxzeXN0ZW0zMlxjb21
kbGczMi5kbGwNCj4gQzpcV0lOTlRcc3lzdGVtMzJcd2lubW0uZGxsDQ
o+IEM6XFdJTk5UXHN5c3RlbTMyXHdzb2NrMzIuZGxsDQo+IEM6XFdJT
k5UXHN5c3RlbTMyXFdTMl8zMi5ETEwNCj4gQzpcV0lOTlRcc3lzdGVt
MzJcV1MySEVMUC5ETEwNCj4gQzpcV0lOTlRcc3lzdGVtMzJccXVhcnR
6LmRsbA0KPiBDOlxXSU5OVFxzeXN0ZW0zMlxMUEsuRExMDQo+IEM6XF
dJTk5UXHN5c3RlbTMyXFVTUDEwLmRsbA0KPiBDOlxXSU5OVFxzeXN0Z
W0zMlxJTkRJQ0RMTC5kbGw=
酷酷 2005-7-25 11:02
21
0
不晓得是不是我的RP出了问题

mov edx,dword ptr ss:[ebp+C]
mov edx,dword ptr ds:[edx]
mov dword ptr ds:[edx],eax

怎么搜也搜不到
后来逼急了,把这三条语句分开一条一条的找,还是米有...
xiaoweishu 2005-7-26 21:30
22
0
牛啊
呵呵 学习
rickynph 2005-7-26 23:03
23
0
辛苦啦!!
jnfgzg 2005-7-27 19:18
24
0
谢谢楼主,你幸苦了
xy2000 1 2005-7-28 08:56
25
0
我比较郁闷,也是在脱这样的一个壳,可是F8总是到不了retn这里,真是让人头大.
Ivanov 2005-7-28 09:33
26
0
最初由 xy2000 发布
我比较郁闷,也是在脱这样的一个壳,可是F8总是到不了retn这里,真是让人头大.


哈哈,我算是解脱了,将系统都换成 RHEL了.
我正找你呢, 我将帐号\密码都弄没了,你上m s n 给我,我来换3.5
夜凉如水 3 2005-7-31 13:35
27
0
这个 已经搞定了, RETN的地方 直接F4就能过来 。XY你在下断点的时候返回时机好象不对吧
123123 2005-8-1 14:34
28
0
ASProtect 1.2x - 1.3x [Registered] -> 的壳未搞定。按照楼主的例子做了下。
Shift+F9运行,运行之后按顺序断在(1)(3)(4)三处,
00BF58CF    8B55 0C         mov edx,dword ptr ss:[ebp+C]      ;断在这里,取消断点
00BF58D2    8B12            mov edx,dword ptr ds:[edx]
00BF58D4    8902            mov dword ptr ds:[edx],eax         ;修改为mov dword ptr ds:[edx],ebx
寄存器ebx保存正确的函数,继续Shift+F9运行
00BF5953    8B55 0C         mov edx,dword ptr ss:[ebp+C]       ;断在这里,取消断点
00BF5956    8B12            mov edx,dword ptr ds:[edx]
00BF5958    8902            mov dword ptr ds:[edx],eax
{Shift+F9继续运行
00BF595C    B8 B846BF00     mov eax,0BF46B8                      ;注意这里
00BF5961    8B55 0C         mov edx,dword ptr ss:[ebp+C]         ;断在这里,取消断点,F8走
00BF5964    8B12            mov edx,dword ptr ds:[edx]
00BF5966    8902            mov dword ptr ds:[edx],eax            ;走到这里,此时EAX=0BF46B8}
到这里时,大括号内的第四步就走不到了。如果忽略内存异常即出错。像楼上那位朋友一样程序ERROR,如果不忽略内存异常就会出现不可向下运行的情况。之前的步骤完全可以跟的上。不知道何种原因。
aki 2 2005-8-8 13:51
29
0
由于要脱一个bt的asprotect2.0,顺便看了下这个.这个2.0应该是比较简单的版本了,不知软件版本不对,我脱这个2.0的时候,稍微有些出入.
一:搜索iat写入语句的时候,不能按三句搜,这个版本应该是两句,即
00C0F4DA    8B17              mov edx,dword ptr ds:[edi]
00C0F4DC    8902              mov dword ptr ds:[edx],eax

二:关于iat的加密,真正的api地址不再放在ebx里.可能是作者放水,这个的iat解密也很简单
在搜索出的第一处
00C0F4D0    E8 17FCFFFF       call 00C0F0EC  解密出api地址,放进eax
00C0F4D5    E8 7EFEFFFF       call 00C0F358  加密
00C0F4DA    8B17              mov edx,dword ptr ds:[edi]
00C0F4DC    8902              mov dword ptr ds:[edx],eax 写入加密后的地址

所以简单的方法就是nop掉00C0F4D5 一句,这样就可以得到完整的iat,当然,除了那个第四处特殊处理的GetProcAddress
这样解密出iat后,后面的修复就简单了.
当然,这个应该是个标准的放水版本,我脱了个ASProtect2.0的,好多api都被hook了,费了好大劲才弄出来.脱壳可真是体力活...唉
raolan 2005-8-8 22:35
30
0
经典...对我们小鸟们来说实用极了.希望大鸟们多写写.
raolan 2005-8-9 02:41
31
0
不知道楼主的下命令he GetModuleHandleA是什么意思?大家可不可以帮忙解释下
!怎么才可以实现下命令?
sk163 2005-8-15 03:05
32
0
我跟着步骤走也是出错啊~~
Shift+F9运行,运行之后按顺序断在(4)处之前

OS: Windows XP Professional, SP2
CPU: AuthenticAMD, AMD AMD Athlon(tm) XP 1800+, MMX @ 1550 MHz

Application data:
VmVyc2lvbjogdE5uVTljWEdLQ1EzS3paSENnMDZKamc0S21oK1ltQm9
MVDA5SUQ0OE1FSjBmWGR6WUhZNg0KSW1hZ2VCYXNlOiAwMDQwMDAwMA
0KLTENCkNvZGUgPSBbMjEwXQ0KLSAxMzINCi0gMjA5DQotIDIyNw0KL
SAwDQotIFtdDQo+IEQ6XGFzZGFzZGFzZGFzZFxxcWRkejJctdjW98bF
Mi4wQS5FWEUNCg0KtdjW98bFuaTX98rSDQq12Nb3xsUyLjBBDQoyLjA
uMC4xDQoyLjBBDQq12Nb3xsUyLjBBUVG2t7XY1ve8x8XGxvcNCg0KPi
BDOlxXSU5ET1dTXHN5c3RlbTMyXG50ZGxsLmRsbA0KPiBDOlxXSU5ET
1dTXHN5c3RlbTMyXGtlcm5lbDMyLmRsbA0KPiBDOlxXSU5ET1dTXHN5
c3RlbTMyXHVzZXIzMi5kbGwNCj4gQzpcV0lORE9XU1xzeXN0ZW0zMlx
HREkzMi5kbGwNCj4gQzpcV0lORE9XU1xzeXN0ZW0zMlxhZHZhcGkzMi
5kbGwNCj4gQzpcV0lORE9XU1xzeXN0ZW0zMlxSUENSVDQuZGxsDQo+I
EM6XFdJTkRPV1Ncc3lzdGVtMzJcb2xlYXV0MzIuZGxsDQo+IEM6XFdJ
TkRPV1Ncc3lzdGVtMzJcbXN2Y3J0LmRsbA0KPiBDOlxXSU5ET1dTXHN
5c3RlbTMyXG9sZTMyLmRsbA0KPiBDOlxXSU5ET1dTXHN5c3RlbTMyXH
ZlcnNpb24uZGxsDQo+IEM6XFdJTkRPV1Ncc3lzdGVtMzJcY29tY3RsM
zIuZGxsDQo+IEM6XFdJTkRPV1Ncc3lzdGVtMzJcd3NvY2szMi5kbGwN
Cj4gQzpcV0lORE9XU1xzeXN0ZW0zMlxXUzJfMzIuZGxsDQo+IEM6XFd
JTkRPV1Ncc3lzdGVtMzJcV1MySEVMUC5kbGwNCj4gQzpcV0lORE9XU1
xzeXN0ZW0zMlxJTU0zMi5ETEwNCj4gQzpcV0lORE9XU1xzeXN0ZW0zM
lxMUEsuRExMDQo+IEM6XFdJTkRPV1Ncc3lzdGVtMzJcVVNQMTAuZGxs
DQo+IEM6XFdJTkRPV1Ncc3lzdGVtMzJcdXh0aGVtZS5kbGwNCj4gQzp
cV0lORE9XU1xzeXN0ZW0zMlxtc2N0ZmltZS5pbWU=
yunfeng 1 2005-8-16 09:45
33
0
最初由 keroine 发布
怎么我在脱另外的一个东西的时候,也是搜索到
mov edx,dword ptr ss:[ebp+C]
mov edx,dword ptr ds:[edx]
mov dword ptr ds:[edx],eax
有4处,就是shift+f9到最后一个断点前就跳出一个ERRORD的提示框出来啊,这该怎么办才行了啊???


这个问题在我调试的时候也碰到过,到现在也不知道如何解决这个问题。
lnn1123 13 2005-8-16 11:58
34
0
最初由 sassy 发布


我也是这样?该如何解决?

同样的问题,请帮忙看看是什么问题
yuewei 2005-8-24 01:06
35
0
我想请问楼主或者大家!
我的CPU是64 AMD
OS WINDWS XP SP1

我完全按照楼主说的做了,但在OD显示的和你上面写的完全不一样!
我花了2天的时间下很多录象教程,教程自带带壳程序!每个录象我看了至少3遍以上,然后按照录象一步一步做!但是显示在OD上的和录象上完全不同,让我无从下手学习!
我就有点疑问,是不是32位的程序在64位CPU上运行就会和在32位CPU上运行不一样吗?
大家有知道的请说说!谢谢!
xiangding 2005-8-24 17:49
36
0
我在那四个搜索中,第二个断点就报error了。。
yuewei 2005-9-2 16:02
37
0
这个脱问脱的壳是放水版本的吧!
为什么大家都脱不了呢?
逍遥散人 2005-9-3 10:47
38
0
"在命令行下:he GetModuleHandleA,Shift+F9运行两次后"?怎么“在命令行下”?
wynney 24 2005-9-3 11:01
39
0
哎。。。这张帖子摆在这里有点“误人子弟”
夜凉如水 3 2005-9-3 19:12
40
0
不加评论了!!!
layper 9 2005-9-4 09:08
41
0
那就请斑竹删了这贴吧,呵呵,我是菜鸟水平不高,时间也不多.如果对大家有影响说声sorry.
壳向前发展的,脱壳也是要向前发展的,不是人人都能什么壳都能脱的,什么问题都能解决的(象我这样的菜鸟来说,更为艰辛),希望谅解.
再次sorry.
csknit 2005-9-5 16:04
42
0
理解万岁!!!
fly 85 2005-9-5 16:37
43
0
最初由 layper 发布
那就请斑竹删了这贴吧,呵呵,我是菜鸟水平不高,时间也不多.如果对大家有影响说声sorry.
壳向前发展的,脱壳也是要向前发展的,不是人人都能什么壳都能脱的,什么问题都能解决的(象我这样的菜鸟来说,更为艰辛),希望谅解.
再次sorry.


不必如此
不同版本壳的脱壳方法会有差别
甚至相同版本因为选项不同,脱壳流程也会不同

TO Other:
不要希望别人能给你万能的脱壳方法
别人的路只能给你参考
你需要走你自己的路
游客
登录 | 注册 方可回帖
返回