我正在尝试制作一个安全的android应用。我已经在我的应用中启用了 proguard 。但是在反编译时它不会隐藏任何xml文件或 list 。它仅更改.java文件。

我尝试使用 apktool 从Play商店反编译另一个应用的apk。然后我得到了以下异常

Exception in thread "main" brut.androlib.AndrolibException: brut.directory.Direc
toryException: java.util.zip.ZipException: error in opening zip file
        at brut.androlib.ApkDecoder.hasSources(ApkDecoder.java:199)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:83)
        at brut.apktool.Main.cmdDecode(Main.java:146)
        at brut.apktool.Main.main(Main.java:77)
Caused by: brut.directory.DirectoryException: java.util.zip.ZipException: error
in opening zip file
        at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:55)
        at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:38)
        at brut.androlib.res.util.ExtFile.getDirectory(ExtFile.java:55)
        at brut.androlib.ApkDecoder.hasSources(ApkDecoder.java:197)
        ... 3 more
Caused by: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(Unknown Source)
        at java.util.zip.ZipFile.<init>(Unknown Source)
        at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:53)
        ... 6 more

然后,不会显示xml文件和 list 。我也想这样保护我的应用程序。这怎么可能?

最佳答案

要回答您的问题,完全不可能使APK完全安全。 XML文件为easily parsed without apktool

我问了Ben Gruver/JesusFreke(开发smali的人),他说不可能完全保护APK文件,但会使他人更难以反编译。只要Android可以读取您项目中的资源/代码,工具也可以。

您尝试反编译Gmail时看到的异常是因为需要为Lollipop(which is actively being working on)更新apktool。

我发现answer by @classc_abc是最好的,它使反编译APK更加困难:

关于android - 反编译apk时发生异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27541166/

10-11 01:26