在Android中反调试

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

IsDebuggerConnected()

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

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

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

2

1 答案

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

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

日常闲聊水 和其他任意讨论聊天瞎扯 只要不是 Sticker Spam 什么都好 少喷政治 @daigua 个人频道 | 因阙丝汀 @DuangCN 瓜体中文 | 语言包 @Nekogram 一只需要关怀的第三方客户端 @AndroidMemory 语录 | 嘿嘿嘿 combot.org/chat/-1001054976571 水表