我把RKExplorer.apk文件解压后得到如下:
META-INF:存放的是签名信息,用来保证apk包的完整性和系统的安全的
res:存放资源文件(图片,视频,音频)
AndroidManifest.xml:程序全局配置文件
classes.dex:Dalvik字节码
resources.arsc 编译后的二进制资源文件
APK包的完整打包流程:.java文件被javac编程成.class文件,然后通过DX工具被编译成.dex文件,最后使用Android打包工具(aapt)将.dex文件,资源文件以及AndroidManifest.xml组合成APK
把上面的classes.dex拷贝到G盘的ART\dex-tools-2.1-SNAPSHOT目录下,然后执行下面的命令
上面执行成功后会生成classes-dex2jar.jar
注:dex-tools-2.1-SNAPSHOT下载路径为http://github.com/pxb1988/dex2jar/releases/tag/2.1-nightly-28,如果用dex-tools-2.0的版本会报错如下:
所以改用高版本的dex2jar工具来反汇编,我的apk是在android 8.1基础上编程生成的。
下载ld-gui来查看classes-dex2jar.jar
注:ld-gui的下载链接为https://github.com/java-decompiler/jd-gui/releases/,下载jd-gui-windows-1.6.6.zip