技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 1728|回复: 0
收起左侧

【Android】编译和调试dex2jar

[复制链接]

273

主题

451

帖子

4868

积分

用户组: 真·技术宅

UID
2
精华
61
威望
148 点
宅币
3685 个
贡献
131 次
宅之契约
0 份
在线时间
623 小时
注册时间
2014-1-25
发表于 2015-12-28 15:47:24 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
git位于https://github.com/pxb1988/dex2jar.git,配置和编译方法参照前几帖所示、这里就不配图文了
同样的,很多apk会找到apktool或dex2jar的bug来达到保护自己的目的,对于dex2jar就有nullpointer等错误
dex2jar的目标jar有很多,现在以dex2smali为例:
编译:Gradle projects->:d2j-smali->Tasks->build->jar  编译成功后会得到d:\dex2jar\d2j-smali\build\libs\d2j-smali-2.1-SNAPSHOT.jar(最新发布的才2.0!)
调试:这里参照apktool 里d2j-dex2smali.bat来设置
因为d2j-smali-2.1-SNAPSHOT.jar这个jar里其实包含至少2个功能,一个是dex2smali,一个是smali2dex,因此有多个主类,因此并不能用上节那样调试jar
bat里是java -Xms512m -Xmx1024m -cp "%CP%" %*                @"%~dp0d2j_invoke.bat" com.googlecode.d2j.smali.BaksmaliCmd %*
因此增加配置项(如上个帖子)EditConfiguration-> + -> Application  写入:
Main class -> com.googlecode.d2j.smali.BaksmaliCmd
VM options -> -Xms512m -Xmx1024m
Program arguments -> classes.dex  拿个dex文件做例子,自己配置相应目录Working directory
在d2j-smali -> src -> main -> java -> com.googlecode.d2j.smali.BaksmaliCmd ->main中下断点
之后点虫子按钮调试,这时提示“错误: -source 1.6 中不支持 diamond 运算符(请使用 -source 7 或更高版本以启用 diamond 运算符)”
也就是java版本低了,那么在菜单File->Project Structure中吧所有存在的1.6版本全改成1.7
再点虫子,ok断下!

评分

参与人数 1贡献 +5 收起 理由
0xAA55 + 5 加油!

查看全部评分

回复

使用道具 举报

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图  

GMT+8, 2020-7-5 21:22 , Processed in 0.085385 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表