前言
当你想实现一个功能的时候,无从下手,毫无思路的时候,搜遍了网上也没有这方面的资料的时候,是不是感到很无力。但是从别人的App上面又可以看到类似的功能,这时候是不是很想看看别人的源码,把里面有价值的内容都榨干了呢?
下面简单介绍两种工具帮助你
一、Class-Dump
1.1 Class-Dunp 简介
Class-Dump是一款可以导出头文件的命令行工具,改程序用于检查objective - c运行时信息存储在Mach-O文件,它生成类的声明,类别和协议。
1.2 Class-Dump 下载地址
http://stevenygard.com/projects/class-dump/
1.3 安装
双击.dmg 文件打开,把里面的文件拖到 /usr/local/bin 目录下,因为是修改了系统的路径,所以需要输入本机的密码,这样就可以在终端使用 class-dump 命令了。
1.4 使用
因为这里dump的是应用后缀是.app而不是.ipa,所以我们要把我们的IPA文件归档处理:
然后,打开刚才归档的 /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这个名字的文件夹了,并且里面已经装满了我们想要的头文件了:
二、Hopper
2.1 什么是Hopper
Hopper Disassembler是Mac上的一款二进制反汇编器,基本上满足了工作上的反汇编的需要,包括伪代码以及控制流图(Control Flow Graph),支持ARM指令集并针对Objective-C的做了优化。
2.2 下载地址
官网地址:https://www.hopperapp.com
2.3 使用
这个工具的强大之处,在于二进制文件在它面前,基本是毫无遮掩的,所有函数名,方法名,代码逻辑结构,你都可以一览无遗。
找到我们归档的 .app 文件,右键 —> 显示包内容 打开:
找到里面的二进制文件,下面我们以 网易云音乐的 为例子:
最后直接把这个文件拖到Hopper 中,下面就是:
左边是列出了所有的方法,而且点击右上角的两个图标还可以切换不同的查看方式,下面以查看源码为例子:
OK!你已经可以查看你所想要看到的信息了,想想真有意思。
总结
对于上面的两种方法,都必须是已经砸壳的IPA文件,不然的话,是没办法导出头文件的。
如果对代码做了处理,也是看不到里面的方法名的。
下一篇文章介绍如何进行iOS核心代码加密,防止别人通过上面的工具来查看我们的核心代码信息。