IOS端监测APP被代码注入
2020-08-26 本文已影响0人
HelloBinary
如何代码注入可以看https://www.jianshu.com/p/e20914416c6c
APP代码注入一般都是通过加载外部的动态库来实现hook,那么我们如何进行防护呢?
运行app,我们在控制台lldb那里输入 指令image list 可以看到目前所加载到镜像。什么是镜像?简单点理解就是应用在硬盘中,使用时根据mach-o的数据描述拷贝到内存中的一份内存。
image.png
我们打包上线的时候可以通过dyld获取自己需要用到的镜像列表。
#import <mach-o/dyld.h>
#import <mach-o/loader.h>
int count = _dyld_image_count();
for (int i =0; i<count; i++) {
const char* imageName = _dyld_get_image_name(i);
printf("name: %s \n",imageName);
}
这个时候我们根据我们的镜像列表作为我们的白名单(用字符串保存起来),然后判断是否有其他的动态库引用(越狱插件,代码注入等)。隐形的在一些网络请求中传给服务器,判断用户的行为给予处理。