hluwa / frida-dexdump

A frida tool to dump dex in memory to support security engineers analyzing malware.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

脱出的文件不完整

yanzuoyx opened this issue · comments

首先感谢大神这个骨骼惊奇且高效的解决方案。
怀着激动地心情我在真机上进行了测试,用的是没加壳的APK(我觉得没加壳的apk在内存里也有dex结构)。
脱出的dex文件和原dex文件大小一致,但是MD5不用。
进一步发现,脱出来的dex文件转成jar的时候会产生很多错误。
样本:
WiFi ADB Debug Over Air_v3.0.2.apk.zip

测试环境
Nexus 6 (android 5.1)
Nexus 6 (android 7.0)
Google Pixel (android 7.0)

结果均一样。

请问这个方案是只针对加壳的dex才有效吗?还是我的测试环境有问题?
如果方便的话能提供样本apk吗,加壳之前和之后的

谢谢

DEX文件在被加载之后,有一些指令会被进行优化,MD5不一样是正常现象。

不仅仅是MD5不一样,脱出来的dex是损坏的。
我又做了几次试验发现:
apk不加壳 -- >> 脱出来的dex是损坏的
apk加壳(腾讯壳)-->> 脱出来的dex是完整的

也就是说只能提取加壳的apk,不知道能不能解释的通

你可以深入研究这个问题的原因,我猜测是跟OAT有关,并且dump的dex内存并不一定就是第一次加载dex时的内存。

不仅仅是MD5不一样,脱出来的dex是损坏的。
我又做了几次试验发现:
apk不加壳 -- >> 脱出来的dex是损坏的
apk加壳(腾讯壳)-->> 脱出来的dex是完整的

也就是说只能提取加壳的apk,不知道能不能解释的通

我这边得到的结论和这位兄弟的一致,加壳了的app,脱出来的是完整的。但未加壳的反而不完整,用jadx看的时候显示各类异常。

不仅仅是MD5不一样,脱出来的dex是损坏的。
我又做了几次试验发现:
apk不加壳 -- >> 脱出来的dex是损坏的
apk加壳(腾讯壳)-->> 脱出来的dex是完整的
也就是说只能提取加壳的apk,不知道能不能解释的通

我这边得到的结论和这位兄弟的一致,加壳了的app,脱出来的是完整的。但未加壳的反而不完整,用jadx看的时候显示各类异常。

不过,未加壳的,直接拿到apk好了查看好了...哈哈哈

不仅仅是MD5不一样,脱出来的dex是损坏的。
我又做了几次试验发现:
apk不加壳 -- >> 脱出来的dex是损坏的
apk加壳(腾讯壳)-->> 脱出来的dex是完整的
也就是说只能提取加壳的apk,不知道能不能解释的通

我这边得到的结论和这位兄弟的一致,加壳了的app,脱出来的是完整的。但未加壳的反而不完整,用jadx看的时候显示各类异常。

为什么我是加壳的拖出来不完整,脱出的文件很多用jadx打不开 并且脱的过程中 很多dex都跳过了 https://attach.52pojie.cn/forum/202011/27/171805ovhe13ab9deqqq33.png

app 不加壳:dump 到的是经过 art 编译过后的 dex, 原始 dex 在脚本的过滤范围内。
app 加壳不完整: 使用 -d 选项。

app 不加壳:dump 到的是经过 art 编译过后的 dex, 原始 dex 在脚本的过滤范围内。
app 加壳不完整: 使用 -d 选项。

不好意思 我有点小白 这个-d选项如何操作啊 感激不尽