ios 安全攻防逆向OC基础

iOS class-dump 反编译ipa包

2018-01-17  本文已影响0人  雷尘子

最近上传AppStore,总是说包含第三方支付而被拒。

如何反编译ipa包,查看所有的头文件和方法名(包括私有方法名)?

1.找到ipa包所在位置(这里的ipa包是通过archive后,export导出到桌面上的)

2.使用UnRAR工具解压ipa,选中XXX.ipa,选择打开方式 ,选择UnRAR,找到XXX.ipa路径,点击Open

使用UnRAR

打开后,XXX.ipa所在文件夹中会多出两个文件夹:Payload 、Symbols,此时Payload中存储的是对应的XXX.app 文件

方式1:XXX.app 文件

比起这种解压方式,我感觉下面的方法更便捷: 

找到XXX.ipa ,在同文件夹下复制一份修改后缀为zip,双击zip解压,里面会多出一个XXX文件夹,XXX里面会存储两个文件夹:Payload 、Symbols ,Payload中存储的是对应的XXX.app文件

方式2: XXX.app 文件

或者直接右击ipa文件,选择打开方式,选择归档实用工具,XXX.ipa同目录下会多出一个XXX文件夹,XXX里面会存储两个文件夹:Payload 、Symbols ,Payload中存储的是对应的XXX.app文件

方式3: XXX.app 文件

无论采取哪种方式,目的一样,都能获得XXX.app

3.下载安装class-dump-3.5.dmg 链接:http://stevenygard.com/projects/class-dump/

    3.1 下载完成以后双击.dmg的文件,将里面的class-dump拷贝到/usr/local/bin路径下(快捷键 shift + command + G  弹出前往文件夹)

前往文件夹

    3.2 打开终端,在控制台输入class-dump,显示如下表示配置成功

class-dump命令

4.打开终端,先进入.app文件所在路径;再输入 class-dump 命令进行反编译

    4.1 $ cd  (将 XXX.app 所在文件夹Payload拖过来)  XXX.app Path

    4.2 $ class-dump -H  XXX.app

反编译命令

此时,Payload文件夹中会出现XXX.ipa所有的.h文件(其中所有的方法名,包括.m中的私有方法名,都会在这些反编译的.h文件中展示出来)

反编译出.h文件

找出一些方法名(不只是在.h声明的公有方法,也包括在.m中用到的私有方法)中存在的敏感词,修改掉重新打包。

反编译参考:https://www.cnblogs.com/liyy2015/p/6244235.html

下面附上archive并导出ipa包其中一种方式的步骤:

1.用Xcode打开项目

2.device 一项选择 Generic iOS Device (否则不能 archive)

3.选择目录栏里面 product -> archive ; 此时就可以打包成.xcarchive文件

archive图示

如果已经生成archive后的文件,请忽略上述步骤

4.打开Archive包所在窗口,如果是新archive的包,会自动打开此窗口。选择目录栏里面 Windows -> Organizer ; 此时就可以打开archive窗口

打开archive包所在窗口图示

如果已经打开archive窗口,请忽略上述步骤  

5.导出ipa包,选择一个好找的路径,可以导出到桌面上

    5.1 选择Export

导出ipa包图示1

    5.2 选择导出方式:如果上传 AppStore的包 选择第一种;如果是 测试包 选择第四种

导出ipa包图示2

    5.3 选择对应的开发者账号信息,如果在Xcode中已经配置好证书和描述性文件,可选择 Use local signing assets -> choose

选择证书

    5.4 导出到桌面,生成一个以 XXX + 时间 命名的文件夹,里面就是导出的 XXX.ipa包

导出ipa
上一篇下一篇

猜你喜欢

热点阅读