SuperAPI AI 工具集

re-tracing

编程与开发

查看项目

更新于 10-16 05:07

技能介绍

用途:观察程序运行行为(文件/网络/进程操作),记录系统调用与库调用序列作为证据,定位动态解析的 API(GetProcAddress/dlopen 之后)。不适用于只需内存内容或只需静态逻辑的场景;Windows 目标改用 APIMonitor/ProcMon,本技能以 Linux/macOS 为主。跟踪即动态执行,默认在沙箱内进行并网络隔离。

工具准备:strace 在 Debian/Ubuntu 用 apt install strace,Fedora/RHEL 用 dnf install strace,Arch 用 pacman -S strace,验证 strace -V;ltrace 同理(apt/dnf/pacman 安装,ltrace -V 验证);dtruss 为 macOS 自带(随 Xcode CLT),需 root 且部分 SIP 场景受限;Windows 用 APIMonitor(rohitab.com 下载解压即用)或 ProcMon(choco install sysinternals)。

主要能力与用法:strace -f -o trace.log ./target args 跟踪全进程树,-f 必须加否则漏掉子进程;-tt 加微秒时间戳,-T 加每调用耗时,-s 200 放大字符串显示(默认 32 字节)。已运行目标可 sudo strace -f -p <pid> -o attach.log 附加(看不到 attach 之前的调用)。过滤用 -e trace=network,file、-e trace=write,read、-e trace=execve,fork,clone,排除噪声用 -e trace=!futex;strace -f -c ./target 输出系统调用计数与耗时汇总。ltrace 用 -f、-e malloc+free、-l /path/libfoo.so(跟踪 dlopen 动态加载库)、-S(库调用与系统调用同跟踪)、-c 汇总。输出可保存为证据并记录哈希。指令级追踪可用 QEMU 插件或 Intel PT(perf record -e intel_pt)。

限制与常见坑:不加 -f 会漏子进程;不过滤时日志可达 GB 级;反调试样本可检测 ptrace 状态或 LD_PRELOAD 痕迹;ltrace 默认只跟踪 PLT 层调用,dlopen 后加载的库需加 -l。具体命令族速查与版本差异资料中指向 [[commands]] 与 [[gotchas]]。