iOS开发如何避免安全隐患 (2)

越狱的iPhone可以查看导出Keychain保存的信息。Keychains的内容存放在sqlite中,目录为:/private/var/Keychains。可以通过keychain-dump可以查看钥匙串里存放的的内容。

所以保存到Keychain的数据一定要是加密之后的数据。 

3.3 plist、sqlite

plist、sqlite可以直接在ipa安装文件中获取到,所以不要在这些文件中存放重要信息,如果要保存,就进行加密后再存放。

四、app加固 4.1 代码混淆

代码混淆就是把易读的类名、方法名替换成不易读的名字。常用的方法有宏替换和脚本替换。

比如本来方法名为:- (void)loadNetData; 进行代码混淆后,用class-dump导出头文件后会显示成修改后的方法名:- (void)showxhevaluatess;

4.2 用C语言

核心代码用C语言写,但是C语言的函数也可以被hook,比如用fishhook。开发人员可以用静态内联函数来防止hock,破解者就只能去理解代码的逻辑。

4.3 检测tweak

可以检测 /Library/MobileSubstrate/DynamicLibraries 下的 plist 文件里是否包含自己app的bundle id。如果包含,可以进行限制app的功能、提示该手机不安全 等。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjsyp.html