解开IPA文件的灰沙-通过静态分析工具了解IPA实现
2013-01-13 11:33
441 查看
在7月27日的iOS/Android训练营大会上,友盟iOS Team Leader张超带来主题演讲“解开IPA文件的灰沙-通过静态分析工具了解IPA实现”。针对IPA资源文件以及图片处理,张超提出,分析网络数据最核心的就是抓包和解包,并且针对这一话题进行了阐释。
张超:现在一个IPA在iOS生态系统中的生存状态是怎么样的?1.IPA被破解发到越狱市场。2.IPA被开发者简单加密,再被破解,再流到越狱市场。3.如果IPA得到足够有效的加密,会大大提高避免被破解,被逆向的几率。
相关介绍(ppt下载):http://blog.csdn.net/shiningxyy/article/details/7820809
【幻灯片内容纲要】:
1. iOS DevCampProduced by CSDN
2. 揭开IPA的灰纱 通过分析工具了解App实现技巧 友盟 张超 微博:iAladdin 电邮:aladdin@umeng.com
3. 什么是IPA?“ipa后缀的文件是iOS系统的软件包,全称为iPhone application archive.通常情况下,ipa文件都是使用苹果公司的FairPlay DRM技术进行加密保护的。每个IPA文件都是ARM架构的可执行文件以及该应用的资源文件的打包文件,只能安装在iPhone,iPod Touch 或iPad上。该文件可以通过修改后缀名为zip后,进行解压缩,查看其软件包中的内容。 ”
4. IPA的物理结构 iTunesMetadata. xxx.AppiTunesArtwork plist
5. IPA的文件分类
6. 资源文件 [resource]
7. PNG NormalizerUIKit-Artwork-Extractorhttps://github.com/0xced/UIKit-Artwork-ExtractorCrunchhttp://www.pragmaticcode.com/crunch/pngcrush 命令pngcrush -revert-iphone-optimizations -q OptimizedPNG.png RevertedPNG.pngRuby实现https://github.com/swcai/iphone-png-normalizerPython实现http://www.axelbrz.com.ar/?mod=iphone-png-images-normalizerObjective-C实现
8. pngcrush
9. UIKit-Artwork-Extractor
10. Crunch
11. 原理及其他其他语言实现Ruby实现https://github.com/swcai/iphone-png-normalizerPython实现http://www.axelbrz.com.ar/?mod=iphone-png-images-normalizerObjective-C实现原理资料http://iphonedevwiki.net/index.php/CgBI_file_format
12. PVR/PVRTC/PVR.CCZ TexturePacker -- pvr/pvrtc/pvr.ccz http://www.codeandweb.com/texturepacker/ quickpvr -- pvr/pvrtc http://www.limbic.com/quickpvr.html 13. TexturePacker
14. quickpvr
15. App中的数据 运行时产生Bundle内 沙箱内 网络交互
16. 网络数据 [network]
17. Charles
18. Charles原理在网络交互中,通过充当代理的角色,从而获取到所有的请求和返回值,作为中间层来实现抓包的过程。- 模拟器配置- 真机配置
19. HTTP请求抓取
20. HTTPS请求抓取
21. 特殊网络模拟
22. IPA状态 [ipa’s status]
23. 自签名工具
24. IPA的状态
25. 沙箱数据 [sandbox] Artwork iTunesMetadata xxx.app .plist 6A2FCEEC-591E-4B85-B625-26F1AA3B2A4E Documents Library tmp
26. 常用命令catfile
27. 二进制文件 [binary] 静态分析工具 otool nm strings class-dump系列 运行时分析工具 Cycript 逆向分析工具 Hopper IDA Pro
28. otool
29. nm
30. strings
31. Class-dump系列
32. CycriptSSH到iOS系统中安装:a.通过Cydia安装,搜索Cycript安装b.dpkg -i cycript_0.9.450-1_iphoneos-arm.deb使用:a.# cycriptb.# cycript -p processID配合console
33. IDA Pro
34. iOS App
35. Hopper
36. iOS App
37. Mac App
38. 写在最后
39. 参考资料Books-《Binary Hacks》-《IDA Pro 权威指南》-《Hacking and Securing iOSApplications》-《iOS Hacker’s Handbook》
40. 参考资料URL- http://iphone.freecoder.org/classdump_en.html- http://www.cycript.org- http://iphonedevwiki.net/index.php/CgBI_file_format 41. 联系方式Email: aladdin@umeng.comGithub: iAladdinWeibo: iAladdin
=================================
1、提取资源文件
Crunch app - Extract the resource files of iOS applications. Easily.
地址:http://www.pragmaticcode.com/crunch/ (15天试用期)
UIKit-Artwork-Extractor 提取资源文件(很强大)
https://github.com/0xced/UIKit-Artwork-Extractor
Ruby实现
https://github.com/swcai/iphone-png-normalizer
Python实现
http://www.axelbrz.com.ar/?mod=iphone-png-images-normalizer
TexturePacker一个不错的图片组合工具
http://www.codeandweb.com/texturepacker
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信.
http://www.charlesproxy.com/
张超:现在一个IPA在iOS生态系统中的生存状态是怎么样的?1.IPA被破解发到越狱市场。2.IPA被开发者简单加密,再被破解,再流到越狱市场。3.如果IPA得到足够有效的加密,会大大提高避免被破解,被逆向的几率。
相关介绍(ppt下载):http://blog.csdn.net/shiningxyy/article/details/7820809
【幻灯片内容纲要】:
1. iOS DevCampProduced by CSDN
2. 揭开IPA的灰纱 通过分析工具了解App实现技巧 友盟 张超 微博:iAladdin 电邮:aladdin@umeng.com
3. 什么是IPA?“ipa后缀的文件是iOS系统的软件包,全称为iPhone application archive.通常情况下,ipa文件都是使用苹果公司的FairPlay DRM技术进行加密保护的。每个IPA文件都是ARM架构的可执行文件以及该应用的资源文件的打包文件,只能安装在iPhone,iPod Touch 或iPad上。该文件可以通过修改后缀名为zip后,进行解压缩,查看其软件包中的内容。 ”
4. IPA的物理结构 iTunesMetadata. xxx.AppiTunesArtwork plist
5. IPA的文件分类
6. 资源文件 [resource]
7. PNG NormalizerUIKit-Artwork-Extractorhttps://github.com/0xced/UIKit-Artwork-ExtractorCrunchhttp://www.pragmaticcode.com/crunch/pngcrush 命令pngcrush -revert-iphone-optimizations -q OptimizedPNG.png RevertedPNG.pngRuby实现https://github.com/swcai/iphone-png-normalizerPython实现http://www.axelbrz.com.ar/?mod=iphone-png-images-normalizerObjective-C实现
8. pngcrush
9. UIKit-Artwork-Extractor
10. Crunch
11. 原理及其他其他语言实现Ruby实现https://github.com/swcai/iphone-png-normalizerPython实现http://www.axelbrz.com.ar/?mod=iphone-png-images-normalizerObjective-C实现原理资料http://iphonedevwiki.net/index.php/CgBI_file_format
12. PVR/PVRTC/PVR.CCZ TexturePacker -- pvr/pvrtc/pvr.ccz http://www.codeandweb.com/texturepacker/ quickpvr -- pvr/pvrtc http://www.limbic.com/quickpvr.html 13. TexturePacker
14. quickpvr
15. App中的数据 运行时产生Bundle内 沙箱内 网络交互
16. 网络数据 [network]
17. Charles
18. Charles原理在网络交互中,通过充当代理的角色,从而获取到所有的请求和返回值,作为中间层来实现抓包的过程。- 模拟器配置- 真机配置
19. HTTP请求抓取
20. HTTPS请求抓取
21. 特殊网络模拟
22. IPA状态 [ipa’s status]
23. 自签名工具
24. IPA的状态
25. 沙箱数据 [sandbox] Artwork iTunesMetadata xxx.app .plist 6A2FCEEC-591E-4B85-B625-26F1AA3B2A4E Documents Library tmp
26. 常用命令catfile
27. 二进制文件 [binary] 静态分析工具 otool nm strings class-dump系列 运行时分析工具 Cycript 逆向分析工具 Hopper IDA Pro
28. otool
29. nm
30. strings
31. Class-dump系列
32. CycriptSSH到iOS系统中安装:a.通过Cydia安装,搜索Cycript安装b.dpkg -i cycript_0.9.450-1_iphoneos-arm.deb使用:a.# cycriptb.# cycript -p processID配合console
33. IDA Pro
34. iOS App
35. Hopper
36. iOS App
37. Mac App
38. 写在最后
39. 参考资料Books-《Binary Hacks》-《IDA Pro 权威指南》-《Hacking and Securing iOSApplications》-《iOS Hacker’s Handbook》
40. 参考资料URL- http://iphone.freecoder.org/classdump_en.html- http://www.cycript.org- http://iphonedevwiki.net/index.php/CgBI_file_format 41. 联系方式Email: aladdin@umeng.comGithub: iAladdinWeibo: iAladdin
=================================
1、提取资源文件
Crunch app - Extract the resource files of iOS applications. Easily.
地址:http://www.pragmaticcode.com/crunch/ (15天试用期)
UIKit-Artwork-Extractor 提取资源文件(很强大)
https://github.com/0xced/UIKit-Artwork-Extractor
Ruby实现
https://github.com/swcai/iphone-png-normalizer
Python实现
http://www.axelbrz.com.ar/?mod=iphone-png-images-normalizer
TexturePacker一个不错的图片组合工具
http://www.codeandweb.com/texturepacker
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信.
http://www.charlesproxy.com/
相关文章推荐
- 解开IPA文件的灰沙-通过静态分析工具了解IPA实现
- 【幻灯片分享】揭开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
- 知识点小结——版本调试——内存分析工具——设备调试流程——打包ipa文件——单例模式
- pc-lint静态代码分析工具(检查linux下C++代码的实现方式)
- Windows7文件批量更名通过bat命令实现无需其他工具
- git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<--base<--A<--A' ^ | --- B<--B' 小米工程师常常需要寻找两个分支最近的分割点,即base.假设git 树是多叉树,请实现一个算法,计算git树上任意两点的最近分割点。 (假设git树节点数为n,用邻接矩阵的形式表示git树:字符串数组matrix包含n个字符串,每个字符串由字符'0
- 将lrzsz工具移植到ARM开发板 ---只通过串口实现window和ARM板之间文件互传
- 【Day27】什么是nginx,以及通过 nginx 实现静态文件转发、反向代理和负载均衡的配置
- 通过分析mkbootimg源代码了解boot.img文件结构
- 如何通过Linux中的Samba工具实现文件共享
- Apache 下通过 .htaccess 文件实现伪静态连接
- .NET通过配置文件的方式实现静态js文件跨域访问
- 越狱iPhone通过网站实现一键安装ipa格式应用的方法、越狱iPhone实现扫二维码直接下载安装ipa文件的方法
- SpringMVC实现velocity多Resourceloader通过文件、数据库等方式加载模版
- HTTP POST请求报文格式分析与Java实现文件上传
- Struts2通过commons-fileupload实现文件上传
- 通过配置.htaccess文件实现子目录绑定二级域名的方法
- SpringMVC处理静态文件源码分析
- 通过一般处理程序实现【文件上传】
- 常用 Java 静态代码分析工具的分析与比较