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的

  • 相关阅读:
    String的方法capitalize
    python基本运算符
    计算机中常用进制转换
    python中的print函数
    python转义字符
    3.python中的基本概念
    4.input()
    1.计算机基础知识
    Pyhton实用的format()格式化函数
    jieba(结巴)常用方法
  • 原文地址:https://www.cnblogs.com/adylee/p/2971505.html
Copyright © 2011-2022 走看看