通过Hook ZwCreateProcess获取进程全路径(缓存问题解决方案)
来源:互联网 发布:匿名网络举报网站 编辑:程序博客网 时间:2024/05/22 14:10
环境:WinXP
我们在拦截进程启动时,会去拦截ZwCreateProcess函数,然后在中间获取启动进程的了全路径,判断进程是否合法。
首先看下ZwCreateProcess函数的原型如下:
其中我们主要是利用SectionHandle参数,通过ObReferenceObjectByHandle获取文件对象,然后再利用ObQueryNameString函数进行刷新文件名缓存(如果exe文件改过名后,不调用ObQueryNameString会发生获取到的是第一次运行进行的名字)。
具体解决方案可参考如下:
1.截获ZwCreateProcess例子
http://blog.csdn.net/trents/article/details/7255522
关于此例子中说datasection可以解决缓存问题,但是我发现在我环境中是解决不了的,才有了下面调用ObQueryNameString的补充方案,
2.调用ObQueryNameString例子
http://bbs.pediy.com/showthread.php?t=129136&highlight=ObQueryNameString
注意此例子调用时第一次会失败,因为内存分配太小,需要重新分配。
需要在 RtlAppendUnicodeStringToString(&fullUniName,&((PFILE_OBJECT)pFile)->FileName); 前调用ObQueryNameString
0 0
- 通过Hook ZwCreateProcess获取进程全路径(缓存问题解决方案)
- 获取进程全路径
- 获取进程全路径
- fsd hook里获取文件全路径
- 通过进程获取目标路径
- zwCreateProcess获得目标进程名
- 在驱动中获取进程全路径
- 在驱动中获取进程全路径
- NT6上的获取进程全路径
- 通过进程名获取程序路径
- 通过进程ID获取执行文件路径
- 通过GetProcessImageFileName函数获取进程路径
- 图片路径问题解决方案
- java路径问题解决方案
- 通过获取系统进程快照获取进程pid以及杀进程(win下获取进程名和linux下获取进程路径)
- [转载]在2000下获取进程的全路径
- linux内核获取进程的全路径3种方法
- 如何获取进程/目标对象的全路径?
- 我为微商疗伤
- 提高篇第26-27课第三题
- C++ STL中哈希表 hash_map介绍
- ThreadLocal-分析-总结
- 点击缩小的自定义布局
- 通过Hook ZwCreateProcess获取进程全路径(缓存问题解决方案)
- 如何让网站所在虚拟主机支持apk格式文件下载
- 使用JAVA如何对图片进行格式检查以及安全检查处理
- SharedPreferences
- 考生经验谈:如何做好SAT阅读的时间掌控
- Android-Activity任务栈
- IOS开发 - 如何获取不变的UDID
- Spring @PathVariable注解
- Android系统机制、框架、架构剖析(Android Anatomy and Physiology)