首页 > 代码库 > 反编译classes.dex的工具和方法

反编译classes.dex的工具和方法

  Dex是Android系统中可以在Dalvik虚拟机上直接运行的文件格式。java源代码经过ADT的复杂编译后转换成Dex文件,这是一个逐步优化的过程。Dex文件的指令码就是Dalvik虚拟机专有的一套指令集,专门为嵌入式系统优化过,相比标准java的.class文件,它体积小,运行效率高。纯手打!

 

  反编译classes.dex的工具和方法

  需要两个工具baksmali.jar和smali.jar,电脑需配置好java环境

  Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器。

  可以去这里下载,也可以下载本帖附件:http://code.google.com/p/smali/downloads/list

  方法:假如你将下载到的baksmali.jar和smali.jar放到F盘干目录下,请将此代码复制到记事本并另存为反编译.bat【注:本帖附件已包含编译/反编译bat文件,可以略去此步】

  [url=home.php?mod=space&uid=31513]@echo[/url] off

  f:

  java -jar baksmali.jar classes.dex

  复制代码

  再将下面的代码复制另存为编译.bat

  @echo off

  f:

  cd f:

  java -jar smali.jar out

  复制代码

  然后你将需要反编译的classes.dex也放入F盘根目录,点击反编译.bat。你会看到弹出的DOS窗口,几秒钟后窗口自动关闭,并在F盘下生成一个out的文件件。这里面有很多.smali的文本文件,我们所要汉化的非标准资源就隐藏在其中。等你修改翻译完成后,再点击编译.bat,稍等一刻儿,F盘根目录下就会生成编译后的新文件out.dex,你将其改名为classes.dex,打包进apk,签名即可。

 

反编译classes.dex的工具和方法