EHook:一款专为商业Android模拟器打造的开源钩子框架

EHook:一款专为商业Android模拟器打造的开源钩子框架

EHook A hooking framework for commercial Android emulators (雷电模拟器, NOX, BlueStacks). EHook 项目地址: https://gitcode.com/gh_mirrors/eh/EHook

项目介绍

EHook 是一款开源的 hooking 框架,专为商业 Android 模拟器设计,如雷电模拟器、NOX 和 BlueStacks。这些模拟器采用 x86(内核)和 arm(用户空间)混合模式加速仿真,这使得对原生 arm 库的 hook 操作变得复杂。EHook 框架旨在解决这一问题,为开发者提供了一种简便的方式来 hook 模拟器中的函数。

项目技术分析

EHook 的核心是针对 Android 模拟器的特定运行环境进行 hook 操作。以下是该项目的关键技术要点:

  1. 混合模式支持:EHook 支持处理 x86 和 arm 混合模式的模拟器,适应不同模拟器的运行机制。
  2. 函数 hook:用户可以通过地址或函数符号名称来 hook 函数,提供灵活的 hook 方法。
  3. 系统库 hook:EHook 支持对系统库(如 libc.so)的 hook,但需要注意提供正确的 arm 版本二进制文件路径。

项目及技术应用场景

场景一:模拟器游戏辅助

许多游戏开发者或玩家可能会使用模拟器来运行游戏,以便进行调试或测试。EHook 可以用来 hook 游戏中的关键函数,如网络通信函数,以实现作弊或调试目的。

场景二:模拟器性能分析

开发者可以通过 EHook 来监控和分析模拟器中特定函数的调用情况,这对于优化模拟器性能和查找潜在的性能瓶颈非常有帮助。

场景三:模拟器安全研究

安全研究员可以使用 EHook 来分析模拟器的安全漏洞,例如 hook 系统函数以检测潜在的恶意行为。

项目特点

  1. 高度兼容:EHook 支持多种商业模拟器,如雷电模拟器、NOX 和 BlueStacks,具有良好的兼容性。
  2. 操作简便:通过修改 jni/realinject.c 文件,运行 ndk-build,然后将特定二进制文件推送到 Android 设备,即可完成 hook 配置。
  3. 社区支持:EHook 得益于开源社区的贡献,吸收了其他优秀 hook 框架的优点,如 XEHook 和 Android-Inline-Hook。

以下是具体的使用步骤:

  1. 修改代码:根据需要修改 jni/realinject.c 文件,以 hook 特定的函数。

    static struct hook_t eph1;
    static struct hook_t eph_sendto;
    ...
    ...
    
    /*On BlueStacks*/
    //hook_by_addr(&eph1, "arm/libc.so", target_addr, hook_func1);
    
    /*Other emulators*/
    hook_by_name(&eph_sendto, "nb/libc.so", "sendto", hook_sendto);
    
  2. 编译:运行 ndk-build 命令进行编译。

  3. 推送二进制文件:将编译后的二进制文件 libs/x86/stalkerlibs/x86/libinject.solibs/armeabi/librealinject.so 推送到 Android 设备的 /data/local/tmp 目录下。

  4. 运行:在 Android 设备上运行 ./stalker [pid] 命令。

在使用过程中,需要注意以下几点:

  1. 对于 NOX 模拟器,应使用 Android 5.1.1 而不是默认的 4.4.2。
  2. 参考其他相关项目,如 XEHook

EHook 作为一款优秀的开源 hook 框架,不仅为开发者提供了强大的功能,也展示了开源社区的活跃与创造力。无论是游戏辅助、性能分析还是安全研究,EHook 都是一个值得尝试的工具。

EHook A hooking framework for commercial Android emulators (雷电模拟器, NOX, BlueStacks). EHook 项目地址: https://gitcode.com/gh_mirrors/eh/EHook

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郜逊炳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值