我正在尝试各种方法来阻止我的apk文件上的逆向工程。
为防止攻击者进行逆向工程,我可以将哪些“错误代码”注入到apk的源代码或smali文件中。
我看到一些研究论文,当读取错误代码时,这可能会使反编译器崩溃。
我可以使用哪些方法来限制反编译过程并且不影响apk原始功能本身?
免责声明:这只是出于自我学习的目的。 android开发的新手。 欢迎任何建议。
答案 0 :(得分:1)
“一些研究论文”没有提供您甚至在谈论的内容的最少参考。只需尝试使用Luyten对其进行反编译,看看您的方法是多么没有意义。适当的混淆以及将与安全性相关的功能转移到本机程序集中是可用的最有效方法,从而为逆向工程增加了及时的工作。根据代码签名进行API调用也非常有效。最近,美国国家安全局(NSA)开源了Ghidra,其中可能还包含相关工具来测试所采用的预防方法的有效性。普通添加无用的复杂性几乎是无效的,而仍然试图保持代码库的可维护性。同样,有根设备也提供了完全不同的攻击媒介-SafetyNet很难测试(它在模拟器上进行预发行检查一直失败),尽管如此,本文仍提供了可靠的安全性检查表。毕竟,大多数情况下,Android设备都不具备由不锈钢制成的防破坏外壳。