sfilter动态加解密吐血总结

来源:互联网 发布:mac如何直接退出程序 编辑:程序博客网 时间:2024/05/17 07:12
晕了好几天,总算把Ifs的动态加解密给闹明白了。
为了后来者不再晕,总结如下:

1.加密在SfWrite(IRP_MJ_WRITE)中,而不是完成例程,
解密在SfRead(IRP_MJ_READ)中,而不是完成例程,

3.只要处理IRP_NOCACHE|IRP_PAGING_IO|IRP_SYNCHRONOUS_PAGING_IO

2.加密简单过程:
a.得到Windows传下来的Buffer Address,
if (Irp->MdlAddress)
{
SysDataBuf = MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority);
}
else
{
SysDataBuf = Irp->UserBuffer;
}
b.保存明文SysDataBuf 在SysDataBufFirst

c.用你强大的算法加密SysDataBuf -->> MyBuf

d.把MyBuf Copy到 SysDataBuf,

e.IoCallDriver 把密文向下传,写入HardDisk。

f.恢复内存的明文 RtlCopyMemory(SysDataBuf,SysDataBufFirst, ulWriteLen);.

3.解密的大致过程:
a.IoCallDriver 读到密文
b,解密
c。IoCompleteRequest 搞定

我的开发环境:
IFS2600,SFilter的代码却是for XP SP1的
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 6个钱包买房说明了什么 贷款买房的人们后悔了 买房交了定金能退吗没签合同 买房了怎么低调发朋友圈 陵水清水湾买房后悔了 买房交了5万定金后悔了 买房下了定金可以退吗 买房签了合同能退房吗 买房给了定金能退吗 买房后悔了 2018在鲅鱼圈投资买房的人亏了 买房要了解什么 为什么现在买房 贷款买房划算吗 中国人买房忌讳13楼吗 婚前贷款买房属于共同财产吗 买房首付可以贷款吗 二手房按揭买房难办吗 北京买房能落户吗 夫妻买房可以一个人贷款吗 低首付买房靠谱吗 贷款买房能拿到房产证吗 7天内买房定金能退吗 2019年汉南买房有必要吗 贷款买房有房产证吗 买房17楼有什么忌讳吗 现在是买房的好时机吗 公积金能异地买房吗 公积金可以跨省买房吗 公积金可以异地买房吗 住房公积金可以异地买房吗 有贷款还能贷款买房吗 银行有贷款还能按揭买房吗 深圳公积金可以异地买房吗 外地公积金可以在本地买房吗 2018年公积金可以跨省买房吗 名下有贷款还可以贷款买房吗 2018网贷没还清可以贷款买房吗 买新房注意什么 买房买几层好 刚买的二手房可以卖吗