码迷,mamicode.com
首页 > 编程语言 > 详细

[练习]使用dx.bat、dexdump.exe、javap、Baksmali

时间:2014-07-03 07:18:49      阅读:374      评论:0      收藏:0      [点我收藏+]

标签:android   blog   http   java   使用   strong   

这几个工具的关系可以这样描述:

bubuko.com,布布扣

 

用例:

public class Hello
{
	public int foo(int a , int b )
	{
		return (a+b) * (a-b);
	}
	
	public static void main(String args[])
	{
		Hello hello = new Hello();
		System.out.println(hello.foo(5,3));
	}
}

  

dx.bat、dexdump.exe可以在\sdk\build-tools\android-4.4W下找到。

把Hello.class复制到这个目录下,输入:

bubuko.com,布布扣

可以生成Hello.dex。

然后用dexdump弄成Dalvik字节码:

bubuko.com,布布扣

能得到这样的东西:

bubuko.com,布布扣

对应函数:

public int foo(int a , int b )
	{
		return (a+b) * (a-b);
	}

 

Javap可以反编译class得到Java字节码,命令是:

javap -c -classpath . Hello

就不使用了。

 

DEX反汇编工具Baksmali

 

用法是:

java -jar baksmali.jar -o baksmaliout Hello.dex

可以在baksmaliout目录下生成Hello.smali文件,然后用文本编辑器打开可以看到foo()函数的代码,也有上面的add-int,sub-int等等。

谷歌被墙了,GoogleCode上不去。不搞了。

注意Smali是Dalvik虚拟机指令语言,所以dexdump.exe搞出来的Dalvik字节码跟Baksmali反汇编出来的smali语言是一样的。

dexdump比较简易所以一般用Baksmali吧。

 

[练习]使用dx.bat、dexdump.exe、javap、Baksmali,布布扣,bubuko.com

[练习]使用dx.bat、dexdump.exe、javap、Baksmali

标签:android   blog   http   java   使用   strong   

原文地址:http://www.cnblogs.com/larrylawrence/p/3818264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!