# Embedded Hacking 嵌入式逆向课程（mytechnotalent）

> mytechnotalent 编写的免费英文课程，讲解 Raspberry Pi Pico 2（RP2350，Arm Cortex-M33）固件的开发、调试与逆向。14 周的课程大纲配有幻灯片、Markdown 笔记和 40 章 PDF 教材，按“编写、调试、再破解”的模式，从 hello world 讲到变量、数据类型、常量、运算符、条件语句、结构体和函数，使用 GDB 配合 OpenOCD 以及 Ghidra，第 4 周起的笔记另有 Binary Ninja 和 IDA 版本；练习围绕 I2C LCD、GPS、LoRa 无线模块、舵机和红外遥控展开。计分 CTF、剧情式“机密简报”挑战和一个安全启动自定义引导程序均以作者构建的二进制文件形式提供，并附有源码。

- 类型：学习资源
- 目标：固件
- 类别：学习资源
- 关联：学习资源
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/mytechnotalent/Embedded-Hacking>
- 一手来源：<https://github.com/mytechnotalent/Embedded-Hacking/blob/76fa253e9b54aba39b9b02d7738664a65864b425/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/mytechnotalent-embedded-hacking/>
- 记录 JSON：<https://awesomerea.org/resources/mytechnotalent-embedded-hacking/record.json>
- 英文版：[English](https://awesomerea.org/resources/mytechnotalent-embedded-hacking/index.md)

## 使用条件与局限

- 审阅提交为 76fa253（2026-10-19）。仓库创建于 2023 年 10 月，但当前历史从 2026-10-07 的一次初始提交重新开始，此后几乎每天都有提交；项目没有发布版本。第 1–7 周和第 9–11 周提供幻灯片和笔记；第 8 周是以 CTF-02 为题的期中考试，第 12–13 周只列出主题，第 14 周的两个期末项目只有情境描述，没有链接文件。README 另有一个补充资料部分，明确列在课程范围之外，链接作者其他仓库中的 Rust、Arm 汇编和 RISC-V 汇编教程、驱动程序以及物联网 CTF 项目。
- README 要求学习者具备中级 C 语言（包括指针）、裸机汇编基础、对寄存器和栈的基本理解、命令行操作能力以及面包板搭建能力。硬件包括 Raspberry Pi Pico 2、Raspberry Pi Debug Probe 和清单所列元件，其中有 LED、按键、1602 I2C LCD、DHT11 传感器、SG90 舵机、VS1838B 红外接收器及 NEC 遥控器、u-blox NEO-6M GPS 模块、两个 REYAX RYLR998 LoRa 模块和 FT232RL USB 转串口适配器；Fritzing 工程和接线图位于 hardware/ 目录。
- 可在 Windows x64、Apple 芯片 macOS 和 Linux x64 上原生搭建环境：VS Code 的 Raspberry Pi Pico 扩展会安装 Pico SDK、Arm GNU 工具链、picotool 和 OpenOCD，构建使用 CMake 和 Ninja，课程另需 Ghidra 及 JDK 21、串口终端和已授权的 Binary Ninja Personal；IDA 版本的笔记还需要 IDA。仓库根目录的烧录和调试服务器脚本封装了烧录与调试服务器的启动。
- 无需任何第三方固件：练习对象都是作者自己编写的程序，仓库提交了它们的源码和构建产物（ELF、BIN、UF2、HEX、反汇编与 map 文件）、两个 Binary Ninja 数据库、CTF-02 的静态库（其 auth 模块、mbedTLS 子集和 Argon2 参考实现）、RP2350 SVD 文件，以及自定义引导程序的签名镜像。datasheets/ 目录收录 RP2350 数据手册、Pico C/C++ SDK 手册、Arm Cortex-M33 技术参考手册、Armv8-M 架构参考手册、AAPCS32 和 Application Note 132 的副本，这些文档适用各自发布者的条款。
- 仓库采用 Apache-2.0 许可证。README 的法律声明将用途限定为教育、研究和防御性工作，且只能针对用户自有或已获明确授权测试的设备。仓库附带的 OpenCode 技能只用于检查作者的 C 代码规范。

## 一手来源

1. <https://github.com/mytechnotalent/Embedded-Hacking/blob/76fa253e9b54aba39b9b02d7738664a65864b425/README.md>
2. <https://github.com/mytechnotalent/Embedded-Hacking/tree/76fa253e9b54aba39b9b02d7738664a65864b425>
3. <https://github.com/mytechnotalent/Embedded-Hacking/blob/76fa253e9b54aba39b9b02d7738664a65864b425/README.md#L44-L180>
4. <https://github.com/mytechnotalent/Embedded-Hacking/blob/76fa253e9b54aba39b9b02d7738664a65864b425/README.md#L244-L641>
5. <https://github.com/mytechnotalent/Embedded-Hacking/tree/76fa253e9b54aba39b9b02d7738664a65864b425/datasheets>
6. <https://github.com/mytechnotalent/Embedded-Hacking/blob/76fa253e9b54aba39b9b02d7738664a65864b425/WEEK07/0x0017a_ctf/CMakeLists.txt>
7. <https://github.com/mytechnotalent/Embedded-Hacking/blob/76fa253e9b54aba39b9b02d7738664a65864b425/WEEK11/0x0026a_custom-bootloader/README.md>
8. <https://github.com/mytechnotalent/Embedded-Hacking/blob/76fa253e9b54aba39b9b02d7738664a65864b425/.opencode/skill/embedded-c-standard/SKILL.md>
9. <https://github.com/mytechnotalent/Embedded-Hacking/blob/76fa253e9b54aba39b9b02d7738664a65864b425/LICENSE>

## 同分区更多条目：文档与学习资源

- [逆向分析蓝牙雷达测速预警器协议](https://awesomerea.org/zh/resources/cobra-irad-bluetooth-protocol-walkthrough/index.md) · 学习资源
- [Link Pi ENCx 编码器非官方逆向文档](https://awesomerea.org/zh/resources/linkpi-encx-unofficial-docs/index.md) · 学习资源
- [ReverseJS AST 反混淆配套资料](https://awesomerea.org/zh/resources/reversejs-ast-deobfuscation-materials/index.md) · 学习资源
- [MCP 逆向数据集（mrexodia）](https://awesomerea.org/zh/resources/mcp-reversing-dataset/index.md) · 学习资源
- [ICSim 汽车仪表盘 CAN 总线模拟器](https://awesomerea.org/zh/resources/icsim/index.md) · 学习资源
- [CNNPRE：基于 CNN 的协议逆向方法（IEEE Access 2023）](https://awesomerea.org/zh/resources/cnnpre/index.md) · 研究

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
