type
status
date
slug
summary
tags
category
icon
password
eBPFDexDumper
LLeavesG • Updated 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文件获取方法签名,实现方法的追踪
- 作者:LLeaves
- 链接:https://lleavesg.top//article/eBPFDexDumper-dump
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章