iOS逆向工程三:苹果私有API的获取
来源:互联网 发布:qt5.7串口编程实例 编辑:程序博客网 时间:2024/05/30 02:52
前言
作为iOS开发人员,相信大多数伙伴都对怎么获取iOS的私有API很有兴趣,最近通过查找资料,总结了以下三种方法,希望对你有用。
第一种(class-dump)
不得不说这是一个很棒的工具,安装和使用都很方便。
安装
去nygard/class-dump 下载工程,编译之后就会获得class-dump,把它放到
"/usr/bin"
文件夹里,注意,这个地址根据系统的不同有所差别,我的系统是
10.10.5
,低版本的系统有些是
"/usr/local/bin"
,这个根据根据自己的系统注意一下即可。
注意:在iOS9之前,即Xcode7之前,可以直接去Class-dump即可,但是iOS9之后用这个版本导出的话会报下错
Input file (/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/PrivateFrameworks/ChatKit.framework) doesn't contain an executable.
这是因为iOS9增加了一个叫
"the __DATA_CONST segment"
的东东。
使用
首先修改class-dump的权限
$ chmod 777 class-dump
注意,这个步骤得在class-dump所在的文件夹的根目录下执行。
然后就可以使用了,具体如下:
class-dump -H /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/PrivateFrameworks/ChatKit.framework -o <存储地址>
这样就会导出ChatKit.framework框架未公开的头文件到你存储的地方。
第二种(class-dump + DumpFramework.pl)
这个方法比第一种方法强大的地方就是可以通过一条命令把所有的私有API的头文件导出到一个叫
header
的文件夹里。
安装
class-dump的安装见第一种方法,DumpFramework.pl可以去shuhongwu/HackSpringDemo 下载,放在任意目录下都可。
配置
打开DumpFrameworks.pl文件,把下面的地址改成你自己的地址
dump_frameworks('/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/Frameworks', 'Frameworks');dump_frameworks('/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/PrivateFrameworks', 'PrivateFramework');
注意:
'Frameworks'
一定要换行。还有这里导出的是模拟器的私有API,因为class-dump 作用的对象必须是未经过加密的可执行文件,而从 app store 下载的 app 都是经过签名加密的,所以两个iPhoneSimulator.platform地方不能换成iPhoneOS.platform.
使用
cd到DumpFrameworks.pl的路径,并执行
$ ./DumpFrameworks.pl
如没有问题的话,所有需要的头文件都已经导出到
~/user/Headers
文件夹里。
第三种方法(clone)
其实这是一种偷懒的办法,可以直接去
nst/iOS-Runtime-Headers下载就可以了,这里会随时更新。
后话
利用私有API确实很酷,可以根据自己的需要和爱好做出好多很酷的效果,但是如果需要上传AppStore的话,建议不要使用,因为这是苹果官方严令禁止的。如果你觉得可以通过加密的方法躲过审查的话,你可以看看独家工程逆向。
- iOS逆向工程三:苹果私有API的获取
- iOS 获取私有api的方法
- IOS开发之苹果私有API的使用
- iOS 应用逆向工程(三)
- iOS私有API获取电话号码
- IOS获取手机号(私有API)
- 关于苹果私有API的使用
- 苹果私有API
- 苹果私有api------SpringBoard
- 苹果私有api
- iOS开发获取SDK下私有API
- class-dump获取iOS私有api
- iOS 获取APP相关信息 私有API
- IOS私有API的了解
- IOS私有API的了解
- iOS 私有api的调用
- ios私有API的使用
- IOS私有API的了解
- ASP.NET MVC一次删除多笔记录 V2.0
- MongoDB文档翻译-聚集管道
- 【解题报告】AIM Tech Round 3 (Div. 2)(先占个位置,里面暂时什么也没有)
- MATLAB中floor、round、ceil、fix区别
- Oracle忘记密码增麽办???
- iOS逆向工程三:苹果私有API的获取
- nginx应用反向代理负载均衡
- POJ-1979 Red and Black
- 疯狂Java笔记:3.2 标识符和关键字
- 【小结】机器学习中的正则化范数 -- L1范数与L2范数
- 从0到1:我是如何在一年内无师自通机器学习的?
- 设计模式笔记十:装饰器模式
- PAT 1098-Insertion or Heap Sort (25)
- 编程题训练3