天天看点

smali2java——直接将smali转换成java

http://www.hensence.com/cn/smali2java/

smali2java——直接将smali转换成java

主界面图

smali2java是一个将smali代码反编译成java代码的工具。

什么是smali?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代码保持一致。因此,本工具也具有局限性,仅适用于带有行数和变量别名信息的smali文件(java编译器的编译选项可以在生成的字节码中剔除这些信息)。

smali2java使用了apktool将android字节码文件转换为smali文件。界面显示中使用了ccrystaltextview(作者:stcherbatchenko andrei)作为java语法高亮显示控件,在此向这些软件或代码的作者表示感谢。

示例:

activitybase.smali(smali文件) 

activitybase.java(原始java文件)

activitybase.java(smali2java生成的java文件)

当前最新版本为:1.0.0.558

立即下载

继续阅读