TgWitness / 文档

文档 / 09

跨所有聊天记录进行调查

跨频道、群组、私聊和机器人处理整个案件:收集、关联、重建并移交证据。

本操作指南通过一个虚构案例,完整演示了整个处理流程。其中使用了实际的采集、搜索、人员档案和导出功能。案例图仅作为文档示例;您的结论和案件登记将保存在应用程序之外。

已处理案例 / 支付目的地变更

一起事件。四段对话。一条需要还原的线索。

一个频道公告指向了一个机器人。一个行动小组在讨论一个新的支付链接。随后,在一次私下跟进中,该链接被再次提及。后来,该公告被编辑,一条群组消息也消失了。

每个版本是由谁发布的?该链接出现在哪里?哪个文件被保留下来了?有哪些变化,以及何时发生的?

有关历史数据加载、可选的 AI 源代码审查、MCP、OCR 以及外发 webhook 等功能,请参阅“使用存档”部分。

1. 确保覆盖整个账户

  1. 在专属工作区中连接采集账户。请在案件笔记中记录案件编号、账户 ID、工作区名称以及签名密钥指纹。
  2. 开放来源 → 观察范围 → 调查模式。查看“整个账户”、“全部四种来源类型”和“自身操作”。此预设可保存新来源的配置文件及其最近 200 条可见消息。点击“保存范围”并完成范围确认。
  3. 点击“加载聊天”。将源数据与该账户的对话列表进行比对,并检查排除项。在“参数”→“从账户列表读取的聊天”中,如有需要可调整初始列表限制:默认值为 1,000 个对话,最大可配置为 20,000 个。 超出限额的聊天记录将在其变为活跃状态时被发现。
  4. 在“记录设置”中,选择并保存“所有可见活动”。检查附件类型、大小限制和可用磁盘空间。在依赖该设置之前,请先启动监控并验证一条受控的消息、编辑和删除操作。
频道群组私聊机器人
一个账户 / 一把签名密钥所有选定的、账户可见的活动 → 整合为一本日志

消息 · 编辑 · 删除通知 · 可见反应 · 成员活动 · 自身操作

“整个账户”涵盖该账户可访问的聊天记录,包括已配置的来源类型和排除项。秘密聊天不可用。新对话会在收到更新时自动添加;启用此模式不会自动下载每个现有聊天的完整历史记录。

2. 获取历史记录并保存文件

为整个调查建立一个来源登记表。为每个聊天记录分配一行,包含其数字 ID、标题、账户、访问权限/角色、实时开始时间、历史记录获取情况、媒体结果以及已知缺失信息。仅在核查相关结果后,才将该来源标记为“已获取”。

选择能回答该问题的选项
需求面板中的操作功能介绍
已启用聊天记录的历史来源 → 加载完整历史记录当前主要功能:可获取的历史消息将进入工作区日志,支持暂停/恢复操作,并提供带签名的进度报告。使用指南。
日志中的现有聊天记录来源 → 记录设置 → 历史快照最近可见的消息以签名观察记录的形式呈现。默认上限为 500 条;通过“参数 → 最大历史快照”可将其提高至 10,000 条。
某次聊天的当前可见完整历史记录导出完整聊天记录 → 导出完整聊天记录,或 聊天 → 导出聊天记录包含chat.json和chat.html的独立签名包。针对每个来源重复此操作;保留成功/失败的结果。
新聊天出现时的上下文监控范围 → 当出现新的聊天或机器人时包含一个来源档案以及多达 1,000 条最近可见的消息;调查模式下将选取 200 条。现有聊天记录不会追溯性地纳入此数据。
附件字节数下载可见附件 + 各类附件的限制请核对文件ID为media.saved的文件,及其SHA-256校验值和字节数。处于队列中、被跳过或下载失败的文件均不视为已保存文件。

完整聊天记录导出是一个独立的快照;它不会将整个聊天历史导入日志或联系人档案中。若需在 TgWitness 内搜索历史资料,请使用“加载所有已启用来源的完整历史记录”功能,或使用“限定范围的日志快照”。开始运行前,请先查看来源列表。

在实际案例中,可获取公告频道、操作群组、机器人对话及后续私信记录。保留发票附件的字节数据和哈希值。当前可获取的历史记录无法还原捕获前已被删除的消息,也无法还原 Telegram 不再返回的中间编辑记录。

3. 记录不断发展的对话以及您自身的行动

随着案件进展,请持续进行监控。将活跃的案件聊天标记为优先来源;在“录制设置”→“重新检查”中配置优先级及其他来源的重新检查。随着工作推进,请审查 recheck.completed、持续补录、FloodWait 以及媒体结果。

请使用“聊天”→“个人资料”→“立即保存个人资料”,以保留当前的来源描述、机器人命令以及 Telegram 返回的其他元数据。此来源个人资料与根据日志消息生成的联系人个人资料是分开的。

作为案件调查的一部分,关注机器人或接受邀请
  1. 在“聊天”→“打开 Telegram 链接”中,请先保存预览。原始链接和返回的预览将作为签名记录保存。
  2. 若调查需要,`Join / open` 命令将加入或打开源数据,并使用其提供的启动参数启动一个机器人。待处理的加入请求将在记录中保持待处理状态。
  3. 若需记录某项操作,请使用面板中的文本回复功能或支持的“按压”按钮控件。日志会保留interaction.requested和interaction.result,包括返回的回调文本或URL。

这些控制项会执行真实的 Telegram 操作。在其他 Telegram 应用中点击的回调按钮对收集器不可见;但机器人随后发送的消息或编辑操作可能被记录。网页应用、支付以及电话/位置请求均不在迷你客户端的监控范围内。

4. 追踪聊天记录中的人员、链接和文件

  1. 打开日志,将来源过滤器保持为“所有来源”,并搜索特定短语、域名、用户名或已保存的标识符。打开每条匹配记录,并记录其聊天内容、消息 ID 和日志序列号。
  2. 要查看相关聊天记录,请打开“聊天”→“联系人”→“开启个人资料”,然后选择某位联系人。查看姓名/用户名历史、回复关系、活动记录,以及“还出现在……”中的其他被监测到的聊天记录、提取的链接、钱包或电话号码。打开引用的日志记录。
  3. 在该工作区中,追踪同一数字 Telegram 用户 ID 进入其他聊天群组。将匹配的姓名、钱包提及或相似的头像视为需要核查的线索。被提及的地址并不证明所有权;相似的头像也不证明是同一个人。
  4. 比较不同记录中保存的附件 SHA-256 值。哈希值相等可证明保存文件的字节内容完全一致。在确定文件分享者之前,请先查阅相关的消息和发件人记录。
案例地图 / 追踪引用虚构案例 · 非实时图表
频道 / 公告原文 → 编辑后的目标文本

记录 #101、#188 消息 #84 · 未标注发件人

组 / 运营用户 71001 发布了新链接

记录 #146 · 消息 #309 已保存文件收据 #151

机器人 / 订单对话一个按钮指向该目标页面

记录 #173 · 消息 #12 “返回”按钮的元数据

私密 / 后续用户 71001 重复了收件人信息

记录 #205 · 消息 #922 已保存文件收据 #209

四个聊天群组提供了不同的观察结果。请追踪每条连接的源记录;在未确认发件人身份的情况下,请勿将该频道帖子归因于用户 71001。

本操作指南中的数字 ID 和记录引用均为虚构。本图说明了分析师如何利用搜索、个人资料和记录审查功能开展工作;该应用程序不会生成全局调查图谱。
示例记录之间的关联
连接辅助观察保留结论
同一 Telegram 账号用户 ID 71001 所在的群组 #146 和私聊 #205两个聊天中显示的发件人 ID 完全一致。其真实身份仍是另一个问题。
重复的目标pay.example.invalid/new 在 #146,按钮元数据 #173,编辑后的帖子 #188 和 #205同一目标在四个已观察到的上下文中出现。仅凭这一点尚无法确定其控制方。
相同文件字节数已完成的媒体收据 #151 和 #209 中 SHA-256 值完全一致这两份被保存的附件在字节层面完全一致。仅凭文件名或缩略图无法证明这一点。

用户档案涵盖在该聊天中保存了消息的作者,并将其与同一工作区日志中的其他聊天关联起来。这些档案并非完整的成员名录。头像哈希值来自独立的本地缓存;档案引用数量可在“参数”→“每个事实引用的记录数”中进行配置。

5. 还原事件序列并标注缺失部分

在“聊天”页面,查看已保存的版本及其“日志记录 #…”链接。在“日志”页面,使用“所有来源”以及“编辑”、“删除”和“覆盖”功能。结合 Telegram 提供的日期和采集器的观察时间,构建案件时间线。

  1. 09:00 · #101捕获的频道帖子

    保留了原始目标。

  2. 09:12 · #146 / #151群组提供了一个不同的链接

    用户 71001 发布了该内容;附件下载已完成。

  3. 09:16 · #173机器人显示相同的目标地址

    保存的键盘元数据中包含该链接。

  4. 09:20 · #188频道公告变更

    原始内容和编辑后的内容均予以保留。

  5. 09:24 · #205 / #209私下跟进时再次强调这一点

    保存的附件与 #151 具有相同的完整 SHA-256 值。

  6. 09:28 · #231群组删除通知已发送

    先前的观察结果依然成立:既未提供删除者信息,也未提供确切的删除时间。

示例性的观察时间及参考信息。其他日志记录发生在这些条目之间。

日志序列按接收顺序排列,未必与 Telegram 中的原始操作顺序一致。较新的实时消息之后可能会出现较早的历史快照。请将实时观察记录、快照、恢复的消息、删除通知以及“重新检查时缺失”的情况区分开来。凡是覆盖范围出现缺口之处,均应明确标注“未知时间段”;后续的快照并不会消除该缺口。

6. 将此案例扩展至其他收集账户

为每个独立账户添加一个工作区,并重复执行范围和历史记录的清点工作。记录每个账户的成员身份/角色及签名密钥指纹。确保标识符由工作区和聊天室限定:相同的消息编号并非跨账户的通用标识符。

在您的案件笔记或分析工具中对比相关观察结果时,请保留每行对应的账户和日志引用信息。TgWitness 目前不提供跨工作区的全局搜索、合并时间线、联系人图谱或案件档案功能。对单个频道或超级群组进行多账户全量导出是一项独立功能;这并非所有账户日志的合并。

在长期工作中,应添加独立见证人以保留先前的边界。利用受控交付试点项目,验证账户的捕获路径和可见性。

7. 提供完整且可核查的案件资料包

从每个工作区导出一个带签名的日志 ZIP 文件。该文件包含完整的记录日志,不受面板搜索过滤器的影响。单独导出相关人员的个人资料,保留每个完整的聊天记录包,并保存完整的附件证据。

CASE-001/                         # assembled by the analyst
  case-notes.md                   # question, findings, alternative explanations
  sources.csv                     # every chat, role, acquisition result and gap
  timeline.csv                    # account + chat + message + seq + both times
  workspace-A/
    evidence.zip                  # complete signed observation journal
    retained-checkpoint.json
    profiles-operations.json      # separately signed people profiles
    history-channel.zip           # signed current-history export
    history-group.zip
    verification.txt
  workspace-B/                    # separate journal and trusted fingerprint
  witness/                        # retained checks, journal and signed posts
  SHA256SUMS                      # hashes of the delivered files

通过独立信道保存可信指纹。从可信安装环境出发,根据其自身工作区身份对每个证据进行验证:

python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --checkpoint retained-checkpoint.json
python -m tgwitness.verify profiles-operations.json --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --evidence evidence.zip
python -m tgwitness.verify history-channel.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256

查看实际验证结果,保留原始文件,并将覆盖报告、采集失败记录及传输记录与您的调查结果一并保存。顶级案件文件夹和分析师结论在外部汇总生成;每个 TgWitness 证据文件均带有独立的签名。

其他调查也可采用相同方法

由机器人引发的订单或支付纠纷

问题:该机器人曾做出过什么承诺?提供了哪个按钮的跳转目标?之后发生了什么变化?

追踪路径:频道入站消息 → 保存的机器人链接预览 → 机器人启动参数 → 消息及键盘输入记录 → 任何面板发出的回调收据 → 群组/私聊后续消息。将每个目标与相应的源记录进行匹配;保留个人资料描述及完整的媒体内容。

提供内容:所观察到的要约及回应的时间线、来源参考信息以及经过验证的导出数据。显示的支付链接并不构成支付已发生的证据。

因跨聊天室事件而被删除的消息

问题:在相关消息消失之前,已经观察到了什么?

追踪路径:所有受影响的聊天记录 → 原始消息 → 已送达的编辑内容 → 删除通知或后续复查时发现的消息缺失结果 → 已保存的附件 → 事件相关的覆盖范围。将独立账户的观察结果与其声明的可见性进行对比。

呈现内容:一系列被保留的版本以及明确标注的未知时间段。切勿将缺失的历史消息视为某人将其删除的证据。

某参与者在多个聊天群中使用了不同的昵称

问题:尽管名称发生了变化,哪些被观察到的活动属于同一个 Telegram 账号?

追踪路径:数字发件人 ID → 已保存的名称/用户名历史记录 → 回复 → 工作区内的其他聊天记录 → 被提及的目标及已保存文件。对每条声称的连接检查源记录;将相似账户区分开来。

交付内容:包含带引用来源的账户活动时间线,以及关于关系链的独立假设。名称相似性和头像 pHash 仅为线索,并非身份证明。