EasyHook库的使用

导语###

EasyHook的官网,最近在做的项目中,因为要去过滤掉cmd的弹框,所以用到了这个库,
在使用的过程中,遇到了一些坑,然后也解决了一些问题,特再次记录下来,方便自己以后查阅

1.了解####

首先我查找了网上的相关资料,都查的有点晕了,但有用的就那么几个,其它的就是引用这个几个例子,这样感觉效率不高,后面我还是先参照了官网的例子,才觉得真正对easyhook有了一个全面的了解。这个经验告诉我,在资料不够详尽的前提下,官网的例子才是更加靠谱的。easyhook提供了2种方式,一种是直接调用的方式,还有一种就是远程注入(也就是常说的dll注入),

2. 实践####

按照官网给的说明,完全copy里面的例子,实现了教材里的说明,对这个的作用有了一个很直观的感受,然后参照实际的使用需求,在例子的基础上做了修改,测试了自己要做的修改,确实可行。

3. 与项目结合####

  1. 项目需求点:公司产品前端使用的是NW框架,里面用的是chrome的内核,现在要做一个功能,需要升级,但是升级后不再支持 NPAPI 类型的插件,但支持PPAPI,但是这个时候出现一个问题,加载含有flash插件页面时,CMD命令行窗口会闪一下,要做到能加载flash插件,但是CMD命令行窗口不能闪。
  2. 解决:发现是命令行参数是not sandboxed时,通过hook截掉。
  3. 集成:按照例子中的代码,进行测试,发现既然不能拦截,郁闷啊,刚开始以为是注入失败,后面加了log,才发现,注入是成功的,失败的原因是因为NW刚起来的固定有几个进程,当弹CMD框的时候,会额外起进程,而我写的注入程序只注入了NW刚起来的程序,没有抓额外的进程,所以失败了,现在问题来了,怎么获取这个会弹cmd框的子进程呢?想了好久,没有找到合适的方法,后面想着只能去改NW的源码了,唉~~~
  4. 新的希望:后面我的同事有空,他就帮我看起来了,他比较厉害,他想到可以先hook起子进程的命令,然后在给这个子进程注入,去屏蔽掉
    not sandboxed,我就没有想到。然后安装这个思路,就往下做,这里都是hook了kernel32的CreateProcess方法,因为程序区分了宽字节和窄字节,所以要hook CreateProcessA和CreateProcessW这个二个,要确认你注入的程序是64位还是32位,然后注入相应版本的dll

问题点记录:

  1. LhSetExclusiveACL和LhSetInclusiveACL的区别
    LhInstallHook与LhSetExclusiveACL/LhSetInclusiveACL必须配对出现,否则hook不会生效,我在做测试的时候,发现我配对
    使用了,但是尽然还是没效果,找了好久,后面才发现,是因为我没有搞清楚LhSetExclusiveACL和LhSetInclusiveACL,LhSetExclusiveACL是hook除了当前线程外的所有线程,而LhSetInclusiveACL是可以针对当前线程,所以如果单独起了线程去执行hook的操作,那这样必须使用LhSetExclusiveACL,如果没有起线程,直接执行hook,那必须使用LhSetInclusiveACL。
  1. EasyHook可以支持远程注入
  2. 在查看新东西的时候,官方文档很重要,先参照官方文档的例子,可以节约很多时间
  3. hook的时候要确定你注入的是64位还是32位
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,841评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 在熟悉的领域内做目标和计划相对较容易实现,原因是比较了解这个目标和计划的可行性。在制定的时候,也已经充分考虑到计划...
    诺曼底的救赎阅读 529评论 1 4
  • 在很长一段时间里,我感觉到迷茫,不知道自己想要什么,不知道哪些是我要努力的,哪些是应该保留的,哪些是应该舍弃的...
    宋圻阅读 208评论 0 0
  • 以前念书的时候,身边总有学霸的存在,眼瞅着不怎么用功,但最后总是名列前茅。 现在终于明白,学霸养成术原来是这样的。...
    胖灯阅读 236评论 0 13