美文网首页
iOS应用调试检测以及反调试

iOS应用调试检测以及反调试

作者: Coder_LRT | 来源:发表于2018-04-18 16:54 被阅读0次

一、检测调试

当一个应用被调试的时候,会给进程设置一个标识(P_TRACED),我们可以通过检测该进程是否有设置这个标识来检测进程是否正在被调试以保护好我们的应用。

为了让这个函数以inline方式编译,需要设置编译器的优化选项,-0z(函数以inline方式编译),-fast(加快编译速度)。

如果你不确信产生的目标代码以inline的方式编译该函数,你也可以将其转化成宏的方式。

当前该方法只能检测debugger或dtrace的调试,而不能阻止非法代码注入或者cycript依附。

二、阻止调试(阻止GDB依附)

调用ptrace设置参数PT_DENY_ATTACH,如果有调试器依附,则会产生错误并退出。关于PT_DENY_ATTACH的说明如下:

这时再使用gdb attach的话会产生错误:

Segmentation fault: 11

或者使用gdb run该应用也会产生错误:

Program exited with code 055.

当然该方法也会被调试者下断点的方式来动态绕过或者使用IDA等反汇编工具打补丁绕过,所以我们应该在程序的多处地方调用该方式。

相关文章

  • iOS应用调试检测以及反调试

    一、检测调试 当一个应用被调试的时候,会给进程设置一个标识(P_TRACED),我们可以通过检测该进程是否有设置这...

  • 反调试与反-反调试

    1. 反调试与反-反调试 1.1 常用反调试 1.1.1 ptrace 为了方便应用软件的开发和调试,从Unix的...

  • iOS 调试

    iOS调试 - NSLog iOS调试 - 断点 iOS调试 - LLDB iOS调试 - EXC_BAD_ACC...

  • Reveal调试UI利器

    Reveal Reveal是分析、调试iOS应用UI的利器。 Reveal能够在运行时调试和修改iOS应用程序。它...

  • iOS开发常用之测试调试、动态更新

    测试及调试 HeapInspector - HeapInspector是一个用于检测应用程序的内存泄漏的开源调试...

  • 3.30

    建筑智能化工程的调试检测要求 本部分包括调试检测实施,自动监控设备的检测机安全防范工程的调试检测要求 调试检测实施...

  • iOS崩溃调试

    iOS崩溃调试 iOS崩溃调试

  • iOS高效调试

    iOS高效调试 iOS高效调试

  • Swift 常用库

    一、Debug && Log && 调试 ① 、Dotzu应用内iOS调试工具,具有增强的日志记录,网络信息,崩溃...

  • github上关于iOS的各种开源项目集合 2(转)

    测试及调试 HeapInspector- HeapInspector是一个用于检测应用中的内存泄漏的开源调试工具。...

网友评论

      本文标题:iOS应用调试检测以及反调试

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