Android PLT hook与Inline hook的区别
Dobby的核心作用
Dobby主要用于动态修改程序执行流,主要实现:
1.函数劫持(Function Hook)
(1).拦截目标函数调用
(2).重定向到自定义函数(如修改参数、篡改返回值)
2.代码注入(Code Injection)
(1).在目标进程中注入自定义逻辑
3.调试与监控(Debugging & Monitoring)
(1).跟踪函数调用栈
(2).监控内存访问
4.安全研究(Security Research)
(1).分析恶意软件行为
(2).漏洞利用(Exploit)开发
Dobby的核心特性
1.轻量级与模块化
(1).代码精简:核心库体积小(通常 < 100KB)
(2).模块化设计:按需加载Hook功能,减少资源占用
(3).零依赖:不依赖系统库(如:LD_PRELOAD)
2.Dobby的多平台支持
平台 支持情况
WindowsWin32/Win64 应用程序
macOSIntel/Apple Silicon
iOS越狱/非越狱设备
AndroidARM/ARM64(无需 Root)
Linux桌面/嵌入式系统
3.Dobby的多架构支持
架构 应用场景
x8632位Windows/Linux程序
x86-6464位桌面应用
ARM 旧版Android设备、嵌入式系统
ARM64现代手机/平板(iOS/Android)
4.Dobby的高级功能
(1).Trampoline跳板技术
劫持后仍可调用原函数(orig_func())
(2).Inline Hook
直接修改函数指令(无感知劫持)
(3).PLT/GOT Hook
拦截动态库函数调用(如:libc.so)
(4).VTable Hook
篡改C++虚函数表
https://github.com/jmpews/Dobby
pnhook
https://github.com/p2kyc0ng/pnhook
ShadowHook(inline hook)
ShadowHook是一个Android inline hook库,它支持thumb、arm32和arm64。
ShadowHook现在被用于TikTok、抖音、今日头条、西瓜视频、飞书中。
ShadowHook的特征
(1).支持Android 4.1 - 15(API level 16 - 35)。
(2).支持armeabi-v7a和arm64-v8a。
(3).支持针对函数整体的hook,不支持对函数中间位置的hook。
(4).支持通过"函数地址"或"库名 + 函数名"的方式指定hook位置。
(5).自动完成"新加载动态库"的hook(仅限"库名 + 函数名"方式),hook完成后调用可选的回调函数。
(6).可对同一个hook点并发执行多个hook 和unhook,彼此互不干扰(仅限shared模式)。
(7).自动避免代理函数之间可能形成的递归调用和环形调用(仅限shared模式)。
(8).代理函数中支持以正常的方式(CFI,EH,FP)回溯调用栈。
(9).集成符号地址查找功能。
(10).使用MIT许可证授权。
https://github.com/bytedance/android-inline-hook
https://github.com/bytedance/android-inline-hook/releases
https://github.com/bytedance/android-inline-hook/blob/main/README.zh-CN.md
https://github.com/bytedance/android-inline-hook/blob/main/doc/manual.zh-CN.md
ByteHook(Android PLT Hook)
ByteHook是一个Android PLT hook库,它支持armeabi-v7a、arm64-v8a、x86和x86_64。
ByteHook现在被用于TikTok、抖音、今日头条、西瓜视频、飞书中。
ByteHook的特征
(1).支持Android 4.1 - 15(API level 16 - 35)。
(2).支持armeabi-v7a, arm64-v8a, x86和x86_64。
(3).对同一个函数的多个hook和unhook互相不冲突。
(4).可以hook进程中单个、部分或全部的动态库。
(5).自动hook新加载的动态库。
(6).自动避免代理函数之间的递归调用和环形调用。
(7).代理函数中支持回溯调用栈。
(8).使用MIT许可证授权。
https://github.com/bytedance/bhook
https://github.com/bytedance/bhook/releases
https://github.com/bytedance/bhook/blob/main/README.zh-CN.md
xHook(Android PLT Hook)
xHook是一个针对Android平台ELF(可执行文件和动态库)的PLT(Procedure Linkage Table)hook库。
xHook一直在稳定性和兼容性方面做着持续的优化。
xHook的特征
(1).支持Android 4.0 - 10(API level 14 - 29)。
(2).支持armeabi、armeabi-v7a、arm64-v8a、x86和x86_64。
(3).支持ELF HASH和GNU HASH索引的符号。
(4).支持SLEB128编码的重定位信息。
(5).支持通过正则表达式批量设置hook信息。
(6).不需要root权限或任何系统权限。
(7).不依赖于任何的第三方动态库。
https://github.com/iqiyi/xHook
https://github.com/iqiyi/xHook/blob/master/README.zh-CN.md
https://github.com/iqiyi/xHook/blob/master/docs/overview/android_plt_hook_overview.zh-CN.md
https://github.com/CYRUS-STUDIO/AndroidExample
推荐阅读
魔改定制篇
鸿蒙(HarmonyOS)安全篇
日志分析篇
Root/安全检测篇
ROM系统定制篇
http://xrefandroid.com/
https://cs.android.com/android?hl=zh-cn
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...