Back to MCP directory
publicPublicdnsLocal runtime

tracesearch_mcp

基于large-text-viewer的trace分析工具,支持Trae Skill和MCP服务器两种模式,提供文本搜索、魔数识别、搜索结果优化等功能,用于逆向工程和算法分析。

article

README

🚀 基于large - text - viewer的trace分析工具

本工具允许你按个人喜好更换文本搜索后端,例如rigrep,甚至可直接使用命令行grep。

🚀 快速开始

使用方式

目前支持两种使用方式:

  • Trae Skill模式(推荐):位于 .trae/skills/large - text - searcher/,与Trae深度集成。
  • MCP服务器模式:支持传统的MCP协议,兼容Kiro等IDE。

迁移指南

详细迁移指南请参考 MIGRATION_GUIDE.md

格式要求

search_strategy.mdtrace_format.md 需使用你自己的trace格式。

⚠️ 重要提示

ai的大脑褶皱是平滑的,你只能让它代替你进行机械化的劳动,或者期待它某一下灵光一闪。所以,你需要考虑流水化和标准化的trace搜索方法,因为ai做不了你自己认知以外的事。简单的算法ai表现良好,但复杂一些的算法会大量消耗token,且表现不一定好,这里需要你自己多调试。

✨ 主要特性

新功能

  • 当搜索结果溢出100个时,结果已无意义,直接在mcp拦截,让模型重新思考如何搜索,避免浪费token和查看无意义结果。
  • 将提示词摘要后放到skill里。
  • 添加了通过魔数先验流程的能力。

🔧 技术细节

模型使用偏好

不同的模型在使用api上有不同的偏好,claude更喜欢使用context,而gemini更喜欢使用正则匹配,但都不太喜欢搜指令 add a,c,b 这样的。

行为变异问题

思考轮次多了以后模型行为会产生变异,比如gemini开始使用grep绕开指定的mcp的正则。

行相对关系理解问题

目前模型没有对于行相对关系的理解,比如连续搜索两次,在这两次之间做对比。

格式问题

目前 st____ /ld____ 和指令操作在两行,这样ai查看时会浪费一轮搜索,甚至可能直接迷失。可以尝试把 st__ 和指令弄到同一行解决,但会牺牲一些可读性,string__ 也是同理,funcall 也存在类似问题。

给ai返回提示

在mcp给ai的返回中也可以给出提示,比如进行计数,10次搜索以后提醒ai该总结了。

限制ai自由发挥

看起来确实有必要在python层限制ai的自由发挥,有些参数不应该给它用,否则会导致偏激的思路。

ai智力差异

ai本身智力发挥占很大一部分,能力较弱的ai只会死找,厉害的能从明文开始猜测正反向同时推,也知道利用 memcpy 等信息。

辅助功能添加

  • 添加一些辅助功能,比如魔数搜索,让模型知道某些地方有加密算法,或者先枚举所有出现过的 libc 函数,让ai有整体印象。
  • 提供ida mcp 让模型能靠反编译代码获取局部信息。
  • 添加unidbg mcp 让模型能通过unidbg分析算法模拟。

搜索方案严谨性

要告诉ai哪些搜索方案是不严谨的,例如:

{
    "context": 5,
    "file_path": "/Users/teng/PycharmProjects/pythonProject/shopee_proj/log/record_00.txt",
    "max_results": 10,
    "pattern": "704da53700"
}

这种搜索结果极其容易导致偏见,max_results 可以不给ai操作,ai只能获取结果。这样的话或许可以给 find_prevfind_next ?但这又回到污点问题上了。

📚 详细文档

待办事项

  • context 提供小范围的反向污点,增加 context 质量,但需要考虑如何兼容格式问题。
  • 升级后段,给 search_text 增添行范围筛选。
  • 增加书签功能,让模型能标记某某行到某某行的作用,把一些范围标记为没用,并影响筛选结果。
  • 对显示的行长给出限制,避免过快消耗 context
  • 研究常见的加密算法(无魔数)的识别和处理方法。
  • 针对模型使用api有偏好的问题,尝试执行一次示例给模型理解。

👥 技术交流

技术交流可以加 vx baserker2,添加时请做好备注。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client