【发布时间】:2017-05-25 04:11:16
【问题描述】:
我正在决定将哪一个用于 Android Studio 项目,并且我愿意使用 Kotlin。如果在逆向工程方面比 java 有优势。
【问题讨论】:
标签: java android security kotlin
我正在决定将哪一个用于 Android Studio 项目,并且我愿意使用 Kotlin。如果在逆向工程方面比 java 有优势。
【问题讨论】:
标签: java android security kotlin
没有。 Kotlin 没有这样的意图。与 Scala 或 Groovy(以及许多其他神奇 JVM 语言)不同,Kotlin 的字节码结构并不太复杂,这意味着在避免逆向工程方面,使用 kotlin 与普通 Java 相比没有优势。
无论如何,除非您的应用程序包含一些神奇的东西,否则您不应该注意这一点,例如一种利用某个 android bug 跳过某些安全约束的特殊方法、包含您的私钥的特殊代码(这是不好的做法)等。
这个SO post 避免逆向工程可能会让您感兴趣。
题外话:Scala 更难逆向工程,因为 Scala 难以理解。它生成的字节码通常与其源代码没有任何共同之处。我曾经想解释所有这些implicit 和其他人背后发生的事情,但我发现一堆乱七八糟的东西。 (你不应该使用 javap 来理解 scala 代码,scala 有其他实用程序)而且 groovy 是因为它是一种动态语言,并且它的字节码形式具有很多魔力,只是为了使其动态。我知道这一点是因为我去发现我的 gradle 构建脚本在开发 gradle 插件的过程中是如何工作的。我确实找到了生成的类文件,但我什至找不到 dependencies 块在其反汇编形式中的位置。
【讨论】: