首页
论坛
课程
招聘
[原创]PE简单签名验证实现
2010-11-27 21:20 9754

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

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

[招生]科锐逆向工程师培训46期预科班将于 2023年02月09日 正式开班

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (8)
雪    币: 1653
活跃值: 活跃值 (330)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
天易love 活跃值 18 2010-11-27 21:55
2
0
对签名验证理解很透彻啊!微软的签名信息藏哪?
雪    币: 64
活跃值: 活跃值 (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xiaobaozi 活跃值 1 2010-11-27 22:07
3
0
有时候其实无需要,自定义的签名没必要使用很复杂的算法,只要自己知道就行,私钥公钥的也没多大意义。别人根本不需要伪造,只需要Patch一下驱动就行了,神马都是浮云。主要是看针对什么样的人群
雪    币: 1978
活跃值: 活跃值 (2921)
能力值: ( LV12,RANK:520 )
在线值:
发帖
回帖
粉丝
熊猫正正 活跃值 9 2010-11-27 23:13
4
0
谢谢LZ共享自己的技术,我也想知道微软的签名信息在哪~~
雪    币: 40
活跃值: 活跃值 (42)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
creakerzgz 活跃值 1 2010-11-28 00:08
5
0
好东西,下一个
雪    币: 13
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Greater 活跃值 2010-11-29 17:24
6
0
好东西
看看啦
雪    币: 1481
活跃值: 活跃值 (161)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
cntrump 活跃值 13 2010-11-29 17:26
7
0
老大再写一个添加水印的吧。
雪    币: 33
活跃值: 活跃值 (28)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
smokewind 活跃值 1 2010-11-30 15:24
8
0
感谢楼主无私共享技术
雪    币: 279
活跃值: 活跃值 (94)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yzwyq 活跃值 2010-11-30 20:43
9
0
好东东啊.万份感谢
游客
登录 | 注册 方可回帖
返回