Github: 32aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6D9K9h3c8G2L8X3N6&6L8$3!0G2i4K6u0r3c8%4g2E0g2s2u0S2j5$3f1`.基于 Frida Gum (Stalker) 引擎的 ARM64 真机动态指令追踪工具,支持 Android 和 iOS 平台。GumTrace 以共享库的形式注入目标进程,对指定模块进行指令级别的动态追踪,并将完整的执行轨迹写入日志文件。项目附带一个独立的离线污点分析工具(src/taint/),可对 GumTrace 生成的日志进行正向/反向数据流追踪:每行指令记录的格式如下:示例:GumTrace 编译为共享库,导出以下 C 接口:初始化追踪器。启动追踪。会创建一个后台线程定期刷写日志文件。停止追踪,刷写并关闭日志文件。通过 Frida 脚本加载 GumTrace 共享库并调用其导出接口,即可对目标进程进行指令追踪。完整示例见 example.js。注意: 如果 SO 加载失败(dlopen 返回 NULL),通常是 SELinux 阻止了从 /data/local/tmp/ 加载共享库。需要先关闭 SELinux:项目提供了 010 Editor 脚本 TaintTracker.1sc,可以在 010 Editor 中直接对 trace 日志进行交互式污点分析。安装:使用:GumTrace 内置了对常见库函数参数的自动解析:
参数
类型
说明
module_names
const char*
要追踪的模块名,多个用逗号分隔(如 "libtarget.so,libutils.so")
trace_file_path
char*
日志输出文件路径
thread_id
int
要追踪的线程 ID(0 表示追踪当前线程)
options
GUM_OPTIONS
选项位掩码,1 启用 DEBUG 模式(高频刷写日志)
---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-290400.htm
[原创]Android IOS 双端支持的 Trace 开源咯
282 浏览
13 回复
感谢分享
感谢大佬,trace的格式和unidbgyi一样吗?
老铁666
学习学习
感谢分享
看看看看
看看
有点问题啊,trace后的log用trace ui打开提示:文件格式不正确,未检测到有效的arm64 trace指令行
tql
tql
老铁666
老铁666
感谢分享