Agent skill

Re Mobile Forensics

by dslsdzc in dslsdzc/rev-skills

移动设备取证:Android/iOS 备份解析、应用数据提取、删除恢复与时间线. An agent skill from dslsdzc/rev-skills.

Apache-2.0Auto-check passedMobile

Install Re Mobile Forensics

skills CLI
$ npx skills add dslsdzc/rev-skills --skill re-mobile-forensics -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dslsdzc/rev-skills re-mobile-forensics --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dslsdzc/rev-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/re-mobile-forensics .claude/skills/re-mobile-forensics && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
re-mobile-forensics
GitHub stars
130
Token cost
~1.6k tokens
SKILL.md length
364 words
Files
3 (incl. references)
Skills in repo
40
Repo updated
First seen
Licence
Apache-2.0

At a glance

移动设备取证:Android/iOS 备份解析、应用数据提取、删除恢复与时间线. An agent skill from dslsdzc/rev-skills.

  • Works in 4 steps: Android 提取 → iOS 提取 → 删除恢复与时间线 → …
  • Tasks that involve Mobile testing and debugging
  • SKILL.md covers 何时使用 / 何时不用, 工具准备, 操作步骤 and 跨域联合, plus 1 more section
  • Calls adb, apt and brew

What it does

Re Mobile Forensics is an agent skill from dslsdzc/rev-skills. 移动设备取证:Android/iOS 备份解析、应用数据提取、删除恢复与时间线。 触发词:移动取证、手机取证、ADB备份、iTunes备份、手机数据提取。

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/decision-tree.md` and `references/gotchas.md`).

It sits in Mobile, covering Mobile testing and debugging and Digital forensics. It works with Android, iOS, Python and Java. The repository describes itself as: 122 个逆向工程 AI 技能(可发布、跨平台):恶意软件分析 / 软件逆向 / 固件嵌入式 / 协议逆向 / 移动应用 / 脱壳反混淆 / 软件破解 / 漏洞挖掘 / 托管代码 / 取证情报 / CTF。 The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Mobile testing and debugging
  • Tasks that involve Digital forensics

Example prompts

  • “/re-mobile-forensics”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Android 提取
  2. iOS 提取
  3. 删除恢复与时间线
  4. 证据整合与交付

What it can do on your machine

Read from SKILL.md and the folder at commit bd21db8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • adb
    • apt
    • brew
    • java
    • dnf
    • sqlite3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Re Mobile Forensics loads about 1.6k tokens when it runs, and up to ~3.2k if it reads all its reference files. Until then it costs about 24 tokens; SKILL.md has 364 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~24
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dslsdzc/rev-skills at commit bd21db8, republished under its Apache-2.0 licence (© dslsdzc). 364 words, ~1,571 tokens.

Download SKILL.mdSave it as .claude/skills/re-mobile-forensics/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
re-mobile-forensics
description
移动设备取证:Android/iOS 备份解析、应用数据提取、删除恢复与时间线。 触发词:移动取证、手机取证、ADB备份、iTunes备份、手机数据提取。
type
atomic
capabilities
mobile-forensics

移动设备取证

何时使用 / 何时不用

  • 用:设备备份/镜像的数据提取、应用数据取证、删除恢复、时间线重建
  • 用:应用数据落盘路径解析(数据库/偏好/缓存)——App 结构理解配合 [[re-mobile]]
  • 用:时间点对比取证(备份前后数据变化/已删除记录比对)
  • 用:轻量定向提取(单应用单表数据——直接 run-as/单应用备份,不必全量)
  • 用:删除数据可恢复性评估(先判定再动手,避免无效耗时)
  • 用:设备已离线/损坏时(备份文件仍可解析——备份解析不依赖设备在线)
  • 不用:App 逆向分析([[re-mobile]]);通用文件系统分析([[re-disk-forensics]]);运行中进程动态提取([[re-frida]])
  • 不用:云备份/云同步数据(Google/iCloud 云侧不在本技能,取证范围需另行授权)
  • 不用:无授权设备(红线:仅授权设备;设备隔离与保全原则见 [[gotchas]])

工具准备

adb(Android 设备接口)
  • Linux: apt install adb / dnf install android-tools;macOS: brew install android-platform-tools;Windows: 官方平台工具
  • 验证: adb --version;adb devices 需设备开启 USB 调试并授权(屏幕弹窗确认)
libimobiledevice(iOS 设备接口)
  • Linux: apt install libimobiledevice-utils;macOS: brew install libimobiledevice;Windows: 官方构建
  • 验证: idevice_id -l(列出设备)
备份解析工具
  • Android: abe(Android Backup Extractor,Java jar,GitHub nelenkov/android-backup-extractor:java -jar abe.jar unpack backup.ab backup.tar)或等价 python 脚本;验证: java -jar abe.jar --help(需 Java,安装见 [[re-java]])
  • iOS: idevicebackup2 + manifest 解析(见步骤 2)
  • sqlite3(数据库读取——Linux: apt install sqlite3;macOS: brew install sqlite3;Windows: 官方构建);验证: sqlite3 --version
  • foremost(数据雕刻——Linux: apt install foremost;macOS: brew install foremost);验证: foremost -h
  • python3(解析脚本):安装见 [[re-python]] 工具准备

操作步骤

按顺序执行;设备操作遵循授权边界(红线:仅授权设备)。取证顺序:隔离(断网/飞行模式)→ 记录设备状态(版本/解锁/加密/网络)→ 只读提取优先 → 产物存档。每步产物存档(路径 + sha256,见 [[re-triage]]);远端擦除与保全细节见 [[gotchas]]。

  1. Android 提取:

    sh
    adb backup -f backup.ab -all        # 全量备份(应用需允许备份)
    adb backup -f app.ab -apk -noobb com.target.app   # 单应用备份(按包名)
    adb shell run-as com.target.app ls data   # 应用沙箱(debuggable 应用)
    # root 设备:dd 镜像关键分区 / adb pull /data 直接提取
    • 备份可行性预检:adb shell bmgr list transports(确认系统备份服务可用;无输出/报错 → adb backup 不可用,换路径)
    • 设备状态记录:版本(adb shell getprop ro.build.version.release)+ 加密/解锁状态(影响后续解析路径)
    • adb backup 现状:Android 12 起官方弃用,targetSDK 31+ 的应用数据不再导出(仅 targetSDK<31 或 debuggable 应用有效,Play 商店新应用基本不可用)——失效时换 root/镜像提取(判据见 [[decision-tree]])
    • ab 格式:魔数 ANDROID BACKUP + 版本/标志字节(压缩/加密位)+ 可选 AES-256-CBC 加密参数 + tar(可 deflate 压缩)负载
    • 备份解析:ab 头 → 解包 tar(加密备份需备份密码;无密码标注不可提取);产物先用 file backup.ab 验魔数与大小
    • 产物存放:独立目录 + 命名含设备标识/时间(防多设备混淆)
    • 解析组合套路:abe unpack backup.ab backup.tar(加密备份密码为末尾位置参数:abe unpack backup.ab backup.tar <密码>,或设 ABE_PASSWD 环境变量)→ tar tf 列内容 → sqlite3/plist 分析
    • 应用沙箱:run-as(debuggable)/ root 设备直接读;allowBackup=false 的应用备份为空且无警告(见坑 2)
    • run-as 二进制安全拉取:adb exec-out run-as com.target.app cat files/x.db > x.db(exec-out 不做终端转义)
    • root 镜像注意:先查分区表(adb shell ls /dev/block/by-name/ 或 cat /proc/partitions)再 dd 目标分区;镜像产物大,先确认磁盘空间
    • 硬件 Keystore 密钥不可通过备份导出(绑定设备硬件,标注局限)
    • 数据库提取 → sqlite3([[re-disk-forensics]] 的 SQLite 页结构方法)
  2. iOS 提取:

    sh
    idevicebackup2 backup ./backup_dir
    # 备份结构:Manifest.plist(元数据)+ Manifest.db(文件索引)+ 按 fileID 分目录的文件
    • 备份结构:Manifest.db(SQLite 文件索引:domain/相对路径 → fileID,iOS 10+;更早版本为 Manifest.mbdb)、Manifest.plist(备份元数据:IsEncrypted/BackupKeyBag/ManifestKey/设备信息)、Info.plist(设备信息)、Status.plist(备份状态)、文件按 fileID 命名(fileID = SHA1(domain + "-" + relativePath),由路径派生、与内容无关;见 [[gotchas]] 解析坑)
    • 首次连接需设备端信任(设置 > 通用 > 设备管理/信任此电脑)——未信任时 idevice_id 无输出
    • 加密备份判定:读 Manifest.plist 的 IsEncrypted 键(加密备份下 Manifest.plist 仍可明文读取,密钥材料 BackupKeyBag/ManifestKey 就在其中);被加密的是 Manifest.db 与各文件内容——需备份密码解密(无密码则标注不可提取)
    • Keychain 数据在 keychain-backup.plist,同样需备份密码解密(密钥由密码派生,工具差异大,按实际工具文档操作)
    • 应用数据路径:Library/Preferences(plist 偏好)、Documents(用户数据)、Caches(缓存)、Library/Application Support(数据库常见位置)——App 结构理解见 [[re-mobile]]
    • 提取优先级:数据库 > 偏好 > 缓存(缓存可能含已删除内容残留)
    • 备份完整性核对:按 Manifest.db 索引逐条核对——每条 domain/相对路径对应的 fileID 文件实际存在,索引与文件不一致时标注
    • 备份与实时提取选型:备份优先(不触碰设备,证据完整性好);需最新状态时实时提取并记录操作时间
    • 已有本地备份时直接解析默认目录:~/Library/Application Support/MobileSync/Backup(每设备独立子目录,核对 UDID 防混设备)
  3. 删除恢复与时间线:

    • SQLite 删除记录:freelist 页/WAL 未 checkpoint 页/未分配页残留——先确认 journal_mode(WAL/delete/journal)再选恢复路径,方法见 [[re-disk-forensics]] 数据库文件格式
    • 数据雕刻:foremost 对未分配空间按文件签名恢复(图片/压缩包/数据库页);默认覆盖常见签名(jpg/png/zip),自定义类型用配置文件(-c);恢复物用 magic/可读性验证([[re-triage]] 初勘)
    • 加密设备注意:Android FBE/全盘加密下未分配页是密文,雕刻无效——优先走备份/镜像内已解密文件路径(见坑 8)
    • 时间线重建:文件时间戳 + 数据库记录时间(先归一 UTC,标注设备时区——坑 4)+ Status.plist 备份时点(佐证)
    • 恢复数据交叉验证:同一记录在多个数据库出现(如聊天库 + 索引库)时交叉比对,提高可信度
    • 产出:时间线表(时间/动作/来源)+ 恢复数据(按应用/数据类型归档);时间线证据分级见 [[decision-tree]]
  4. 证据整合与交付:

    • 汇总:时间线表 + 提取物清单(每类数据的来源/提取方式/可信度)+ 方法记录
    • 结论按 [[re-analyze/analysis-contract]] 复核格式交付(结论/证据/置信度);删除恢复带「部分恢复」限定
Show full SKILL.md (71 more words)Show less

跨域联合

  • [[re-forensics]] 网关:本技能归属
  • [[re-disk-forensics]]:SQLite 结构/WAL/删除恢复方法
  • [[re-mobile]]:App 结构理解(沙箱路径/数据结构)
  • [[re-frida]]:运行中动态提取(本技能是静态/备份侧,两者互补)
  • [[re-triage]]:产物初勘(类型/magic/哈希)
  • [[re-mem-forensics]]:设备内存转储分析衔接(root 设备可 dump 内存)
  • [[re-analyze/analysis-contract]]:结论交付格式

常见坑与陷阱

  • 加密备份无密钥:现象——备份无法解析;原因——AES 加密;对策——无密码则标注不可提取,不硬破解(授权边界)
  • ADB backup 权限限制:现象——备份为空;原因——应用未声明 allowBackup 或 targetSDK≥31(Android 12+);对策——换 root/镜像提取,标注路径局限
  • iOS 哈希路径混淆:现象——文件找不到;原因——备份文件按 fileID(路径派生的 SHA1,不是内容哈希)分两级目录组织(fileID 前两位/完整 fileID),不是原名;对策——先解析 Manifest.db 的 domain/相对路径 ↔ fileID 映射再定位文件
  • 时间线时区:现象——时间错位;原因——设备时区与取证时区不一致;对策——统一 UTC 记录,标注设备时区
  • 沙箱边界:现象——拿不到目标数据;原因——无 root/未越狱;对策——按可提取范围交付(限定结论),不越授权
  • 设备联网被远端擦除:现象——提取中数据消失/变化;原因——设备联网触发远端抹除/同步覆盖;对策——先隔离(飞行模式/断网),后接电源防自动关机
  • 备份中途损坏:现象——备份文件不完整/解析报错;原因——操作中断(线缆/锁屏/空间不足);对策——重试前确认空间与连接稳定,产物 sha256 存档;损坏备份按未分配数据走雕刻
  • 完整性校验缺失:现象——提取数据被篡改/不完整不知情;原因——未做校验;对策——产物 sha256 存档,镜像类产物校验分区摘要(无摘要则标注无法校验)
  • FBE/全盘加密:现象——雕刻恢复出来是密文;原因——设备开启文件级/全盘加密(现代 Android 默认);对策——优先走备份/镜像内已解密文件路径,标注加密局限
  • 锁屏/授权状态:现象——adb devices 显示 unauthorized/offline;原因——锁屏未解锁/USB 调试授权过期;对策——先解锁(授权范围内)再连接,记录授权状态
  • adb 多设备歧义:现象——命令报错/操作错设备;原因——多设备连接未指定序列号;对策——adb devices 确认序列号,命令加 -s <serial>
  • 删除恢复误判:现象——恢复出的「已删除」记录实际是应用保留的冗余副本;原因——应用多处保存;对策——以「备份内不存在 + 镜像内存在」为删除判据(交叉验证)
  • 备份密码遗忘:现象——有密码备份但密码丢失;原因——密码未随备份记录;对策——提取时立即记录密码来源(授权范围内),不可恢复时标注
  • 备份格式版本差异:现象——解析工具报格式错;原因——新旧 Android/iOS 备份格式差异;对策——用与系统版本匹配的工具链,标注版本
  • 场景分支与提取路径选择见 [[decision-tree]];边界与反例见 [[gotchas]]

© dslsdzc, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in .claude/skills/re-mobile-forensics of dslsdzc/rev-skills.

  • SKILL.md
  • references/decision-tree.md
  • references/gotchas.md

Open the folder on GitHubat commit bd21db8

Compare with similar skills

Re Mobile Forensics next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Re Mobile Forensics compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Re Mobile Forensics this skilldslsdzc/rev-skills130—~1.6kAutomated safety check: PassApache-2.0
Appium Skillsickn33/agentic-awesome-skills47k1 repos~2.8kAutomated safety check: PassMIT
Mobilerun Docs Referencedroidrun/mobilerun9.6k—~943Automated safety check: PassMIT
Phoneagentrounak/PhoneAgent799—~2.2kAutomated safety check: PassMIT
Frb Android Emulator Preparefzyzcjy/flutter_rust_bridge5.4k—~2.1kAutomated safety check: NotesMIT
Android Maps Ktxgooglemaps/android-maps-ktx360—~897Automated safety check: PassApache-2.0

Similar skills

  • Appium Skill

    sickn33/agentic-awesome-skills

    Generates production-grade Appium mobile automation scripts for Android and iOS in Java, Python, or JavaScript.

    47k GitHub starsUsed in 1 repo~2.8k tokens
    MobileAuto-check passed
  • Mobilerun Docs Reference

    droidrun/mobilerun

    Answers questions about Mobilerun, the LLM-agent framework for automating Android and iOS devices, by pointing the agent to the right page of its v5 documentation.

    9.6k GitHub stars~943 tokensUpdated 3 days ago
    MobileAuto-check passed
  • Phoneagent

    rounak/PhoneAgent

    Control a connected iPhone, iOS simulator, Android emulator, or Android device from macOS through PhoneAgent's JSON-RPC bridge.

    799 GitHub stars~2.2k tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Frb Android Emulator Prepare

    fzyzcjy/flutter_rust_bridge

    A skill your agent uses when preparing, installing, diagnosing, or explaining the host Android Emulator environment for flutterrustbridge local runtime validation, including Android SDK command-line…

    5.4k GitHub stars~2.1k tokensUpdated yesterday
    MobileAuto-check: notes
  • Android Maps Ktx

    googlemaps/android-maps-ktx

    Provides idiomatic Kotlin extension (KTX) patterns, reactive Flow event streams, and multi-subscriber shareIn rules for Google Maps SDK for Android and its Utility Library.

    360 GitHub stars~897 tokensUpdated yesterday
    MobileAuto-check passed
  • Teswiz Project

    znsio/teswiz

    A skill your agent uses when working in the znsio/teswiz repository to modify framework code, Cucumber/TestNG hooks, Applitools visual testing flows, configs/caps, or related docs/tests.

    105 GitHub stars~977 tokensUpdated yesterday
    Testing & QAAuto-check passed

More from dslsdzc/rev-skills

All 40 skills in this repo
  • Captures an analyzable sample from a live system when the target leaves no file on disk, by finding abnormal executable memory and the execution context that reached it.

    130 GitHub stars~2k tokensUpdated 4 days ago
    Auto-check passed
  • APK Static Analysis

    dslsdzc/rev-skills

    Guides static analysis of an Android APK with jadx and apktool: reading the manifest, Java code, resources and permissions, and recognizing hardening or obfuscation.

    130 GitHub stars~2k tokensUpdated 4 days ago
    Auto-check passed
  • Re Attribution

    dslsdzc/rev-skills

    威胁归因方法论:钻石模型、基础设施图谱、置信度分级与归因报告. An agent skill from dslsdzc/rev-skills.

    130 GitHub stars~1.1k tokensUpdated 4 days ago
    Auto-check passed
  • Re Format Elf

    dslsdzc/rev-skills

    ELF 格式解析:ehdr/phdr/shdr、GOT/PLT、initarray、符号恢复. An agent skill from dslsdzc/rev-skills.

    130 GitHub stars~1.9k tokensUpdated 4 days ago
    Auto-check passed
  • Re Fp Runtime

    dslsdzc/rev-skills

    函数式语言运行时逆向(Haskell/OCaml):闭包/堆对象模型、调用约定、数据流优先策略. An agent skill from dslsdzc/rev-skills.

    130 GitHub stars~1.4k tokensUpdated 4 days ago
    Auto-check passed
  • Re Frida

    dslsdzc/rev-skills

    Frida 动态插桩(桌面+移动统一). An agent skill from dslsdzc/rev-skills.

    130 GitHub stars~2.8k tokensUpdated 4 days ago
    Auto-check passed

Categories

Questions about Re Mobile Forensics

What does Re Mobile Forensics do?

移动设备取证:Android/iOS 备份解析、应用数据提取、删除恢复与时间线. An agent skill from dslsdzc/rev-skills. Re Mobile Forensics is an agent skill from dslsdzc/rev-skills.

When should I use Re Mobile Forensics?

Re Mobile Forensics fits situations like: tasks that involve Mobile testing and debugging; tasks that involve Digital forensics.

How do I install Re Mobile Forensics in Claude Code?

Run `npx skills add dslsdzc/rev-skills --skill re-mobile-forensics -a claude-code`. Or copy the skill folder (.claude/skills/re-mobile-forensics in dslsdzc/rev-skills) into .claude/skills/re-mobile-forensics in your project. Claude Code loads it when a task matches its description.

How do I install Re Mobile Forensics in Codex?

Run `npx skills add dslsdzc/rev-skills --skill re-mobile-forensics -a codex`. Or copy the skill folder (.claude/skills/re-mobile-forensics in dslsdzc/rev-skills) into .agents/skills/re-mobile-forensics in your project. Codex loads it when a task matches its description.

Can I use Re Mobile Forensics in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dslsdzc/rev-skills --skill re-mobile-forensics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/re-mobile-forensics, .gemini/skills/re-mobile-forensics, .github/skills/re-mobile-forensics and .opencode/skills/re-mobile-forensics in your project.

What does Re Mobile Forensics need to run?

Going by SKILL.md and its folder, Re Mobile Forensics needs the command-line tools its instructions call (adb, apt, brew, java, dnf and sqlite3). Our summary lists: Python 3.

Does Re Mobile Forensics access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Re Mobile Forensics safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Re Mobile Forensics use?

Re Mobile Forensics is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Re Mobile Forensics use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.

What are the alternatives to Re Mobile Forensics?

Skills that share tags, products or a category with Re Mobile Forensics: Appium Skill (sickn33/agentic-awesome-skills, 47k stars), Mobilerun Docs Reference (droidrun/mobilerun, 9.6k stars), Phoneagent (rounak/PhoneAgent, 799 stars) and Frb Android Emulator Prepare (fzyzcjy/flutter_rust_bridge, 5.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Re Mobile Forensics?

dslsdzc (a GitHub user) maintains it in dslsdzc/rev-skills, which has 130 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on October 5, 2026.

Source: dslsdzc/rev-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.