ShadowHook 手册 ShadowHook Manual - English 介绍 ShadowHook 是一个 Android inline hook 库,它支持 thumb、arm32 和 arm64。 ShadowHook 现在被用于 TikTok,抖音,今日头条,西瓜视频,飞书中。 如果你需要的是 Android PLT hook 库,请移步到 ByteHook。 特征 支持
:fire: ShadowHook is an Android inline hook library which supports thumb, arm32 and arm64. - bytedance/android-inline-hook
ele7enxxh/Android-Inline-Hook README Android-Inline-Hook thumb16 thumb32 arm32 inlineHook Build ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk Example ``` c #include <stdio.h> #include "inlineHook.h" int (*old_puts)(const char *) =...
内联hook大概看了下其实也是一样的套路,32位采用ldr pc的方式跳到hook函数,64位使用x17寄存器跳到hook函数。剩下的修复原函数也是一样的。只是没时间完整看一遍定位bug了。 HookZz https://github.com/jmpews/HookZz 对于安卓程序员来说不太友好,编译需要cmake。windows:mkdir buildforandroidarm64 && cd buildfor...
https://github.com/GToad/Android_Inline_Hook_ARM64 有32和64的实现,但是是分离的,要用的话还要自己把两份代码合并在一起。 缺点: 1、不支持函数替换(即hook后不执行原函数),现在只能修改参数寄存器,无法修改返回值。 2、不支持定义同类型的hook函数来接受处理参数,只能通过修改寄存器的方式修改参数。
Android_Inline_Hook https://github.com/GToad/Android_Inline_Hook_ARM64 有32和64的实现,但是是分离的,要用的话还要自己把两份代码合并在一起。 缺点: 1、不支持函数替换(即hook后不执行原函数),现在只能修改参数寄存器,无法修改返回值。 2、不支持定义同类型...
Android Inline_Hook https://github.com/GToad/Android_Inline_Hook_ARM64 有32和64的实现,但是是分离的,要用的话还要自己把两份代码合并在一起。 缺点:1、不支持函数替换(即hook后不执行原函数),现在只能修改参数寄存器,无法修改返回值。2、不支持定义同类型的hook函数来接受处理参数,只能通过修改寄存器的方式...
开源库:https://github.com/iqiyi/xHook Inline Hook 本技术路线的基本原理是在代码段中插入跳转指令,从而把程序执行流程引向用户需要的功能代码中去,以此达到Hook的效果,如下图所示: 这张图是一张arm下最基本的hook流程,如果客官对于Inline Hook有着进一步的学习需求的话,请看一下本人的另一篇文章《Android Nativ...
3.inlinehook实操 这里我们分别实现基于inlinehook的两个开源框架的具体使用方法。 (1)Android-lnine-Hook 开源地址:https://github.com/ele7enxxh/Android-Inline-Hook 该框架只能针对32位的so文件进行hook。 我们对so文件进行hook时,可以按照如下步骤进行: ...
利用adbi实现对《刀塔传奇》so注入和API Hook 对于Android下的inject和hook,github上有个adbi框架。这个框架所使用的方法和上面介绍的差不多,采用inline hook但是没有处理返回值的情况,根据刚才介绍的方法,可以把返回值处理的功能加上,Thumb指令集的hook有个BUG,没有正确的跳转到hook函数的地址,跳转地址少了算2个字节...