- 浏览: 904012 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (466)
- iPhone, iOS , Objective-c (155)
- 数据库 (20)
- 设计模式 (5)
- 第三方包管理,cocoapod (2)
- 版本管理, SVN, Subversion, Git (1)
- Google, Android, Java (14)
- Wordpress (1)
- 职业素养 (3)
- 版本管理,git (3)
- 前端小技巧 (2)
- flash (1)
- javascript (5)
- Ruby (0)
- 编程语言 (1)
- 网络常识 (1)
- 找到生活好感觉 (5)
- 产品经理 (1)
- markdown (1)
- 云服务器 (1)
- iPhone (116)
- iOS (116)
- Objective-c (116)
- 学习技巧 (2)
- Google (5)
- Android (6)
- Java (21)
- python (1)
- sqlite (3)
- node.js (2)
- mongodb (2)
- 学习技巧,阅读 (2)
- 软件测试 (3)
- 架构设计 (2)
- 设计 (1)
- Spring framework (3)
- junit (1)
- Linux (2)
- 软件 (1)
- Struts2 (1)
- 版本管理 (3)
- SVN (3)
- Subversion (3)
- Git (3)
- mysql (5)
- quartz (1)
- 无关技术 (1)
- 前端 (1)
- Redis (1)
- 产品管理 (0)
- 计算机常识 (1)
- 计算机科学 (0)
- swift (1)
- 服务器 (2)
- 搜索 (1)
- Scala (1)
- J2EE (1)
- maven (1)
- 前端css (1)
- 英语 (1)
- 消息队列 (1)
- kafka (0)
- apache kafka (4)
- netbeans (1)
- IDE (2)
- 歌词 (1)
- 过滤器实现 (1)
- linux vim vi (1)
- jmeter (1)
- springcloud (1)
最新评论
-
hujingnemo:
不知道为什么打不开
CHM如何改编字体大小 -
weiboyuan:
求答案 weiboyuanios@163.com
iOS软件工程师面试题(高级) -
xueji5368:
这个现在已经广泛使用了嘛!
RoboGuice入门 -
Yao__Shun__Yu:
...
CHM如何改编字体大小 -
353144886:
非常之详细 美女求认识
sqlite数据类型 datetime处理
2. 应用主目录文件分析
App store应用存放在/private/var/mobile/Application/[GUID]中
(1)Documents文件夹
用户存档文件,检查是否有不安全的文件存储,例如明文存储,base64编码存储,可以用iToolsGUI工具检查
(2)Library文件夹
1)Library/Preferences/ 偏好设置文件,一般为plist格式,可以用plist editor Pro for windowsGUI工具打开,也可以直接用plutil命令行工具编辑
plutil plistFileName
2)Library/Caches/ 保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存,为永久保存,一般为sqlite3格式,可以用SQLite Database BrowserGUI工具打开,也可以直接用sqlite3命令行工具编辑。当然也有plist格式存储的,查看方法见上面。
该文件夹下有个Library/Caches/Snapshots/文件夹,用于存储应用的屏幕快照。在进行源码审查时,请检查keyWindow.hidden选项的设置,避免存储敏感应用屏幕
sqlite3 databasename
3)Library/Cookies/ 保存Safari浏览器和iOS应用的持久性cookie,一般文件名为Cookies.binarycookies, 我们已经很熟悉PC上的cookie存储了,例如IE将持久性cookie以明文文本的形式存储在临时目录中,而firefox与chrome则采用sqlite3数据格式存储。我们可以使用SecurityLearn提供的python脚本工具Cookies.binarycookies Reader读取其中的内容
python BinaryCookieReader.py Cookies.binarycookies
4)Library/Webkit 保存webkit本地存储文件,有的应用没有该文件夹
(3)AppName.app文件夹
1)Info.plist文件 APP相关信息
2)iTunesMetadata.plist文件 购买者信息文件
3)SC_Info文件夹,签名相关文件
4) _CodeSignature文件夹,签名相关文件
5)其他资源文件
详见iOS平台游戏安全再议之存档修改与防御
检查对象:越狱/非越狱设备
检查列表:
(1)重要信息是否加密存储
(2)本地存档是否可修改(包括明文格式,base64格式,二进制格式),检查应用是否会检测存档的完整性
(3)本地存档是否可替换,用低版本存档替换高版本存档(往往低版本应用的安全性都不好,因此可作**弊的几率大),不同id存档替换(例如用高分存档替换低分存档),检查应用是否会检测存档的唯一性
工具:各种文件格式对于的编辑器iTools 、plist editor Pro for windows、SQLite Database Browser 、Cookies.binarycookies Reader、UltraEdit
二、内存数值分析(动态分析)
详见iOS平台游戏安全再议之八门神器内存修改,IAP Free游戏内购破解的防御
检查对象:越狱设备
检查列表:
(1)检查内存中游戏进程中的重要数值是否可定位修改
工具:八门神器,gdb
三、APP store IPA破解(动态分析)
详见iOS平台游戏安全之IPA破解原理及防御
检查对象:越狱设备
检查列表:
(1)app store版IPA是否可破解,应用是否对破解版本
的IPA进行检测处理
工具:Clutch
四、支付分析(动态分析)
1. IAP (in-appstore-purchase)
详见in-appstore.com免费内购方法的完整分析
检查列表:
(1)对越狱设备,IAP Cracker是否有效
(2)对越狱设备,IAP Free是否有效
(3)对越狱设备,LocalIAPFree是否有效
(4)对越狱设备,俄罗斯伪造苹果服务器是否有效
(5)对越狱设备,xCon+IAP Cracker是否有效
(6)对越狱设备,xCon+IAP Free是否有效
(7)对越狱设备,xCon+LocalIAPFree是否有效
(8)对越狱设备,xCon+俄罗斯伪造苹果服务器是否有效
(9)对非越狱设备iOS 5.1.1,俄罗斯伪造苹果服务器是否有效
工具:IAP cracker,IAP Free,LocalIAPFree,xCon
2. 第三方支付平台
可参考 支付漏洞的三种常见类型
分析方法主要从通信包分析和对API接口进行源码审计
待续。。。
五、通信包分析(动态分析)
1. http/https
(1)HTTP
详见mobile app 通信分析方法小议(iOS/Android)
工具:BurpSuite,Fiddler
(2)HTTPS
详见iPhone上使用Burp Suite捕捉HTTPS通信包方法,iOS SSL kill switch
工具:BurpSuit,ios-ssl-kill-switch,turstme
检查列表:同web应用漏洞
(1)关注移动广告平台是否收集移动设备中的隐私数据(目前发送设备UDID,Mac地址貌似时稀松平常的事情,但发送设备内部应用安装列表,联系人方式就需要禁止了)
(2)0Auth安全性
待续
2 sockets
详见:实时抓取移动设备上的通信包(ADVsock2pipe+Wireshark+nc+tcpdump)
工具:wireshark,ADVsock2pipe,TCPdump,Mallory
检查列表:(主要是中间人攻击)
(1)封包是否可以修改
(2)封包是否可以重放
六、后续工作前面介绍的都是手动的从应用的各个方面(文件系统,通信,可执行文件,业务逻辑)进行安全审计,比较期望将来能有一款像web应用安全审计/漏洞检测那么成熟的自动化工具。目前为止,我知道的唯一有作用的iOS半自动化审计工具是iAuditor——iOS APP安全审计工具,这款工具,存在目前市场上免费工具共有的缺陷,那就是过于理论,对实际APP的安全审计有点鸡肋,但聊胜于无。(欢迎推荐好的自动化/半自动iOS应用安全审计工具)
总的来说,对iOS应用安全审计而言,除了黑盒/灰盒审计外,再就是对源码进行的白盒审计,HP的Fortify SCA貌似还蛮成熟的,我也收集了一些国外安全团队的源码审计白皮书,但总觉得对于真实的iOS应用都过于理论。计划后期写一篇对真实应用有参考作用的iOS应用源码审计checklist,或者能更近一步编写一个开源的自动化审计工具。加油
App store应用存放在/private/var/mobile/Application/[GUID]中
(1)Documents文件夹
用户存档文件,检查是否有不安全的文件存储,例如明文存储,base64编码存储,可以用iToolsGUI工具检查
(2)Library文件夹
1)Library/Preferences/ 偏好设置文件,一般为plist格式,可以用plist editor Pro for windowsGUI工具打开,也可以直接用plutil命令行工具编辑
plutil plistFileName
2)Library/Caches/ 保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存,为永久保存,一般为sqlite3格式,可以用SQLite Database BrowserGUI工具打开,也可以直接用sqlite3命令行工具编辑。当然也有plist格式存储的,查看方法见上面。
该文件夹下有个Library/Caches/Snapshots/文件夹,用于存储应用的屏幕快照。在进行源码审查时,请检查keyWindow.hidden选项的设置,避免存储敏感应用屏幕
sqlite3 databasename
3)Library/Cookies/ 保存Safari浏览器和iOS应用的持久性cookie,一般文件名为Cookies.binarycookies, 我们已经很熟悉PC上的cookie存储了,例如IE将持久性cookie以明文文本的形式存储在临时目录中,而firefox与chrome则采用sqlite3数据格式存储。我们可以使用SecurityLearn提供的python脚本工具Cookies.binarycookies Reader读取其中的内容
python BinaryCookieReader.py Cookies.binarycookies
4)Library/Webkit 保存webkit本地存储文件,有的应用没有该文件夹
(3)AppName.app文件夹
1)Info.plist文件 APP相关信息
2)iTunesMetadata.plist文件 购买者信息文件
3)SC_Info文件夹,签名相关文件
4) _CodeSignature文件夹,签名相关文件
5)其他资源文件
详见iOS平台游戏安全再议之存档修改与防御
检查对象:越狱/非越狱设备
检查列表:
(1)重要信息是否加密存储
(2)本地存档是否可修改(包括明文格式,base64格式,二进制格式),检查应用是否会检测存档的完整性
(3)本地存档是否可替换,用低版本存档替换高版本存档(往往低版本应用的安全性都不好,因此可作**弊的几率大),不同id存档替换(例如用高分存档替换低分存档),检查应用是否会检测存档的唯一性
工具:各种文件格式对于的编辑器iTools 、plist editor Pro for windows、SQLite Database Browser 、Cookies.binarycookies Reader、UltraEdit
二、内存数值分析(动态分析)
详见iOS平台游戏安全再议之八门神器内存修改,IAP Free游戏内购破解的防御
检查对象:越狱设备
检查列表:
(1)检查内存中游戏进程中的重要数值是否可定位修改
工具:八门神器,gdb
三、APP store IPA破解(动态分析)
详见iOS平台游戏安全之IPA破解原理及防御
检查对象:越狱设备
检查列表:
(1)app store版IPA是否可破解,应用是否对破解版本
的IPA进行检测处理
工具:Clutch
四、支付分析(动态分析)
1. IAP (in-appstore-purchase)
详见in-appstore.com免费内购方法的完整分析
检查列表:
(1)对越狱设备,IAP Cracker是否有效
(2)对越狱设备,IAP Free是否有效
(3)对越狱设备,LocalIAPFree是否有效
(4)对越狱设备,俄罗斯伪造苹果服务器是否有效
(5)对越狱设备,xCon+IAP Cracker是否有效
(6)对越狱设备,xCon+IAP Free是否有效
(7)对越狱设备,xCon+LocalIAPFree是否有效
(8)对越狱设备,xCon+俄罗斯伪造苹果服务器是否有效
(9)对非越狱设备iOS 5.1.1,俄罗斯伪造苹果服务器是否有效
工具:IAP cracker,IAP Free,LocalIAPFree,xCon
2. 第三方支付平台
可参考 支付漏洞的三种常见类型
分析方法主要从通信包分析和对API接口进行源码审计
待续。。。
五、通信包分析(动态分析)
1. http/https
(1)HTTP
详见mobile app 通信分析方法小议(iOS/Android)
工具:BurpSuite,Fiddler
(2)HTTPS
详见iPhone上使用Burp Suite捕捉HTTPS通信包方法,iOS SSL kill switch
工具:BurpSuit,ios-ssl-kill-switch,turstme
检查列表:同web应用漏洞
(1)关注移动广告平台是否收集移动设备中的隐私数据(目前发送设备UDID,Mac地址貌似时稀松平常的事情,但发送设备内部应用安装列表,联系人方式就需要禁止了)
(2)0Auth安全性
待续
2 sockets
详见:实时抓取移动设备上的通信包(ADVsock2pipe+Wireshark+nc+tcpdump)
工具:wireshark,ADVsock2pipe,TCPdump,Mallory
检查列表:(主要是中间人攻击)
(1)封包是否可以修改
(2)封包是否可以重放
六、后续工作前面介绍的都是手动的从应用的各个方面(文件系统,通信,可执行文件,业务逻辑)进行安全审计,比较期望将来能有一款像web应用安全审计/漏洞检测那么成熟的自动化工具。目前为止,我知道的唯一有作用的iOS半自动化审计工具是iAuditor——iOS APP安全审计工具,这款工具,存在目前市场上免费工具共有的缺陷,那就是过于理论,对实际APP的安全审计有点鸡肋,但聊胜于无。(欢迎推荐好的自动化/半自动iOS应用安全审计工具)
总的来说,对iOS应用安全审计而言,除了黑盒/灰盒审计外,再就是对源码进行的白盒审计,HP的Fortify SCA貌似还蛮成熟的,我也收集了一些国外安全团队的源码审计白皮书,但总觉得对于真实的iOS应用都过于理论。计划后期写一篇对真实应用有参考作用的iOS应用源码审计checklist,或者能更近一步编写一个开源的自动化审计工具。加油
发表评论
-
UIImage变为NSData并进行压缩
2014-05-19 20:23 1928//sdk中提供了方法可以直接调用 UIImage *im ... -
update cocapods
2014-05-17 22:27 800早上更新cocoapod依赖库,发现更新到32.1版本,早先的 ... -
iOS发送短信息代码实例
2014-05-16 18:15 2686#import <MessageUI/Message ... -
DISPATCH TIMER
2014-05-14 16:12 729/* __block void (^callback) ... -
UITextField左边显示图片
2014-05-13 18:08 1170The overlay view displayed on t ... -
iOS调用系统打电话,发短信功能
2014-05-11 15:48 2084先介绍一种最简单的方法: 调用打电话功能 [[UIAppl ... -
iOS面试题
2014-05-09 16:10 10771.写一下UIButton与UITableView的层级结构 ... -
socket二进制报文
2014-05-09 15:18 1300里面有帧头 字符串UTF-8 中间用0隔开 又一个字符串 ... -
将网站添加到桌面的方法
2014-05-08 14:25 1661<link href="http://www. ... -
iPhone通讯录联系人操作大全
2014-05-07 10:29 14591.需要引入AddressBook.framework框架 2 ... -
sqlite获取最新插入的rowid
2014-05-07 09:59 1521除了 last_insert_rowid select max ... -
号码归属地查询,拨打电话
2014-05-06 15:07 845在程序内调用拨打电话的方法,[[UIApplication s ... -
iOS时间合并
2014-04-28 17:55 1093合并同一时间的课程,同一时间可能有多个课程,比如13:30-1 ... -
vCard通讯录格式说明
2014-04-28 16:47 2556原帖:http://freesoftman.iteye.com ... -
UISearchBar背景色全套解决方案
2014-04-25 09:36 7442os系统升级到7.1后,原来在7.0下显示正常的UISearc ... -
升级XCode5.1.1遇到的奇葩问题NSString,NSObjectRuntime.h报错,Foundation找不到
2014-04-24 11:19 896升级XCode5.1.1遇到的奇葩问题NSString,NSO ... -
将NSString转为NSArray
2014-04-22 16:52 6269// Your JSON data: NSString *c ... -
另外一种NSData转为NSString的方法
2014-04-22 15:40 1211If the data is not null-termina ... -
HTTP,Socket,WebSocket异同
2014-04-18 16:54 1832参考文章: http://abbshr.g ... -
push隐藏UINavigtaionBar和UITabbar
2014-04-17 15:20 1091[self.navigationController setN ...
相关推荐
dump、Theos、Cycript、IDA、GDB等最常用逆向工具的使用方法,进而分析使用这些工具时的思考方式和碰到问题时的解决思路,最后以社交应用消息拦截、iOS电话相关操作等4个极具代表性的实例总结iOS应用逆向工程在实战...
### iOS应用入门指南知识点梳理 #### 一、iOS应用开发概览 - **目标与价值**:iOS应用开发不仅能够带来乐趣,同时也是一项具有实际经济效益的活动。对于初学者而言,选择正确的起点至关重要。 - **必备条件**:...
【翻译】iOS 应用安全以及分析 第二部分
iOS移动应用安全分析.pdf
Xcode包含了编写、测试和调试iOS应用所需的所有工具,包括源代码编辑器、Interface Builder(用于设计用户界面)、 Instruments(性能分析工具)以及App Store Connect的集成,方便提交应用到App Store。 首先,你...
### 企业级iOS应用开发知识点概述 #### 一、企业级iOS应用开发概览 - **Apple开发者生态:** 在本书开篇,作者James Turner强调了Apple开发者生态的独特性及其对企业级应用开发的影响。Apple提供了丰富的工具和...
在高性能iOS应用开发领域,要确保应用的流畅运行和良好用户体验,需要对应用性能进行全面的优化。性能优化是影响用户对应用整体满意度的关键因素之一,涉及到应用的响应速度、资源消耗、稳定性等多个方面。本书《高...
《高性能iOS应用开发》这本书是iOS开发者们提升应用性能的重要参考资料。它专注于提供实用的技巧和最佳实践,帮助开发者在iOS平台上创建出运行流畅、效率卓越的应用程序。这本书的PDF版便于阅读和存储,可以轻松转换...
iOS应用逆向工程:分析与实战 目录: 推荐序一 推荐序二 自序 前言 第一部分 概念篇 第1 章 iOS 逆向工程简介 2 1.1 iOS 软件逆向工程的要求 2 1.2 iOS 软件逆向工程的作用 2 1.2.1 与安全相关的iOS ...
【标题解析】 "iOS应用源码之国内网站分类导航...以上是对"iOS应用源码之国内网站分类导航WebsiteNavigation"的综合解析和相关知识点概述,具体的源码实现细节和功能将需要通过实际查看和分析代码来进一步了解。
【翻译】iOS 应用安全以及分析 第一部分
通过分析这个开源项目,开发者可以学习如何创建和定制启动界面,理解iOS应用的基本结构,以及如何使用Swift或Objective-C进行iOS开发。同时,这也为其他开发者提供了一个参考,帮助他们解决在实现启动界面过程中遇到...
本文将深入探讨“ios应用源码之简单的滤镜demo 2018128”这个项目,它是一个展示如何在iOS应用中实现基本滤镜功能的示例代码。 首先,我们要理解iOS应用的基础架构。一个标准的iOS应用通常包含几个关键组成部分:`...
《iOS应用逆向工程(第2版)》是关于iOS应用程序逆向工程的一本深入解析书籍,主要针对那些想要理解iOS应用内部工作原理、安全分析或进行漏洞挖掘的开发者和安全专家。逆向工程是一种技术手段,通过分析已编译的代码来...
可以当作ios 应用的逆向分析入门书籍。本资源不涉及任何商业牟利!有条件,建议购买正版书籍学习!
iOS平台的应用程序调试与分析 本文阐述如何在iOS平台上对应用程序进行调试与分析,旨在指导新手分析iOS程序,高手请无视。内容包括软件硬件的准备、代码的解密、符号信息的获取、用gdb调试等,最后以京东LeBook为...
当我们在Xcode中编译iOS应用时,编译器会生成两个主要的输出文件:`.app`(可执行文件)和相应的`dSYM`包。`.app`文件包含了运行时的二进制代码,而`dSYM`文件则存储了符号信息,如函数名、变量名和源代码行号等。当...
在iOS应用开发中,性能是决定用户体验的关键因素之一。这份"iOS应用性能为剖析.pdf.zip"的压缩包文件,提供了一份深入探讨高性能iOS应用开发的资料,尤其关注用户界面、网络开发、内存管理、数据库、能耗、并发以及...
虽然具体案例没有在文档中提及,但可以通过分析成功的Flash转iOS应用案例,如游戏或教育应用,来学习如何充分利用Flash的特性,同时克服移动平台的限制,创建高质量的iOS应用。这些案例通常会强调跨平台开发的便利性...
在iOS应用开发中,优化代码是非常重要的一个环节,特别是针对APP的性能和内存管理。"iOS APP分析无用代码"这个主题聚焦于如何在源代码级别利用Clang工具来识别和删除应用程序中的冗余和未使用的代码,以提高程序效率...