Back

android - apk - decompile 反编译, fdex2不行,无法脱壳360, 剩余几个未尝试: dumpdex, drizzleDumper, DexExtractor, InDroid

发布时间: 2021-03-15 02:51:00

这是一本在线书,特别简单易懂:https://book.crifan.com/books/android_app_security_crack/website/android_background/crack_apk_process.html

参考:https://blog.csdn.net/vipzjyno1/article/details/21039349

下载apk tool: 

github: https://ibotpeaches.github.io/Apktool/

安装方式:https://ibotpeaches.github.io/Apktool/install/

对于windows: 

1. 下载 apktool.bat  https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat

2. 下载 apktool - 2

https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.5.0.jar

并且重新命名成为 apktool.jar 

3. 上述两个文件放在一个目录下,并且放在PATH下。

下载 JD-GUI  java decompiler 

该软件用来查看java代码。(编译之后的。目的是为了把.class -> java文件)

来这里: http://java-decompiler.github.io/

https://github.com/java-decompiler/jd-gui/releases/download/v1.6.6/jd-gui-windows-1.6.6.zip

下载Dex2jar   

https://github.com/pxb1988/dex2jar/releases

开始反编译1

1. 把apk 文件使用 apktool进行转换。 这一步可以看到关键的配置信息,各种资源文件(图片,音乐等)

apktool.bat d -f <your_file.apk>    -f 表示删除之前编译的文件夹

就可以了。会发现 文件会自动放到一个文件夹。 

2021/03/15  11:18    <DIR>          .
2021/03/15  11:18    <DIR>          ..
2021/03/15  11:18            22,090 AndroidManifest.xml
2021/03/15  11:18             2,359 apktool.yml
2021/03/15  11:18    <DIR>          assets
2021/03/15  11:18    <DIR>          kotlin
2021/03/15  11:18    <DIR>          lib
2021/03/15  11:18    <DIR>          original
2021/03/15  11:18    <DIR>          res
2021/03/15  11:18    <DIR>          smali
2021/03/15  11:18    <DIR>          unknown
               2 File(s)         24,449 bytes
               9 Dir(s)  73,801,736,192 bytes free

该文件夹是  cotlin和 smali的代码,可以看到有AndroidManifest.xml , 里面有很少的内容,一些app_key, app_private_key也可以看到。

后面做出某些修改之后,可以使用 apktool.bat b YourApkFolder 来重新编译成apk. 编译成的apk 位于 YourApkFolder/dist目录下。

反编译2

1. 把apk 文件重命名成为 .zip

2. 解压缩, 找到里面的 class.dex

3. copy class.dex 到 dex-tools文件夹。 (应该不用这么傻,可以指定路径)

4. 进入到dex-tools, 然后 d2j-dex2jar.bat classes.dex 

c:\files\app_decompile_apk\dex-tools-2.1>d2j-dex2jar.bat classes.dex

dex2jar classes.dex -> .\classes-dex2jar.jar

就可以得到这个jar文件, 

用 jd-gui打开,就可以看到内容。

尴尬时刻

classes.dex 是7MB,  classes-dex2jar.jar  只有几k , 打开之后,映入眼帘的是qihoo 文件夹。

看来是使用了360加固。

这个博主也提到了: 使用  apk -> zip 的方法,无法脱壳。 

所以要安装xposed ,参考这个文章: 

下载:fdex2 闪退修复版

http://www.xlhs.com/app/26218.html

然后运行,找到你要反编译的工具,点击之,然后就会把源代码生成到一个文件夹。

(它的原理是 - 我粘贴过来的 - :通过Hook ClassLoader的loadClass方法,反射调用getDex方法取得Dex(com.android.dex.Dex类对象),再将里面的dex写出,代码十分简单,就hook了一个方法而已)

使用adb shell, 找到对应的文件夹, 下载到PC

不行. 无法为360脱壳.  执行后找不到目标文件.

根据 这个文章, 直接尝试frida . 其他方法不行. (文章地址:  https://zhangyongfa888.site/2019/11/29/%E4%BD%BF%E7%94%A8frida%E8%84%B1%E5%A3%B3/#FDex2 )

接下来尝试 frida . 

参考:https://crifan.github.io/android_app_security_crack/website/android_crack_tool/app_to_dex/

Back