如何快速上手substitute:5分钟完成你的第一个函数Hook
如何快速上手substitute5分钟完成你的第一个函数Hook【免费下载链接】substituteA free runtime modification library.项目地址: https://gitcode.com/gh_mirrors/su/substitutesubstitute 是一款免费的运行时修改库runtime modification library它的核心能力就是函数 Hook在程序运行过程中动态把某个函数偷梁换柱成你自己的实现同时还能随时调回原始函数。本教程面向新手带你用 5 分钟完成人生第一个函数 Hook并搞懂它的三种 Hook 方式和常见错误码。什么是 substitute它有什么用简单打个比方正常调用getpid()会返回真实的进程号Hook 之后你可以让它返回任意值而调用方完全无感知。substitute 主要提供三类能力函数 Hook直接改写目标函数的机器码入口是最通用的 Hook 方式符号导入劫持Interpose修改 GOT/PLT 表让某库看到的函数变脸且不需要可执行内存权限ObjC 方法 Hook基于 Objective-C 运行时天然线程安全还能方便地调用父类实现此外它还支持动态注入——把一份 dylib 注入到任意已运行的进程中在 macOS / iOS 逆向、调试和辅助开发场景非常实用。 提示该仓库目前处于非维护状态见 README.md但作为学习 Hook 原理的经典实现代码质量极高依然值得精读。第 1 步获取 substitute 源码打开终端执行一条命令即可git clone https://gitcode.com/gh_mirrors/su/substitute项目的对外 API 全部集中在一个头文件里lib/substitute.h新手只需关注这 3 个函数API作用一句话总结substitute_hook_functions改写函数机器码最通用什么函数都能 Hooksubstitute_interpose_imports改写导入表不改代码改地址substitute_hook_objc_messageHook ObjC 方法iOS/macOS 开发首选第 2 步认识 Hook 的数据结构substitute 的设计非常简洁你要 Hook 什么、替换成什么都装进一个结构体struct substitute_function_hook { void *function; /* 要 Hook 的原函数 */ void *replacement; /* 你的替代函数 */ void *old_ptr; /* 可选传出调用原函数的指针 */ };其中最妙的是第三个字段old_ptrHook 成功后你可以拿到一个跳板trampoline通过它随时调用原始实现——这就是所谓的无侵入式包装。第 3 步完成你的第一个 Hook项目自带了一份绝佳的学习样例test/test-hook-functions.c。它的思路是 Hook 掉getpid()让返回值翻倍static pid_t (*old_getpid)(); static pid_t hook_getpid() { return old_getpid() * 2; /* 原值 x 2 */ } /* 注册 Hook 并生效必须在主线程调用 */ substitute_hook_functions(hooks, 4, NULL, 0);编译运行后你会看到这样的效果getpid() 12345 /* Hook 前真实进程号 */ getpid() 24690 /* Hook 后翻倍了 */恭喜你的第一个函数 Hook 已经生效 三种 Hook 方式怎么选 新手最常见的困惑我该用哪个 API记住这张决策表能改代码权限、目标函数已知→ 用substitute_hook_functions最通用沙盒环境 / 不能执行动态写码→ 用substitute_interpose_imports改 GOT对沙盒友好参考 test/test-interpose.c目标是 Objective-C 方法→ 用substitute_hook_objc_message线程安全、可自动调用父类实现常见错误码速查表substitute 的错误码定义在 lib/substitute.h 中且内置了substitute_strerror()可以把错误码转成可读文字。新手最常踩的 3 个坑错误码原因解决办法SUBSTITUTE_ERR_FUNC_TOO_SHORT目标函数太短函数头没几条指令就 return 了换一个更长的目标函数SUBSTITUTE_ERR_NOT_ON_MAIN_THREAD不在主线程调用 Hook回到主线程再调用这是防死锁的设计SUBSTITUTE_ERR_VM内存读写/执行权限申请失败检查系统是否禁止进程写入可执行内存进阶玩法向运行中的进程动态注入除了在自己进程里 Hooksubstitute 还能把整个 dylib 注入到另一个正在运行的进程中核心 API 是substitute_dlopen_in_pid用法可参考 test/test-inject.c。注入相关的实现位于 lib/darwin/inject.c想深入理解注入原理可以从这里读起。项目结构导览最后用一张表帮你快速熟悉仓库lib/substitute.h全部公开 API新手必读lib/darwin/macOS/iOS 平台实现注入、ObjC Hook、内存操作test/每个功能都配有可运行的测试用例是最好的教程substrate/Substrate 兼容层方便迁移旧代码configure构建脚本入口写在最后从 clone 仓库到跑通第一个getpid()Hook整个过程确实只需要 5 分钟。建议接下来的学习路线是通读 test/ 目录下的测试用例每个都是独立可运行的小教程尝试 Hook 你自己项目里的一个函数再挑战 ObjC 方法 Hook 或动态注入掌握 substitute你就拿到了打开 iOS/macOS 动态调试与逆向世界的第一把钥匙 ️【免费下载链接】substituteA free runtime modification library.项目地址: https://gitcode.com/gh_mirrors/su/substitute创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

为什么Pygame Zero是Python游戏初学者的首选?零样板游戏框架完全入门介绍

为什么Pygame Zero是Python游戏初学者的首选?零样板游戏框架完全入门介绍

为什么Pygame Zero是Python游戏初学者的首选?零样板游戏框架完全入门介绍 【免费下载链接】pgzero A zero-boilerplate games programming framework for Python 3, based on Pygame. 项目地址: https://gitcode.com/gh_mirrors/pg/pgzero Pygame Zero 是一个…

2026/8/23 15:50:48 阅读更多 →
121、AF标定——DAC code与物距映射表生成及在产线中的自动化验证

121、AF标定——DAC code与物距映射表生成及在产线中的自动化验证

121、AF标定——DAC code与物距映射表生成及在产线中的自动化验证 产线那边又双叒叕打电话来了,说某机型AF近焦来回抽,远焦又对不上。我第一反应是问他们标定表是不是又拿上一代平台的模板直接套了。果不其然,产线工程师图省事,把IMX586的DAC映射表直接刷进了GN1的项目里。…

2026/8/23 15:36:34 阅读更多 →
122、双摄/多摄标定——外参标定与视差校正的产线实现与精度控制

122、双摄/多摄标定——外参标定与视差校正的产线实现与精度控制

122、双摄/多摄标定——外参标定与视差校正的产线实现与精度控制 产线上那台双摄模组又挂了,良率掉了三个点。拉出来一看,不是镜头脏污,也不是AA胶固化偏移超标,是标定工位在常温下做的外参,到了整机里跑在45℃的壳温下,视差图直接裂开——边缘区域出现了一条一条的横向…

2026/8/23 15:31:48 阅读更多 →

最新新闻

论文AI率过高怎么办?2026年12款免费降AI率工具实测指南

论文AI率过高怎么办?2026年12款免费降AI率工具实测指南

现在毕业论文答辩前,“AI率超标”已经彻底取代“查重率过高”,成了同学们的头号难题!不少同学只是用AI润色了摘要和结论,AI率直接飙升到离谱,纯手动修改根本不管用——这说明AIGC检测系统抓的不是个别词语,…

2026/8/23 23:59:54 阅读更多 →
Marketch:从Sketch画板直接量取CSS

Marketch:从Sketch画板直接量取CSS

Marketch:从Sketch画板直接量取CSS 【免费下载链接】marketch Marketch is a Sketch 3 plug-in for automatically generating html page that can measure and get CSS styles on it. 项目地址: https://gitcode.com/gh_mirrors/ma/marketch 设计稿交付还在…

2026/8/23 23:59:54 阅读更多 →
如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南 【免费下载链接】ThinkpadX390-Opencore-EFI macOS Catalina & Big Sur & Monterey on ThinkPad X390 (Hackintosh) 项目地址: https://gitcode.com/gh_mirrors/th/ThinkpadX390-Opencore-EFI …

2026/8/23 23:59:54 阅读更多 →
WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化 【免费下载链接】WechatHook Enjoy hooking wechat by Xposed....Accessibility...and so on... 项目地址: https://gitcode.com/gh_mirrors/we/WechatHook WechatHook 是一个基于 Xpos…

2026/8/23 23:59:54 阅读更多 →
OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan OpenModScan 是一款开源免…

2026/8/23 23:59:54 阅读更多 →
Gin-JWT认证与授权方案从Token到RBAC权限控制

Gin-JWT认证与授权方案从Token到RBAC权限控制

Gin-JWT认证与授权方案从Token到RBAC权限控制 文章导语 JWT(JSON Web Token)是现代Web服务的身份认证标准。在Gin框架中集成JWT看似简单,但涉及Token刷新、黑名单、多设备登录、RBAC权限控制等实际需求时,就需要更完善的设计。本文…

2026/8/23 23:57:54 阅读更多 →

日新闻

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →