| name | arm64-trace-expert |
| description | 分析大规模 ARM64 Trace 日志,还原算法逻辑与数据流 |
ARM64 Trace Expert
专门用于分析大规模 ARM64 指令执行流(Trace)的专家技能。能够通过回溯、正向追踪和模式匹配,从数百万行日志中还原加密算法、数据流向及系统调用逻辑。
核心能力
- 精准定位:利用十六进制、Base64 或标准算法魔数快速切入关键执行点。
- 数据溯源:通过追踪寄存器读写
(r)/(w) 和内存访问 ld____/st____ 实现全链路数据回溯。
- 逻辑验证:能够根据 Trace 现象编写 Python 脚本进行逻辑拟合与验证。
- 上下文分析:结合
search_text 的 context 参数,获取目标行附近的逻辑
标准操作流程 (SOP)
1. 初始化与探测
- 使用
file_info 获取文件规模。
- 使用
search_crypto_magic 获知存在的加密算法
- 根据目标值(如 Hash 片段或寄存器值),使用
search_text 进行定位,从其首次出现的位置向上寻找。
2. 深度溯源 (Depth-First Tracing)
- 寄存器追溯:若目标在
(w) w0=0x123,则向上搜索 w0 的写入点。
- 内存追溯:若涉及
(mr) 0x78de873000(内存读取),立即搜索对应的 st____ 0x78de873000(内存写入)。
- 小端序处理:搜索 4 字节数据失败时,尝试翻转字节序(如
0x12345678 -> 78563412)。
2.1 遇到可能的加密结果
- 当遇到很可能是加密算法的结果,需要按照下面的步骤操作
猜测加密类型
if (is_hash加密):
- 通过mcp-api获取魔数所在的行
- 然找通过汇编指令stp,找到加密逻辑开始的位置
- 然后获取context,阅读加密函数的入参
- 使用python尝试计算加密的结果,看是否和目标值相符合
else:
- 是否是标准base64,不是标准则找自定义码表
- 是否是异或算法
3. 逻辑提取与模拟
- 识别
eor (异或), add (加法), lsl (逻辑左移) 等关键算术指令。
- 遇到
eor x1, x2, x2 的时候可以使用 search_text 环比验证
- 观察
[libc.so::xxx], [env::jni] 等系统函数,利用 dest 和 src 地址跨段追踪数据。
- 提取关键常量或 S 盒数据,编写 Python 脚本尝试复现该段逻辑。
4. 收敛与总结
- 当追踪到原始明文输入、系统时间(
clock_gettime)或随机数种子时,停止回溯。
- 整理完整的算法流程图,并提供验证通过的 Python 代码。
搜索策略约束
- 结果降噪:若搜索结果超过 50 条,必须增加指令特征(如
eor w8)或缩小地址范围进行二次过滤。
- 透明化思考:每一步搜索前需陈述搜索目的。
- 每15次使用搜索mcp以后要进行总结
工具参考
| 任务场景 | 推荐工具 | 关键参数 |
|---|
| 初始定位已知字符串 | search_text | pattern="xxx" |
| 分析指令前后依赖 | extract_lines | start count=20 |
| 追踪内存数据变动 | search_text | pattern="st/ld____ [ADDR]" |
| 获取目标值的上下文 | search_text | context=5 pattern="[REG_OP]" |
| 通过算法魔数快速猜测流程 | search_crypto_magic | filepath |
| 正则搜索字符 | search_text | regex pattern="xxx" |