对 Android 应用进行逆向工程时的 Smali 代码与 Java 源代码
Posted
技术标签:
【中文标题】对 Android 应用进行逆向工程时的 Smali 代码与 Java 源代码【英文标题】:Smali code vs Java source code when reverse engineering an android app 【发布时间】:2016-07-09 06:12:18 【问题描述】:我只是在看android逆向工程教程,发现大部分都是在apk反编译后修改smali代码而不是实际的java源代码,这是有原因的吗?
感谢任何帮助。
谢谢
【问题讨论】:
【参考方案1】:大多数时候,您从反编译中得到的不是完整/正确/可编译的 Java 源代码。
从字节码推断(Java)源代码只是一个hard 问题。此外,源代码中的某些信息可能只是从编译的表单中丢失,例如局部变量或参数的名称,因此无法通过反编译来恢复它们。
相比之下,将字节码转换为低级 (smali) 指令(反之亦然)是微不足道的。
【讨论】:
以上是关于对 Android 应用进行逆向工程时的 Smali 代码与 Java 源代码的主要内容,如果未能解决你的问题,请参考以下文章
如何对使用 ProGuard 混淆的 Android APK 进行逆向工程/反编译?
[在AppCenter中设置Android应用的安装程序签名时的密码