java 反编译 dex_将DEX反编译成Java源代码

305c7b424ca83d0a64168e5a31eefabc.png

慕村9548890

为了稍作澄清,在这里您可能会选择两条主要的路径,这取决于您想要完成的任务:将Dalvik字节码(Dex)反编译成可读的Java源。你可以很容易地用右2jar和JD-gui,正如弗雷德提到的。生成的源代码对于读取和理解应用程序的功能很有用,但可能不会产生100%可用的代码。换句话说,您可以读取源代码,但不能真正修改和重新打包它。请注意,如果源代码已与proGuard混淆,则生成的源代码将更难解开。另一个主要的选择是将字节码解压缩到斯马利一种专为这个目的而设计的汇编语言。我发现最简单的方法就是APKTool..一旦安装了apktools,就可以将其指向apk文件,并为应用程序中包含的每个类返回一个smali文件。您可以通过从新的Java源生成smali来读取和修改smali,甚至可以完全替换类(为此,可以用javac将.java源代码编译为.class文件,然后使用Android的dx编译器将.class文件转换为.dex文件,然后使用baksmali(smali反汇编程序)将.dex转换为.smali文件,如这个问题..这里可能有条捷径)。完成之后,您可以轻松地将apk打包回apktools。请注意,apktools没有对结果的apk签名,因此您需要处理这个问题。就像其他Android应用程序一样.如果你走斯马利路线,你可能想试试APK演播室,该IDE自动执行上述一些步骤,以帮助您对apk进行反编译和重新编译,并将其安装在设备上。简而言之,您的选择很大程度上是将代码反编译成Java(Java更易读,但可能是不可逆转的),或者将其分解为smali,这是比较难读的,但对于修改和重新打包经过修改的应用程序则要灵活得多。你所选择的方法将取决于你想要达到的目标。最后,建议胆量也很重要。它是一个重定向工具,可以将.dex和.apk文件转换为java.class文件,以便使用典型的java静态分析工具对它们进行分析。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值