0Pricing
Cyber Security Academy · 课时

应用、痕迹与报告

解析应用数据并呈现调查结果。

应用、痕迹与报告 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

应用痕迹:全貌

在大多数案件中,第三方应用会生成最丰富的证据。每个应用存储数据的方式各不相同,但其中存在反复出现的模式。

  • 用于存储消息、历史记录和元数据的 SQLite 数据库。
  • iOS 上用于设置和状态的属性列表(plist),以及安卓上的 XML shared_prefs。
  • 嵌入数据库列中的Protobuf / JSON 数据块。
  • 用于存储缩略图和附件的缓存和媒体文件夹。

您的任务是以一致的方式解析这些数据,将其归因于某位用户和某个时间,并以经得起审查的方式呈现。

消息应用痕迹

消息应用经常是证据来源。每个应用都会保存一个主消息存储,以及联系人表和群组表。

  • WhatsApp(安卓):msgstore.db(消息)、wa.db(联系人)。
  • Signal:加密的 SQLCipher 数据库;密钥存储在密钥存储区或钥匙串中。
  • Telegram:cache4.db,其中包含使用 Protobuf 编码的内容。

请从消息存储中重建 WhatsApp 对话:

sqlite3 -readonly msgstore.db
sqlite> SELECT datetime(timestamp/1000,'unixepoch') ts,
   ...>        key_remote_jid, key_from_me, data
   ...> FROM messages
   ...> WHERE key_remote_jid LIKE '%@s.whatsapp.net'
   ...> ORDER BY timestamp;

加密的应用数据库

某些应用会使用 SQLCipher 对自己的数据库进行加密(例如 Signal 和某些银行应用)。您无法使用普通 sqlite3 打开这些数据库。

  • 密钥通常存储在平台的密钥存储区或钥匙串中,只有通过足够深入的提取才能恢复。
  • 获得密钥后,请先通过 SQLCipher PRAGMA 打开数据库,再执行查询。

恢复密钥后打开 SQLCipher 数据库:

sqlcipher signal.db
sqlite> PRAGMA key = "x'6f3b...c91a'";   -- recovered raw key
sqlite> PRAGMA cipher_compatibility = 4;
sqlite> SELECT * FROM sms LIMIT 5;

解码嵌入式数据块

应用数据库经常将结构化数据隐藏在 BLOB 列中,格式可能是 protobuf、plist 或 JSON。可见列只是其中一部分信息。

  • BPLIST 数据块(苹果二进制属性列表)可以使用 plistlib 或 plutil 解码。
  • Protobuf 数据块可以使用 protoc 或 blackboxprotobuf 解码。

转换从某一列中提取的二进制属性列表数据块:

# Apple binary plist -> readable XML
plutil -convert xml1 -o decoded.plist attachment_blob.bin

# Unknown protobuf -> field tree
python3 -m blackboxprotobuf decode message_blob.bin

位置与地理定位痕迹

位置证据会将某人与某个地点和时间关联起来,因此必须以更高的严谨性处理。

  • 照片的 EXIF GPS 标签、地图应用搜索历史和缓存地图瓦片。
  • iOS 的重要地点(routined 缓存),安卓的位置历史记录以及 Wi-Fi/蜂窝网络日志。

请区分设备所在的位置与用户只是搜索过的地点。从照片中提取 EXIF GPS 信息:

exiftool -GPSLatitude -GPSLongitude -DateTimeOriginal \
  IMG_0421.HEIC

云端、同步与多设备状态

现代应用会在多个设备之间同步,因此设备上的数据可能不完整或重复。

  • 手机上删除的消息可能仍保留在关联的平板电脑或网页会话中。
  • 同步元数据可以显示哪台设备创建了某条消息。

请在分析中记录设备归属,并且只有在另行取得适当法律授权的情况下,才获取云端或配套设备数据。绝不要假设被扣押的手机包含完整记录。

工件验证

工件进入报告前,请从三个方面对其进行验证。

  • 来源:确认它确切来自哪个文件、表和列。
  • 解码:核实时间戳纪元和字段含义,最好与已知正确的参考消息进行比对。
  • 交叉印证:与第二个工件进行交叉核对(例如,与某个联系人相匹配的通话记录条目)。

如果无法独立印证某个工件,或无法精确确定其来源,就应将其标记为低可信度,而不应将其作为事实陈述。

构建超级时间线

超级时间线会将多个工件中的事件合并到一个按时间顺序排列的视图中,并统一标准化为 UTC。

  • 合并消息、通话、应用使用情况、位置和系统事件。
  • 为每一行标注其来源工件,以便追溯。

log2timeline/plaso 之类的工具或分析人员编写的脚本可以完成组装。从概念上说,每一行都包含时间、事件和来源信息:

timestamp_utc        | source            | event
2026-06-01 09:14:02  | sms.db            | iMessage sent to +1555...
2026-06-01 09:15:40  | knowledgeC.db     | App in foreground: Maps
2026-06-01 09:16:05  | Photos.sqlite     | Photo captured (GPS present)

报告结构

取证报告必须让独立审查人员能够复现并核查您的工作。标准部分包括:

  • 摘要 — 范围、授权情况和关键发现。
  • 处理的证据 — 设备、标识符和证据保管链。
  • 方法 — 工具、版本、准确命令和哈希值。
  • 发现结果 — 工件及其来源引用。
  • 结论 — 解读,并与原始事实明确区分。

每项主张都应能追溯到带哈希值的来源和有记录的步骤。

事实与观点

报告的可信度取决于能否将观察结果与解读区分开来。

  • 事实:sms.db 的第 482 行包含文本 X,日期为 Y(UTC)。
  • 解读:这表明用户可能计划在地点 Z 会面。

请中立地陈述事实,并将推断明确标注为推断,同时列出其他可能解释。过度表述确定性(例如,仅凭一条消息就断言某人的意图)会损害整份报告的可信度,也可能在法庭上受到质疑。

伦理、范围与隐私

移动设备中存有高度私密的数据。相关人员必须遵守法律和伦理边界。

  • 只能在获授权的范围内开展工作(搜查令或同意条款)。
  • 尽量减少接触无关的私人数据。
  • 保持客观性 — 不仅报告不利证据,也要报告有利于被调查者的证据。
  • 以保护原始设备同等谨慎的方式保护提取的数据。

健全的伦理规范不是可有可无的;它们正是让数字证据值得信赖并可被采纳的基础。

快速检查

您的报告写道:“用户意图实施该行为,消息 482 证明了这一点。”审阅者对此提出异议。核心问题是什么?

回顾:应用、工件与报告撰写

现在,您已经能够将原始提取结果整理成一份经得起审查的报告。

  • 应用数据由SQLite + plist/XML + protobuf/JSON 数据块组成;请明确解码数据块。
  • 加密存储(SQLCipher)需要从深度提取结果中获取密钥。
  • 请谨慎处理位置证据;区分实际出现与仅仅进行过搜索。
  • 考虑多设备同步,只有获得适当授权后才获取云端数据。
  • 报告之前,请验证来源、解码结果和交叉印证情况。
  • 构建 UTC超级时间线,按可复现性要求组织报告,并保持事实与观点分开。
  • 遵守范围并以合乎伦理的方式行事 — 这正是证据能够被采纳的原因。

常见问题解答

「应用、痕迹与报告」课时是免费的吗?

是的 — 「应用、痕迹与报告」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「应用、痕迹与报告」这节课中我会学到什么?

解析应用数据并呈现调查结果。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「应用、痕迹与报告」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 移动设备取证基础
  2. Android 获取与分析
  3. iOS 获取与分析
  4. 应用、痕迹与报告
← 返回 Cyber Security Academy