iOS安全及录屏相关问题
iOS安全机制
- iOS自带的安全机制是什么?我们能做那些事,不能做那些事?
iOS的安全机制主要有:
-更小的受攻击面。例如,iOS不支持Java跟Flash,不能处理psd文件,不支持部分mov文件。
-权限分离。iOS使用用户、组合其他传统Unix文件权限机制分离了个进程。
-代码签名机制。所有的二进制文件和类库在被内核允许执行前都必须经过收信人机构(比如苹果公司)的签名。
-DEP(Data Execution Prevention)数据执行保护。处理器能区分那部分内存是可执行代码以及那部分内存是数据。DEP不允许数据的执行,质询与代码执行。
-ASLP(Address Space Layout Randomization)地址空间布局随机化。
-沙箱机制。iOS应用智能在为该程序床架你的文件系统中读取文件,不能去其他地方访问。 - 如何做iOS破解和反破解?
可是用MobileSubstrate加上逆向工程,来实现iOS安装文件的破解。
MobileSubstrate利用iOS Runtime动态替换函数,转发消息达到所谓的hook技术。
操作过程大致包括:
-如果是从市场下载的应用,会被加一层壳,我们首先需要砸壳,工具使用Clutch。
-用class-dump到处头文件进行静态分析。
-用IDA静态分析工具,对.m进行分析,得到反汇编代码。
-在Xcode中安装iOSOpenDev,创建Tweak工程,在fakeloc.xm中指定需要hook的类。
-在App中使用dlopen调用Tweak,重新实现函数。
-将原App和TweakApp重新打包为xxx.deb文件,用iFunbox将其拖到根目录下,在手机上打开iFile,点击xxx.deb安装程序。
iOS应用加密防反编译技术有:
-本地数据加密。iOS应用防反编译加密技术之一:对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息。
-URL编码加密。iOS应用防反编译加密技术之二:对程序中出现的URL进行编码加密,防止URL被静态分析。
-网络传输数据加密。iOS应用防反编译加密技术之三:对客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取数据。
-方法体,方法名高级混淆。iOS应用防反编译加密技术之四:对应用程序的方法名和方法体进行混淆,保证源码被逆向后无法解析代码。
-程序结构混排加密。iOS应用防反编译加密技术之五:对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低。
录屏回放相关调查
视频录制有两种主要技术:一个是UIImagePickerController,另一个是使用AVFoundation框架。
使用UIImagePickerController时,可以使用UISaveVideoAtPathToSavedPhotosAlbum(iOS3.1开始可用)发放保存视频。
使用AVFoundation框架时录制视频时,相关类比较多,主要有:
-AVCaptureSession。捕捉会话,为了实现从摄像头和麦克风捕捉数据,协调输入/输出数据。
-AVCaptureDevice。捕捉设备,代表输入一个设备,如摄像头和麦克风。
-AVCaptureDeviceInput。捕捉会话的一个输入数据源。
-AVCaptureOutput。捕捉会话的一个输出目标,如输出的视频文件和静态图片。其中的关键函数startRecordingToOutputFileURL(iOS4.0开始可用)
-AVCaptureMovieFileOutput。是AVCaptureOutput的子类,通过它能将不活的数据输出到QuickTime视频文件(.mov)。
-AVCaptureVideoPreviewLayer。CALayer的子类,使用它可以显示录制的视频。
-AVCapureConnection。捕获连接。在一个捕获回话中输入和输出的连接。
如何开发framework
- 在Xcode中创建framework工程。
- 修改配置信息,生成支持的架构的版本。
- 配置将那些头文件暴露出来。
- 针对模拟器和甄姬分别进行编译。
- 制作通用的framework。lipo -create ./Debug-iphoneos/xxx.framework/xxx ./Debug-iphonesimulator/xxx.framework/xxx -output ./xxx。
- 通过lipo -info xxx.framework/xxx查看合并后支持的架构。
参考:
1,iOS的安全机制 http://www.cnblogs.com/chance88/p/5057652.html
2,手把手教你制作一款iOS越狱App,伪装微信位置 https://github.com/jackrex/FakeWeChatLoc
3,移动App入侵与逆向破解技术-iOS篇 http://blog.csdn.net/heiby/article/details/51792151
4,iOS应用如何防止被反编译 http://jingyan.baidu.com/article/414eccf6791da86b431f0aea.html
5,《iOS实战(Swift版)图形图像、动画和多媒体卷》
6,iOS开发之制作framework。 http://www.jianshu.com/p/6c033c39884a