smali2java是一個將smali代碼反編譯成java代碼的工具。
什么是smali?
smali是將Android字節(jié)碼用可閱讀的字符串形式表現出來的一種語言,可以稱之為Android字節(jié)碼的反匯編語言。使用baksmali或apktool可以將Android應用程序包(apk或jar)反編譯為smali代碼。
特點:
smali2java工具基于apktool v1.5.0(baksmali v1.3.4)生成的smali文件,依賴于smali文件中的代碼行數(.line關鍵字)和變量別名(.local關鍵字)等信息,可以最大程度還原原始的java代碼。還原出的java代碼將具有原始的變量命名,代碼的順序也與原始的java代碼保持一致。因此,本工具也具有局限性,僅適用于帶有行數和變量別名信息的smali文件(java編譯器的編譯選項可以在生成的字節(jié)碼中剔除這些信息)。smali2java使用了apktool將Android字節(jié)碼文件轉換為smali文件。界面顯示中使用了CCrystalTextView作為java語法高亮顯示控件,