zoukankan      html  css  js  c++  java
  • [转]sfilter动态加解密吐血总结

    晕了好几天,总算把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的

  • 相关阅读:
    python count函数
    kubenetes服务发现
    k8s网络
    k8s创建pod流程
    openstack创建虚拟流程、各组件介绍
    生产者消费者问题
    Date类和Calendar类
    Timer定时器
    Java中的克隆
    注解
  • 原文地址:https://www.cnblogs.com/adylee/p/2971505.html
Copyright © 2011-2022 走看看