安全中国首页 > 文章中心 > 脱壳技术
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

ExeStealth 常用脱壳方法 + ExeStealth V2.72主程序脱壳

更新时间:2008-6-2 0:39:51
责任编辑:池天
热 点:

下载页面: http://www.webtoolmaster.com/    
软件语言   英文  
软件类型   国外软件 / 共享软件 / 加密工具  
应用平台   Win9x/NT/ME/2000/XP  
软件大小   342KB 
更新时间   2003-8-19 14:57:39  


【软件简介】:EXE Stealth 是一个功能非常强大的EXE可执行文件加密工具,程序支持CRC保护,API重定向,删除EXE文件头信息等功能,还可以为你的EXE可执行文件增加防止SmartCheck,Softice,IDag等跟踪调试工具跟踪破解的功能!  

【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! 

【调试环境】:WinXP、Ollydbg1.09、PEiD、LordPE、ImportREC 

—————————————————————————————————  
【脱壳过程】: 
     
       

偶只是说 ExeStealth“常用”脱壳方法,没有说通用,呵呵,其实偶用这种方法脱掉了所有偶所碰到的ExeStealth加壳程序。下面举了三个例子:1个单纯ExeStealth V2.72加壳、1个伪装的ExeStealth壳、1个ExeStealth V2.72 + ASPack 2.12加壳程序。有兴趣的兄弟再自己验证吧。 第4个例子直捣黄龙:脱了ExeStealth V2.72的ExeStealth2.exe主程序。 

设置Ollydbg忽略所有的异常选项。用Ollydbg手动脱壳,老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。载入后弹出“是压缩代码——要继续进行分析吗?”,点“否”。 
————————————————————————————————— 
一、例子    试炼品:用ExeStealth V2.72加壳的Win98的Notepad 


加壳选项:CRC protect、API Redirection、Erase Import Information、Anti Prozess Dumping、Anti-SmartCheck、Anti-SoftIce、Anti-Idag 


0040D060     EB 00                jmp short Notepad.0040D062 //进入OD后停在这! 
0040D062     EB 2F                jmp short Notepad.0040D093 

下断:BP CloseHandle 

77E57963     64:A1 18000000       mov eax,dword ptr fs:[18] //断在这!取消断点 Ctrl+F9执行到返回 
77E57969     8B48 30              mov ecx,dword ptr ds:[eax+30] 
77E5796C     8B4424 04            mov eax,dword ptr ss:[esp+4] 
77E57970     83F8 F4              cmp eax,-0C 
77E57973     0F84 4CB4FFFF        je kernel32.77E52DC5 
77E57979     83F8 F5              cmp eax,-0B 
77E5797C     0F84 38B4FFFF        je kernel32.77E52DBA 
77E57982     83F8 F6              cmp eax,-0A 
77E57985     0F84 0F500200        je kernel32.77E7C99A 
77E5798B     8BC8                 mov ecx,eax 
77E5798D     81E1 03000010        and ecx,10000003 
77E57993     83F9 03              cmp ecx,3 
77E57996     50                   push eax 
77E57997     0F84 26870000        je kernel32.77E600C3 
77E5799D     FF15 3C10E477        call dword ptr ds:[<&ntdll.NtClose>] 
77E579A3     85C0                 test eax,eax 
77E579A5     0F8C 02B4FFFF        jl kernel32.77E52DAD 
77E579AB     33C0                 xor eax,eax 
77E579AD     40                   inc eax 
77E579AE     C2 0400              retn 4  //返回到 0040D3B0 

0040D3B0     58                   pop eax 
0040D3B1     8B85 B62F4000        mov eax,dword ptr ss:[ebp+402FB6] 
0040D3B7     BB 01000000          mov ebx,1 
0040D3BC     E8 08000000          call Notepad.0040D3C9 
0040D3C1     8D85 F52B4000        lea eax,dword ptr ss:[ebp+402BF5] 
0040D3C7     50                   push eax 
0040D3C8     C3                   retn   //返回到 0040D49F 


0040D49F     8B9D B62F4000        mov ebx,dword ptr ss:[ebp+402FB6]   ; Notepad.00400000 
0040D4A5     039D BA2F4000        add ebx,dword ptr ss:[ebp+402FBA] 
                                  //EBX=00400000 + 000010CC=004010CC  这就是OEP值   
0040D4AB     C1CB 07              ror ebx,7 


OK,在4010CC内存处下 内存访问断点,F9运行,断在OEP处! 

004010CC     55                   push ebp  //在这儿用OllyDump插件直接DUMP 
004010CD     8BEC                 mov ebp,esp 
004010CF     83EC 44              sub esp,44 
004010D2     56                   push esi 
004010D3     FF15 E4634000        call dword ptr ds:[4063E4] 
004010D9     8BF0                 mov esi,eax 
004010DB     8A00                 mov al,byte ptr ds:[eax] 
004010DD     3C 22                cmp al,22 
004010DF     75 1B                jnz short 004010FC 


———————————————————————— 

运行ImportREC,选择这个进程。把OEP改为000010CC,点IT AutoSearch,点“Get Import”,用“追踪层次1”全部修复,FixDump,正常运行!  


————————————————————————————————— 
二、例子    试炼品:linson兄弟的伪装壳LiNSoN’s Unpack Me 0.1 


下载:http://tongtian.net/pediybbs/download.php?id=386 

用PEID或FI侦测会报出是Microsoft Visual C++ 6.0,呵呵,上了linson的当啦  这就是linson伪装代码的效果,相信这个方法会被一些新壳所采用以蒙蔽侦壳工具的! 

00405060     55                   push ebp //进入OD后停在这!这段代码是linson伪装的VC的入口方式 
00405061     8BEC                 mov ebp,esp 
00405063     6A FF                push -1 
00405065     68 45230100          push 12345 
0040506A     68 90780600          push 67890 
0040506F     64:A1 00000000       mov eax,dword ptr fs:[0] 
00405075     50                   push eax 
00405076     64:8925 00000000     mov dword ptr fs:[0],esp 
0040507D     83EC 44              sub esp,44 
00405080     53                   push ebx 
00405081     56                   push esi 
00405082     57                   push edi 
00405083     73 15                jnb short LZSunpac.0040509A 
00405085     72 13                jb short LZSunpac.0040509A 

0040509A     5F                   pop edi 
0040509B     5E                   pop esi 
0040509C     5B                   pop ebx 
0040509D     83C4 44              add esp,44 
004050A0     64:8B25 00000000     mov esp,dword ptr fs:[0] 
004050A7     83C4 0C              add esp,0C 
004050AA     8BE5                 mov esp,ebp 
004050AC     5D                   pop ebp 
004050AD     2BC0                 sub eax,eax 
004050AF     60                   pushad 
004050B0     E8 00000000          call LZSunpac.004050B5 
004050B5     5D                   pop ebp 
004050B6     81ED 421E4000        sub ebp,LZSunpac.00401E42 
004050BC     B9 7B090000          mov ecx,97B 
004050C1     8DBD 8A1E4000        lea edi,dword ptr ss:[ebp+401E8A] 
004050C7     8BF7                 mov esi,edi 
004050C9     AC                   lods byte ptr ds:[esi] 
004050CA     F9                   stc 
004050CB     90                   nop 
004050CC     C0C0 C5              rol al,0C5 
004050CF     02C1                 add al,cl 
004050D1     EB 01                jmp short LZSunpac.004050D4 
004050D4     FEC8                 dec al 
004050D6     34 F3                xor al,0F3 
004050D8     EB 01                jmp short LZSunpac.004050DB  //这里应是ExeStealth壳的入口 

004050DB     EB 01                jmp short LZSunpac.004050DE 

004050DE     2AC1                 sub al,cl 
004050E0     2C 99                sub al,99 
004050E2     2AC1                 sub al,cl 
004050E4     C0C0 01              rol al,1 
004050E7     2C 98                sub al,98 
004050E9     04 E2                add al,0E2 
004050EB     04 19                add al,19 
004050ED     C0C8 16              ror al,16 
004050F0     EB 01                jmp short LZSunpac.004050F3 

———————————————————————— 
障眼法对于手动脱壳是没有太大影响的。直接下断:BP CloseHandle 


77E57963     64:A1 18000000       mov eax,dword ptr fs:[18] //断在这!取消断点 Ctrl+F9执行到返回 

 
相关文章
一日一文章
 
一日一软件
一日一动画