Jak*_*sen 1 c iphone debugging android-ndk
有没有人知道解决以下问题的标准技术:
例如,在iOS上,sysctl() - 函数可用于检测附加的调试器,但攻击者只需反汇编二进制可执行文件,找到sysctl() - 调用,并用自己的版本替换它们.
我们作为开发人员如何处理这个问题?
我的平台是iOS(iPhone)和原生Android(Android NDK).
完全检测调试器在逻辑上是不可能的.程序运行的机器的规范没有指定特定的硅片或其他物理对象 - 它指定了机器的行为.提供规范描述的行为的任何实现都是机器的实现.这包括在实现规范的物理处理器上执行程序,它包括在实现规范的模拟器中执行程序,并且它包括人类阅读机器代码并在纸上实现机器.这些不是"公正"的模仿; 它们实际上是机器的实现.
当机器正确实施时,程序不可能确定机器没有正确实现,因为当然没有偏离规范.然而,我们可以清楚地看到,某些机器的动作和状态完全可由人类观察到,并且可以随意操纵.因此,逻辑上不可能始终检测调试器的存在.
充其量,您可以使用调试器使其变得麻烦,并且可能会掩盖您执行此操作的方式.这可以阻止临时调查员,但不能阻止一个坚定的调查员.
| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |