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

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

2013-3-30 21:52
27593

使用过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


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
  • 1.png (43.11kb,55次下载)
收藏
免费 6
支持
分享
最新回复 (20)
雪    币: 47147
活跃值: (20460)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
编辑了一下你的帖,用这种方法插入图片:

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

最后,文章中图片或附件以如下形式存在
[ ATTACH ] 77760 [ /ATTACH ]
2013-3-30 22:23
0
雪    币: 61
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
麻烦啦!嘿嘿
2013-3-30 22:42
0
雪    币: 1413
活跃值: (401)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
4
great!
2013-3-30 22:42
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
顶一个,mark一下,日后学习用,谢谢楼主
2013-3-30 23:12
0
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
每次都有新收获呀。
2013-3-30 23:28
0
雪    币: 97697
活跃值: (200834)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
Thanks for share.
2013-3-31 01:20
0
雪    币: 358
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
弄成个BAT比较好
2013-3-31 14:04
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
mark!搞下看看效果
2013-3-31 20:43
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
没用过,不知道效果如何
2013-4-1 01:29
0
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
这里还有一个商业版的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
2013-4-1 11:14
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
12
这个玩意只是用 exe4j 把 dex2jar 打包了一下,不要被骗了
2013-4-1 18:10
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
13
愚人节快乐,每个看雪的朋友
2013-4-1 23:30
0
雪    币: 1585
活跃值: (182)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
多谢 收藏了~~
2013-4-5 21:39
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
不错,研究一下。
2013-4-10 10:52
0
雪    币: 22
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
heihei, 个人觉得AndroChef还不错,建议试试,本人是受益者。就是好象破解版好象没有? 谁有时间破一下,我现在是没时间了。
2013-5-28 14:56
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
收藏了。
2013-5-31 11:42
0
雪    币: 67
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
18
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)
随便找了个,出错了。。
2013-6-4 11:43
0
雪    币: 192
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
还是jad/jd-gui比较经典啊
2013-6-5 09:54
0
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
没这么简单吧,crash的事怎么说?
2013-7-3 23:02
0
雪    币: 406
活跃值: (164)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
21
这个用过。反编译效果还不错。
2013-7-3 23:42
0
游客
登录 | 注册 方可回帖
返回
//