文档 / 09
跨所有聊天记录进行调查
跨频道、群组、私聊和机器人处理整个案件:收集、关联、重建并移交证据。
本操作指南通过一个虚构案例,完整演示了整个处理流程。其中使用了实际的采集、搜索、人员档案和导出功能。案例图仅作为文档示例;您的结论和案件登记将保存在应用程序之外。
一起事件。四段对话。一条需要还原的线索。
一个频道公告指向了一个机器人。一个行动小组在讨论一个新的支付链接。随后,在一次私下跟进中,该链接被再次提及。后来,该公告被编辑,一条群组消息也消失了。
有关历史数据加载、可选的 AI 源代码审查、MCP、OCR 以及外发 webhook 等功能,请参阅“使用存档”部分。
1. 确保覆盖整个账户
- 在专属工作区中连接采集账户。请在案件笔记中记录案件编号、账户 ID、工作区名称以及签名密钥指纹。
- 开放来源 → 观察范围 → 调查模式。查看“整个账户”、“全部四种来源类型”和“自身操作”。此预设可保存新来源的配置文件及其最近 200 条可见消息。点击“保存范围”并完成范围确认。
- 点击“加载聊天”。将源数据与该账户的对话列表进行比对,并检查排除项。在“参数”→“从账户列表读取的聊天”中,如有需要可调整初始列表限制:默认值为 1,000 个对话,最大可配置为 20,000 个。 超出限额的聊天记录将在其变为活跃状态时被发现。
- 在“记录设置”中,选择并保存“所有可见活动”。检查附件类型、大小限制和可用磁盘空间。在依赖该设置之前,请先启动监控并验证一条受控的消息、编辑和删除操作。
消息 · 编辑 · 删除通知 · 可见反应 · 成员活动 · 自身操作
“整个账户”涵盖该账户可访问的聊天记录,包括已配置的来源类型和排除项。秘密聊天不可用。新对话会在收到更新时自动添加;启用此模式不会自动下载每个现有聊天的完整历史记录。
2. 获取历史记录并保存文件
为整个调查建立一个来源登记表。为每个聊天记录分配一行,包含其数字 ID、标题、账户、访问权限/角色、实时开始时间、历史记录获取情况、媒体结果以及已知缺失信息。仅在核查相关结果后,才将该来源标记为“已获取”。
| 需求 | 面板中的操作 | 功能介绍 |
|---|---|---|
| 已启用聊天记录的历史 | 来源 → 加载完整历史记录 | 当前主要功能:可获取的历史消息将进入工作区日志,支持暂停/恢复操作,并提供带签名的进度报告。使用指南。 |
| 日志中的现有聊天记录 | 来源 → 记录设置 → 历史快照 | 最近可见的消息以签名观察记录的形式呈现。默认上限为 500 条;通过“参数 → 最大历史快照”可将其提高至 10,000 条。 |
| 某次聊天的当前可见完整历史记录 | 导出完整聊天记录 → 导出完整聊天记录,或 聊天 → 导出聊天记录 | 包含chat.json和chat.html的独立签名包。针对每个来源重复此操作;保留成功/失败的结果。 |
| 新聊天出现时的上下文 | 监控范围 → 当出现新的聊天或机器人时 | 包含一个来源档案以及多达 1,000 条最近可见的消息;调查模式下将选取 200 条。现有聊天记录不会追溯性地纳入此数据。 |
| 附件字节数 | 下载可见附件 + 各类附件的限制 | 请核对文件ID为media.saved的文件,及其SHA-256校验值和字节数。处于队列中、被跳过或下载失败的文件均不视为已保存文件。 |
完整聊天记录导出是一个独立的快照;它不会将整个聊天历史导入日志或联系人档案中。若需在 TgWitness 内搜索历史资料,请使用“加载所有已启用来源的完整历史记录”功能,或使用“限定范围的日志快照”。开始运行前,请先查看来源列表。
在实际案例中,可获取公告频道、操作群组、机器人对话及后续私信记录。保留发票附件的字节数据和哈希值。当前可获取的历史记录无法还原捕获前已被删除的消息,也无法还原 Telegram 不再返回的中间编辑记录。
3. 记录不断发展的对话以及您自身的行动
随着案件进展,请持续进行监控。将活跃的案件聊天标记为优先来源;在“录制设置”→“重新检查”中配置优先级及其他来源的重新检查。随着工作推进,请审查 recheck.completed、持续补录、FloodWait 以及媒体结果。
请使用“聊天”→“个人资料”→“立即保存个人资料”,以保留当前的来源描述、机器人命令以及 Telegram 返回的其他元数据。此来源个人资料与根据日志消息生成的联系人个人资料是分开的。
作为案件调查的一部分,关注机器人或接受邀请
- 在“聊天”→“打开 Telegram 链接”中,请先保存预览。原始链接和返回的预览将作为签名记录保存。
- 若调查需要,`Join / open` 命令将加入或打开源数据,并使用其提供的启动参数启动一个机器人。待处理的加入请求将在记录中保持待处理状态。
- 若需记录某项操作,请使用面板中的文本回复功能或支持的“按压”按钮控件。日志会保留
interaction.requested和interaction.result,包括返回的回调文本或URL。
这些控制项会执行真实的 Telegram 操作。在其他 Telegram 应用中点击的回调按钮对收集器不可见;但机器人随后发送的消息或编辑操作可能被记录。网页应用、支付以及电话/位置请求均不在迷你客户端的监控范围内。
4. 追踪聊天记录中的人员、链接和文件
- 打开日志,将来源过滤器保持为“所有来源”,并搜索特定短语、域名、用户名或已保存的标识符。打开每条匹配记录,并记录其聊天内容、消息 ID 和日志序列号。
- 要查看相关聊天记录,请打开“聊天”→“联系人”→“开启个人资料”,然后选择某位联系人。查看姓名/用户名历史、回复关系、活动记录,以及“还出现在……”中的其他被监测到的聊天记录、提取的链接、钱包或电话号码。打开引用的日志记录。
- 在该工作区中,追踪同一数字 Telegram 用户 ID 进入其他聊天群组。将匹配的姓名、钱包提及或相似的头像视为需要核查的线索。被提及的地址并不证明所有权;相似的头像也不证明是同一个人。
- 比较不同记录中保存的附件 SHA-256 值。哈希值相等可证明保存文件的字节内容完全一致。在确定文件分享者之前,请先查阅相关的消息和发件人记录。
记录 #101、#188 消息 #84 · 未标注发件人
记录 #146 · 消息 #309 已保存文件收据 #151
记录 #173 · 消息 #12 “返回”按钮的元数据
记录 #205 · 消息 #922 已保存文件收据 #209
四个聊天群组提供了不同的观察结果。请追踪每条连接的源记录;在未确认发件人身份的情况下,请勿将该频道帖子归因于用户 71001。
| 连接 | 辅助观察 | 保留结论 |
|---|---|---|
| 同一 Telegram 账号 | 用户 ID 71001 所在的群组 #146 和私聊 #205 | 两个聊天中显示的发件人 ID 完全一致。其真实身份仍是另一个问题。 |
| 重复的目标 | pay.example.invalid/new 在 #146,按钮元数据 #173,编辑后的帖子 #188 和 #205 | 同一目标在四个已观察到的上下文中出现。仅凭这一点尚无法确定其控制方。 |
| 相同文件字节数 | 已完成的媒体收据 #151 和 #209 中 SHA-256 值完全一致 | 这两份被保存的附件在字节层面完全一致。仅凭文件名或缩略图无法证明这一点。 |
用户档案涵盖在该聊天中保存了消息的作者,并将其与同一工作区日志中的其他聊天关联起来。这些档案并非完整的成员名录。头像哈希值来自独立的本地缓存;档案引用数量可在“参数”→“每个事实引用的记录数”中进行配置。
5. 还原事件序列并标注缺失部分
在“聊天”页面,查看已保存的版本及其“日志记录 #…”链接。在“日志”页面,使用“所有来源”以及“编辑”、“删除”和“覆盖”功能。结合 Telegram 提供的日期和采集器的观察时间,构建案件时间线。
- 09:00 · #101捕获的频道帖子
保留了原始目标。
- 09:12 · #146 / #151群组提供了一个不同的链接
用户 71001 发布了该内容;附件下载已完成。
- 09:16 · #173机器人显示相同的目标地址
保存的键盘元数据中包含该链接。
- 09:20 · #188频道公告变更
原始内容和编辑后的内容均予以保留。
- 09:24 · #205 / #209私下跟进时再次强调这一点
保存的附件与 #151 具有相同的完整 SHA-256 值。
- 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 仅为线索,并非身份证明。