UPack PE文件分析
UPack
UPack 是一个运行时压缩器,它会将PE文件打乱,使正常PE文件变形,从而让分析者摸不清头脑,另外,经过UPack压缩的PE文件会小很多
经过UPack压缩的PE文件
打开经过UPack压缩的PE文件,我们可以看到文件结构与普通PE文件大不一样(包括文件头,文件节区),如下图:

DOS头有,但是只有一个签名5A4D(MZ)
DOS存根没有了
看到00004550(PE)说明NT头有,但是这个NT头距离DOS头也太近了。。。
NT头的签名后面接着就是文件头(20个字节,offset:14~27)
文件头后面就是可选头,从文件头倒数第二个4字节,我们得到可选头的大小:0x148
如下图白色部分(未全部展示)即为可选头:

可选头在这里与普通PE文件的可选头也是不同的,普通PE可选头一般大小为E0,这里为148,为什么经过UPack压缩后的PE文件可选头会大一点?
主要是为UPack中使用的解码代码腾出空间,具体在哪个位置?
我们先来看看可选头中DATA DIRECTORY数组,找到该成员的上一个成员,如下图:

本文详细分析了经过UPack压缩的PE文件的结构变化,包括DOS头、NT头、可选头、节区头的异常特征。UPack通过扩大可选头并利用其空间存放解码代码,同时修改节区布局,使得原始PE文件在内存中解压缩后恢复正常。导入表和IAT的处理方式也体现了UPack的巧妙之处,确保了文件格式的合规性。
最低0.47元/天 解锁文章
1355

被折叠的 条评论
为什么被折叠?



