吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 43091|回复: 156
收起左侧

[Android 脱壳] FRIDA-DEXDump: 一吻便杀一个人,三秒便脱一个壳

    [复制链接]
菜鸡葫芦娃 发表于 2020-2-26 22:25
本帖最后由 菜鸡葫芦娃 于 2020-2-27 11:25 编辑

需求

APP 加固发展到现在已经好几代了,从整体加固到代码抽取到虚拟机保护,加固和脱壳的方案也逐渐趋于稳定。随着保护越来越强,脱壳机们也变得越来越费劲,繁琐。

不过对于我来说,很多时候其实并不需要那些被强保护起来的代码,我只是想单纯的看看这个地方的业务逻辑。所以,我追求的是更加快速、简便的脱壳方法。

实现

得益于FRIDA, 在 PC 上面进行内存搜索、转储都变得十分方便,再也不需要考虑什么Xposed、什么Android开发、什么代码注入,只需要关注如何去搜索想要的东西,于是依赖一个几十行代码的小脚本,就可以将大部分内存中的 dex 脱下来。在过去的一年,我几乎所有脱壳的工作都是由此脚本来完成,目前已经随手开源:FRIDA-DEXDump, 欢迎star。

对于完整的 dex,采用暴力搜索 dex035 即可找到。而对于抹头的 dex,通过匹配一些特征来找到。

补充

有人问我无头dex的匹配原理是什么,这里补充一下: 因为许多加固抹头的时候只会抹掉dex035这个magic bytes, 但是其实 DexHeader 里很多其他的字段也是可以当作特征来匹配: 比如 header 的长度、string\type\field\proto 表的索引,索引指向的位置顺序等等。

虽然单一一个字段拿出来无法作为准确的特征,但如果有多条规则进行匹配,那么就完成了一个相对精确的模糊搜索,这样就能搜到 dex035 的dex了。代码里我仅仅只加了一条string_id_off的规则,所以加了个 improveTODO, 不过我觉得基本上够用,有兴趣的补全可以过来提 pr 鸭。

目前基本上我遇到的大部分 tx、bb、ijm、360、baidu 很多都是可以 dump 的,毕竟现代壳的核心功能并不是为了保护整体 DEX

使用

(不会安装使用 FRIDA 的,请先自行百度学会..)

  1. 默念一声"我想脱个壳"。
  2. 启动 APP。
  3. 启动 frida-server。
  4. python main.py。
  5. 默数三秒,脱好了。

或者可以将脚本封装成命令,就像这样:

screenshot.png

******

迫于不能带公众号,放个Github链接:https://github.com/hluwa/FRIDA-DEXDump

免费评分

参与人数 69威望 +3 吾爱币 +75 热心值 +65 收起 理由
sadboy + 1 + 1 用心讨论,共获提升!
转身鬼魅 + 1 + 1 插眼
skymilong + 1 + 1 很方便
新手来脱机 + 1 热心回复!
oauth + 1 + 1 谢谢@Thanks!
仁者无敌65535 + 1 + 1 我很赞同!
小十二 + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
ahxuansheng00 + 1 + 1 谢谢@Thanks!
aarongod + 1 + 1 我很赞同!
穿透骨頭撫摸妳 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
yeahn + 1 用心讨论,共获提升!
剧终1204 + 1 用心讨论,共获提升!
SkipQWE + 1 + 1 谢谢@Thanks!
星辉依旧 + 1 谢谢@Thanks!
华月方昊 + 1 + 1 谢谢@Thanks!
idomine + 1 + 1 谢谢@Thanks!
kjfddfjk + 1 + 1 谢谢@Thanks!
太空独角兽 + 1 + 1 用心讨论,共获提升!
嘛哩嘛哩轰 + 1 + 1 谢谢@Thanks!
caleb110 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Demon474 + 1 + 1 谢谢@Thanks!
df_2015 + 1 + 1 用心讨论,共获提升!
#薛定谔的猫# + 1 热心回复!
jackie1 + 1 谢谢@Thanks!
ADA_k + 1 天秀
GodIand + 1 + 1 我很赞同!
ttao88 + 1 谢谢@Thanks!
Likey + 2 + 1 谢谢@Thanks!
Dragoon + 1 + 1 我很赞同!
小哥9527 + 1 我很赞同!
zero3545 + 1 + 1 谢谢@Thanks!
gaochenfei110 + 1 我很赞同!
琼琼520 + 1 来个视频教程呗!太抽象了!
壹2叁 + 1 + 1 谢谢@Thanks!
zycode + 1 + 1 谢谢@Thanks!
阿杰 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
daxia2002 + 1 + 1 学习了。。。
sau + 1 + 1 鼓励转贴优秀软件安全工具和文档!
CrazyNut + 2 + 1 膜拜大佬
2毛钱 + 1 来个国产的下载链接吧,英文看不懂
zyx1211 + 1 + 1 2020年第一次评分 真的tql
xubo5200 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
sun孙靖飞 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lu_ + 2 + 1 我很赞同!
Hey、 + 1 + 1 虽然看不懂,但觉得不错
YeMusn + 1 谢谢@Thanks!
夏雨微凉 + 2 + 1 谢谢@Thanks!
yangjianqiao666 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
绿色漂流瓶 + 1 + 1 我很赞同!
生有涯知无涯 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
asq56747277 + 1 + 1 谢谢@Thanks!
tchivs + 3 + 1 谢谢@Thanks!
那年听风 + 1 + 1 找到了能让我评分的帖子
netCheney + 1 + 1 谢谢@Thanks!
vLove0 + 1 + 1 谢谢@Thanks!
qtfreet00 + 3 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
XhyEax + 1 + 1 我很赞同!
Dyingchen + 1 + 1 谢谢@Thanks!
rjlly + 1 + 1 谢谢@Thanks!
zerzul + 1 + 1 谢谢@Thanks!
方方土 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
forgottor + 1 + 1 oncreate被抽取的能脱出来就更好了😄
QING233 + 1 + 1 真的强到没朋友
凯咪 + 2 + 1 向大佬致敬
白昼明媚12138 + 1 图。。。解决一下吧
雨落惊鸿, + 1 + 1 楼主可见 怎么下载 能不能放个链接
回忆扣心弦 + 1 + 1 用心讨论,共获提升!
律政先锋Snake + 1 谢谢@Thanks!
xiaobai + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

初见悲风 发表于 2022-11-28 11:18
楼主 能不能帮忙看一下这个出错
[Asm] 纯文本查看 复制代码
Spawning `com.xxx.xxx`...
INFO:Agent:DexDumpAgent<Connection(pid=Session(pid=7496), connected:True), attached=True>: Attach.
INFO:frida-dexdump:Waiting 10s...
INFO:frida-dexdump:[+] Searching...
Exception in thread Thread-1 (_run):
Traceback (most recent call last):
  File "D:\Python311\Install\Lib\threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "D:\Python311\Install\Lib\threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "D:\Python311\Install\Lib\site-packages\frida_tools\reactor.py", line 70, in _run
    work()
  File "D:\Python311\Install\Lib\site-packages\frida_tools\application.py", line 587, in _try_start
    self._start()
  File "D:\Python311\Install\Lib\site-packages\frida_dexdump\__main__.py", line 68, in _start
    self.dump()
  File "D:\Python311\Install\Lib\site-packages\frida_dexdump\__main__.py", line 74, in dump
    ranges = self.agent.search_dex(enable_deep_search=self.enable_deep)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Python311\Install\Lib\site-packages\frida_dexdump\agent\__init__.py", line 21, in search_dex
    return self._rpc.searchdex(enable_deep_search)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Python311\Install\Lib\site-packages\frida\core.py", line 169, in method
    return script._rpc_request("call", js_name, args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Python311\Install\Lib\site-packages\frida\core.py", line 76, in wrapper
    return f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^
  File "D:\Python311\Install\Lib\site-packages\frida\core.py", line 368, in _rpc_request
    raise result.error
frida.InvalidOperationError: script has been destroyed
GannicusLiu 发表于 2020-5-18 18:24
爱加密的脱不了啊,一启动就闪退了。
Traceback (most recent call last):
  File "main.py", line 82, in <module>
    script = session.create_script(open(path + "/agent.js").read())
  File "/usr/local/lib/python3.7/site-packages/frida/core.py", line 26, in wrapper
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/frida/core.py", line 204, in create_script
    return Script(self._impl.create_script(*args, **kwargs))
frida.TransportError: the connection is closed
835560163 发表于 2020-2-26 22:33
_小白 发表于 2020-2-26 22:36
楼主,图片挂了
bp946 发表于 2020-2-26 23:05
有点6,下载试试,谢谢分享
芽衣 发表于 2020-2-26 23:06
有空试一下这个玩意儿
zHiHz 发表于 2020-2-26 23:13
感谢分享
zhoupan88 发表于 2020-2-26 23:14
真的有意思
律政先锋Snake 发表于 2020-2-26 23:21
真的什么壳都能脱吗,这么简单
雨落惊鸿, 发表于 2020-2-26 23:33
楼主  怎么下载  求教!
bp946 发表于 2020-2-26 23:55
确实不错,解析出dex之后,怎么重新签名打包回apk?只用过AK直接编译
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表