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