在Android中反调试

任何人都做了实际的Android反调试检查。我知道有这样的事情

IsDebuggerConnected()

boolean isDebuggable = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE));

我正在寻找使用NDK或其他任何其他机制无法调试进程句柄的ptrace。比如,当应用程序启动时,差异线程中的自我调试不允许其他调试器获取进程。

任何关于此的见解都将非常有用。

2
额外 编辑
意见: 1

1 答案

无法可靠地防止调试和逆向工程您的应用程序。你可以通过obfiscation使它变得更加困难,但是如果它是值得进行逆向工程的话,它就会完成(Sovjet IT专家确实设法对System 360进行反向工程,甚至用机器代码修补它) - 所以这是不值得的。

1
额外
我只是想知道是否有一种方法可以制作一个复杂的逆向工程。我知道混淆是一种方法。任何你能想到的其他人? (如自行调试应用程序等),
额外 作者 user1416662,
一般而言,逆向工程并不是一项简单的任务(即使你有其他人写的资料来源也是如此)),并且防止逆向工程通常不值得
额外 作者 Konstantin Pribluda,