找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 188|回复: 0

Youpk: 又一款基于ART的主动调用的脱壳机

[复制链接]

2万

主题

128

回帖

10万

积分

管理员

积分
105860
发表于 2021-12-26 21:05:47 | 显示全部楼层 |阅读模式 IP:山东省青岛市 移动

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 mind 于 2021-12-26 23:05 编辑

Youpk: 又一款基于ART的主动调用的脱壳机原理
Youpk是一款针对Dex整体加固+各式各样的Dex抽取的脱壳机

基本流程如下:
  • 从内存中dump DEX
  • 构造完整调用链, 主动调用所有方法并dump CodeItem
  • 合并 DEX, CodeItem
从内存中dump DEX
DEX文件在art虚拟机中使用DexFile对象表示, 而ClassLinker中引用了这些对象, 因此可以采用从ClassLinker中遍历DexFile对象并dump的方式来获取.

另外, 为了避免dex做任何形式的优化影响dump下来的dex文件, 在dex2oat中设置 CompilerFilter 为仅验证

构造完整调用链, 主动调用所有方法
  • 创建脱壳线程

  • 在脱壳线程中遍历DexFile的所有ClassDef



  • 解析并初始化Class

  • 主动调用Class的所有Method, 并修改ArtMethod::Invoke使其强制走switch型解释器


  • 在解释器中插桩, 在每条指令执行前设置回调



  • 在回调中做针对性的CodeItem的dump, 这里仅仅是简单的示例了直接dump, 实际上, 针对某些厂商的抽取, 可以真正的执行几条指令等待CodeItem解密后再dump


合并 DEX, CodeItem
将dump下来的CodeItem填充到DEX的相应位置中即可. 主要是基于google dx工具修改.
参考链接
刷机使用方法
  • 该工具仅仅用来学习交流, 请勿用于非法用途, 否则后果自付!
  • 配置待脱壳的app包名, 准确来讲是进程名称

  • 启动apk等待脱壳

      每隔10秒将自动重新脱壳(已完全dump的dex将被忽略), 当日志打印unpack end时脱壳完成

   4. pull出dump文件, dump文件路径为 /data/data/包名/unpacker
5. 调用修复工具 dexfixer.jar, 两个参数, 第一个为dump文件目录(必须为有效路径), 第二个为重组后的DEX目录(不存在将会创建)

适用场景
常见问题
  • dump中途退出或卡死,重新启动进程,再次等待脱壳即可
  • 当前仅支持被壳保护的dex, 不支持App动态加载的dex/jar
开源

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|IOTsec-Zone|在线工具|CTF WiKi|CTF平台汇总|CTF show|ctfhub|棱角安全|rutracker|攻防世界|php手册|peiqi文库|CyberChef|猫捉鱼铃|手机版|小黑屋|cn-sec|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2024-5-18 17:01

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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