iOS逆向工程-工具篇

本文详细介绍了iOS逆向工程中的Time Profiler工具,包括启动方法、基本概念、各种过滤技巧和高级功能。通过学习,读者可以掌握如何使用Time Profiler进行性能监控,了解CPU使用情况,优化应用程序性能。文中还提到了其他相关工具,如Cycript,为iOS逆向工程提供更全面的支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于初开始学习iOS逆向工程的人来说,实现一个tweak可以算是入门逆向工程了。当然了,可能你现在还不知道tweak是什么。简单来说,你可以把一个tweak当作某一个app的一个插件(类似于浏览器广告屏蔽插件)。在app运行的时候,tweak会hook住某个函数,然后在hook的函数里面,你可以插入你的代码。比如用户在登陆微信账号的时候,tweak可以hook住登录函数,dump出用户的账号密码。那问题来了,我们要如何知道哪个函数是账号登录函数咧?这就涉及到我们如何去分析一个iOS app

要进行iOS逆向工程,建议掌握iOS应用的开发相关知识,相信看本文的读者应该都具备。 进行iOS逆向工程的一个关键就是工具的使用,工欲善其事,必先利其器。用好工具可以事半功倍。甚至可以做之前可能根本没想到能够做的事情。

这里介绍的工具可以分为如下几类:

  • UI分析工具
  • 进程分析工具
  • 文件系统查看工具
  • 数据库查看工具
  • 网络分析工具
  • 逆向程序开发工具
  • 反汇编工具
  • 调试器
  • 性能监控工具
  • crash分析工具

UI分析工具
UI分析工具是对iOS应用的UI进行分析的工具,有Reveal和PonyDebugger等。

Reveal能够在运行时调试和修改iOS应用程序。它能连接到应用程序,并允许开发者编辑各种用户界面参数,这反过来会立即反应在程序的UI上。就像用FireBug调试HTML页面一样,在不需要重写代码、重新构建和重新部署应用程序的情况下就能够调试和修改iOS用户界面。 --InfoQ

使用Reveal的效果如图:


使用PonyDebugger的效果如图:

进程分析工具


文件系统查看工具

在iOS设备上可以安装iExplorer, iFunbox, iTool等工具,可以查看iOS应用的文件系统结构。

使用iFunbox打开陌陌的文件目录,如下图所示:


网络分析工具
使用Tcpdump, WireShark, Charles、httpscope等工具可以对应用的网络数据进行分析。

使用Charles对网络数据包进行分析的示意图:


逆向程序开发工具
开发越狱程序和日常开发的iOS程序很相似,不过,越狱程序能做更强大的事情。你的设备越狱之后,你就能够hook进Apple提供的几乎所有的class,来控制iPhone/iPad的功能。

Theos大幅简化了编写越狱程序的流程,后面会对该工具进行详细的介绍。

反汇编工具

  • 可执行代码分析

    • dumpdecrpted
    • class_dump,class_dump_z,classdump_dyld
    • Disassemblers
      • IDA
      • Hopper
      • otool
    • strings
    • nm

IDA Pro是一款非常强大的反汇编工具,甚至能够将汇编代码转换成近似于源码的伪代码。

如下图所示[1]:


可以看到,基本上相当于源码。

调试器

  • 运行时分析

    • GDB/LLDB
    • Cycript
    • Logify
    • weak_classdump
    • InspectiveC
在iOS逆向工程中,可以使用gdb来对iOS应用进行动态分析,进行单步调试,也可以使用Cycript来对iOS进行动态分析。 


本文简要介绍了iOS逆向工程要用到的工具,后面的文章会对用到的工具做进一步的介绍。


性能监控工具


手把手教time profiler

一、启动time profiler

二、基本介绍

    主面板

      详情面板(detail pane)介绍

    一些简单技巧

三、简单的过滤

    过滤时间段

    函数名或类名过滤

      Call Tree过滤

      Call Tree Constraints过滤

    打用户标记

      Specific Data mining

四、高级的功能

    两种模式的介绍

      instrument4.0之后的新特性

    其他视图

五、参考文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值