反编译和回编译framework.jar

最近对android 2.3.3framework.jar进行了一些反编译和回编译的操作,写下来备忘。

 

一、framework.jar反编译为smali文件

 

1、下载smali-1.2.6.jarbaksmali-1.2.6.jar这两个工具(下载地址:http://code.google.com/p/smali/downloads/list

 

2、将framework.jar中的classes.dex解压出来(好像不解压,直接用framework.jar也行)

 

3、使用baksmali.jarclasses.dex进行反编译(前提是安装了jdk,并且设置好了环境变量),执行命令:

 

java -jar baksmali-1.2.6.jar classes.dex -o out/

 

其中classes.dex是要反编译的文件,out/是要把反编译后的文件存放到的文件夹,如果不是在当前目录下,那么baksmali-1.2.6.jar还要加上路径

 

这样就OK了,在out文件夹中可以看到一堆扩展名为.smali的文件,用记事本就可以打开它们,从中可以窥到一些信息。但是与.java文件还是有一些不同,我也不太清楚这是什么结构。

 

二、smali文件回编译为classes.dex

 

1、一条命令就OK了:java -jar smali-1.2.6.jar out/ -o classes.dex

 

2、再把编译好的classes.dex放回到framework.jar中就行了(可以使用winrarwinzip之类的工具作为辅助)。

 

三、framework.jar反编译为.class.java文件

 

1、下载以下工具:

 

1dex2jarhttp://code.google.com/p/dex2jar/

 

2xjadhttp://www.skycn.com/soft/41898.html)或jd-guihttp://java.decompiler.free.fr/?q=jdgui

 

2、使用dex2jarframework.jar进行转换,执行命令:dex2jar.bat framework.jar   将会生成一个framework.jar.dex2jar.jar

 

3、直接对该jar文件解压,可以看到里面都是.class文件了

 

4、如果还需要转换成.java文件,可以使用xjadjd-gui,均可将class文件变为java文件。

 

注:dex2jar工具也可以处理.dex文件,因此也可以不直接处理framework.jar。而是先将framework.jar解压,生成classes.dex后再处理也行。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值