美文网首页安全
iOS 反调试处理 动态注入 相关

iOS 反调试处理 动态注入 相关

作者: 介和 | 来源:发表于2019-03-16 09:18 被阅读0次

    1       开发者要达到反调试的目的,必然是在某个地方(大多数还是在main函数)执行了ptrace(PT_DENY_ATTACH, 0, 0, 0)。所以反反调试的思路非常简单,就是阻止这个执行的发生。  

    2   dlopen以指定模式打开指定的动态连接库文件,并返回一个句柄给调用进程,dlerror返回出现的错误,

    dlsym通过句柄和连接符名称获取函数名或者变量名,

    dlclose来卸载打开的库。

    dlopen打开模式如下:

    RTLD_LAZY 暂缓决定,等有需要时再解出符号

    RTLD_NOW 立即决定,返回前解除所有未决定的符号。

     3   通常我们编写的tweak插件之所以能依附上目标app 就是在于其安装后xx.dylib和xx.plist文件处在/Library/MobileSubstrate/DynamicLibraries/下,应用程序启动的时候系统会匹配加载指定对应bundleID的应用,以此将xx.dylib库注入到目标app中从而生效 。

           倘若发现可执行文件头部有__RESTRICT/__restrict这个section 则对应的xx.dylib库就不会被加载注入

    相关文章

      网友评论

        本文标题:iOS 反调试处理 动态注入 相关

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