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

The Armadillo Software Protection System Version2.51 full unpack cracked by zombieys(1千字)

更新时间:2008-5-15 0:44:27
责任编辑:流火
热 点:
Program          : The Armadillo Software Protection System Version2.51 
Type            : Software Protection System 
OS              : Win9x/Me/2k 
Protection      : Armadillo? 
Homepage        : http://www.siliconrealms.com/ 
Download        : http://mud.sz.jsinfo.net/per/aaron/files/protectors/win/armd250.zip 


Cracked by      : zombieys[CCG] 
Release type    : full unpack cracked 
Release date    : Apr 13,2002 
Release name    : cr-Armadillo251.exe (749,568 bytes) 
Release Download : http://www.fuluck.com/newpage/cr-Armadillo251.rar 


技术参考: 
The Armadillo Software Protection System 
Version 2.51 

(1)找入口: 
  bpx VirtualProtect,在最后一次被中断后,按大约2次f12返回Armadillo领空,按f10带过一个call,在下一个call进入,继续按f10走到call edi处,edi里存放的就是入口地址 

(2)脱壳 
  
  请参考Hying[CCG]老大的原文 

  首先一点是Armadillo是通过类似于调试的方法来运行程序的。 
新版本Armadillo脱壳的一个难点是它的代码段是分页解密的,我估计它的做法是将代码段锁定,即将其属性设为不可读、写、执行,当被执行到时会产生一个页面保护错误,而调试程序就会捕获这个错误,将对应的页面解锁并解密,然后返回执行。 
要对它脱壳的话可以考虑这样做,编一个小程序,如下: 
push    PAGE_READWRITE 
push    MEM_COMMIT 
push    100000h        <-申请内存的大小,可大一点。 
push    0 
call    VirtualAlloc    <-申请内存 
mov    edi,eax 
mov    ecx,????    <-文件映象大小减1000h 
mov    esi,401000h    <-基址加1000h,有的程序不是这个值 
rep  movsb 
push    80000000h 
call    Sleep 
在原程序中找个空间,尽量不要在代码段范围内,将着这段程序放进去,然后执行它,执行完后,你申请到的内存中就放的是解密后的程序,只要DUMP出来,再加一个可用的文件头,再修复输入表什么的就可以执行了。 

zombieys[CCG] 
2002.04.13 

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