type
status
date
slug
summary
tags
category
icon
password
eBPFDexDumper
LLeavesGUpdated Aug 27, 2025
之前写的基于eBPF的Android应用程序脱壳工具有一些bug和问题,包括但不限于
  • 未开启CONFIG_DEBUG_INFO_BTF的设备无法使用
  • 执行路径覆盖不全导致部分dex无法成功dump
  • 高版本Android去除了libart.so的符号,工具兼容做的不好
  • 工具使用起来不人性化,参数选定困难
  • 仅能脱整体Dex,无法dump抽取方法的代码
 
在更新版本中解决了上述问题。
  • 参考Stackplz将btf文件嵌入到二进制可执行程序,动态加载btf文件,避免了没开启CONFIG_DEBUG_INFO_BTF的内核无法使用的问题
  • 重新理顺了ART虚拟机的执行路径,覆盖全执行路径,以避免漏掉方法的执行
  • 自动寻找函数偏移,但是关于Execute函数的偏移还是需要通过IDA手动找
  • 重构了项目代码,包括参数解析部分
  • 引入了ArtMethod的code item的dump以及Dex修复功能。这样就能把应用场景拓展到抽取壳的dump。
  • 引入了方法的追踪,在完全覆盖执行路径后就能准确的捕获每一个方法的执行,只需要在bpf侧获取方法的idx,然后即可通过解析dex文件获取方法签名,实现方法的追踪
 
 
MRCTF2022 Stuuuuub WPAndroid ART虚拟机执行流程示意图
Loading...