基于汇编实现 hook objc_msgSend,统计方法耗时的方案

文章目录


简介

首先,iOS 中进行 hook 的方案有多种,这里使用的是 Facebook 的 fishhook 库:Github:fishhook

hook objc_msgsend ,货拉拉技术团队已有完善的方案:基于汇编实现objc_msgSend hook方法耗时的方案

另外,它们还开源了基于fishhook、汇编 hook objc_msgsend 并支持方法耗时可视化的项目:hll-wp-guldan-ios

接入

首先在 Podfile 中添加:

cpp 复制代码
pod 'Guldan', :git => "https://github.com/HuolalaTech/hll-wp-guldan-ios.git"

然后设置要监控的代码片段:

objectivec 复制代码
[GDNOCMethodTimeProfiler start];
// 下载图片
[self downloadImages];
[GDNOCMethodTimeProfiler stop];
[GDNOCMethodTimeProfiler handleRecordsWithComplete:^(NSArray<NSString *> * _Nonnull filePaths) {
       // file path
       for (NSString *filePath in filePaths) {
             NSLog(@"File path: %@", filePath);
         }
   }];

从控制台拿到 path:

最后将 path 的文件拖入 chrome://tracing/ :

经测试,模拟器(arm64)和真机均支持,不支持模拟器(x86_64)。

相关推荐
AI科技星3 小时前
《全域数学/数术工坊》体系总览
c语言·开发语言·汇编·electron·概率论
AI行业学习3 小时前
CC‑Switch v3.16.1 免费下载(Windows+macOS+Linux)、使用方法【2026.6.11】
linux·开发语言·windows·python·macos·前端框架·html
一个人旅程~3 小时前
如何进行win11右键菜单优化(poweshell命令行与bat自动脚本方式)
windows·经验分享·macos·电脑
坏小虎3 小时前
macOS 安装 Ghostty 终端完整教程:环境、依赖与美化配置
macos·策略模式
麦麦麦当劳大王4 小时前
OpenClaw安装部署(Windows/Linux/MacOS)
linux·windows·macos
萤萤七悬4 小时前
【Python笔记】AI帮封装Airtest IOS-WDA touch操作时的factor坐标转换
笔记·python·ios
会Tk矩阵群控的小木5 小时前
独立站tk矩阵系统站外引流实战:多账号管理+风控+数据分析代码实现
运维·macos·自动化·个人开发·tk矩阵
console.log('npc')5 小时前
FigmaEX 汉化,免费使用,下载与安装指南(Windows/Mac)
windows·macos·ui·figma
云水-禅心5 小时前
解决MacOS 安装Python之后默认版本指向不正确问题
开发语言·python·macos
库奇噜啦呼5 小时前
【iOS】源码学习-锁的原理
学习·ios·cocoa