首页
社区
课程
招聘
[原创]PE简单签名验证实现
发表于: 2010-11-27 21:20 11145

[原创]PE简单签名验证实现

2010-11-27 21:20
11145
在驱动里一般都要验证调用者的来源,比较方便的方法就是使用签名的方法了,所以实现了一下,我比较菜,密码学知识几乎为0,就知道一些百度百科上的东西,所以算法全部使用谷歌来的代码
重写了文件读写函数,以便实现ring0和ring3通用
……
大致原理如下:
签名
1、查找一个PE里面的间隙,足够用来装128字节的签名信息,如果没有增加区段
2、对PE文件进行SHA512求Hash
3、将那个Hash使用私钥加密后写到间隙里面
验证
1、查找一个PE里面的间隙,足够用来装128字节的签名信息,如果没有增加区段
2、对PE文件进行SHA512求Hash
3、读取签名信息,使用公钥解密,之后对比两个hash是否相等
使用时,签名工具不公开,驱动自带了公钥和验证算法(不带签名算法),自己的程序签上名就好了

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (8)
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
2
对签名验证理解很透彻啊!微软的签名信息藏哪?
2010-11-27 21:55
0
雪    币: 76
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
有时候其实无需要,自定义的签名没必要使用很复杂的算法,只要自己知道就行,私钥公钥的也没多大意义。别人根本不需要伪造,只需要Patch一下驱动就行了,神马都是浮云。主要是看针对什么样的人群
2010-11-27 22:07
0
雪    币: 2323
活跃值: (4113)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
4
谢谢LZ共享自己的技术,我也想知道微软的签名信息在哪~~
2010-11-27 23:13
0
雪    币: 62
活跃值: (72)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
好东西,下一个
2010-11-28 00:08
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好东西
看看啦
2010-11-29 17:24
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
7
老大再写一个添加水印的吧。
2010-11-29 17:26
0
雪    币: 65
活跃值: (118)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
感谢楼主无私共享技术
2010-11-30 15:24
0
雪    币: 291
活跃值: (164)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
好东东啊.万份感谢
2010-11-30 20:43
0
游客
登录 | 注册 方可回帖
返回
//