欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

逆向工程三之工具篇

程序员文章站 2022-03-12 20:31:08
一、摘要 本文主要介绍逆向所用到工具,包括:UI分析Reveal,头文件导出class-dump,.m文件查看Hopper Disassembler,查看Mach-O文件结构指令工具otool、可视化工具MachOView 二、Reveal • Mac安装:https://pan.baidu.com ......

一、摘要

本文主要介绍逆向所用到工具,包括: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;

逆向工程三之工具篇

2.  打开需要调试的app;

逆向工程三之工具篇

 

•  覆盖ios端的revealserver文件

1.  找到mac上的“revealserver”文件;

逆向工程三之工具篇

逆向工程三之工具篇

2.  找到ios设备上的“revealserver”文件;

逆向工程三之工具篇

说明:如果没有“rhrevealloader”文件夹,可手动创建;

3.  重启springboard;

•  使用: ios端打开app,mac打开reveal

逆向工程三之工具篇

 说明:如果网络不好,wifi模式比usb模式会很卡;

逆向工程三之工具篇

说明:

1>该软件只能查看view视图层级结构,无法看vc层级结构;
2>若要查看vc层级结构,可利用mjcript.cy库中的mjchildvcs()方法来查看;
3>若无法查看,则先重启app,再重启reveal;

 

三、class-dump

•  下载:

•  安装:/usr/local/bin/

逆向工程三之工具篇

 

•  使用

1.  找到一个ipa包,查看包内容,找到里面的mach-o二进制文件(一般和包名同);

逆向工程三之工具篇

 2.  cd到mach-o文件所在目录下(可事先复制一份出来),导出所有的.h文件;

逆向工程三之工具篇

3.  将.h文件夹拖入xcode;

逆向工程三之工具篇

说明:如果文件较多的话,拖入xcode显示会很卡,一般直接拖入“sublime text”显示(很顺畅);

 

四、hopper disassembler

说明:将mach-o文件机器语言,反编译成汇编代码、oc\swift伪代码

•  下载安装:

逆向工程三之工具篇

•  打开hopper,选择试用

逆向工程三之工具篇

•  拖入mach-o文件

逆向工程三之工具篇

逆向工程三之工具篇

说明:如果文件很大,分析会很慢(左上角进度条,或者右下角”working…”);可以等分析完毕后,再进行调试;

•  演示:搜索一个方法,点击“2”,查看代码实现(“3”处)

逆向工程三之工具篇

 

五、otool命令行工具

 •  otool指令

 

逆向工程三之工具篇

 

 •  找到一个mach-o文件(以下以“钉钉”为例),查看其结构类型

 

逆向工程三之工具篇

说明:是一个胖二进制文件,有两种架构;

 

六、machoview

 •  下载地址

逆向工程三之工具篇

 

 •  将mach-o文件(以“钉钉”为例)拖入machoview

逆向工程三之工具篇

 

说明:两种架构,arm64和armv7;

逆向工程三之工具篇