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

简介:

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月前
|
JSON 前端开发 Java
【SpringMVC】注解、参数传递、返回值和页面跳转的关键步骤(一)
【SpringMVC】注解、参数传递、返回值和页面跳转的关键步骤
55 0
|
7月前
|
JSON Java 测试技术
【SpringMVC】注解、参数传递、返回值和页面跳转的关键步骤(二)
【SpringMVC】注解、参数传递、返回值和页面跳转的关键步骤(二)
46 0
|
7月前
|
安全 编译器
4.1 应用层Hook挂钩原理分析
InlineHook 是一种计算机安全编程技术,其原理是在计算机程序执行期间进行拦截、修改、增强现有函数功能。它使用钩子函数(也可以称为回调函数)来截获程序执行的各种事件,并在事件发生前或后进行自定义处理,从而控制或增强程序行为。Hook技术常被用于系统加速、功能增强、等领域。本章将重点讲解Hook是如何实现的,并手动封装实现自己的Hook挂钩模板。
77 0
|
8月前
|
JavaScript API
自定义hook是什么
自定义hook是什么
|
9月前
|
JSON 测试技术 数据格式
07-Httprunner-hook机制
07-Httprunner-hook机制
|
9月前
|
前端开发
封装 useUpdate 钩子
封装 useUpdate 钩子
73 0
|
9月前
|
安全 开发者
4.5 x64dbg 探索钩子劫持技术
钩子劫持技术是计算机编程中的一种技术,它们可以让开发者拦截系统函数或应用程序函数的调用,并在函数调用前或调用后执行自定义代码,钩子劫持技术通常用于病毒和恶意软件,也可以让开发者扩展或修改系统函数的功能,从而提高软件的性能和增加新功能。钩子劫持技术的实现一般需要在对端内存中通过`create_alloc()`函数准备一块空间,并通过`assemble_write_memory()`函数,将一段汇编代码转为机器码,并循环写出自定义指令集到堆中,函数`write_opcode_from_assemble()`就是我们自己实现的,该函数传入一个汇编指令列表,自动转为机器码并写出到堆内,函数的核心代码如
72 0
4.5 x64dbg 探索钩子劫持技术
|
存储 JavaScript
tp5源码解析--hook(钩子函数)类详解
tp5源码解析--hook(钩子函数)类详解
255 0
tp5源码解析--hook(钩子函数)类详解
|
监控
钩子 (Hook)
钩子 (Hook)
171 1