当前位置: 首页 > article >正文

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

文章目录

  • 简介
  • 接入


简介

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

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

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

接入

首先在 Podfile 中添加:

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

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

[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)。


http://www.kler.cn/a/456374.html

相关文章:

  • Fetch处理大模型流式数据请求与解析
  • Java实现拍卖系统详解
  • netcat和nmap的区别
  • 图像处理(大津法找阈值)
  • 科大讯飞在线语音合成(流式版)python版
  • RJ45网口模块设计
  • 奇怪的“LIBTOOL undefined”
  • 波士顿房价预测的详细介绍
  • Pandas01
  • C++ 并发专题 - 实现一个线程安全的队列
  • 4.基于 Couchbase 构建数据仓库的元数据管理方案
  • 【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
  • 钉钉机器人发送excel表(简易版)
  • 使用ArcGIS/ArcGIS pro绘制六边形/三角形/菱形渔网图
  • vim文本编辑器常用命令和快捷键
  • Modern C++ std::atomic简介
  • neo4j无法导入csv文件
  • 渗透测试入门DVWA 教程1:环境搭建
  • 【WRF模拟】最高/最低日气温偏高/偏低的参数调整
  • 【Android】application@label 属性属性冲突报错
  • 潇洒郎:部署Dify, 安装Ollama,Ollama下载模型,Dify配置模型
  • JavaScript甘特图 dhtmlx-gantt
  • 面试场景题系列:设计URL短链
  • 深度学习中的参数初始化
  • Anaconda 安装与虚拟环境创建完整指南
  • jetbrains HTTPS 请求与响应流量分析报告【二】