smali:https://github.com/JesusFreke/smali/wiki
链接:http://pan.baidu.com/s/1c23vDwk 密码:s237
1.github下载smali包,编译生成相关jar包
./gradlew build
java -jar baksmali-2.2.0-dev-fat.jar -h查看支持的指令帮助
java -jar smali-2.2.0-dev-fat.jar -h查看支持的指令帮助
2.从系统中pull出需要反编译的odex文件,eg: Stk.odex
3.将smali-master/baksmali/build/libs/baksmali-2.2.0-dev-fat.jar和smali-master/smali/build/libs/smali-2.2.0-dev-fat.jar拷贝出来
4.执行指令:java -jar baksmali-2.2.0-dev-fat.jar deodex Stk.odex
此时可能会提示,Could not find classpath entry boot.oat, 请将系统/system/framework/arm或者/system/framework/arm64中的boot.oat pull出来
5.再次执行指令:java -jar baksmali-2.2.0-dev-fat.jar deodex Stk.odex
此时可能会提示, Cannot find dependency boot-core-libart.oat in null, 请将系统/system/framework/arm或者/system/framework/arm64中的boot-core-libart.oat pull出来
---->建议将/system/framework/arm或者/system/framework/arm64中所有的文件均pull出来,省去一次次执行报错的烦恼(当然,apk的依赖不一样,所需的包也不一样,请根据提示来操作即可)
6.再次执行java -jar baksmali-2.2.0-dev-fat.jar deodex Stk.odex后,会在当前目录下生成out文件夹,里边放的是smali中间文件,可以用这些文件来生成.dex文件
7.生成.dex方法,执行指令:
java -jar smali-2.2.0-dev-fat.jar assemble out/
会在当前目录下生成out.dex
8.之后使用jadx工具反编译.dex文件(jadx -d Stk_folder out.dex),即可生成java文件 (请查看apk反编译2)
9.反编译出的只有java文件,如需资源文件,请pull出Stk.apk文件,使用apktool,即可反编译出资源文件 apktool d Stk.apk(请查看apk反编译1)