各位大虾,我想了解 用文件系统(过滤)驱动程序开发(IFS) 动态加解密的方法 
哪位能给我提供点帮助,或是提供一些学习资料!  
如有这方面的例程的话或提供这方面帮助的,小弟高分(1000分)答谢

解决方案 »

  1.   

    1,加密在SfWrite(IRP_MJ_WRITE)中, 
      解密在SfRead(IRP_MJ_READ)中,  只要处理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的 不知道是不是对你有点用...你看看吧
      

  2.   

    怎么编写IFS的资料你可以参考网上的一些资料,在这里我只说明一下选用的加密算法。由于系统读写数据块是按照4KB的标准来进行的,那么你在过滤数据加密、解密的时候要选用一种算法,加密、解密以后数据的长度不能改变。我以前开发的时候使用的DES算法的CBC模式。
      

  3.   

    谢谢,谢谢!这就结分ksaiy(阳光总在风雨后)
    ycn12345(leon) 
    firstrose(kots) 你们各开新贴给分,注意看贴