为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以反编译Android .apk文件?

是否可以反编译Android .apk文件?

明月笑刀无情 2019-08-26 11:02:15
是否可以反编译Android .apk文件?用户是否能够将我的应用程序的apk文件转换回实际代码?如果他们这样做 - 有什么办法可以阻止这种情况吗?
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

首先,apk文件只是一个修改过的jar文件。所以真正的问题是他们可以反编译里面的dex文件。答案是那样的。已有反汇编程序,如dedexersmali。你可以期望这些只会变得更好,理论上最终应该可以反编译为实际的Java源代码(至少有时候)。请参阅上一个将DEX反编译为Java源代码的问题。

你应该记住的是混淆永远不会起作用。选择一个好的许可证,并尽力通过法律强制执行。不要用不可靠的技术措施浪费时间。


查看完整回答
反对 回复 2019-08-26
?
ibeautiful

TA贡献1993条经验 获得超5个赞

用户是否能够将我的应用程序的apk文件转换回实际代码?

是。

人们可以使用各种工具来:

  • 分析:你的apk

  • 解码/破解你的apk

    • 然后dex2jar用来转换为jar

    • 然后使用jadx转换为java源代码

    • FDex2倾倒了dex文件

如果他们这样做 - 有什么办法可以阻止这种情况吗?

是。几种(可以组合)防止(某种程度)这种方式:

  • 低级别:代码混淆

    • 使用Android ProGuard

  • 高级别:使用android强化场景

更多细节可以参考我的中文教程:安卓应用的安全和破解


查看完整回答
反对 回复 2019-08-26
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

可以对APK文件进行反编译。但如果代码被混淆,可能很难理解代码。

ApkTool查看APK文件中的资源

  • 提取AndroidManifest.xml和res文件夹中的所有内容(布局xml文件,图像,webview上使用的htmls等)

  • 命令: apktool.bat d sampleApp.apk

  • 注意:您可以使用7-zip等zip实用程序来实现此目的。但是,它还提取所有.class文件的.smali文件。

使用dex2jar

  • 从.apk文件生成.jar文件,我们需要JD-GUI来查看来自.jar的源代码。

  • 命令: dex2jar sampleApp.apk

使用JD-GUI反编译.jar

  • 反编译.class文件(在android应用程序的情况下是混淆的,但在其他.jar文件的情况下获得可读的原始代码)。也就是说,我们从应用程序中获取.java。


查看完整回答
反对 回复 2019-08-26
  • 3 回答
  • 0 关注
  • 331 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号