解压android apk吗?

ora*_*rak 20 android

可能重复:
Android:从APK文件获取源代码

有人可以解组我的android apk文件,看看我的包中声明的公共变量或常量吗?

我已定义为公共静态常量的共享密钥将被暴露...

Sun*_*tya 10

是的,可以反编译apk.

根据混淆程度,它可能需要一些时间,但专门/弯曲的人最终会反编译它.

你可以试试像这样的工具

资料来源:http://geeknizer.com/decompile-reverse-engineer-android-apk/

更新1

以下是另外两个选项:

@ AndrewRukin建议

更新2

另一个工具:jadx


Ask*_* B. 9

当您对代码进行反混淆处理时(这里是一个可能提供洞察力的视频教程:如何阅读混淆代码),您将能够看到所有硬编码的值,例如

private String key = "Au8aujEWS(jol#9jSd9";
Run Code Online (Sandbox Code Playgroud)

除了他们不会看到变量名称:

private String a = "Au8aujEWS(jol#9jSd9";
Run Code Online (Sandbox Code Playgroud)

通过使用Sunny提到的工具,您将能够使所有代码接近其原始状态.

我举个例子; 如果您有以下原始代码:

public class MainActivity extends Activity { 
    private String key = "Au8aujEWS(jol#9jSd9";

    public void onCreate(Bundle savedInstance) {
        //Some code here
    }
}

public class OtherActivity extends Activity { ... }
Run Code Online (Sandbox Code Playgroud)

在编译之后,反编译回java代码,它看起来像这样:

public class A extends B {
    private String a = "Au8aujEWS(jol#9jSd9";

    public void a (C b) {
        //Some code here
    }
}
public class D extends B { ... }
Run Code Online (Sandbox Code Playgroud)

并利用受过教育的猜测和重构工具,你就可以反混淆代码,因此有足够的奉献和辛勤工作的人将能够看到所有的代码.


我强烈建议不要完全取决于编码到客户端应用程序中的内容.当然,这取决于你的情况对于让黑客无法访问你想要获取的信息的重要性.