iOS 数据传输和本地存储安全

众所周知APPLE的iOS是封闭的,每个app有着沙盒路径,正规发布途径也只有唯一的APPStore, 但是市场上越狱手机和强大的抓包工具依然时时刻刻威胁着App 的安全,而且随着项目慢慢积累用户,用户的隐私和数据安全越来越重要,危险遍布于开发的各个阶段,同时对安全的重视程度也间接体现了一个开发者的能力和意识。本文针对项目数据传输和本地存储着两块,将开发过程中涉及到和安全相关的问题都记录下来,作为积累。

UIGeometry_总结

UIGeometry 中具有 7 中基本的数据类型

点:(平面 X 和 Y)

向量:(空间的 dX 和 dY)

面积: (平面的 W 和 H)

空间:(平面中的点(x, y) + 面积(w, h))

iOS 项目的整体替换

iOS更改app项目的名字

  1. 修改工程文件的名字
  2. 新建一个新的 sehemes (替换旧的那个)
  3. 修改文件的路径 (打开包内容内的所有旧路径)
  4. 修改文件内所有旧工程的名称

iOS 控件显示网页代码

UITextView,UIWebView 直接显示html代码

方法 1

////获取html到NSString
NSURL *url = [NSURL URLWithString:@"http://www.xtox.net/product/detail.action?product.id=11"];
NSString *strHtml = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
////显示到UIWebView
[self.m_web loadHTMLString:strHtml baseURL:nil];
/////显示到UITextView
[self.m_TextView setContentToHTMLString:strHtml];

iOS 使用Cycript进行运行时分析

获得进程 PID

在越狱设备中开启某个项目,并切回到越狱设备的终端,找到项目的进程编号 PID。

 ps aux | grep "项目名"

* mobile    3098   0.0  2.6   636116  25480   ??  Ss    3:51PM   0:02.18 /Applications/AutoGetRedPacket.app/AutoGetRedPacket
* root      3140   0.0  0.0   525864    200 s000  R+    4:17PM   0:00.01 grep AutoGetRedPacket

找到 mobile 对应的 PID 949,之后利用 Cycript 进行运行时分析

AFNetWorking是如何进行数据缓存的--之AFImageCache & NSURLCache 详解

AFAutoPurgingImageCache 图片缓存类

缓存机制: 这个类通过 
@property (nonatomic, strong) NSMutableDictionary <NSString* , AFCachedImage*> *cachedImages;

这个字典属性进行图片数据的存储。每一张图片对于唯一的一个标示字符串,如果是请求链接则将链接作为键值。添加图片的时候会计算图片的大小,进行存储空间的控制,超过初始化的大小进行时间排序,久的图片的删除,或者收到内存警告的时候,则清除所有的图片。
AFImageDownloader 图片下载类

清除本地请求数据的缓存

可以禁用NSURLCache,只需要将内存和磁盘空间设置为0就行了.

NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0
                                                        diskCapacity:0
                                                            diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];

Charles 从入门到精通

Charles 是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。
Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。(http://blog.devtang.com/2015/11/14/charles-introduction/)

Charles 主要的功能包括:

1. 截取 Http 和 Https 网络封包。
2. 支持重发网络请求,方便后端调试。
3. 支持修改网络请求参数。
4. 支持网络请求的截获并动态修改。
5. 支持模拟慢速网络。

反编译工具

WinDbg

WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。

OllyDbg

OLLYDBG是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级调试器,非常容易上手,己代替SoftICE成为当今最为流行的调试解密工具了。同时还支持插件扩展功能,是目前最强大的调试工具。

Immunity Debugger

Immunity Debugger软件专门用于加速漏洞利用程序的开发,辅助漏洞挖掘以及恶意软件分析。它具备一个完整的图形用户界面,同时还配备了迄今为止最为强的python安全工具库。它巧妙的将动态调试功能与一个强大的静态分析引擎融合于一体,它还附带了一套高度可定制的纯python图形算法,可用于帮助我们绘制出直观的函数体控制流以及函数中的各个基本块。