xhook 是一个针对 Android 平台 ELF (可执行文件和动态库) 的 PLT (Procedure Linkage Table) hook 库。
xhook 一直在稳定性和兼容性方面做着持续的优化。
支持 Android 4.0 (含) 以上版本 (API level >= 14)。
支持 armeabi,armeabi-v7a,arm64-v8a,x86 和 x86_64。
支持 ELF HASH 和 GNU HASH 索引的符号
支持通过正则表达式批量设置 hook 信息。
不需要 ROOT 权限。
不依赖于任何的第三方动态库。
纯 C 的代码。比较小的库体积。
你需要 google NDK 来编译 xhook。
https://developer.android.com/ndk/downloads/index.html
最新版本的 xhook 在开发和调试中使用的 NDK 版本是 r16b。
编译动态库 (libxhook.so 和其他的用于测试的动态库)
./build_libs.sh
把动态库安装到 Demo 工程的 libs 目录中
./install_libs.sh
清除动态库
./clean_libs.sh
cd ./xhookwrapper/ ./gradlew assembleDebug adb install ./app/build/outputs/apk/debug/app-debug.apk
大概原理是:先读取/proc/self/maps文件内容 正则匹配找到so文件路径和加载基址, 解析elf格式找到要hook的函数的地址替换成自己指定的函数地址//xh_core.c static void xh_core_refresh_impl() { char line[512]; FILE *fp; uintpt
背景 xhook注册了close方法,但是在android10上,还是无法拦截java层close一个io流 调研FileoutputStream是怎么关闭文件的 FileoutputStream.java public void close() throws IOException { synchronized (closeLock) { if (closed) { return; } clos
//简单的需求可以调用Unicorn对虚拟内存进行修改 public void patchVerify(){ int patchCode = 0x4FF00100; // emulator.getMemory().pointer(module.base + 0x1E86).setInt(0,patchCode); } //HOOZZ public void HookMD
Microsoft Windows Apache的使用 此文阐述如何在Windows平台上安装、配置和运行Apache2.0 参见:在Microsoft Windows上使用Apache 编译Apache 此文会指出在Windows平台上编译Apache以前必须了解的许多要点。 参见:在Microsoft Windows平台上编译Apache 其他平台 Novell NetWare 此文阐述如何在
本文将介绍了如何设置 SDK 环境来部署 Cordova 应用到 Android 设备上,以及在你的开发流程中如何选择使用 Android 命令行工具。不管你是以平台为中心的工作流程还是跨平台(命令行界面)的工作流程都需要安装 Android SDK。 需求及支持 Cordova 开发 Android 需要 Android SDK,可以安装在 OS X, Linux 或 Windows 操作系统。
工具准备 Android Studio v3.0+, 下载参见:Google 中国开发者网站 cocos2d-x v3.17,下载后解压,下载参见:Cocos 官网页面 配置步骤: 完成 Android Studio 安装,进入欢迎界面,选择 Import project(Gradle, Eclipse ADT, etc.)。选择目录 cocos2d-x root/tests/cpp-tests/
XHook 可轻松的修改 XHR 的请求和响应。主要用于: Cache requests in memory, localStorage, etc. Insert authentication headers S3 Request Signing, see S3 Hook Simulate responses Create fake transparent backends for testing
这个指南展示如何安装SDK环境以便可以部署Cordova App在Android设备上,以及如何选择使用以Android为中心命令行工具在你的开发工作流中。 不管你是使用以平台为中心的shell工具还是跨平台的Cordova命令行你都需要安装Android SDK。要比较两种开发路径,请参见概述。要获取CLI的详细介绍请参见Cordova CLI 参考. 要求和支持情况 Cordova支持Andr
我的电话有问题。当我想用以下命令添加平台时出错: > {http_解析器:'1.0',节点:'0.10.26',v8:'3.14.5.9',ares:'1.9.0-DEV',uv:'0.10.25',zlib:'1.2.3',模块:'11',openssl:'1.0.1e',npm:'1.4.3'} 道路已经确定 $echo$PATH /usr/lib/lightdm/lightdm:/usr/本