{
  "added_at": "2026-11-02",
  "additional_evidence_urls": [
    "https://github.com/leonjza/frida-boot/blob/73d1adf76275dd20a3da81bbc310cae58db78bfb/course/README.md",
    "https://github.com/leonjza/frida-boot/blob/73d1adf76275dd20a3da81bbc310cae58db78bfb/course/_sidebar.md",
    "https://github.com/leonjza/frida-boot/blob/73d1adf76275dd20a3da81bbc310cae58db78bfb/Dockerfile",
    "https://github.com/leonjza/frida-boot/blob/73d1adf76275dd20a3da81bbc310cae58db78bfb/docker.sh",
    "https://github.com/leonjza/frida-boot/blob/73d1adf76275dd20a3da81bbc310cae58db78bfb/course/1-chapter-1/internals.md",
    "https://github.com/leonjza/frida-boot/blob/73d1adf76275dd20a3da81bbc310cae58db78bfb/course/2-chapter-2/repurposing.md",
    "https://github.com/leonjza/frida-boot/blob/73d1adf76275dd20a3da81bbc310cae58db78bfb/course/3-chapter-3/operating-modes.md",
    "https://github.com/leonjza/frida-boot/tree/73d1adf76275dd20a3da81bbc310cae58db78bfb/software",
    "https://hub.docker.com/r/leonjza/frida-boot"
  ],
  "category": "learning",
  "description_en": "A beginner workshop by leonjza on binary instrumentation with Frida, served as offline pages from a Docker container that has gdb with GEF and frida-tools preinstalled. Three chapters move from a small Linux C program, LD_PRELOAD hooks and how library calls resolve through the PLT and GOT, to Frida’s Interceptor for reading arguments and changing return values, NativeFunction for calling a program’s own functions, Python injector tools, RPC exports, TypeScript agents, frida-server and frida-gadget. It deliberately leaves out Frida’s mobile-app uses, and every exercise targets sample programs shipped with the workshop.",
  "description_zh": "leonjza 编写的 Frida 二进制插桩入门工作坊，课程页面由一个 Docker 容器离线提供，容器内已预装带 GEF 的 gdb 和 frida-tools。三个章节从一个小型 Linux C 程序、LD_PRELOAD 钩子以及库函数调用如何经由 PLT 和 GOT 解析讲起，再到用 Frida 的 Interceptor 读取参数和修改返回值、用 NativeFunction 调用程序自身的函数、编写 Python 注入工具、RPC 导出、TypeScript 代理，以及 frida-server 和 frida-gadget。课程有意不涉及 Frida 在移动应用上的用法，所有练习都针对工作坊自带的示例程序。",
  "entry_url": "https://awesomerea.org/resources/frida-boot-workshop/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/frida-boot-workshop/",
  "evidence_url": "https://github.com/leonjza/frida-boot/blob/73d1adf76275dd20a3da81bbc310cae58db78bfb/README.md",
  "group": "learn",
  "id": "frida-boot-workshop",
  "json_url": "https://awesomerea.org/resources/frida-boot-workshop/record.json",
  "kind": "learning-resource",
  "markdown_url": "https://awesomerea.org/resources/frida-boot-workshop/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/frida-boot-workshop/index.md",
  "name": "Frida Boot: a beginner binary instrumentation workshop",
  "name_zh": "Frida Boot：二进制插桩入门工作坊",
  "record_type": "resource",
  "relationship": "learning",
  "requirements": [
    "The reviewed master commit dates from 2021-04-28, with no releases or tags; the prebuilt leonjza/frida-boot image on Docker Hub (tag latest, amd64 only) was last updated the same day. The README links a YouTube recording of the workshop and keeps a PDF of the slides in slides/.",
    "Needs a host with Docker. docker.sh pulls or builds the image and starts it with the SYS_PTRACE capability, serving the course at localhost:9999 and mounting a local code folder into the container. The Dockerfile builds on Debian bullseye-slim and downloads frida-server and frida-gadget 12.9.4 for linux-x86_64, but installs frida-tools, GEF and the frida-agent-example project unpinned, so a fresh build will not reproduce the 2021 tool versions.",
    "Exercises compile and instrument the workshop’s own C samples in software/: a random sleep loop, a fake_sleep LD_PRELOAD library and a PIN-check program whose test_pin function the lessons call directly from Frida, with numbered JavaScript, TypeScript and Python snippets for each step. No third-party target binaries are included or needed; the material covers x86_64 Linux user-space processes.",
    "The repository has no license file and GitHub detects none; the bundled docsify scripts and themes keep their own licenses, and Frida, GEF and the base image are fetched under theirs."
  ],
  "requirements_zh": [
    "所审阅的 master 提交日期为 2021-04-28，没有发行版或标签；Docker Hub 上预构建的 leonjza/frida-boot 镜像（latest 标签，仅 amd64）也于同日最后更新。README 附有工作坊的 YouTube 录像链接，slides/ 中保存了幻灯片的 PDF。",
    "需要装有 Docker 的主机。docker.sh 拉取或构建镜像，以 SYS_PTRACE 权限启动容器，在 localhost:9999 提供课程页面，并把本地代码文件夹挂载到容器中。Dockerfile 基于 Debian bullseye-slim，下载 linux-x86_64 版 frida-server 和 frida-gadget 12.9.4，但 frida-tools、GEF 和 frida-agent-example 项目均未固定版本，因此现在重新构建无法重现 2021 年的工具版本。",
    "练习编译并插桩工作坊自带的 software/ 中的 C 示例：一个随机休眠循环、一个用于 LD_PRELOAD 的 fake_sleep 库，以及一个 PIN 校验程序，课程会从 Frida 直接调用其中的 test_pin 函数；每一步都配有编号的 JavaScript、TypeScript 和 Python 代码片段。不包含也不需要任何第三方目标二进制；内容针对 x86_64 Linux 用户态进程。",
    "仓库没有许可证文件，GitHub 也未识别出许可证；随附的 docsify 脚本和主题保留各自的许可证，Frida、GEF 和基础镜像按各自条款下载。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/leonjza/frida-boot",
  "verification": "source-reviewed",
  "verified_at": "2026-10-20"
}
