评论

收藏

[iOS开发] 逆向工程三之工具篇

移动开发 移动开发 发布于:2021-06-25 09:08 | 阅读数:375 | 评论:0

一、摘要
  本文主要介绍逆向所用到工具,包括:UI分析Reveal,头文件导出class-dump,.m文件查看Hopper Disassembler,查看Mach-O文件结构指令工具otool、可视化工具MachOView

二、Reveal
  ·  Mac安装:https://pan.baidu.com/s/1lz9lwTKXD9bS8DnvT9gkBQ 提取密码:b31u
  ·  iOS端安装:Cydia上搜索“reveal”,选择“Reveal2Loader”并安装,再重启SpringBoard
  1.  重启SpringBoard;
   DSC0000.png
  2.  打开需要调试的app;
   DSC0001.png
  ·  覆盖iOS端的RevealServer文件
  1.  找到Mac上的“RevealServer”文件;
   DSC0002.png
   DSC0003.png
  2.  找到iOS设备上的“RevealServer”文件;
   DSC0004.png
  说明:如果没有“RHRevealLoader”文件夹,可手动创建;
  3.  重启SpringBoard;
  ·  使用: iOS端打开app,Mac打开Reveal
   DSC0005.png
   说明:如果网络不好,WiFi模式比USB模式会很卡;
   DSC0006.png
  说明:

1>该软件只能查看view视图层级结构,无法看vc层级结构;
2>若要查看vc层级结构,可利用mjcript.cy库中的MJChildVcs()方法来查看;
3>若无法查看,则先重启app,再重启Reveal;
三、class-dump
  ·  下载:http://stevenygard.com/projects/class-dump/
  ·  安装:/usr/local/bin/
   DSC0007.png
  
  ·  使用
  1.  找到一个IPA包,查看包内容,找到里面的Mach-O二进制文件(一般和包名同);
   DSC0008.png
   2.  cd到Mach-O文件所在目录下(可事先复制一份出来),导出所有的.h文件;
   DSC0009.png
  3.  将.h文件夹拖入xcode;
   DSC00010.png
  说明:如果文件较多的话,拖入xcode显示会很卡,一般直接拖入“Sublime Text”显示(很顺畅);

四、Hopper Disassembler
  说明:将Mach-O文件机器语言,反编译成汇编代码、OC\Swift伪代码
  ·  下载安装:https://www.hopperapp.com/download.html?
   DSC00011.png
  ·  打开Hopper,选择试用
   DSC00012.png
  ·  拖入Mach-O文件
   DSC00013.png
   DSC00014.png
  说明:如果文件很大,分析会很慢(左上角进度条,或者右下角”working…”);可以等分析完毕后,再进行调试;
  ·  演示:搜索一个方法,点击“2”,查看代码实现(“3”处)
   DSC00015.png
  
五、otool命令行工具
   ·  otool指令
   DSC00016.png
   ·  找到一个Mach-O文件(以下以“钉钉”为例),查看其结构类型
   DSC00017.png
  说明:是一个胖二进制文件,有两种架构;

六、MachOView
   ·  下载地址
   DSC00018.png
   ·  将Mach-O文件(以“钉钉”为例)拖入MachOView
   DSC00019.png
  说明:两种架构,arm64和armv7;
   DSC00020.png

关注下面的标签,发现更多相似文章