当前位置: 首页 > 科技观察

简单分析,反编译AndroidAPK流程分享

时间:2023-03-20 21:31:42 科技观察

作为公司的技术和产品人员,看到别人开发出优秀的AndroidAPK,真的很羡慕。在Android开发的过程中,我也很想学习别人漂亮的动画和布局。或者说产品逻辑是怎么做的,所以最近学习了APK的反编译,仅供学习参考,提高产品竞争力,不做任何非法尝试。首先下载反编译软件apktool、dex2jar、jd-gui对APK进行反编译。工具介绍:apktool:资源文件获取,可以提取图片文件和布局文件供使用和查看,原理详解:(http://my.oschina.net/1590538xiaokai/blog/467830)dex2jar:将apk反编译成java源码code(classes.dex转jar文件)jd-gui:查看APK中classes.dex转换后的jar文件,即源码文件反编译过程:1.反编译apk得到源码、图片、XML配置、语言资源等程序文件在上述工具中下载apktool,解压得到3个文件:aapt.exe、apktool.bat、apktool.jar,将需要反编译的APK文件放在该目录下,打开命令行界面(Run-CMD),定位到apktool文件夹,输入以下命令:apktool.batd-ftest.apktest(命令中的test.apk指的是编译好的APK文件的全名,test为反编译后资源文件所在目录的名称,即:apktool。batd-f[apk文件][输出文件夹])说明获取成功,后来发现A文件夹下多了一个测试文件,点击查看应用的所有资源文件。如果你想把反编译后的文件重新打包成apk,那么可以:输入apktool.batbtest(你编译的文件夹),效果如下:之后你可以在之前的test文件中找到2个以上的文件夹:builddist(打包后的APK文件存放在里面)2.Apk反编译得到Java源码在上述工具中下载dex2jar和jd-gui,解压后将要反编译的APK后缀改为.rar或.zip,解压得到classes.dex文件(由java文件编译而来,通过dx工具打包),将得到的classes.dex放入之前解压的dex2jar-0.0.9.15文件文件夹中,导航到命令行dex2jar.bat所在目录,输入dex2jar.batclasses.dex,效果如下:在改目录下会生成一个class_dex2jar.jar文件,然后在工具中打开jdjd-gui文件夹-gui.exe,然后用这个工具打开之前生成的classes_dex2jar.jar文件and可以看源码,效果如下:混淆后的效果图(类文件名和里面的方法名都会是a,b,c。...样式命名)。3、apk的图形化反编译上面的步骤1和2描述了apk的命令行反编译。现在提供了一个图形化的反编译工具:Androidfby首先下载上面的反编译工具包,打开Androidfby目录,双击Android反编译工具。exe,你可以浏览并打开要反编译的apk。通过反编译,可以知道这个应用使用了哪些第三方库文件,它的代码是怎么写的等等。当然,有些APK是经过代码混淆的,以免被他人反编译。因为很多不法分子盗版APP都是从反编译开始的。所以,从移动应用安全的角度来说,为了不让别人知道自己APK的布局和逻辑,确实应该采取一些反编译保护措施,尤其是要避免被竞争对手看到。如果开发者不想被他人反编译以提高APK的安全性,可以进行加密保护。作为一个普通的移动开发者,反编译的目的只是了解别人应用的大概思路,对开发工作有利无害。