步骤1:
1、打开PEID软件,点击"File"选项卡下的"Open"按钮。
2、在弹出的对话框中,浏览并选择你要检查的.exe文件。
步骤2:
3、在PEID窗口中,找到并点击你想要检查的.exe文件。
步骤3:
4、在右侧窗格中,你会看到附加的壳信息,例如ASPack2.12。
步骤4:
5、下载ASPack的脱壳工具。
6、双击打开下载的脱壳工具。
7、找到并打开你想要脱壳的.exe文件。
步骤5:
8、导出脱壳后的文件,通常命名为unpacked.exe
。
解密(脱壳)技术的意义
软件脱壳,顾名思义,是对软件加壳的逆操作,将软件上存在的壳去掉,在一些计算机软件中也有专门负责保护软件不被非法修改或反编译的程序,它们一般是先于程序运行,拿到控制权,然后完成它们保护软件的任务,由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”。
解密技术的进步推动了当时的加密(加壳)技术的发展,LOCK95和BITLOK等所谓的“壳中带籽”加密程序纷纷出笼,真是各出奇谋,把小小的软盘也折腾的够辛苦的了,正在国内的加壳软件和脱壳软件较量得正火红的时候,国外的“壳”类软件早已经发展到像LZEXE、AINEXE、UCEXE和后来被很多人认识的WWPACK这种压缩壳了,这类软件说穿了其实就是一个标准的加壳软件,它把EXE文件压缩了以后,再在文件上加上一层在软件被执行的时候自动把文件解压缩的“壳”来达到压缩EXE文件的目的,这类软件也越来越多,PKEXE、AINEXE、UCEXE和后来被很多人认识的WWPACK都属于这类软件,但奇怪的是,当时我看不到一个国产的同类软件,过了一段时间,可能是国外淘汰了磁盘加密转向使用软件序列号的加密方法吧,保护EXE文件不被动态跟踪和静态反编译就显得非常重要了,所以专门实现这样功能的加壳程序便诞生了,MESS、CRACKSTOP、HACKSTOP、TRAP、UPS等等都是比较有名气的本类软件代表,还有到现在还是数一数二的,由台湾同胞所写的FSE,其实以我的观点来看,这样的软件才能算是正宗的加壳软件。
在以上这些加壳软件的不断升级较劲中,很多软件都把比较“极端”技术用了上去,因为在这个时候DOS已经可以说是给众高手们玩弄在股掌之间了,什么保护模式、反SICE、逆指令等等,在那段时间里发表的很多国外脱壳程序,根本就不能对付这么多的加壳大军,什么UPC、TEU等都纷纷成为必防的对象,成绩比较理想的就只有CUP386了,反观国内,这段时间里也没了这方面的“矛盾斗争”。
加壳软件门挥军直捣各处要岗重地,直到在中国遇到了TR这个铜墙铁壁以后,才纷纷败下阵来各谋对策,但这已经是一年多以后的事情了,我常想,如果TR能早两年“出生”的话,成就肯定比现在大得多,甚至盖过SICE也有可能,TR发表的时候WIN95的流行已经成为事实,DOS还有多少的空间,大家心里都清楚,但话又说回来,TR的确是个好软件,比起当年的RCOPY3有过之而无不及,同时也证明了我们中国的CRACK实力(虽然有点过时),这个时候,前面提到过的FSE凭借强大的实力也渐渐的浮出了水面,独领风骚,其时已经是1997年年底了,我也走完了学生“旅程”,工作后在CFIDO的CRACK区认识了Ding-Boy,不久CRACK区关了,我从此迷上了INTERNET,并于98年6月建起了一个专门介绍“壳”的站台,在这段时间里,各种“壳”类软件也在不段的升级换代,但都没什么太大的进展,差不多就是TR和众加壳软件的版本数字之争而已。
Android APP脱壳的本质
概念:
Android APP脱壳本质上是指对内存中处于解密状态的Dex的dump,不论是函数抽取、Dex2c还是vmp壳,首要做的就是对整体Dex的dump,然后再对脱壳下来的Dex进行修复。
步骤:
1、找到解密后的Dex文件的起始地址和大小:这是脱壳的核心步骤,只有准确地定位到解密后的Dex文件的起始地址和大小,才能成功dump下内存中的Dex。
2、正确的时间点:确保在正确的时机对APP进行脱壳,如果时机不对,可能会导致脱壳失败,或者即使成功,得到的Dex也可能只是密文。
关键要素:
Dex文件的起始地址和大小:只有准确地定位到解密后的Dex文件的起始地址和大小,才能成功dump下内存中的Dex。
脱壳时机:只有在正确的时机对APP进行脱壳,才能成功dump下明文状态的Dex。
注意事项:
加载Dex的方式多种多样:每种壳的实现都不一定相同,如果想实现一个通用的整体脱壳方法,就需要寻找一个壳绕不开的途径来实现。
通过以上步骤和注意事项,可以有效地对Android APP进行脱壳。