首页
社区
课程
招聘
[分享]公开PDB文件在线解析服务接口
发表于: 2026-3-10 02:37 3679

[分享]公开PDB文件在线解析服务接口

2026-3-10 02:37
3679

这是一个免费、公开的在线PDB解析接口交流群:878316370

接口地址(二选一)

7e4K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3#2K6k6r3I4Q4x3X3g2K6j5h3W2D9k6h3q4^5K9q4)9J5k6h3y4G2L8g2)9J5c8Y4m8S2M7Y4y4W2
519K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6E0M7$3c8D9i4K6u0W2M7$3q4A6L8r3g2S2P5r3S2Q4x3X3g2U0L8$3#2Q4x3V1k6H3j5i4u0K6k6b7`.`.

接口限制:

  1. 只允许POST类型请求
  2. 一次请求只能查询1个文件
  3. 一次请求只能附带最多200条查询符号

——————————————————————————————————

这段介绍文本摘抄一下 @鬼才zxy 的文章(感谢!)。

这是一个用于在服务端解析PDB文件的工具,客户端只需要向服务端发送要查询程序文件的版本信息和所需的全局变量、函数名称、结构体属性名,即可得到对应的偏移量。

架构图

——————————————————————————————————

使用方式简介(和query-pdb项目不同)

客户端发送如下请求:

{
  "pdb": "ntdll.pdb",
  "guid": "0AF9B92CB2856CFB0C54EC42CE8E3377",
  "age": 1,
  "symbols": [
    "RtlInitUnicodeString",
    "NtCreateFile",
    "NtClose",
    "totally_nonexistent_symbol"
  ],
  "structs": {
    "_PEB": [
      "BeingDebugged",
      "Ldr",
      "ProcessParameters"
    ],
    "_TEB": [
      "ProcessEnvironmentBlock",
      "ClientId"
    ],
    "_KTHREAD": [
      "Running",
      "Alerted",
      "KernelStackResident"
    ]
  },
  "enums": {
    "_FILE_INFORMATION_CLASS": [
      "FileDirectoryInformation",
      "FileBasicInformation"
    ],
    "_EVENT_TYPE": [
      "NotificationEvent",
      "SynchronizationEvent"
    ]
  }
}

服务端响应如下:

{
  "status": 0,
  "message": "ok",
  "data": {
    "symbols": {
      "NtClose": 644800,
      "NtCreateFile": 647040,
      "RtlInitUnicodeString": 244288,
      "totally_nonexistent_symbol": -1
    },
    "structs": {
      "_KTHREAD": {
        "Alerted": {
          "offset": 114,
          "length": 2,
          "bitfield_offset": 0,
          "bitfield_length": 0
        },
        "KernelStackResident": {
          "offset": 120,
          "length": 1,
          "bitfield_offset": 17,
          "bitfield_length": 1
        },
        "Running": {
          "offset": 113,
          "length": 1,
          "bitfield_offset": 0,
          "bitfield_length": 0
        }
      },
      "_PEB": {
        "BeingDebugged": {
          "offset": 2,
          "length": 1,
          "bitfield_offset": 0,
          "bitfield_length": 0
        },
        "Ldr": {
          "offset": 24,
          "length": 8,
          "bitfield_offset": 0,
          "bitfield_length": 0
        },
        "ProcessParameters": {
          "offset": 32,
          "length": 8,
          "bitfield_offset": 0,
          "bitfield_length": 0
        }
      },
      "_TEB": {
        "ClientId": {
          "offset": 64,
          "length": 0,
          "bitfield_offset": 0,
          "bitfield_length": 0
        },
        "ProcessEnvironmentBlock": {
          "offset": 96,
          "length": 8,
          "bitfield_offset": 0,
          "bitfield_length": 0
        }
      }
    },
    "enums": {
      "_EVENT_TYPE": {
        "NotificationEvent": 0,
        "SynchronizationEvent": 1
      },
      "_FILE_INFORMATION_CLASS": {
        "FileBasicInformation": 4,
        "FileDirectoryInformation": 1
      }
    }
  }
}

如果需要结构体的完整定义,可以在structs类型查询时直接传空数组,接口将完整返回结构体所有成员及偏移+大小。(需要注意的是,采用的是无序返回,如果需要顺序需要自行按照offset来排列)

输入:

{
  "pdb": "ntdll.pdb",
  "guid": "0AF9B92CB2856CFB0C54EC42CE8E3377",
  "age": 1,
  "structs": {
    "_CLIENT_ID": []
  }
}

输出:

{
  "status": 0,
  "message": "ok",
  "data": {
    "structs": {
      "_CLIENT_ID": {
        "UniqueProcess": {
          "offset": 0,
          "length": 8,
          "bitfield_offset": 0,
          "bitfield_length": 0
        },
        "UniqueThread": {
          "offset": 8,
          "length": 8,
          "bitfield_offset": 0,
          "bitfield_length": 0
        }
      }
    }
  }
}

如果结构体不存在,则返回null

输入:

{
  "pdb": "ntdll.pdb",
  "guid": "0AF9B92CB2856CFB0C54EC42CE8E3377",
  "age": 1,
  "structs": {
    "NONEXISTENT_STRUCT": []
  }
}

输出:

{
  "status": 0,
  "message": "ok",
  "data": {
    "structs": {
      "NONEXISTENT_STRUCT": null
    }
  }
}

有时会遇到C++函数定义,比如

?FindHotKey@@YAHPEAUtagTHREADINFO@@PEAUtagWND@@HIIPEAPEAUtagHOTKEY@@@Z

可以直接输入FindHotKey来匹配,接口会自动获取第一个匹配该函数名的结果来返回。也可以输入完整的C++定义

?FindHotKey@@YAHPEAUtagTHREADINFO@@PEAUtagWND@@HIIPEAPEAUtagHOTKEY@@@Z

来精确匹配,但是要注意不同版本间同一个函数的C++定义可能不同的。

服务端可能返回的状态码:| 0 | 成功 | data 中包含查询结果 || 1 | 方法不允许 | 未使用 POST 方法 || 2 | 读取失败 | 无法读取请求体 || 3 | JSON 无效 | JSON 格式错误或无法解析 || 4 | 缺少必填字段 | pdbguid 为必填项,或含无效字符 || 5 | 无查询项 | symbols/structs/enums 至少提供一个且不为空 || 6 | 超过查询上限 | 查询项总数超过 200 || 7 | PDB 不可用 | PDB 回源失败 || 8 | 解析失败 | PDB 文件损坏或格式不支持 |


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2026-4-10 11:56 被Saileaxh编辑 ,原因:
收藏
免费 24
支持
分享
最新回复 (22)
雪    币: 170
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
6666666666666666666
2026-3-10 02:40
0
雪    币: 170
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
好用 我ark都在用这个去解析pdb
2026-3-10 08:33
0
雪    币: 3496
活跃值: (2042)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
4
dd
2026-3-10 11:18
0
雪    币: 4417
活跃值: (5100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
6
2026-3-10 12:57
0
雪    币: 223
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
感谢分享
2026-3-10 13:19
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
mark
2026-3-10 22:31
0
雪    币: 41
活跃值: (1513)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好活
2026-3-11 11:02
0
雪    币: 5967
活跃值: (7248)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这个可以支持那些没有pdb的系统版本不?
2026-3-11 11:10
0
雪    币: 5
活跃值: (629)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
2026-3-11 13:14
0
雪    币: 3496
活跃值: (2042)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
11
木志本柯 这个可以支持那些没有pdb的系统版本不?
不可以的,没有pdb的还是要特征码,可以看下我另一个帖子https://bbs.kanxue.com/thread-290223.htm
2026-3-11 14:54
0
雪    币: 9106
活跃值: (7107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
感谢分享
2026-3-11 15:48
0
雪    币: 141
活跃值: (3686)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
感谢分享
2026-3-12 10:03
0
雪    币: 1205
活跃值: (1918)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
14
感谢分享
2026-3-12 16:12
0
雪    币: 353
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
学习学习
2026-3-13 20:26
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
666
2026-3-19 23:27
0
雪    币: 223
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
1
2026-3-20 14:28
0
雪    币: 5
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
666
2026-3-24 20:06
0
雪    币: 225
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
谢谢分享,学习用~
2026-3-28 08:13
0
雪    币: 730
活跃值: (3017)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
20
谢谢分享
2026-3-29 11:14
0
雪    币: 188
活跃值: (1861)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
感谢分享
2026-4-6 09:30
0
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
感谢分享
2026-4-6 10:08
0
雪    币: 91
活跃值: (1804)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
感谢分享
2026-4-9 21:40
0
游客
登录 | 注册 方可回帖
返回