Kotlin比Java更难于逆向工程

我正在决定哪一个用于Android Studio项目,我愿意使用Kotlin。 如果在反向工程方面比java更难。

不,科特林没有这样的意图。 与Scala或Groovy(以及许多其他更神奇的 JVM语言)不同,Kotlin的字节码结构并不太复杂,这意味着在避免反向工程时,使用kotlin与普通Java相比没有优势。

无论如何,除非你的应用程序包含一些神奇的东西,例如一个特殊的方法来利用某个android bug,一个包含你的私钥的特殊代码(这是不好的做法)等, 。

这个避免逆向工程的帖子可能会让你感兴趣。


题外话:Scala很难反向工程,因为Scala 很难理解。 其生成的字节码与其源代码通常没有任何共同之处。 我曾经想解释所有那些implicit和其他的背后发生的事情,但我只是发现了一堆烂摊子。 (你不应该使用javap来理解scala代码,scala有其他的工具)而且groovy是因为它是一种动态语言,它的字节码形式有很多魔法,只是为了使它变成动态的 。 我知道这一点,因为我去发现gradle插件的开发过程中我的gradle构建脚本是如何工作的。 我确实找到了所得到的类文件,但是我甚至找不到dependencies块在哪里以其拆卸的形式。