Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/tomer8007/mtproto-dissector
数据包嗅探与分析加密/解密工具逆向工程取证分析网络安全
GitHubtomer8007/mtproto-dissector

mtproto-dissector

用于解析 Telegram 协议的 Wireshark 插件

查看仓库
405个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Telegram 协议解析器

这是一个 Wireshark 解析器,可帮助你了解周围的 Telegram 流量。

它根据 MTProto 2.0 协议 解析所看到的 Telegram 数据包。

功能

  • 支持 传输协议:Abridged、Full、Intermediate、HTTP
  • 支持去混淆
  • 支持 TCP 重组
  • 支持解密(使用给定的 auth key)
  • 解析 TL 语言 RPC 载荷

限制

  • 仅支持 MTProto 2.0(因此不适用于 2017 年之前的客户端)
  • 尚不支持 WebSocket/Padded intermediate/UDP 传输协议
  • TL 语言 尚未 100% 解析,例如不支持关联数组
  • 尚不能自动检测 MTProxy 流量或非官方 MTProto 服务器的流量

安装与使用

要安装此解析器:

  1. 安装加密操作所需的 luagcrypt Lua 绑定。
    • 可以使用 luarocks 编译它(针对你的 Wireshark 所用的 Lua 版本)
    • Windows 用户可查看此 issue 获取预编译的 luagcrypt.dll
    • 将匹配的 luagcrypt.dll/luagcrypt.so 复制到 Wireshark 安装目录,例如 C:\Program Files\Wireshark
  2. 克隆或下载此仓库
  3. 将 mtproto 目录复制到 Wireshark 插件目录,例如 C:\Users\<username>\AppData\Roaming\Wireshark\plugins

安装后,你只需在有 Telegram 流量的情况下打开 Wireshark 即可。

重要提示:为使去混淆生效,必须从一开始就已知整个 TCP 会话(根据 MTProto 规范),因此建议在数据包录制开始之后再打开 Telegram 应用。

提取 Auth key

要解密流量,你需要拥有匹配的 授权密钥 (auth_key)。

较新版本的官方 Telegram 客户端通过 Perfect Forward Secrecy 来保护云聊天,方法是在启动时和/或定期调用 auth.bindTempAuthKey。这意味着主会话将使用临时 auth key(通过 DH 建立)而非永久密钥。

为了即时提取所使用的 auth key,提供了两个 frida 脚本,用于挂钩 Telegram 进程。

要使用它们,请确保已安装 Frida,然后运行:

  • hook_windows_auth_key.py 用于官方 Windows 应用(稍作修改或许也能在 Linux\Mac 上运行)
  • hook_android_auth_key.py 用于官方 Android 应用

一旦有网络通信完成,应立即打印 auth key 和 auth key ID。

获得 auth key 后,要将其提供给解析器,请转到 Edit --> Prefrences --> Protocols --> MTProto 并填写 auth key。

你还可以从 tgnet.dat 文件中提取永久 auth key(Android - 参见此处、此处、此处),或从 key_datas 文件中提取(Desktop - 查看此处、此处)。其他客户端可能以不同方式存储 auth_key。

API 级别同步

有时,Telegram 会更新其客户端中的 API schema 版本(或者你正在查看来自旧客户端的流量)。发生这种情况时,此工具的 TL schema 可能与你在数据包中看到的某些 RPC 调用不同步,从而在 Wireshark 中产生 Incomplete parsing 消息。你可以在应用的 invokeWithLayer 请求中查看它正在使用的 API 级别。

要使解析器与正确的 API schema 同步,你需要从 Telegram 下载该层的 TL 文件,将其转换为 JSON(见下文),并保存到 mtproto/schema/api_tl_schema_layer_X.json,其中 X 是你的层号。

你可以从桌面应用的 api.tl 获取更新的 API TL schema,或在 Telegram 网站 上查看更多版本。

要将 tl 文件转换为 JSON,请运行,例如(确保你已安装 npm):

root@kitploit:~
C:\path\to\MTproto Dissector> 
npx @psqq/tl-to-json api_layer_218.tl mtproto/schema/api_tl_schema_layer_218.json default --indent 4

然后确保将新的 json 文件复制到 Wireshark 插件目录中的 mtproto/schema/。 最后,在 Wireshark 中转到 Edit --> Prefrences --> Protocols --> MTPROTO,并将 “API level” 更改为与你的流量匹配的级别。

下载工具