
SQLite目前已经是比较流行的数据存储 *** 作的API了。Android和iOS系统提供的API中 *** 作数据库默认均采用了SQLite方案。而SQLCipher是基于SQLite的加密数据库存取方案,集成相对比较快捷而且透明,在一定程度上保证了数据的安全。
代码设置:
如果你用的是系统sqlite3的API,则代码基本不用变,因为SQLCipher是基于系统的sqlite3API扩展的;
如果你用的是FMDB,更无需担心,因为FMDB是封装的系统sqlite3API;
唯一需要做的,就是初始化打开数据库文件sqlite3_open之后,紧跟着执行sqlite3_key设置数据库加密的密钥,于是sqlcipher集成工作就完成了。如果你用的是FMDB,可以直接用setKey方法;如果不是,也可以去FMDataBase.m源码中拷贝这个方法的逻辑,方便调用
对ios应用加固有两种实现方式。
一种使用安全编译器基于LLVM编译器中间层实现。基于 LLVM 的保护方案,在使用时需要更换已有的编译环境,替换编译器,调整编译选项等,对开发环境造成了很多影响,易用性差。从保护效果上看,基于 LLVM 的保护方案,受限于编译器框架,生成的代码只能做逻辑上的混淆变换,仍然可以被反编译,对控制流的混淆效果有限,且边界清晰,更容易被分析。
反编译效果OLLVM 保护后反编译效果:
一种使用VirboxProtector 虚拟化保护。ARM 虚拟化是 Virbox Protector 针对 ARM 架构的指令推出的虚拟机保护方式,通过将原始的 ARM 指令进行翻译,转换为自定义的虚拟机指令,运行时在自定义虚拟机执行。Virbox Protector 实现了针对 ARM 指令的虚拟机保护工具,支持对armv7(包括 thumb, thumb2),及 armv8 以上指令集进行翻译,安全强度高,适用于需要高安全性的代码保护需求。通过虚拟化保护后的代码无法被反编译。
Virbox Protector 保护后反编译效果:欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)