可能重复:
Android:从APK文件获取源代码
有人可以解组我的android apk文件,看看我的包中声明的公共变量或常量吗?
我已定义为公共静态常量的共享密钥将被暴露...
Sun*_*tya 10
是的,可以反编译apk.
根据混淆程度,它可能需要一些时间,但专门/弯曲的人最终会反编译它.
你可以试试像这样的工具
资料来源:http://geeknizer.com/decompile-reverse-engineer-android-apk/
更新1
以下是另外两个选项:
@ AndrewRukin建议
更新2
另一个工具:jadx
当您对代码进行反混淆处理时(这里是一个可能提供洞察力的视频教程:如何阅读混淆代码),您将能够看到所有硬编码的值,例如
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)
并利用受过教育的猜测和重构工具,你就可以反混淆代码,因此有足够的奉献和辛勤工作的人将能够看到所有的代码.
我强烈建议不要完全取决于编码到客户端应用程序中的内容.当然,这取决于你的情况对于让黑客无法访问你想要获取的信息的重要性.
| 归档时间: |
|
| 查看次数: |
33668 次 |
| 最近记录: |