采用个hook技术对writefile函数进行拦截(2)

简介: http://www.cnblogs.com/zhxfl/archive/2011/11/03/2233846.html 这个是笔者之前写过的WriteFile HOOK代码必须补充对这几个函数的HOOK,才能对WriteFile的所有操作做“比较彻底的拦截”,笔者知道应用层的拦截很容易出现遗漏的,只有编写驱动做文件过滤才会有比较好的效果,不过在实现那个之前,想再应用层做好这些实验,看一下效果。

http://www.cnblogs.com/zhxfl/archive/2011/11/03/2233846.html 这个是笔者之前写过的WriteFile HOOK代码

必须补充对这几个函数的HOOK,才能对WriteFile的所有操作做“比较彻底的拦截”,笔者知道应用层的拦截很容易出现遗漏的,只有编写驱动做文件过滤才会有比较好的效果,不过在实现那个之前,想再应用层做好这些实验,看一下效果。

具体的api函数参数可以在http://msdn.microsoft.com/en-us/library/aa365749%28VS.85%29.aspx里面翻出来

 BOOL WriteFileEx(
  HANDLE hFile,
  LPCVOID lpBuffer,
  DWORD nNumberOfBytesToWrite,
  LPOVERLAPPED lpOverlapped,
  LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);

BOOL WINAPI WriteFileGather(
__in        HANDLE hFile,
__in        FILE_SEGMENT_ELEMENT aSegmentArray[],
__in        DWORD nNumberOfBytesToWrite,
__reserved  LPDWORD lpReserved,
__inout     LPOVERLAPPED lpOverlapped
);
View Code



进行了比较全面的拦截,不过会造成系统不稳定,特别是LoadLibararyExA和LoadLibararyExW函数的拦截。另外令人纠结的是fopen打开的文件写操作没有拦截成功,自然freopen这些重定向的也不能成功啦,所有应用层DLL注入的方法实现文件write的过滤是
非常不合理的想法,很难做全面的拦截,而且影响系统的正常运行。
全面的文件过滤在这个实验里面,不得不承认api hook技术无法承担这个重任,看来只有驱动层能够实现真正意义上的完整文件过滤
目录
相关文章
|
3月前
|
关系型数据库 MySQL API
如何使用hook?
如何使用hook?
15 0
|
7月前
|
存储 监控 编译器
4.3 IAT Hook 挂钩技术
IAT(Import Address Table)Hook是一种针对Windows操作系统的API Hooking 技术,用于修改应用程序对动态链接库(DLL)中导入函数的调用。IAT是一个数据结构,其中包含了应用程序在运行时使用的导入函数的地址。IAT Hook的原理是通过修改IAT中的函数指针,将原本要调用的函数指向另一个自定义的函数。这样,在应用程序执行时,当调用被钩子的函数时,实际上会执行自定义的函数。通过IAT Hook,我们可以拦截和修改应用程序的函数调用,以实现一些自定义的行为,比如记录日志、修改函数参数或返回值等。
55 0
4.3 IAT Hook 挂钩技术
|
7月前
|
Windows
4.4 EAT Hook 挂钩技术
EAT(Export Address Table)用于修改动态链接库(DLL)中导出函数的调用。与`IAT Hook`不同,EAT Hook是在DLL自身中进行钩子操作,而不是修改应用程序的导入表。它的原理是通过修改DLL的导出函数地址,将原本要导出的函数指向另一个自定义的函数。这样,在应用程序调用DLL的导出函数时,实际上会执行自定义的函数。与IAT不同是EAT存放的不是函数地址,而是导出函数地址的偏移,使用时需要加上指定Dll的模块基地址,当Hook挂钩之后,所有试图通过导出表获取函数地址的行为都会受到影响,EATHook并不会直接生效,它只能影响`Hook`之后对该函数地址的获取。
85 1
4.4 EAT Hook 挂钩技术
|
8月前
|
JavaScript API
自定义hook是什么
自定义hook是什么
|
9月前
|
前端开发
封装 useUpdate 钩子
封装 useUpdate 钩子
73 0
|
存储 JavaScript
tp5源码解析--hook(钩子函数)类详解
tp5源码解析--hook(钩子函数)类详解
251 0
tp5源码解析--hook(钩子函数)类详解
|
监控
钩子 (Hook)
钩子 (Hook)
169 1
ReactHooks11-自定义hook函数
ReactHooks11-自定义hook函数
67 0
ReactHooks11-自定义hook函数
|
Web App开发 编解码 JavaScript
不能Hook的人生不值得 jsHook和模拟执行
不能Hook的人生不值得 jsHook和模拟执行
不能Hook的人生不值得 jsHook和模拟执行
|
Java
攻防:如何防止动态hook绕过jni签名校验
攻 我们知道jni校验签名也不可靠,可以被动态hook绕过。代码如下:
387 0