利用数字签名“漏洞”实现把自己的文件隐藏在别人打好数字签名的文件里

来源:互联网 发布:java模拟器支持安卓6.0 编辑:程序博客网 时间:2024/06/10 01:58

写这个工具的原因是因为看到这个:

http://bobao.360.cn/learning/detail/2985.html

下面是数字签名的原理

 

目前来看上面的验证是没问题的,该工具能成功的原因是:

这里直接给出这个“漏洞”的信息:对于一个Windows的可执行程序,签发数字签名的时候需要计算的数据摘要并不会是程序文件的全部数据,而是要排除一些特定区域的数据。而这些区域当然和PE文件结构有关,具体地,不管是签发时还是校验时计算的hash都会排除一个Security数据目录字段以及数字签名证书部分的数据。至于原因,当然是为了合理地组织pe程序的数字签名,符合pe文件格式的标准。(最后就是注意添加数据要是8的倍数的问题)。

Security 相关



    至于实现通用工具的话,可以自定义一个数据结构来存储自己的附加信息以及原文件信息,还可以加上校验密码。我写的那个工具就是这个思路,直接自己设置了一个结构,存储信息(新文件大小,原文件大小,密码的加密字符,对其处理),放在文件最后。然后在进行操作的时候可以准确的把不同大小的数据存在不同的PE...具体细节可以看我上传的工具代码。

以下是一个工具测试结果:

A.exe 处理之前的文件(充当容器)


B.dat 处理之前的文件(充当存储数据)


C.Exe 处理之后的文件(充当填充了数据的容器)

 

D.Dat处理之后的文件(充当从c里面释放出来的数据) 

 

工具地址:

http://download.csdn.net/detail/u013761036/9714220

0 0
原创粉丝点击