折腾:
【未解决】dex2jar反编译dex后jar文件包含java代码:throw new VerifyError bad dex opcode
期间,参考:
中提到了另外一个可以从app中hook出dex的工具:
WrBug的DumpDex
去试试:
去下载:
且看到:
支持很多功能:
“1. 应用基本信息查看包括:
* versionCode/VersionName
* TopActivity
* 加固类型
* Uid
* 安装时间/更新时间
* Data目录
* 应用脱壳(xposed)”
去看看,能否直接显示 加固类型
去安装到夜神安卓模拟器中,加上XPosed去试试效果
且为了避免FDex2的影响,暂时禁用FDex2
结果重启模拟器后,尝试运行 易开发,始终是:
很抱歉,易开发已停止运行
-》看来前面说的:
支持设备
Android 5.0+
是真的。
算了,那去卸载了,换用:
安装到夜神模拟器中
另外,刚安装了已开发,重启后,都导致夜神模拟器画面模糊了
而且刚卸载后,导致画面花掉了:
注意:
dumpDex是没有界面的
安装后,桌面上是没有图标的:
但是XPosed-》模块中可以看到:
“现在市场中加固apk的方式一般有两种:
第一种是对源apk整体做一个加固,放到指定位置,运行的时候再解密动态加载。
第二种是对so进行加固,在so加载内存的时候进行解密释放。
我们今天主要针对第一种加固方式进行dex文件的获取。
总结下来发现,对360加固(免费)、爱加密(收费)、娜迦加固(收费)等加固包都成功拿到dex文件。没加固的不管你怎么混淆都很容易被人分析得干干净净,免费版的加固可以防止大多数只会反编译的小白,对于普通攻击者还是很有效果的。目前用此方法来看,无论免费版还是商业版,都能被破解,所以,产品设计的时候从安全角度出发,增强业务层面的安全风控,远比把重心放在加固上重要。”
然后继续去尝试导出dex
另外,注意到:
“无法脱壳,请在 PackerInfo.java文件中,将应用的包名加到packages字段里,编译安装即可,欢迎提交Pull Requests,让软件更加全面”
如果不行,那抽空去试试这个办法
“支持设备
大多数xposed环境的手机,暂不支持模拟器”
“使用方式
下载源码编译或者下载apk包并安装,应用xposed模块后重启,运行加固的应用后,插件会自动将dex文件dump到 /data/data/包名/dump 目录”
此处先去试试 (之前FDex2无法hook出dex的)最新的v3.6.9的版本,看看此处DumpDex是否可以
好像结果和FDex2一样?没有我们要的数据
算了,先去卸载FDex2,看看效果如何
结果直接导致app崩溃无法运行
再去试了试,hook导出的结果:
/data/data/包名/
下面:
- 没有所谓的dump文件夹
- 更没有dump中的dex文件了
- 有相关目录和文件夹
- 和之前FDex2的hook出的结果一样
- 根目录有个292B的mix.dex
- 是个不正常的dex,没法用
所以结论是:
貌似DumpDex和之前FDex2,功能上没啥区别。
而且还没FDex2做的更细致:
FDex2可以指定hook具体哪个app。
所以放弃使用DumpDex。