前言

当你想实现一个功能的时候,无从下手,毫无思路的时候,搜遍了网上也没有这方面的资料的时候,是不是感到很无力。但是从别人的App上面又可以看到类似的功能,这时候是不是很想看看别人的源码,把里面有价值的内容都榨干了呢?

下面简单介绍两种工具帮助你

先安装class-dump吧。我们直接下载class-dump-z0.2a,解压后将mac_x86目录中的class-dump-z程序文件拷贝至/usr/local/bin目录。这样就算安装完成啦。

一、Class-Dump

然后再网上随便下载一个ipa文件,我下载的是大众点评

1.1 Class-Dunp 简介

Class-Dump是一款可以导出头文件的命令行工具,改程序用于检查objective –
c运行时信息存储在Mach-O文件,它生成类的声明,类别和协议。

ipa

1.2 Class-Dump 下载地址

http://stevenygard.com/projects/class-dump/

图片 1

地址

后缀改为zip解压缩文件夹里找到.app主程序,此文件在Payload里

1.3 安装

双击.dmg 文件打开,把里面的文件拖到 /usr/local/bin
目录下,因为是修改了系统的路径,所以需要输入本机的密码,这样就可以在终端使用
class-dump 命令了。

Payload

1.4 使用

因为这里dump的是应用后缀是.app而不是.ipa,所以我们要把我们的IPA文件归档处理:

图片 2

归档

然后,打开刚才归档的 /Payload 目录下,那个就是.app 文件了。

![.app文件](http://upload-images.jianshu.io/upload\_images/2986999-84a5164f6f900118.png?imageMogr2/auto-orient/strip%7Ci
![Uploading 6D04C291-0C02-431A-8887-DCBEE20EB21A_302676.png . .
.]mageView2/2/w/480)

然后打开终端,输入命令

class-dump -H /Users/apple/Desktop/重新打包/Payload/XXX.app -o
/Users/apple/Desktop/DumpHeaderClass

-H 后面的内容为需要dump的 .app 文件路径
-o 后面的内容为输出的头文件保存路径

因为我是保存到桌面的,所以等命令执行完成之后,我就可以在桌面上找到DumpHeaderClass这个名字的文件夹了,并且里面已经装满了我们想要的头文件了:

图片 3

头文件

对应的同名文件.app

二、Hopper

把这个文件拖到桌面开始用class-dump命令行处理

2.1 什么是Hopper

Hopper
Disassembler是Mac上的一款二进制反汇编器,基本上满足了工作上的反汇编的需要,包括伪代码以及控制流图(Control
Flow Graph),支持ARM指令集并针对Objective-C的做了优化。

命令行

2.2 下载地址

官网地址:https://www.hopperapp.com

生成的头文件信息txt

2.3 使用

这个工具的强大之处,在于二进制文件在它面前,基本是毫无遮掩的,所有函数名,方法名,代码逻辑结构,你都可以一览无遗。

图片 4

Hopper

找到我们归档的 .app 文件,右键 —> 显示包内容 打开:

图片 5

右键打开

找到里面的二进制文件,下面我们以 网易云音乐的 为例子:

图片 6

二进制文件

最后直接把这个文件拖到Hopper 中,下面就是:

图片 7

整体目录

左边是列出了所有的方法,而且点击右上角的两个图标还可以切换不同的查看方式,下面以查看源码为例子:

图片 8

查看源码

OK!你已经可以查看你所想要看到的信息了,想想真有意思。

总结

对于上面的两种方法,都必须是已经砸壳的IPA文件,不然的话,是没办法导出头文件的。

如果对代码做了处理,也是看不到里面的方法名的。

下一篇文章介绍如何进行iOS核心代码加密,防止别人通过上面的工具来查看我们的核心代码信息。

相关文章