重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以先把smali转化为dex文件,然后再用 dex2jar转化一次。我之前也遇到过跟你一样的情况就是这么处理的。祝你好运!
创新互联专注于林口网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供林口营销型网站建设,林口网站制作、林口网页设计、林口网站官网定制、微信小程序开发服务,打造林口网络公司原创品牌,更为您提供林口网站排名全网营销落地服务。
smali2java是一个将smali代码反编译成java代码的工具。
smali2java工具基于apktool v1.5.0(baksmali v1.3.4)生成的smali文件,依赖于smali文件中的代码行数(.line关键字)和变量别名(.local关键字)等信息,可以最大程度还原原始的java代码。还原出的java代码将具有原始的变量命名,代码的顺序也与原始的java代码保持一致。
本工具也具有局限性,仅适用于带有行数和变量别名信息的smali文件(java编译器的编译选项可以在生成的字节码中剔除这些信息)。
把java代码转成smali代码共需要以下三个步骤
1、编译java代码为class文件
javac smaliTest.java
这个比较简单,会生成smaliTest.class文件
2、把class文件转成dex文件
我们知道apk包里java代码最后生成的是class.dex文件,把class转化成dex文件就需要用到android SDK提供的一个工具dx,该jar包位于android-sdk\build-tools\23.0.1\lib,找到该包后执行以下命令
java -jar dx.jar --dex --output=smaliTest.dex smaliTest.class
3、把dex转化成smali文件
这时候会使用到另外一个工具baksmali,该工具位于android-sdk\platform-tools\,找到该包后执行以下命令
java -jar baksmali.jar smaliTest.dex
OK,完成,此时会生成一个out目录,在out目录下的smaliTest.smali就是我们要看到的smali代码了