反编译和重新打包Android的dex文件

ChaoYoung 2011-03-24

反编译和重新打包Android的dex文件需要用到两个jar包,可访问http://code.google.com/p/smali/地址去下载(如果地址没变的话),这两个文件分别是baksmali-1.2.6.jar和smali-1.2.6.jar(后面跟的是版本号;当前版本为1.2.6)。作用和使用方法如下:

一、baksmali-1.2.6.jar

(1)作用:用于反编译dex文件的。执行反编译后会在当前目录下产生一个out文件夹,这个文件夹中的资源(全部是扩展名为.smali的文件)即是反编译结果。

(2)使用方法:java-jarbaksmali-1.2.6.jarclasses.dex(尾部的dex文件是使用压缩工具[如WinRAR]从apk文件中释放出来的)

二、smali-1.2.6.jar

(1)作用:用于将smali资源(即:smali文件或包含smali文件的目录)重新打包为dex文件。

(2)使用方法:java-jarsmali-1.2.6.jarout(尾部的out即为前面反编译dex文件时所产生的目录名;执行后产生一个out.dex文件,将其重命名为classes.dex并替换掉apk文件中的同名文件即完成重新打包Android的dex文件)

三、余尾

结合使用这两个jar包,可以反编译dex文件,也可以将反编译结果重新打包为dex文件。那么在重新打包之前,可以进行一些操作,以完成类似“软件汉化”的目的;当然,也可以有其他不可告人之目的,呵呵。。。

http://www.hiapk.com/bbs/thread-59184-1-1.html

相关推荐