|
|
sfilter动态加解密吐血总结 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
晕了好几天,总算把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的

|
|
相关文章:相关软件: |
|