smali2java直接将smali转换成java

2020-10-21

smali2java——直接将smali转换成java

简介

smali2java 是一个将smali代码反编译成java代码的工具。smali是将Android字节码用可阅读的字符串形式表现出来的一种语言,可以称之为Android字节码的反汇编语言。使用baksmali或apktool可以将Android应用程序包(apk或jar)反编译为smali代码。

smali2java 工具基于apktool v1.5.0(baksmali v1.3.4)生成的smali文件,依赖于smali文件中的代码行数(line关键字)和变量别名(local关键字)等信息,可以最大程度还原原始的java代码。还原出的java代码将具有原始的变量命名,代码的顺序也与原始的java代码保持一致。

功能特点

  • 代码还原:能够最大程度还原原始的java代码,包括变量命名和代码顺序。
  • 语法高亮:界面显示中使用了CCrystalTextView作为java语法高亮显示控件。
  • 局限性:仅适用于带有行数和变量别名信息的smali文件。

使用方法

  1. 下载工具:从提供的下载链接获取smali2java工具。
  2. 反编译smali文件:使用apktool将Android字节码文件转换为smali文件。
  3. 转换为java代码:使用smali2java工具将smali文件反编译成java代码。

注意事项

  • 该工具仅适用于带有行数和变量别名信息的smali文件。
  • 由于smali代码与java代码之间存在一一对应的关系,因此还原出的java代码可能不完全等同于原始代码。

致谢

在此向apktool、baksmali以及CCrystalTextView的作者表示感谢。

相关资源

下载链接

smali2java直接将smali转换成java分享36303