首页
社区
课程
招聘
[原创]反编译工具dava的使用,个人觉得效果比jad/jd-gui效果好
2013-3-30 21:52 27100

[原创]反编译工具dava的使用,个人觉得效果比jad/jd-gui效果好

2013-3-30 21:52
27100
使用过ded进行dex反编译的同学应该知道dava是个神马东西。他是ded中实现class->java的反编译工具
个人觉得他的解析效果比jad/jd-gui要好,美中不足的是稳定性不够好。
ded是linux下的,对于使用windows的同学来说只能单独使用dava来反编译了。dava使用起来真是好蛋疼。相信有同学已经尝试过了。经过一番努力终于成功了。

dava是soot的一部分使用它就要下载soot。
下载 最新版 2.5.0 http://www.sable.mcgill.ca/soot/soot_download.html

下面是运行命令有点长先来张图。后面慢慢解释



指令解释
cmd 输入指令cd 到你soot-2.5.0.jar的 目录然后继续输入下面的指令
(1)设置依赖库路径。 Java –cp soot-2.5.0.jar
(2)启动soot 。      soot.Main
(3)设置soot的classpath 。
-cp C:\Java\jdk1.6.0_21\jre\lib\jce.jar;(你jdk/jre中的jce,这个是反编译必须要的)
C:\Java\jdk1.6.0_21\jre\lib\rt.jar;(你jdk/jre中的rt,这个是反编译必须要的)
D:\adt-bundle-windows-x86\sdk\platforms\android-4.2\android.jar;(你android sdk所在的)
yourdir(你要反编译的文件所在的目录)
特别注意 yourdir 中不要包含包名 比如你的文件夹为workspace/bin/com/XX…..class
而你的包名为com。那么这里设置的yourdir应为workspace/bin
(4)反编译选项 。-f dava
(5)输出目录。  -d output
(6)要反编译的文件
目录下的所有文件 -process-path yourdir(yourdir 的设置跟上面一样 不要包括包名)
  单个文件  package.XX    package为包名,XX为要反编译的文件名 不需要.class的后缀
最后给出整条指令
反编译 目录下的文件
java -cp soot-2.5.0.jar soot.Main -cp C:\Java\jdk1.6.0_21\jre\lib\jce.jar;C:\Java\jdk1.6.0_21\jre\lib\rt.jar;D:\adt-bundle-windows-x86\sdk\platforms\android-4.2\android.jar;D:\Soot\test16 -f dava  -process-path D:\Soot\test

反编译反编译单个文件
java -cp soot-2.5.0.jar soot.Main -cp C:\Java\jdk1.6.0_21\jre\lib\jce.jar;C:\Java\jdk1.6.0_21\jre\lib\rt.jar;D:\adt-bundle-windows-x86\sdk\platforms\android-4.2\android.jar;D:\Soot\test16 -f dava  com.example.myfish.Enemy

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

上传的附件:
  • 1.png (43.11kb,55次下载)
收藏
点赞3
打赏
分享
最新回复 (20)
雪    币: 32405
活跃值: (18935)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2013-3-30 22:23
2
0
编辑了一下你的帖,用这种方法插入图片:

http://bbs.pediy.com/showpost.php?postid=292659

最后,文章中图片或附件以如下形式存在
[ ATTACH ] 77760 [ /ATTACH ]
雪    币: 61
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
麦小扣 2013-3-30 22:42
3
0
麻烦啦!嘿嘿
雪    币: 1413
活跃值: (401)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
Claud 6 2013-3-30 22:42
4
0
great!
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
safeboy 2013-3-30 23:12
5
0
顶一个,mark一下,日后学习用,谢谢楼主
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
想就来 2013-3-30 23:28
6
0
每次都有新收获呀。
雪    币: 85642
活跃值: (198904)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
linhanshi 2013-3-31 01:20
7
0
Thanks for share.
雪    币: 358
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
renbaishi 2013-3-31 14:04
8
0
弄成个BAT比较好
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hizhh 2013-3-31 20:43
9
0
mark!搞下看看效果
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
以卵击石 2013-4-1 01:29
10
0
没用过,不知道效果如何
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
figofuture 2013-4-1 11:14
11
0
这里还有一个商业版的dex->java反编译组合,感觉用起来比jd-gui好的是有时候dex2jar+jd-gui会crash,用这个组合则没有,缺点是这个组合是收费的,只提供试用期限。
AndroChef + DJ Java Decompiler
AndroChef 是将apk, dex转为.class  http://www.neshkov.com/ac_decompiler.html
DJ Java Decompiler将.class转为java源代码 http://www.neshkov.com/dj.html
雪    币: 446
活跃值: (723)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
wangshy 2 2013-4-1 18:10
12
0
这个玩意只是用 exe4j 把 dex2jar 打包了一下,不要被骗了
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
快雪时晴 4 2013-4-1 23:30
13
0
愚人节快乐,每个看雪的朋友
雪    币: 1585
活跃值: (182)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
shangrila 2013-4-5 21:39
14
0
多谢 收藏了~~
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vbnewer 2013-4-10 10:52
15
0
不错,研究一下。
雪    币: 22
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wtscrystal 2013-5-28 14:56
16
0
heihei, 个人觉得AndroChef还不错,建议试试,本人是受益者。就是好象破解版好象没有? 谁有时间破一下,我现在是没时间了。
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
neeao 2013-5-31 11:42
17
0
收藏了。
雪    币: 67
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
ImaxAndroi 1 2013-6-4 11:43
18
0
Decompiling com.google.gson.DefaultDateTypeAdapter...
Exception in thread "main" java.lang.RuntimeException: Could not verify approxim
ated Synchronized body!
Method:
<com.google.gson.DefaultDateTypeAdapter: java.util.Date deserializeToDate(com.go
ogle.gson.JsonElement)>Body:
===============================================================
[this := this: com.google.gson.DefaultDateTypeAdapter, r1 := @parameter0: com.go......
......
at soot.dava.toolkits.base.finders.SynchronizedBlockFinder.find(Synchron
kFinder.java:164)
at soot.dava.DavaBody.<init>(DavaBody.java:326)
at soot.dava.Dava.newBody(Dava.java:84)
at soot.PackManager.runBodyPacks(PackManager.java:814)
at soot.PackManager.runBodyPacks(PackManager.java:463)
at soot.PackManager.runBodyPacks(PackManager.java:380)
at soot.PackManager.runPacks(PackManager.java:357)
at soot.Main.run(Main.java:198)
at soot.Main.main(Main.java:141)
随便找了个,出错了。。
雪    币: 192
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
时光小偷 2013-6-5 09:54
19
0
还是jad/jd-gui比较经典啊
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
figofuture 2013-7-3 23:02
20
0
没这么简单吧,crash的事怎么说?
雪    币: 406
活跃值: (164)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
荒野无灯 5 2013-7-3 23:42
21
0
这个用过。反编译效果还不错。
游客
登录 | 注册 方可回帖
返回