用户是否能够将我的应用程序的 apk 文件转换回实际代码?如果他们这样做了 - 有什么办法可以防止这种情况发生吗?
7 回答
首先,apk 文件只是一个修改后的 jar 文件。所以真正的问题是他们能不能反编译里面的dex文件。答案有点像。已经有反汇编程序,例如dedexer和smali。您可以期望这些只会变得更好,理论上它最终应该可以反编译为实际的 Java 源代码(至少有时)。请参阅上一个问题将DEX 反编译为 Java 源代码。
你应该记住的是,混淆永远不会奏效。选择一个好的许可证,并尽力通过法律强制执行。不要在不可靠的技术措施上浪费时间。
APK文件的反编译是可能的。但是如果代码被混淆,可能很难理解。
使用Aapt(Android SDK 的一部分)或AXMLParser(来自 AndroGuard)来分析和查看 APK 文件的信息
检索 AndroidManifest.xml 文件的内容
显示各种信息(例如权限、活动、服务、广播接收器……)
命令:
适应症
aapt dump badging sampleApp.apk aapt dump permissions sampleApp.apk aapt dump xmltree sampleApp.apk
AXML解析器
apkinfo sampleApp.apk
使用ApkTool或NinjaDroid反汇编查看APK文件资源
将字节码反汇编为 smali/assembly
提取 AndroidManifest.xml、CERT.RSA 文件和 res 文件夹中的所有内容(布局 xml 文件、图像、webview 上使用的 html 等)
命令:
APK工具
apktool.bat d sampleApp.apk java -jar apktool.jar -q decode -f sampleApp.apk -o myOutputDir
忍者机器人
ninjadroid MyApk.apk --all --extract myOutputDir/
注意:您可以使用 7-zip 之类的 zip 实用程序来实现类似的效果。但是,这些工具也会提取所有 .class 文件的 .smali 文件。
使用dex2jar将APK文件的DEX文件反编译成Java代码
从 .apk 文件生成 .jar 文件(请注意,Android 应用程序的 Java 代码通常会被混淆)
需要 JD-GUI 从输出的 .jar 文件中查看源代码
命令:
dex2jar sampleApp.apk d2j-dex2jar.sh -f sampleApp.apk -o myOutputDir/sampleApp.jar
使用JD-GUI查看.jar文件
- 反编译 .class 文件(在 Android 应用程序中被混淆,但在其他 .jar 文件中不被混淆)并显示相应的 Java 代码
我还可以补充一点,现在可以在线反编译Android应用程序,无需软件!
这里有 2 个选项供您选择:
用户是否能够将我的应用程序的 apk 文件转换回实际代码?
是的。
人们可以使用各种工具:
- 分析:你的apk
- 解码/破解你的apk
- 用于
FDex2
转储dex
文件- 然后使用
dex2jar
转换为jar
- 然后使用
jadx
转换为java
源代码
- 然后使用
- 然后使用
- 用于
如果他们这样做了 - 有什么办法可以防止这种情况发生吗?
是的。几种(可以组合)方法来防止(一定程度)这种情况:
- 低级:代码混淆
- 使用安卓
ProGuard
- 使用安卓
- 高级:使用android harden 场景
- 如
Tecent Legu
=腾讯乐固qihoo 360
= 360平均宝</a>
下载这个 jadx 工具https://sourceforge.net/projects/jadx/files/
解压缩它,然后在 lib 文件夹中运行 jadx-gui-0.6.1.jar 文件,现在浏览您的 apk 文件。完成。apk 将自动反编译并按保存按钮保存。希望它对你有用。谢谢
dex2jar
有时你会在使用/时遇到错误的代码,apktool
尤其是在循环中。为避免这种情况,请使用jadx,它将 dalvik 字节码反编译为 java 源代码,而无需像之前那样先创建.jar
/.class
文件dex2jar
(我认为 apktool 使用 dex2jar)。它也是开源的并且正在积极开发中。它甚至有一个 GUI,供 GUI 狂热者使用。试试看!
是的,有大量软件可用于反编译 .apk 文件。
最近,我在我的网站上编制了 47 个最佳 APK 反编译器的最终列表。我把它们分成4个不同的部分。
- 开源 APK 反编译器
- 在线 APK 反编译器
- 适用于 Windows、Mac 或 Linux 的 APK 反编译器
- APK 反编译器应用
我希望这个合集对你有所帮助。