安卓apk反编译
反编译jar包
• jd-gui.exe
– 直接用此工具打开jar包
如何防止代码被反编译
• 由于apk是Android虚拟机加载的,它有一定的 规范,加密apk的Dalvik无法识别apk了。完全 避免是不可能的,总有人能够破解你的代码。 但是有几种方式来提高 被反编译取代码的难 度。
– 关键代码使用jni调用本地代码,用c或者c++编写, 因此相对比较难于反编译。 – 混淆java代码。混淆是不改变代码逻辑的情况下, 增加无用代码,或者重命名,使反编译后的源代码 难于看懂。网上开源的java代码混淆工具较多,一 般是用ant的方式来编译的
反编译
• • • •
程序的打包与安装过程 反编译资源文件 反编译dex文件 反编译jar包
程序的打包与安装过程
Android package(.apk)
Android project
Compliation And packaging
.dex files
Resource s.sources
Androidmanifest .xml
signin g
Device
反编译资源文件
• 工具
– apktool
• 将xml文件反编译出来,读取应用程序的资源信息
反编译dex文件
• dex2jar
– android应用程序中所有的字节码被放到 classes.dex文件中去 – 将classes.dex编译成classes_dex2jar.jar