逆向工程技术详解:《揭开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现》 | iOS DevCamp | 7月27日 北京
话题简介:在AppStore中经常会出现各种令人耳目一新的App,他们是如何实现那些效果的?他们又是使用哪些公共组件来完成自己的功能的呢?在本次演讲中将对如何探索那些封藏在IPA文件后面的实现进行简单的分析,将会针对其中的一些工具进行具体的演示和介绍。
讲师简介:张超,资深iOS 专家,iOS创业者。2009年在深圳第一次创业,主要从事iPhone应用的开发,完成了从技术到产品设计以及团队运营管理等全流程角色的转换,积累了丰富的iOS创业经验,熟稔App store的规则及流程,了解开发者的需求,并掌握了创业项目的全程运作能力。目前在国内移动互联网统计分析平台——友盟,担任iOS Team Leader。是创新工场和友盟的早期团队成员。
【幻灯片在线观看】*:
<iframe src="http://www.slideshare.net/slideshow/embed_code/13828737" width="597" height="486" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen=""></iframe>
备注:* 因为炫姐姐对SlideShare这一平台的偏爱,尽管需要使点小技巧才能上传分享,但是炫姐姐还是坚持选择了这一功能强大却简洁好用的平台。一来对国外这些开发出优秀的工具和平台、造福于互联网和人类的团队表示致敬,二来则是对国内对于这些优秀的工具和平台的限制表示一下立场。读者如果不能正常浏览,那么需要像炫姐姐一样用点小技巧。而对于那些还是不知道炫姐姐在说什么的小白读者,可以移步到这里查询原因。
【幻灯片下载页面】: iOS DevCamp幻灯片下载:逆向工程技术详解:揭开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 -来自CSDN下载频道(不需要积分,自由下载)
【幻灯片内容刚要】:
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp — Presentation Transcript
2. 揭 IPA的灰纱 通过分析工具了解App实现技巧 友盟 张超 微博:iAladdin iMessage:iAladdin@me.com
4. 什么是IPA? “ ipa后缀的文件是iOS系统的软件包,全称为iPhone application archive.通 常情况下,ipa文件都是使用苹果公司的FairPlay DRM技术进行加密保护 的。每个IPA文件都是ARM架构的可执行文件以及该应用的资源文件的打包 文件,只能安装在iPhone,iPod Touch 或iPad上。该文件可以通过修改后 缀名为zip后,进行解压缩,查看其软件包中的内容。 ”
6. IPA的物理结构
7. IPA的物理结构 iTunesMetadata. xxx.App iTunesArtwork plist
9. IPA的文件分类
11. 资源文件 [resource
15. PNG Normalize
18. pngcrush
20. UIKit-Artwork-Extractor
25. CrunchThursday
30. PVR/PVRTC/PVR.CCZ
33. TexturePacker
39. quickpvr
42. 运行时产生 Bundle内 沙箱内 网络交互
43. App中的数据 运行时产生 Bundle内 沙箱内 网络交互
49. 网络数据 [network]
52. Charles
54. 在网络交互中,通过充当代理的角色,从而获取到所有的请 求和返回值,作为中间层来实现抓包的过程。 - 模拟器配置 - 真机配置
55. Charles原理 在网络交互中,通过充当代理的角色,从而获取到所有的请 求和返回值,作为中间层来实现抓包的过程。 - 模拟器配置 - 真机配置
57. HTTP请求抓取
71. 特殊网络模拟
73. IPA状态 [ipa’s status]
87. 自签名工具
90. IPA的状态
93. 沙箱数据 [sandbox]
97. 常用命令 cat file
98. 静态分析工具 otool nm strings class-dump系列 运行时分析工具 Cycript 逆向分析工具 Hopper IDA Pro
99. 二进制文件 [binary] 静态分析工具 otool nm strings class-dump系列 运行时分析工具 Cycript 逆向分析工具 Hopper IDA Pro
101. otoolThursday, July 26, 12 26
108. Class-dump系列
109. SSH到iOS系统中 安装: a.通过Cydia安装,搜索Cycript安装 b.dpkg -i cycript_0.9.450-1_iphoneos-arm.deb 使用: a.# cycript b.# cycript -p processID 配合console
110. Cycript SSH到iOS系统中 安装: a.通过Cydia安装,搜索Cycript安装 b.dpkg -i cycript_0.9.450-1_iphoneos-arm.deb 使用: a.# cycript b.# cycript -p processID 配合console
112. IDA Pro
114. iOS App
116. Hoppe
122. 写在最后
123. Books -《Binary Hacks》 -《IDA Pro 权威指南》
124. 参考资料 Books -《Binary Hacks》 -《IDA Pro 权威指南》
125. URL - http://iphone.freecoder.org/classdump_en.html - http://www.cycript.org
126. 参考资料 URL - http://iphone.freecoder.org/classdump_en.html - http://www.cycript.org
127. Email: aladdin@umeng.com Github: iAladdin Weibo: iAladdin
128. 联系方式 Email: aladdin@umeng.com Github: iAladdin Weibo: iAladdin
分享到:
相关推荐
逆向工程技术详解:《揭开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现》 | iOS DevCamp 话题简介:在AppStore中经常会出现各种令人耳目一新的App,他们是如何实现那些效果的?他们又是使用哪些公共组件来完成...
揭开IPA文件的灰纱——通过静态分析工具了解IPA实现 话题简介:在AppStore中经常会出现各种令人耳目一新的App,他们是如何实现那些效果的?他们又是使用哪些公共组件来完成自己的功能的呢?在本次演讲中将对如何...
安卓应用实用功能的技术实现:《Android消息推送实现》 | Android DevCamp | 7月28日 北京 主题简介:作为移动应用开发的一个重要需求,微软和苹果公司分别为iOS和Windows Phone平台应用开发者提供了很好的消息推送...
IOS 友盟分享社会化组件SDK v6.4.6 集成了精简版QQ 微信 微博
友盟分享iOSsdk的使用,qq平台上分享的步骤,过程
友盟分享(精简版)
文件过大,完整demo请移步到gitHub:https://github.com/ClaudeLi/CLShare.git
集成了微信,QQ,微博,代码过大,移步github下载:https://github.com/CoderXJLee/YMDemo/tree/master
NULL 博文链接:https://zhangmingwei.iteye.com/blog/1993931
自定义分享界面
Android-友盟第三方登录、分享实现
dSYM IOS 友盟错误分析工具 能够精确定位到友盟错误中的地址
详细流程可参考博文,https://czhenya.blog.csdn.net/article/details/116800320 博客看下实现效果。没有积分的童鞋可以V信关注【开发同学留步】,回复【IOS友盟】获取完整源码吧~
微信分享,友盟分享,sharesdk分享等等分享时,都只能一张图片带文字,做不到多图分享,这时候百度了一下资料就发现了iOS有一个原生控件UIActivityViewController,可以实现多图分享,在多图分享时不能带文字分享,...
新版友盟统计xamarin.ios绑定项目,新版友盟统计xamarin.ios绑定项目,新版友盟统计xamarin.ios绑定项目,新版友盟统计xamarin.ios绑定项目,新版友盟统计xamarin.ios绑定项目,
用于iOS应用反馈意见,里面可自定义界面,及nav推出和modal推出,界面已完成搭建,可快速集成
友盟推送配置教程,详细的截图说明,带你实现友盟推送的相关证书推送等。iOS
见我的博客描述 http://blog.csdn.net/robinson_911/article/details/47661981
用于统计客户端下载量的sdk, 具有很全面的分析和统计功能
不用友盟或者ShareSDK实现(三方实现会增加很多不必要的代码,比如友盟SDK里面集成了很多他们自己的东西,而对于你的项目来说是无用的,我做的一个项目使用友盟会增加将近40M)。Demo代码注释清晰。在BQLAuthEngine....