这是smali2java下载,本(běn)人自(zì)己写的将smali反编译(yì)为java代码的(de)工具,支(zhī)持apk和(hé)jar包直接(jiē)反编译为java代(dài)码,适用于java代码未经(jīng)编(biān)译(yì)优化,保(bǎo)留了源码行数和(hé)变量名称的情况(kuàng)。
smali2java是将androids字节(jiē)码用可阅读的字符串形式表现出来的(de)一种语言,可以称(chēng)之为(wéi)androids字节码的(de)反汇编(biān)语(yǔ)言。使用baksmali或apktool可以将(jiāng)androids应用程序包(apk或jar)反(fǎn)编译为smali代码。
smali2java工具基于(yú)apktool v1.5.0(baksmali v1.3.4)生成(chéng)的smali文件(jiàn),依赖(lài)于smali文件(jiàn)中(zhōng)的代(dài)码行数(.line关键字)和(hé)变量别(bié)名(.local关键字)等信息(xī),可以最大(dà)程度还(hái)原原始的java代码。还原出的java代码将具有原始的变量命(mìng)名,代码的顺序也与原始的java代码保持一致。因此(cǐ),本工具也(yě)具有局限性,仅适用于带有行(háng)数和变量别名信息的smali文(wén)件(java编译器的(de)编译选项可以在(zài)生成的字节码中剔除这些信(xìn)息)。
smali2java使用了apktool将androids字(zì)节码(mǎ)文件转换(huàn)为smali文件。界面(miàn)显示中(zhōng)使用(yòng)了(le)CCrystalTextView作为(wéi)java语法高(gāo)亮显示控件,
smali2java工具基于apktool v1.5.0(baksmali v1.3.4)生(shēng)成的smali文件,依赖于smali文件(jiàn)中的代码行数(.line关键字)和变量别名(.local关键字)等信息,可以最(zuì)大程(chéng)度还原原始的java代码。还(hái)原出的java代码将具有(yǒu)原始的变量命名,代码的顺序也与原始的java代码(mǎ)保(bǎo)持一致(zhì)。因此,本工具也具有局限性(xìng),仅适用于带有(yǒu)行数和变量别名信息的(de)smali文件(java编译器的编译(yì)选项可以(yǐ)在生成的字(zì)节码中(zhōng)剔除这些信(xìn)息(xī))。
