手机系统内的APK反编译,需要
1、提取你系统的system\framework下面的comhtcresourcesapk和framework-resapk(原则上每个不同的系统都提取一次;注意修改过的这两个文件反编译或编译可能会失败);
2、将上面两项放入C盘根目录下,这个随便你放,只要在命令输入时路径相同就可以;
3、打开CMD或命令提示符,即DOS窗口;
4、在DOS窗口输入: apktool if C:\comhtcresourcesapk 输入完成后回车键回车 apktool if C:\framework-resapk 输入完成后回车键回车 5、这样IF命令和安装已经结束,这是系统APK编译必须的。
之后,其他的就与普通APK反编译一样了
反编译步骤方法:
一、apk反编译得到程序的源代码、、XML配置、语言资源等文件
下载上述工具中的apktool,解压得到3个文件:aaptexe,apktoolbat,apktooljar ,将需要反编译的APK文件放到该目录下,
打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktoolbat d -f testapk test
(命令中testapk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktoolbat d -f [apk文件 ] [输出文件夹])
说明获取成功,之后发现在文件夹下多了个test文件,点击便可以查看该应用的所有资源文件了。
如果想将反编译完的文件重新打包成apk,那可以:输入apktoolbat b test(编译出来文件夹)便可
之后在之前的test文件下便可以发现多了2个文件夹:
build
dist(里面存放着打包出来的APK文件)
二、Apk反编译得到Java源代码
下载上述工具中的dex2jar和jd-gui ,解压
将要反编译的APK后缀名改为rar或则 zip,并解压,得到其中的额classesdex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classesdex放到之前解压出来的工具dex2jar-00915 文件夹内,
在命令行下定位到dex2jarbat所在目录,输入dex2jarbat classesdex
在改目录下会生成一个classes_dex2jarjar的文件,然后打开工具jd-gui文件夹里的jd-guiexe,之后用该工具打开之前生成的classes_dex2jarjar文件,便可以看到源码了
被混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c之类的样式命名):
三、 图形化反编译apk
上述步骤一、二讲述了命令行反编译apk,现在提供一种图形化反编译工具:Androidfby
首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具exe,就可以浏览打开要反编译的apk
通过反编译,可以获知该应用用到了什么第3方的库文件,它的代码是如何编写的等等。
然而,如果该APK进行了混淆处理,那么看到的类文件名称以及里面的方法名称都会以a,b,c之类的样式命名,所以可以想找到所想得知的界面代码可能会十分费劲,找到了代码可能看起来也会很费劲,可是一个大体的思路会获得,有了这个思路,就可以去尝试了。
反编译apk工具使用最广泛的就是apktool,这里先说一下整个流程用到的工具有:
1apktool,下载后拿到apktoolbat和apktooljar,然后把这两个工具放到C:\Windows底下。这个工具的作用主要是得到apk的资源文件和配置文件
2dex2jar 下载这个工具解压后放到任意盘都可以,后面主要用这个根据apk的classesdev文件生成供jd-gui工具解析的jar。
3jd-gui上一步提到其作用,和2一样,也是下载后放到任意盘即可,到时候只要运行jd-guiexe打开上一步生成的jar即可查看源码,下面对这个工具不再赘述
下面详细说一下前面两个工具类的详细用法:
先说apktool的用法:
1下载后拿到apktoolbat和apktooljar,然后把这两个工具放到C:\Windows底下
2cmd打开后默认是你的计算机,默认的不用改,直接输入apktool,如果出现如下图的效果,即表示准备已就绪
接下来,apktool d f:\app-debugapk f:\app像这样输入,这里的f:\app-debugapk是你的将要被反编译的apk的绝对路径,后面的f:\app是apk反编译后资源文件将要放入的文件夹,不需要事先新建好,在这里写好就行了,输入完回车,如果成功的话,即可在文件夹中看到资源文件,这里apktool的流程算完了。
接下来说一下第二个工具,dex2jar的使用流程:
1把你将要反编译的apk的扩展名改成压缩包的扩展名(rar\zip等),然后对其解压,找到classesdev文件,将之复制后贴到dex2jar底下,效果如如下:
接下来又要写命令了,同样cmd,然后转换到你的dex2jar目录,然后输入dex2jarbat classesdev,然后回车即可在dex2jar目录中看到一个classes_dex2jarjar。好了,完了,贴图
得到classes_dex2jarjar了,前面说了jd-gui的作用了,直接打开这个就行了,得到的就是源代码了
上图
下载apktool所需文件:
a、 apktool152tarbz2
b、apktool-install-windows-r05-ibottarbz2 (windows系统)
解压刚刚下载的文件,并将解压的文件放入C:\Windows目录下
启动控制台,输入apktool,回车可查看到apktool工具常用指令,如图
新建一个文件夹,用于存放apk及待解压的文件,这里笔者将文件夹建在D:\apk目录,同时放入用于测试的android app包(testapk)
控制台输入:apktool d D:\apk\testapk D:\apk\test 进行反编译操作
中句话中“D:\apk\testapk”指apk存放位置,“D:\apk\test”指反编译后文件存放的位置
反编译成功之后,进入D:\apk\test文件目录可以查看到反编译后的文件
步骤阅读
欢迎分享,转载请注明来源:品搜搜测评网