iOS逆向与安全:【安全保护、静态混淆、动态保护、代码混淆】(静态库混淆:混淆带有bitcode的静态、采用LLVM针对源代码混淆)

  • 安全保护
    • 静态混淆: Static_obfuscation
    • 动态保护:反调试(PT_DENY_ATTACH = 31参数用于告诉系统阻止调试器的依附;利用sysctl函数查看当前进程信息,判断是否有此标志位来检测是否处理调试状态)、反反调试、反注入(通过_dyld_get_image_name()获取加载的模块名,判断是否都在白名单中)、hook检测(通过dladdr函数得到imp地址所在的模块info.dli_fname;遍历符号表中的每一个指针,然后判断指针是不是指向__stub_helper或者系统模块; 分析函数的内存前几条指令中有没有跳转)、完整性校验(检查文件load command 的修改,获取内存中运行代码的md5值;是否重签名,从可执行文件的LC_CODE_SIGNATURE 读取信息,拿到当前的签名文件的签名信息和编译前的签名信息比对;bid)
    • 代码混淆:
      • 静态库混淆:混淆带有bitcode的静态
      • 采用LLVM针对源代码混淆

你可能感兴趣的:(IOS,逆向)