iOS开发工具(1)

  • 网络封包分析工具Charles
    直接推荐一篇唐巧的博客吧,已经说的很明白了

  • 将app的头文件信息导出工具 class-dump

前言

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

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

那别人是怎么做的?

class-dump简介       

class-dump就是提取目标对象的class信息的工具,利用了Objective-C的runtime特性,将存储在Mach-O文件夹中的头文件信息提取出来,生成对应的.h文件。需要注意的是我们从App Store下载的APP是经过加密的,在可执行文件上加了一层“壳”,我们的class-dump是不能处理这种文件的,需要先用其他工具来砸壳,才能使用。

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

一、Class-Dump

某些时候,特定是犹豫的时候,想看一下别人都是怎么弄的。

安装class-dump

下载地址:

图片 1

class-dump下载地址截图

下载class-dump-3.5.dmg,下载完成后,将dmg文件里的class-dump复制到"/usr/local/bin"下,然后打开终端,输入“sudo chmod 777 /usr/local/bin/class-dump”,给class-dump赋予执行权限。此时在终端运行class-dump命令,看到下图,就表示安装成功

图片 2

class-dump命令

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

1.1 Class-Dunp 简介

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

那我可以改写这个程序吗?让它按我的意愿来运行。

class-dump的使用

class-dump的对象是Mach-O格式的二进制文件,比如Farmework的库文件和可执行文件。在class-dump一个对象的时候,首先要找到这个对象的可执行文件目录,在Xcode中的位置如图:

图片 3

可执行文件

使用我们可以借助Xcode自带的plutil工具查看info.plist中的CFBundleExecutable字段。先将.ipa的文件后缀改为.zip,然后解压,在终端cd 到这个解压文件中的.app文件,然后执行plutil -p Info.plist | grep CFBundleExecutable,效果如图:

图片 4

获取可执行文件夹

最后得到的"wmcw"就是APP的可执行文件,然后就是对可执行文件进行class-dump,并将头文件内容按照名字排序。命令如下:class-dump -S -s -H wmcw -o /Users/zhaoyongsheng/Desktop/Payload 执行完毕后打开/Users/zhaoyongsheng/Desktop/Payload文件夹,效果如图:

图片 5

clas-dump成功

好了,现在去对比一下自己源码的头文件和class-dump头文件的差别吧,你会发现参数类型被改成了id,参数名用arg1,arg2等替换了,其他的基本是一样的。

ipa

1.2 Class-Dump 下载地址

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

图片 6

地址

某些时候,你想注入一个程序,所以想先看一下这个程序的流程与结构是怎么样的。

本文由糖果派对电玩城发布于独家专题,转载请注明出处:iOS开发工具(1)

您可能还会对下面的文章感兴趣: