逆向工程保护

Posted

技术标签:

【中文标题】逆向工程保护【英文标题】:reverse engineering protection 【发布时间】:2018-05-24 08:04:01 【问题描述】:

我在 Nolan Godfrey 的《反编译 android》一书中的一个示例中看到,goto 方法的使用可以使源代码在反编译 apk 时产生不可读的代码。

goto 方法虽然在 Java 中没有被使用..那么有人如何利用它呢?

还有其他方法可以用来反编译吗 代码不可读?

(请不要评论或回答,无论我做什么,CIA 总能完全撤销我的应用程序。显然我已经过了使用 Proguard 等的点)。

【问题讨论】:

"是否有其他方法可以使反编译的代码不可读?" ——这是不可能的。如果应用程序可以运行,则可以读取应用程序。充其量,您可能能够使特定反编译器的特定版本产生对某些人来说更难以阅读的输出。此外,您问题的这一部分与this question 和可能许多其他问题的重复。 “我读过一个样本”——那是一本五年前的书;我的猜测是反编译器已经克服了 goto 的所有技巧。 CIA 不需要对 Proguarded 应用程序进行逆向工程。只是一个有动力的黑客。 建议在Reverse Engineering Stack Exchange咨询逆向工程方面的问题。 【参考方案1】:

您可以尝试使用 ProGuard 进行基本保护,或尝试使用 DexGuard 进行全面保护和加密:https://www.guardsquare.com/en/dexguard

对比:https://www.guardsquare.com/en/blog/dexguard-vs-proguard

但是,在使用许多外部库的大型项目中,配置可能并不简单

【讨论】:

以上是关于逆向工程保护的主要内容,如果未能解决你的问题,请参考以下文章

无法在eclipse中保护代码免受逆向工程

保护 Android 应用免受逆向工程

真的不可能保护 Android 应用免受逆向工程吗?

保护字符串常量免受逆向工程

保护字符串常量免受逆向工程

如何保护 Android 代码免受逆向工程? [复制]