首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以反编译一个Android .apk文件吗?

可以反编译一个Android .apk文件吗?
EN

Stack Overflow用户
提问于 2010-06-26 11:51:50
回答 7查看 108.1K关注 0票数 89

用户是否能够将我的应用程序的apk文件转换回实际代码?如果他们这样做了-有什么方法可以防止这种情况发生吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-06-26 11:55:22

首先,apk file只是一个修改过的jar文件。所以真正的问题是他们能否反编译里面的dex文件。答案是这样的。已经有反汇编程序了,比如dedexersmali。您可以期待这些只会变得更好,从理论上讲,最终应该可以反编译成实际的Java源代码(至少有时是这样)。请参阅上一个问题decompiling DEX into Java sourcecode

你应该记住的是混淆是不会起作用的。选择一个好的许可证,尽你最大的努力通过法律来执行它。不要把时间浪费在不可靠的技术措施上。

票数 82
EN

Stack Overflow用户

发布于 2012-02-10 00:26:25

Decompilation of APK file is possible. But it might be difficult to understand the code if it is obfuscated.

使用 ( Android SDK的一部分)或 (来自AndroGuard)来分析和查看APK文件的信息

  • 将检索AndroidManifest.xml文件

的内容

  • 显示各种信息(例如权限、活动、服务、广播接收器等)

  • 命令:

Aapt

aapt转储标记sampleApp.apk aapt转储权限sampleApp.apk aapt转储sampleApp.apk sampleApp.apk

AXMLParser

apkinfo sampleApp.apk

使用 反汇编和查看APK文件的资源

将字节码

  • Disassembles到smali/assembly

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

  • 命令:

ApkTool

apktool.bat d sampleApp.apk java -jar apktool.jar -q decode -f sampleApp.apk -o myOutputDir

NinjaDroid

忍者-全部--提取myOutputDir/ -- MyApk.apk

  • NOTE:你可以使用7-zip这样的压缩工具来实现类似的功能。但是,这些工具还提取所有.class文件的.smali文件。

使用 将APK文件的DEX文件反编译成Java代码

  • 从.apk文件生成.jar文件(请注意,安卓应用程序的Java代码通常是模糊的)

  • 需要JD-GUI来查看输出.jar文件

中的源代码

  • 命令:

dex2jar sampleApp.apk d2j-dex2jar.sh -f sampleApp.apk -o dex2jar.sh

使用JD-GUI查看.jar文件

  • 解压.class文件(在安卓应用程序中进行模糊处理,但在其他.jar文件中不会),并显示相应的Java代码
票数 37
EN

Stack Overflow用户

发布于 2015-12-12 19:27:08

我还可以补充说,现在可以在线反编译Android应用程序,不需要任何软件!

这里有两个选项供您选择:

  • http://www.decompileandroid.com/
  • http://www.javadecompilers.com/apk
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3122635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档