美文网首页
iOS 逆向防护(二)

iOS 逆向防护(二)

作者: 木扬音 | 来源:发表于2021-06-11 15:51 被阅读0次

白名单检测

上一篇文章中我们解决了iOS10以下系统的防止动态库注入的方式,这篇文章我们通过白名单检测的方式来防止动态库注入

  • 我们通过dyld的函数,检测出当前程序的所有依赖的动态库,libStrs是你白名单的动态库路径
#import <mach-o/dyld.h>
#import <mach-o/loader.h>


+(void)load
{
    int count = _dyld_image_count();//你进程依赖库的数量!
    for (int i = 1; i < count; i++) {
        const char * imageName = _dyld_get_image_name(i);
//        printf("%s",imageName);
        if (!strstr(libStrs, imageName)) {//如果这个库不在白名单中!
//            printf("该动态库有危险!%s\n",imageName);//exit(0)
        }
    }
}
  • 白名单有很大的误伤性,所有白名单的制作要具有包容性,当我们检测到非法动态库,最好提交给服务器,由服务器去判断,

  • 注意libStrs不要放在本地,放在服务器上,因为字符串常量在放在DATA区,是可以通过mach-o文件修改的,而且每个系统版本的动态库路径有可能会改变,就不能再新系统中做到兼容

相关文章

网友评论

      本文标题:iOS 逆向防护(二)

      本文链接:https://www.haomeiwen.com/subject/hiaosltx.html