当前位置: 首页 > 知识库问答 >
问题:

Smali代码与Java源代码逆向工程Android应用程序时

鄢松
2023-03-14

我只是在看android逆向工程教程,我注意到他们中的大多数人在反编译apk后修改smali代码而不是实际的java源代码,这是有原因的吗?

感谢您的帮助。

谢啦

共有1个答案

冀永寿
2023-03-14

大多数时候,您从反编译中获得的不是完整/正确/可编译的Java源代码。

字节码推断(Java)源代码只是一个困难的问题。此外,源代码中的某些信息可能只是在编译后的表单中丢失,例如局部变量或参数的名称,因此无法通过反编译来恢复它们。

相比之下,将字节码转换为低级(smali)指令(反之亦然)很简单。

 类似资料:
  • 我有一个工作的Android应用程序。其中我没有一个源代码。我想调试这个应用程序的功能。我可以使用apktool成功地对这个应用程序apk文件进行反向工程-https://code.google.com/p/android-apktool/该工具以smali格式生成类文件。 我的要求是: 能够通过添加调试日志来调试方法 能够通过打印堆栈跟踪调试方法调用 为了实现这一点,我需要注入/插入相当于调试日

  • 我正在用python(2.7)创建一个程序,我想保护它不受逆向工程的影响。

  • 我无意中发布了一个APK,它有一个非常大的版本代码。即整数值的最大值。

  • 本文向大家介绍详解在idea 中使用Mybatis Generator逆向工程生成代码,包括了详解在idea 中使用Mybatis Generator逆向工程生成代码的使用技巧和注意事项,需要的朋友参考一下 通过MAVEN完成 Mybatis 逆向工程 1. POM文件中添加插件 在 pom 文件的build 标签中 添加 plugin 插件和 数据库连接 jdbc 的依赖。 若不在pom文件中引

  • Rax 支持在项目中使用小程序原生组件,同时使用 Rax 开发的组件同样支持在原生小程序项目中使用。 在 Rax 项目中使用小程序原生组件 Rax 转小程序链路使用小程序原生组件目前支持以下两种方式: 通过 npm 安装 将源码拷贝至本地使用 通过 npm 安装 你可以通过 npm 安装的方式在 Rax 项目中使用小程序原生组件,前提是 package.json 中需要配置 miniappConf

  • 问题内容: 我正在尝试使用Java创建一个小程序来分叉两个新的子进程。它是针对初学者的编程课程的,他们的教程都使用C语言编写,因此,我正在寻求一些帮助,以了解此技巧,以及将其适应基于Java的程序的最佳方法(最终在它)。 更新: 我应该给每个子进程及其父进程附加一个ID,在子进程执行时打印信息,并在终止时打印终止通知。现在,我看到上面的这段代码列出了当前目录的内容,并在进程终止时显示“ Child