UPX查壳绕过

文章讲述了如何通过修改PE文件的特征码,尤其是UPX的节表名和头部信息,以及利用空闲节表区域添加新节,来绕过查壳软件的检测。通过改变入口点并添加加密代码,可以进一步防止被识别为UPX壳。这种方法可以让某些工具如Exeinfo_PE无法准确判断UPX的存在。
摘要由CSDN通过智能技术生成

绕过UPX查壳

一般市面上的查壳软件都是通过特征码进行识别的,虽然效率很高,但是 只要通过去除混淆特征码,那么就可以实现绕过查杀的目的。

特征码

就像PE文件都有MZ头一样,(MZ就算是PE文件的特征码)UPX也有自己的特征码

包括

  • UPX节表名

在这里插入图片描述

通过学习PE文件结构我们可以知道,
节表名在PE加载在内存中没有什么作用(起作用的主要还是VirtualAddress)
所以我们修改这里的节表名 对PE文件的运行没有影响
但 对于 UPX -d 这个自己的UPX解壳程序来说 他是通过检查PE的节表名来判断该文件是否有UPX壳
所以这里修改一下 就能让UPX自己无法完成脱壳
但是Exeinfo_PE还是可以查出来是UPX壳 甚至还有版本信息
这就是关于下面的几个特征码了
  • UPX头

在这里插入图片描述

这里是UPX头部,是通过Pack4()函数添加的,相关信息,各个字段所代表的属性 在上面已经列出
ExeinfoPE就是通过这读取到的UPX版本信息,记录的都是和UPX和文件的基本信息,包括文件大小,压缩等级...
替换这些信息也不会对PE文件的运行造成影响
但ExeinfoPE获取到的UPX版本信息就会有错误,比如将版本字段改为6666

在这里插入图片描述

但是仍然还有UPX壳的信息

来看下一个特征码

  • psuhad … 机器码(60 BE …)

在这里插入图片描述

这里的特征码是pushad的特征码,用作upx的loader

exeinfoPE就是通过查特征码表查的

在这里插入图片描述

改了这里以后 exeinfoPE还有是有疑似UPX的提示

在这里插入图片描述

还有什么捏 不到了

点一下Scan/t 提示 “3个节的结构 似乎是UPX”(口翻一下)

这里试一下再添加一个节

添加一个空节

<1>判断节表区域是否有空闲区域添加一个节表.APEX
<2>在节表中新增一个成员
	复制其中一个 比较省事 这里复制了upx1节
<3>修改PE头部中节的数量
	标准PE头 3-》4
<4>修改SizeOfImage的大小
	可选PE头 原有+内存偏移
<5>在原有的数据最后,新增一个节的数据(内存对齐的整数倍)
	直接00
<6>修正新增节表的属性
    //可以便增加边修改
    需要修改的节表属性
    	VirtualAddress(在内存中的偏移) = 上一个节表的VirtualAddress+上一个节表的(Misc在内存中的大小(内存对齐整数倍))	
    	PointerToRawData(在文件中的偏移)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rgT7vLf9-1682395066259)(C:\Users\86182\AppData\Roaming\Typora\typora-user-images\image-20230425112446297.png)]

可以看到显示了4个节,他就不知道是啥保护了,但是还有提示了有壳 试一下把入口改了

在新增节的位置添加跳转代码 并修改OEP–》0x2f000
在这里插入图片描述

虽然还有是提示有壳保护 但是 点击Scan/t他分析不出来是UPX了

在这里插入图片描述

后面还有能咋弄捏?不到了QAQ

这里由于妹有改什么特别的东西直接ESP定律就能手脱捏

手动加壳

再套一层 把upx的loader代码加密了 这应该就看不出了叭

还是新增一个节 用来保存解密upx的代码 同时修改OEP

这里和上面的一样

加密oep代码

010Editor进行异或0x10叭

在apex节添加解密代码

0042F000 | 60                       | pushad                                |保存一下现场
0042F001 | 90                       | nop                                   |
0042F002 | BF B0D34200              | mov edi,hello3.42D3B0                 | upx的解压缩
0042F007 | B9 90010000              | mov ecx,190                           | 异或长度
0042F00C | 80340F 10                | xor byte ptr ds:[edi+ecx],10          | 解密
0042F010 | 83F9 00                  | cmp ecx,0                             | 
0042F013 | 74 03                    | je hello3.42F018                      |
0042F015 | 49                       | dec ecx                               | ecx--
0042F016 | EB F4                    | jmp hello3.42F00C                     |
0042F018 | 61                       | popad                                 | 解压完成
0042F019 | E9 92E3FFFF              | jmp hello3.42D3B0                     | 跳回upx解压缩

程序能跑再exeinfoPE看一下 同样识别不出来UPX了
在这里插入图片描述

所以这也是一种绕过方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值