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

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


现在,我们需要清除时间、清除标头、摧毁导入表,使其难以分析。
首先,我们需要针对DLL进行核心保护,也就是加壳,我们采用知名软件themida,其强大的代码虚拟化技术可以实现这一点:

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

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


"导入表段似乎已被破坏。这可能意味着文件已被加壳或修改,以增加分析难度。如果您希望查看原始形式的导入表段,请取消勾选‘创建导入表段’(make imports section)复选框后重新加载文件。"
但从静态上看,Rich Header未消除,节区名称存在themida壳特征,以及时间戳未消除。

Rich Header它主要用于记录编译环境信息(如编译器版本、编译次数等),在恶意软件分析和软件溯源中具有重要价值。
接下来,我们将使用另一个工具修补这一点,它将清除时间戳,擦除Rich Header,以及擦除节区名称,完成后:


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



这些工具将在白加黑项目中携带。
本文涉及方案仅限合法授权的安全研究、渗透测试用途,使用者须确保符合《网络安全法》及相关法规。具体条款如下:
本人不承担因用户滥用本软件导致的任何后果。使用即视为同意并接受上述条款。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。