首页
社区
课程
招聘
[原创]逆向时长两年半的ai实习生: large-text-viewer-mcp
发表于: 2026-1-18 18:09 2783

[原创]逆向时长两年半的ai实习生: large-text-viewer-mcp

2026-1-18 18:09
2783

让ai分析trace,一般trace文件远大于ai上下文,所以用 large-text-viewer 做核心来让ai使用搜索接口和trace交互。来提供逆向效率(不一定提升得了,和蠢b ai battle将消耗你大量的时间)

trace.txt <- large-text-viewer <- mcp <- llm

表现良好的情况下已经能自主通过trace还原x-gorgon的算法主体

很多因素共同作用:
[1]. 最重要一点是ai模型的性能:上下文长度,幻觉和服从性,下面会给出部分模型的测评
[2]. 其次是 trace 格式和 自定义搜索策略,信息越全越好

自定义搜索策略可以广度优先或者深度优先,也可以先收集一些启发式的信息,具体看个人,把你的思路讲明白告诉ai即可

[3]. 再然后是 ai是否合理使用了mcp的api

比如你现在关注一个值0x36,但ai很可能直接去搜0x36导致结果爆炸,你要在搜索策略中给出这种案例的引导,告诉他添加搜索条件,范围约束,同时从 mcp-api 层直接对结果过多的搜索返回err (为什么不让ai自己发现搜索结果过多?因为返回的result也会浪费你的上下文,不如直接就告诉ai,你的搜索条件不合适,重新写条件)

large-text-viewer-mcp 有三个主要api:

[4]. 最后是要还原的算法本身的复杂度,一些流程很长的自写算法按部就班还原还是有难度的,考虑多给ai一些启发 式的例子学习。每得到阶段性的结论也要让ai总结

search_strategy.md 和 trace_format.md 要使用你自己的trace格式
⚠️注意⚠️ ai的大脑褶皱是平滑的,你只能让他代替你进行机械化的劳动,或者期待他某一下灵光一闪
所以,流水化和标准化的trace搜索方法是你要考虑的,ai做不了你自己认知以外的事
简单的算法ai表现很好,但复杂一些的算法会大量烧token,且表现不一定好,这里要让ai多解释自己的思路自己多调试,也要多总结自己的trace搜索策略

本项目持续更新,许愿请提issue

搞一份 x-gorgon 的trace 给ai分析,见附件

最好使用T1以上的模型

技术交流可以加 vx baserker2 备注看雪
目前已经纯靠还原出x-gorgon的主体逻辑,可以用我给出的样本自己测试实际效果
欢迎大家交流更好的提示词,或者反馈模型表现

large-text-viewer 命令行版本
6f7K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6L8$3&6Y4M7r3g2F1k6$3k6W2K9e0p5I4x3e0q4Q4x3X3c8V1L8%4c8Q4x3V1k6D9j5i4u0Y4k6g2)9J5k6s2c8W2P5s2c8Q4x3X3c8$3K9h3g2%4k6i4u0Q4x3V1k6@1M7X3g2W2i4K6u0r3k6r3g2$3i4K6g2X3k6r3g2$3i4K6g2X3L8h3y4H3
python mcp server
4f6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6L8$3&6Y4M7r3g2F1k6$3k6W2K9e0p5I4x3e0q4Q4x3X3c8V1L8%4c8Q4x3V1k6@1M7X3q4U0k6g2y4W2j5i4u0U0K9q4)9#2k6V1#2o6f1l9`.`.

4e8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6S2j5$3g2B7j5i4u0$3K9i4y4Q4x3V1k6D9j5i4u0Y4k6g2)9J5k6s2c8W2P5s2c8Q4x3X3c8$3K9h3g2%4k6i4t1`.
98cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6J5k6i4k6W2M7X3y4U0i4K6u0r3k6%4g2E0g2q4k6y4
477K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6r3b7f1&6s2c8K6y4Q4x3V1k6S2N6s2c8V1i4K6u0V1N6s2u0S2j5$3g2J5i4K6u0V1M7h3u0V1K9b7`.`.
6f4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6Y4x3Y4N6X3N6#2)9J5c8Y4q4T1k6r3W2Q4x3X3c8@1M7X3q4U0k6i4u0Q4x3X3c8S2L8X3c8J5L8$3W2V1
802K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6N6$3W2X3N6s2A6x3i4K6u0r3M7h3u0V1K9g2)9#2k6Y4c8J5j5h3y4W2M7R3`.`.

和ida-mcp,unidbg-mcp等联动,最好可以多agent组团分析
拓展large-text-view-mcp本身的能力,作为通用的大文本搜索用mcp,服务器log往往也GB级,应用场景很广
开发其他的mcp,比如自动分析网络流量包的mcp

├── large_text_viewer_mcp.py //mcp接口
├── readme
│   ├── api_usage.md        // large-text-viewer 的接口文档
│   ├── search_strategy.md  // 自定义搜索策略,给实习生看的教程文档
│   └── trace_format.md     // 给ai解释你的trace格式
├── requirements.txt
├── target
│   └── release
│       └── large-text-viewer //核心,源码见large-text-viewer/tree/dev_dev_mcp
└── test_mcp.py             // 环境测试文件
├── large_text_viewer_mcp.py //mcp接口
├── readme
│   ├── api_usage.md        // large-text-viewer 的接口文档
│   ├── search_strategy.md  // 自定义搜索策略,给实习生看的教程文档
│   └── trace_format.md     // 给ai解释你的trace格式
├── requirements.txt
├── target
│   └── release
│       └── large-text-viewer //核心,源码见large-text-viewer/tree/dev_dev_mcp
└── test_mcp.py             // 环境测试文件
```
//trace格式
ld__ 和 st__ 代表产生内存操作的 mem.addr mem.size mem.value
 
(mr) 和 (mw) 会显示具体的 mem.op.base 和 mem.op.ea
    78de873688 + #8 = 78de873690
    7c675a1b20 +0x31 = 7c675a1b51
 
当寄存器指向可读字符串时打印 string__
 
[libc.so::], [env::] 是函数调用
```
 
 
```
[libc.so::memcpy] dest= 0x7c374e14d0 src= 0x7c374a6c30 size= 10 buffer= 676f6f676c65706c6179
...
78eb74fd90 [13dd90] strb w20, [x8, x21]  (r) w20=0x37 (mw) 7c675a1b20 +0x31
st____ 7c675a1b51 4 37
...
78eb74f670 [13d670] ret        
78eb74fd74 [13dd74] cbz w0, #0x78eb74fd8c    (r) w0=0x0
78eb74fd8c [13dd8c] ldr x8, [x19, #8]   (mr) 78de873688  (w)x8=0x7c675a1b20
ld____ 78de873690 8 7c675a1b20
String__ 7c675a1b20—>840480a30000267b86a1b0f7e6814449319585f86f7f2056e
78eb74fd90 [13dd90] strb w20, [x8, x21] (r) w20=0x37 (mw) 7c675a1b20 +0x31
st____ 7c675a1b51 4 37
78eb74fd94 [13dd94] ldr x8, [x19, #8]     (mr) 78de873688  (w)x8=0x7c675a1b20
ld____ 78de873690 8 7c675a1b20
String__ 7c675a1b20—>840480a30000267b86a1b0f7e6814449319585f86f7f2056e773678
```
```
//trace格式
ld__ 和 st__ 代表产生内存操作的 mem.addr mem.size mem.value
 
(mr) 和 (mw) 会显示具体的 mem.op.base 和 mem.op.ea
    78de873688 + #8 = 78de873690
    7c675a1b20 +0x31 = 7c675a1b51
 
当寄存器指向可读字符串时打印 string__
 
[libc.so::], [env::] 是函数调用
```
 
 
```
[libc.so::memcpy] dest= 0x7c374e14d0 src= 0x7c374a6c30 size= 10 buffer= 676f6f676c65706c6179
...
78eb74fd90 [13dd90] strb w20, [x8, x21]  (r) w20=0x37 (mw) 7c675a1b20 +0x31
st____ 7c675a1b51 4 37
...
78eb74f670 [13d670] ret        
78eb74fd74 [13dd74] cbz w0, #0x78eb74fd8c    (r) w0=0x0
78eb74fd8c [13dd8c] ldr x8, [x19, #8]   (mr) 78de873688  (w)x8=0x7c675a1b20
ld____ 78de873690 8 7c675a1b20
String__ 7c675a1b20—>840480a30000267b86a1b0f7e6814449319585f86f7f2056e
78eb74fd90 [13dd90] strb w20, [x8, x21] (r) w20=0x37 (mw) 7c675a1b20 +0x31
st____ 7c675a1b51 4 37
78eb74fd94 [13dd94] ldr x8, [x19, #8]     (mr) 78de873688  (w)x8=0x7c675a1b20
ld____ 78de873690 8 7c675a1b20
String__ 7c675a1b20—>840480a30000267b86a1b0f7e6814449319585f86f7f2056e773678
```
./target/release/large-text-viewer info
--file /path/to/large.txt
./target/release/large-text-viewer info
--file /path/to/large.txt
./target/release/large-text-viewer lines
--file /path/to/large.txt
--start 1
--end 100
 
# 从第1000行开始提取50行
./target/release/large-text-viewer lines
--file /path/to/large.txt
--start 1000
--count 50
 
# 显示行号 (默认使用这个)
./target/release/large-text-viewer lines
--file  /path/to/large.txt 
--start 1
--count 10
--line-numbers
 
# 提取单行
./target/release/large-text-viewer lines
--file /path/to/large.txt
--start 42
--count 1
./target/release/large-text-viewer lines
--file /path/to/large.txt
--start 1
--end 100
 
# 从第1000行开始提取50行
./target/release/large-text-viewer lines
--file /path/to/large.txt
--start 1000
--count 50
 
# 显示行号 (默认使用这个)
./target/release/large-text-viewer lines
--file  /path/to/large.txt 
--start 1
--count 10
--line-numbers
 
# 提取单行
./target/release/large-text-viewer lines
--file /path/to/large.txt
--start 42

[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

最后于 4天前 被温泉划水鱼编辑 ,原因:
上传的附件:
收藏
免费 92
支持
分享
最新回复 (57)
雪    币: 115
活跃值: (940)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
666
2026-1-18 18:18
0
雪    币: 206
活跃值: (949)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
666
2026-1-18 18:18
0
雪    币: 127
活跃值: (562)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看看
2026-1-18 18:19
0
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
感谢分享
2026-1-18 18:32
0
雪    币: 225
活跃值: (602)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
12
2026-1-18 18:35
0
雪    币: 209
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
12
2026-1-18 19:27
0
雪    币: 140
活跃值: (210)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
666
2026-1-18 19:30
0
雪    币: 420
活跃值: (295)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
666
2026-1-18 19:55
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
666
2026-1-18 20:03
0
雪    币: 526
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
66666
2026-1-18 20:45
0
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
感谢分享
2026-1-18 21:19
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
感谢分享
2026-1-18 22:02
0
雪    币: 66
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
6666
2026-1-19 00:04
0
雪    币: 5152
活跃值: (5284)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
66
2026-1-19 08:02
0
雪    币: 2392
活跃值: (3071)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
666
2026-1-19 09:17
0
雪    币: 200
活跃值: (2563)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
6666
2026-1-19 09:32
0
雪    币: 90
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
66
2026-1-19 09:42
0
雪    币: 1684
活跃值: (1050)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
111
2026-1-19 10:19
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
牛皮
2026-1-19 14:17
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
牛皮
2026-1-19 14:18
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
牛皮
2026-1-19 14:18
0
雪    币: 1
活跃值: (1130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
6
2026-1-19 15:16
0
雪    币: 378
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
6
2026-1-19 15:46
0
雪    币: 7
活跃值: (582)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
学习
2026-1-19 16:13
0
游客
登录 | 注册 方可回帖
返回