折腾:
【已解决】用apktool,dex2jar,jd-gui去反编译安卓apk查看app源码
期间,已经:
【已解决】mac中安装最新版本的安卓反编译工具:Apktool
了,接着去尝试用apktool去从安卓的apk文件,反编译看看效果。
参考:
去:apktool d test.apk
试试:➜ apk ll
total 51280
-rw-r--r--@ 1 crifan staff 25M 3 14 09:00 xiaohuashengv3.6.9_
downcc.com.apk
➜ apk apktool d xiaohuashengv3.6.9_
downcc.com.apk
I: Using Apktool 2.4.0 on xiaohuashengv3.6.9_
downcc.com.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (/Users/crifan/Library/apktool/framework), using /var/folders/46/2hjxz38n22n3ypp_5f6_p__00000gn/T/ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: /var/folders/46/2hjxz38n22n3ypp_5f6_p__00000gn/T/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
➜ apk ll
total 51280
drwxr-xr-x 12 crifan staff 384B 3 14 13:39 xiaohuashengv3.6.9_
downcc.com
-rw-r--r--@ 1 crifan staff 25M 3 14 09:00 xiaohuashengv3.6.9_
downcc.com.apk
➜ apk cd xiaohuashengv3.6.9_
downcc.com
➜ xiaohuashengv3.6.9_
downcc.com
ll
total 160
-rw-r--r-- 1 crifan staff 63K 3 14 13:39 AndroidManifest.xml
-rw-r--r-- 1 crifan staff 14K 3 14 13:39 apktool.yml
drwxr-xr-x 10 crifan staff 320B 3 14 13:39 assets
drwxr-xr-x 8 crifan staff 256B 3 14 13:39 kotlin
drwxr-xr-x 9 crifan staff 288B 3 14 13:39 lib
drwxr-xr-x 3 crifan staff 96B 3 14 13:39 libs
drwxr-xr-x 4 crifan staff 128B 3 14 13:39 original
drwxr-xr-x 143 crifan staff 4.5K 3 14 13:39 res
drwxr-xr-x 3 crifan staff 96B 3 14 13:39 smali
drwxr-xr-x 10 crifan staff 320B 3 14 13:39 unknown
得到项目目录文件:
其中有最基本的:
AndroidMenifest.xml
然后再去参考教程继续。
参考:
得知:apktool b test
是,打包生成apk
搜:
classes.dex
找到:
original/META-INF/MANIFEST.MFName: classes.dex
SHA1-Digest: MC7uWxDeVZJQL/pCsW4tdGB/V6k=
去看看是否有这个文件
结果没找到。
“ * smali文件夹:里面存放着源代码反编译出的smali文件”
“Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器。
其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等)”
【总结】
apktool反编译apk文件:语法:apktool d your_apk_file.apk输出:
相关app的资源,classes.dex等文件。注意:
(1)如果是被(比如腾讯乐固legu)加固后的话,classes.dex不是正常的
-》正常的dex文件大小:几百KB,1~10MB左右的
(用工具dex2jar转换后):可以得到某个正常的jar包然后dex转jar可以正常转换出java源码
此处不正常的classes.dex文件大小:13MB,比较大
(用工具dex2jar转换后):得到的jar包不正常jar包只有200多KB(用工具,比如Procyon,反编译后)只有加密的库的代码比如腾讯乐固的
没有我们希望app的java源代码
截图举例
(2)apktool也可以把资源打包成apk
比如:apktool b yourAppProjectFolder
可以打包生成apk。