最近接受的项目是手机银行项目,对代码的安全性要求较高,与公司的测试公司也提出了安全隐患bug清单,看得我一愣一愣的.对此我对iOS安全防护做了一些研究,希望能简化大家以后的工作!(底部会有封装好的类)
星爷镇楼:
1.手机越狱会大大增加项目被破解或者窃取用户信息的风险
下面是检测手机是否越狱的代码!
方法1
方法2
方法3
下载链接:百度云地址
2.二次打包(应用完整性检测)
风险:对 APP 内相关文件进行修改,进行二次打包。
代码截图:
下载链接:百度云地址
3.反调试
风险:被动态调试的应用,则敏感数据、函数调用参数等可以在运行时被泄露和篡改。
这个直接贴代码了,在main.m上引用即可
#import
#import
typedefint(*ptrace_ptr_t)(int_request,pid_t_pid,caddr_t_addr,int_data);void* dlopen(constchar* pathname,intmode );
#if !defined(PT_DENY_ATTACH)
#define PT_DENY_ATTACH31
#endif
voiddisable_gdb() {
void* handle =dlopen(0,RTLD_GLOBAL|RTLD_NOW);
ptrace_ptr_tptrace_ptr =dlsym(handle,"ptrace");
ptrace_ptr(PT_DENY_ATTACH,0,0,0);
dlclose(handle);
}
intmain(intargc,char* argv[]) {
#ifndef DUBUG
// disable_gdb();
#endif