首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >蓝队的噩梦,让PE保持隐形

蓝队的噩梦,让PE保持隐形

原创
作者头像
白帽子安全笔记
发布2025-06-26 14:26:20
发布2025-06-26 14:26:20
1430
举报

白加黑组装完成后,由于DLL不具备有效数字签名,容易成为逆向工程分析的对象。现在,我们需要对其进行处理让其保持隐形

封面设计
封面设计

一、问题分析

使用visual studio编译后,DLL容易被分析,主要体现在以下几点,

1.编程语言,编译时间暴露
2.导入表可见,容易被分析

现在,我们需要清除时间清除标头摧毁导入表,使其难以分析。

二、PE强化

首先,我们需要针对DLL进行核心保护,也就是加壳,我们采用知名软件themida,其强大的代码虚拟化技术可以实现这一点:

拖入编译好的DLL至themida,保护选项我们不需要,我们只需核心的代码虚拟化即可,选择一个强度较高的虚拟机名称,确保加壳后程序依然免杀。

加壳后的程序
加壳后的程序

现在,我们的程序已经进行了保护代码段哈希值已改变,所有字符串已混淆,导入表全部摧毁。

加壳后的程序
加壳后的程序
IDA无法分析
IDA无法分析

"导入表段似乎已被破坏。这可能意味着文件已被加壳或修改,以增加分析难度。如果您希望查看原始形式的导入表段,请取消勾选‘创建导入表段’(make imports section)复选框后重新加载文件。"

但从静态上看,Rich Header未消除,节区名称存在themida壳特征,以及时间戳未消除。

加壳遗留问题
加壳遗留问题

Rich Header它主要用于记录编译环境信息(如编译器版本、编译次数等),在恶意软件分析和软件溯源中具有重要价值。

接下来,我们将使用另一个工具修补这一点,它将清除时间戳,擦除Rich Header,以及擦除节区名称,完成后:

清除时间戳,破坏编译指纹
清除时间戳,破坏编译指纹
擦除节区名称
擦除节区名称

三、结论

现在,我们在编译的基础上,使用了2个工具将DLL进行了内部和外部的保护,获得了几个保护后的DLL。经过测试,各大杀软均无法检测。

windows defender
windows defender
X60安全卫士
X60安全卫士
火绒安全
火绒安全

这些工具将在白加黑项目中携带。

四、免责声明

本文涉及方案仅限合法授权的安全研究、渗透测试用途,使用者须确保符合《网络安全法》及相关法规。具体条款如下:

  • 仅可用于已获得书面授权的目标系统测试;
  • 遵守法律法规,不得用于侵犯他人隐私或数据窃取;

本人不承担因用户滥用本软件导致的任何后果。使用即视为同意并接受上述条款。

推荐阅读

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、问题分析
    • 1.编程语言,编译时间暴露
    • 2.导入表可见,容易被分析
  • 二、PE强化
  • 三、结论
  • 四、免责声明
    • 推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档