2

我知道有用于逆向工程的 apktool,将 dex2jar 提取为 jar 文件。我还听说过 proguard,它优化了代码以使其难以理解。但是,proguard 是否足以防止逆向工程?据我了解,即使在使用 proguard 之后,资源文件仍然可以更改(但我不确定)。还有其他更好的技术吗?有没有办法让如果有人尝试使用 apktool,代码和资源都会被破坏?

4

1 回答 1

3

但是,proguard 是否足以防止逆向工程?

只有你可以定义什么是“足够”。

据我了解,即使在使用 proguard 之后,资源文件仍然可以更改

即使在使用 ProGuard 之后,任何东西都可以改变,包括资源。

还有其他更好的技术吗?

停止逆向工程在数学上是不可能的。毕竟,如果 CPU 可以读取一条指令并对其进行处理,那么 CPU 就可以读取一条指令并对其进行反编译。

ProGuard、DexGuard(加密资源的增强型 ProGuard)、在 C/C++ 中加入的逻辑比在 Java 中更多,这些可以帮助减慢逆向工程,但它们无法阻止它。因此,再一次,只有您可以定义“足够”是什么。

有没有办法让如果有人尝试使用 apktool,代码和资源都会被破坏?

好吧,恕我直言,ProGuard 不会“破坏” apktool 的代码输出。但是,如果您认为 ProGuard 足以保护您的代码,那么 DexGuard 应该足以保护您的资源。DexGuard 是一个商业产品,不过,我看的最后一个。

如果您担心逆向工程,请不要编写客户端软件。

于 2013-06-09T13:33:11.690 回答