{
  "added_at": "2026-10-17",
  "additional_evidence_urls": [
    "https://github.com/rehosting/penguin/blob/b645cd23852a41781181a651779b82a48c0c3fd3/LICENSE",
    "https://github.com/rehosting/penguin/blob/b645cd23852a41781181a651779b82a48c0c3fd3/docs/workflow.md",
    "https://github.com/rehosting/penguin/blob/b645cd23852a41781181a651779b82a48c0c3fd3/docs/schema_doc.md",
    "https://github.com/rehosting/penguin/releases/tag/v3.1.21",
    "https://www.ndss-symposium.org/wp-content/uploads/bar2025-final10.pdf"
  ],
  "category": "firmware",
  "description_en": "Rehost embedded Linux firmware from an extracted root filesystem using a generated, editable configuration of emulation transformations, then refine it through a guest root shell, forwarded network services and recorded dynamic-analysis output.",
  "description_zh": "以提取出的根文件系统为输入，生成可编辑的仿真变换配置来重托管嵌入式 Linux 固件，再借助客户机 root shell、转发到主机的网络服务和记录下的动态分析输出，逐步完善配置。",
  "entry_url": "https://awesomerea.org/resources/penguin/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/penguin/",
  "evidence_url": "https://github.com/rehosting/penguin/blob/b645cd23852a41781181a651779b82a48c0c3fd3/README.md",
  "group": "tools",
  "id": "penguin",
  "json_url": "https://awesomerea.org/resources/penguin/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/penguin/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/penguin/index.md",
  "name": "Penguin",
  "name_zh": "Penguin 固件重托管工具",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Reviewed release: v3.1.21, published 2026-10-06 and tagged at the reviewed commit. Install by pulling the rehosting/penguin container from Docker Hub and installing its penguin wrapper script; source and Nix builds are documented separately.",
    "Input is a root-filesystem tarball with permissions and ownership preserved, made with the bundled fw2tar or by hand. Penguin uses whole-system emulation with a replacement kernel selected for the detected architecture; it does not reproduce the original device faithfully or recover source code. Failed rehostings are refined by editing the configuration and rerunning.",
    "The BAR 2025 workshop paper, co-located with NDSS, reports author-run results on 13,649 embedded Linux images from 69 vendors, with working rehostings for 75% more firmware than the prior state of the art. That evaluation predates this release.",
    "GPL-2.0-or-later; the README also carries a U.S. Government rights notice. Findings from the emulated system need analyst interpretation."
  ],
  "requirements_zh": [
    "所审阅版本为 v3.1.21，发布于 2026-10-06，其标签指向所审阅的提交。安装方式是从 Docker Hub 拉取 rehosting/penguin 容器，再安装其 penguin 包装脚本；源码构建和 Nix 构建另有文档说明。",
    "输入为保留权限和属主信息的根文件系统 tar 包，可用附带的 fw2tar 生成或手工制作。Penguin 采用整机仿真，并根据检测到的架构换用替代内核，不能如实复现原始设备，也不恢复源代码。重托管失败时，需修改配置后重新运行。",
    "与 NDSS 同期举办的 BAR 2025 研讨会论文报告了作者在 69 家厂商的 13,649 个嵌入式 Linux 镜像上的结果：能构建出可用重托管环境的固件比此前最佳方法多 75%。该评估早于本版本。",
    "采用 GPL-2.0-or-later；README 另附美国政府权利声明。仿真系统中的发现需要分析者解读。"
  ],
  "targets": [
    "firmware"
  ],
  "url": "https://github.com/rehosting/penguin",
  "verification": "source-reviewed",
  "verified_at": "2026-10-17"
}
