minifilter-学习笔记1
Minifilter与legacy filter区别
- 新一代的文件过滤框架:Minifilter
- 比sfilter加载顺序更易控制,altitude被绑定到合适的位置。
- 可卸载能力。
- Callback模型仅需要处理操作的能力。
- 兼容性更好。
- 名字处理更容易
- 安装方式(.inf/动态加载)
- 通信方式(port)
- 同样遵循IRQL,锁等内核开发通用机制
- FltCreateFile/ZwCreateFile
Altitude值:20000-429999
- 每个minfilter驱动必须有一个叫做altitude的唯一标识符,一个minifilter驱动的alititude定义了它加载时在I/O栈中相对其他minifilter驱动的位置。值越小,栈中位置就越低
- FSFilter Anti-Virus 320000-329999 此组包括在文件I/O期间探测并杀毒的过滤驱动.
- FSFilter Encryption 140000-149999 此组包括在文件I/O期间加密和解密数据的过滤驱动.
minifilter框架(1)
1 | typedef struct _FLT_REGISTRATION { |
IRP_PAGING_IO 是系统发起的IO操作
IRP_NOCACHE 设置标记 FILE_NO_INTERMEDIATE_BUFFERING: App->IO->FSD->DISK
IRP_CACHE: 用户默认设置流程:App->IO->FSD->CC(缓存管理器)->MM(内存管理器)(->FSD->DISK);
IRP_XXX_PAGING_IO: MM->FSD->DISK
参考文章:
FLT_REGISTRATION结构体
# 相关文章
1.
2.Android Killer 不反编译资源
3.xposed 原理初探
4.AndroidStudio调试smali代码
5.jeb调试smali代码
6.xposed 小实战
7.安卓破解实战 - 修改重编译
8.LLVM编译
1.
2.Android Killer 不反编译资源
3.xposed 原理初探
4.AndroidStudio调试smali代码
5.jeb调试smali代码
6.xposed 小实战
7.安卓破解实战 - 修改重编译
8.LLVM编译
# 推荐文章
1.minifilter-学习笔记1
2.Android Killer 不反编译资源
3.xposed 原理初探
4.AndroidStudio调试smali代码
5.jeb调试smali代码
6.xposed 小实战
1.minifilter-学习笔记1
2.Android Killer 不反编译资源
3.xposed 原理初探
4.AndroidStudio调试smali代码
5.jeb调试smali代码
6.xposed 小实战