Kotlin比Java更难逆向工程吗?

9

我正在决定为Android Studio项目使用哪种语言,我愿意使用Kotlin。如果它比Java更难逆向工程有优势的话。

1个回答

12

不,Kotlin没有这个意图。与Scala或Groovy(以及许多其他更“神奇”的JVM语言)不同,Kotlin的字节码结构并不太复杂,这意味着在避免反向工程方面,使用Kotlin与使用纯Java相比没有优势。

无论如何,除非您的应用程序包含某些神奇的内容,例如利用某个Android漏洞跳过某些安全约束的特殊方法,包含您的私钥的特殊代码(这是不好的做法),等等,否则您不应关注此问题。

这篇SO文章关于避免反向工程可能会对您有所帮助。


离题了:Scala很难理解,因此Scala更难逆向工程。它生成的字节码通常与源代码没有任何共同之处。我曾经想要解释所有那些implicit和其他东西发生的原因,但最终只发现一堆混乱。(您不应该使用javap来理解Scala代码,Scala有其他实用程序)。而Groovy则是因为它是一种动态语言,在其字节码形式中具有大量魔术,以使其“动态”。我知道这一点是因为我在开发gradle插件期间去了解我的gradle构建脚本的工作原理。我确实找到了生成的类文件,但我甚至无法找到其反编译形式中dependencies块的位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接