之前找工作时,有家公司问到“之前是否用过私有 API?”当时第一反应就是“这不会被拒么?”也可能是自己想的简单了些,开发人员人才济济,怎么会不采取一些措施呢?所以就在网上看了一下关于私有 API 的东西,看到说是要用到 class-dump 来导出啥啥的...也不懂就直接去搜索 class-dump 这玩意。
class-dump:它利用OC语言的runtime特性,将头文件信息提取出来,生成对应的.h文件。
一、class-dump 环境配置
(1).下载地址:
http://stevenygard.com/projects/class-dump/
(2).安装:
1.下载完成后点击.dmg 文件将里面的 class-dump 复制到/usr/bin 文件里,
我这边是先把 class-dump 复制到桌面后在终端运行
sudo cp /Users/apple/desktop/class-dump '/usr/bin'
输入解锁密码就可以了
!!!如果在此步骤中出现“操作不允许”!!!
你就要先关闭 Rootless 这玩意,如何关闭呢?
重启你的电脑,开机过程中按住 command+r 进入恢复模式,在恢复模式中打开终端,执行命令 csrutil disable,这样你就关闭了 rootless,同样你如果想要重新打开的话只需要执行命令 csrutil enable,再次重启你的电脑,重新执行 sudo cp /Users/apple/desktop/class-dump '/usr/bin'命令
2.在终端输入:
class-dump 查看是否安装成功
3.出现 class-dump 3.5 (64 bit).....一大串后就是安装成功了
4.赋予权限:
sudo chmod 777 /usr/bin/class-dump
二、class-dump 使用(要放大招啦!!!)
(1).试验一下 class-dump
1.把自己的项目打包成.ipa 并导出,(这里就不说了)
2.将导出的.ipa 文件后缀改为“.zip”,解压得到 APP 的可执行文件(应该是在 Payload 文件夹下)
3.在终端中进入可执行文件 cd ...路径.../...就可以解析它了
4.解析可执行文件,并将解析后的文件保存到文件夹中:
class-dump -S -s -H 可执行文件名 -o /Users/apple/desktop/解析后保存的文件夹
5.点开可以跟之前的文件对比一下(其实并没有啥大的差别)
##注意:!!!我们使用的可执行文件是我们自己用自己的工程生成的,但是从 appstore 下载下来的 app 是通过加密的,class-dump 并不能直接处理这样的文件!!!##
不能直接处理的意思不就是可以间接处理吗?那如何间接处理呢?
所以就出现了一个新的名词---砸壳---在这里就不阐述了(我也是第一次听说)有兴趣的可以去百度一下....
(PS:虽说本人有两年的 iOS 开发经验,但由于平时工作有点忙,当然自己可能也有点懒惰,一直都没有记录过什么东西,主要是为了日后方便自己查阅所以并不是什么原创啥的并且参考了好几个大大的博客,如果被大大看到在这里先道个歉,写的不好,语句不通的地方请各位大哥大姐弟弟妹妹叔叔阿姨见谅!毕竟本人写作水平很一般。。。)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于