第8章 压缩与脱壳
第五节 脱壳高级篇
5、ASProtect保护
2、ASProtect v0.94b保护
英文原作:r!sc 《Almost Manual Unpacking (using Softice and Icedump)》 原作日期:6th febuary 2000 教程翻译: 看雪 翻译日期:2000年5月26日 声 明: 本文以r!sc的教程为基础,以自己的观点补充调整。
目标程序:aspack.exe . 231,424 . v 2.001 程序下载:AsPack(http://www.pediy.com/tutorial/chap8/Exercise/chap8-5-5-2.zip) 使用工具:Softice 4.05; ProcDump 1.6.2 Final; FrogsICE v0.43;Icedump 6.016
part1 . 理论知识
part2 . 分析原文件的PE头
part3 . 抓取import table
part4 . Dump整个程序并修正文件头
=part1===part1===part1===part1===part1===part1===part1===part1===part1===part1= 理论知识
这种被压缩或加密的PE文件,执行时,在内存中将会完全解压。其中import表在装载中也会被完全解压或解密(—攻击点)。其中抓取import表就很关键了,其具体位置,可用 Procdump分析文件头得到。然后,要跟踪程序完全解压后的跳到程序处的入口点,然后在内存里dump取程序的整个部分。将刚dump取的正确import表用十六进制工具粘贴到完全dump的程序,再 修正文件头,这样程序就可正常运行。
=part2===part2===part2===part2===part2===part2===part2===part2===part2===part2= 分析原文件的PE头
运行 Procdump,点击pe-editor按钮,选中ASPack.exe文件,我们想要得到程序解压后的尺寸,import表的地址和大小...幸运的是这个文件的每个块(section )都存在。
Size of image : 00079000 ; 这个PE文件执行时分配的内存空间。 Image Base : 00400000 ; 基址
.idata ;.idata包含其他外来DLL的函数及数据信息 Virtual Size : 00002000 ; idata在内存的尺寸 Virtual Offset : 00046000 ; idata的地址(+imagebase == 00446000)
.rdata Virtual Size : 00001000 Virtual Offset : 00049000
import表有可能在idata块或rdata块,到底在哪部分?看看它们的尺寸,我将马压在.idata ...
=part3===part3===part3===part3===part3===part3===part3===part3===part3===part3=
1 2 3 下一页 |