# What is HookZz ?
**a hook framwork for arm/arm64/ios/android**
ref to: [frida-gum](https://github.com/frida/frida-gum) and [minhook](https://github.com/TsudaKageyu/minhook) and [substrate](https://github.com/jevinskie/substrate).
**special thanks to [frida-gum](https://github.com/frida/frida-gum) perfect code and modular architecture, frida is aircraft carrier, HookZz is boat, but still with some tricks**
**thanks for @lauos with contributing android code**
# Features
- **solidify inlinehook without Jailbreak [new-90%]**
- **GOT hook with HookZz(i.e. change fishhook to inlinehook), better for APM [new-0%]**
- [HookZz-Modules help you to hook.](https://github.com/jmpews/HookZzModules)
- the power to access registers directly
- hook function with `replace_call`
- hook function with `pre_call` and `post_call`
- hook **address(a piece of code)** with `pre_call` and `half_call`
- (almost)only **one instruction** to hook(i.e. hook **short funciton, even only one instruction**) [arm/thumb/arm64]
- runtime code patch, without codesign limit
- it's cute
# Getting Started
[Move to HookZz Getting Started](https://jmpews.github.io/zzpp/getting-started/) **[need update]**
# How it works ?
[Move to HookFrameworkDesign.md](https://github.com/jmpews/HookZz/blob/master/docs/HookFrameworkDesign.md) **[need update]**
# Why I do this?
1. for arsenal - [zzdeps](https://github.com/jmpews/zzdeps)
2. for low-level control
# Who use this?
**[VirtualApp](https://github.com/asLody/VirtualApp) An open source implementation of MultiAccount.(Support 4.0 - 8.0)**
**[AppleTrace](https://github.com/everettjf/AppleTrace) Trace tool for iOS/macOS (similar to systrace for Android)**
# Docs
[Move to HookZz docs](https://jmpews.github.io/zzpp/hookzz-docs/) **[need update]**
# Example
[Move to HookZz example](https://jmpews.github.io/zzpp/hookzz-example/) **[need update]**
# Modules
[Move to HookZzModules](https://github.com/jmpews/HookZzModules) **[need update]**
# Compile
## build for arm64-ios
#### 1. build `libhookzz.dylib` and `libhookzz.static.a`
```
jmpews at jmpewsdeMBP in ~/Desktop/SpiderZz/project/HookZz
λ : >>> make clean; make BACKEND=ios ARCH=arm64
clean all *.o success!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/allocator.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/interceptor.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/memory.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/stack.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/trampoline.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/backend-posix/thread-posix.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/backend-darwin/memory-darwin.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm64/instructions.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm64/reader-arm64.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm64/regs-arm64.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm64/relocator-arm64.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm64/writer-arm64.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/backend-arm64/thunker-arm64.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/backend-arm64/trampoline-arm64.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/zzdeps/common/memory-utils-common.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/zzdeps/posix/memory-utils-posix.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/zzdeps/posix/thread-utils-posix.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/zzdeps/darwin/macho-utils-darwin.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/zzdeps/darwin/memory-utils-darwin.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/backend-arm64/interceptor-template-arm64.o]!
build success for arm64-ios-hookzz!
```
check `build/ios-arm64/*`.
#### 2. build tests dylib
```
jmpews at jmpewsdeMBP in ~/Desktop/SpiderZz/project/HookZz/tests/arm64-ios
λ : >>> make clean; make
clean all *.o success!
build [test_hook_oc.dylib] success for arm64-ios!
build [test_hook_address.dylib] success for arm64-ios!
build [test_hook_printf.dylib] success for arm64-ios!
build [test] success for arm64-ios-hookzz!
```
check `build/ios-arm64/*`.
## build for arm-ios
ignore...
## build for arm-android
#### 1. build `libhookzz.so` and `libhookzz.static.a`
```
jmpews at jmpewsdeMBP in ~/Desktop/SpiderZz/project/HookZz
λ : >>> make clean; make BACKEND=android ARCH=arm
clean all *.o success!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/allocator.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/interceptor.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/memory.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/stack.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/trampoline.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/backend-posix/thread-posix.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/backend-linux/memory-linux.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm/instructions.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm/reader-arm.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm/reader-thumb.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm/regs-arm.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm/relocator-arm.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm/relocator-thumb.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm/writer-arm.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/arch-arm/writer-thumb.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/backend-arm/thunker-arm.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/platforms/backend-arm/trampoline-arm.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/zzdeps/common/memory-utils-common.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/zzdeps/posix/memory-utils-posix.o]!
generate [/Users/jmpews/Desktop/SpiderZz/project/HookZz/src/zzdeps/posix/thread-utils-posix.o]!
build success for arm-android-hookzz!
```
and check `build/android-armv7`
#### build tests ELF
```
jmpews at jmpewsdeMBP in ~/Desktop/SpiderZz/project/HookZz/tests/arm-android
λ : >>> make clean; make
clean all *.o success!
build [test_hook_open_arm.dylib] success for armv7-ios!
build [test_hook_address_thumb.dylib] success for armv7-ios!
build [test_hook_printf.dylib] success for armv7-ios!
build [test] success for armv7-android-hookzz!
```
and check `build/android-armv7/*`
# Quick Example
#### `test_hook_printf.c` output for arm64-ios
test hook `printf` with `try_near_jump` option , and `ZzEnableDebugMode()` with `replace_call`, `pre_call`, `post_call`.
```
ZzThunkerBuildThunk:
LogInfo: enter_thunk at 0x100162c20, use enter_thunk_template.
ZzThunkerBuildThunk:
LogInfo: leave_thunk at 0x1001500f4, length: 240.
ZzBuildEnterTrampoline:
LogInfo: on_enter_trampoline at 0x1001502d8, length: 44. hook-entry: 0x145e0c720. and will jump to enter_thunk(0x100162c20).
ZzBuildEnterTransferTrampoline:
LogInfo: on_enter_transfer_trampoline at 0x180f1f414, length: 20. and will jump to on_enter_trampoline(0x1001502d8).
ZzBuildInvokeTrampoline:
LogInfo: on_invoke_trampoline at 0x100150304, length: 24. and will jump to rest code(0x181402a60).
ArmInstructionFix: origin instruction at 0x181402a5c, relocator end at 0x181402a60, relocator instruction nums 1
origin_pro
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Android系统的沙盒产品-轻量级的Android虚拟机(满足APP多开、移动安全、免ROOT HOOK、APP静默安装、APP管控等各种需求) 运行于Android系统的沙盒产品,可以理解为轻量级的"Android虚拟机"。它提供了一整套内部与外部的隔离机制,可以满足APP多开、移动安全、免ROOT HOOK等各种需求。 功能 支持APP多开,可在同一部手机上安装多个微信/QQ/WhatsApp等APP 提供内部与外部的隔离机制,可实现应用行为审计、数据加密、数据采集等移动安全需求 提供Java和Native的Hook能力,可实现虚拟定位、改机、APP监控管理等功能 支持APP静默安装、静默升级、静默卸载 可完全控制内部APP的行为,如访问系统API、获取设备信息等 支持Google服务,可满足海外市场需求 支持VR程序移植 技术栈 Android APP层、Framework层和Native层技术 Java和Native的Hook机制 虚拟文件系统和进程隔离
资源推荐
资源详情
资源评论


























收起资源包目录





































































































共 930 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论


Scikit-learn
- 粉丝: 6692
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 实训报告-网页制作与网站建设项目实战.doc
- 试论互联网+时代事业单位档案管理创新.docx
- PLC控制中央空调节能改造方案设计书1.doc
- 互联网+会计时代-高职《管理会计》课程改革探究.docx
- 基于SNAP网络的实验室监控系统研究设计.doc
- 嵌入式系统程序可移植性设计方案及性能优化.doc
- 单片机电子台历设计方案.docx
- 2017年广西公需科目-“互联网+”开放合作考试及标准答案2(90分).docx
- 抢答器PLC控制系统设计-河南工业大学.doc
- 培训师大计算机采集处理系统.pptx
- 大数据在健康医疗行业中应用概况.pptx
- 慧锦校园网络布线系统措施设计方案.doc
- 机械产品和零件的计算机辅助设计.docx
- 《数据库课程设计方案》实验任务书学时.doc
- 项目管理中如何建立高绩效的研发项目团队.docx
- 基于51单片机的多路温度采集控制系统方案设计书.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
