逆向工程核心原理-2-运行时压缩测试


运行时压缩测试

运行时压缩器是针对PE文件而言的,可执行文件内部含有解压缩代码,文件在运行瞬间于内存中解压缩后执行。

压缩器

使用目的:

  • 缩减PE文件大小
  • 隐藏PE文件内部代码和资源

保护器

使用目的

  • 防止破解
  • 保护代码与资源

尤其游戏,防止你做外挂。

实验

就按照书上面给出的UPX压缩器做测试了。

具体的过程我是这么理解的,UPX给代码做了一个压缩,都放到.UPX1段中,加载入内存后,先运行.UPX1段中的解压缩代码,将文件中的压缩代码放到.UPX0段中。在解压缩过程完成后,跳转到源程序的执行入口执行程序。
UPX压缩后的结构对比

压缩前后的PEview

至于最后是否是还原成跟压缩前的程序一致(其他的代码段和结构等等),这我就有点不太清楚了。用debug工具调试,最后确实跳转到了程序入口,该入口与调试源程序的入口保持一致。

debug工具调试

通过观察内存中的数据,对比发现,解压缩之后程序没有包含原来.text中的IMPORT Hints/Names & DLL Names
IMPORT Hints/Names & DLL Names
内存中的数据对比


文章作者: 美食家李老叭
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 美食家李老叭 !
评论
  目录