Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
workshop_firmware_reverse_engineering — 固件逆向工程研讨会 | Kitploit
工具/GitHubGitHub/emproof-com/workshop_firmware_reverse_engineering
嵌入式系统安全静态分析逆向工程恶意软件分析硬件与物联网安全二进制分析学习与教育固件分析实验室与实践

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHubemproof-com/workshop_firmware_reverse_engineering

workshop_firmware_reverse_engineering

固件逆向工程研讨会

查看仓库
44355211个月前Kitploit 审核通过

工作坊:固件逆向工程

此仓库包含 幻灯片 和动手实践材料,内容围绕 Emproof 在 ScapyCon Automotive 2025 上举办的固件逆向工程工作坊。该工作坊面向具有最少安全经验的技术受众,通过实用、自包含的任务教授基础知识。主题包括:

  • 基础文件/ELF分析;
  • 软件破解与密钥生成;
  • 字符串解密与恶意软件分类;
  • 嵌入式Linux固件解包;
  • 裸机分析;
  • 密码检测;
  • 混淆/反分析技术及其绕过方法;

如果这也合你胃口,还可以查看 Emproof 技术网络研讨会系列,其中包含更多练习和录制课程。

工作坊内容由 Tim Blazytko 设计与组织,Simran Kathpalia 提供支持。

设置

要设置环境,请克隆仓库:

root@kitploit:~
git clone https://github.com/emproof-com/workshop_firmware_reverse_engineering
cd workshop_firmware_reverse_engineering

对于多个任务,我们需要一个 AArch64 Linux 执行环境。我们提供了一个基于 Kali Linux 的 Docker 容器,预装了常用工具(例如 GNU Binutils、Binwalk)。这简化了跨 Linux、Windows 和 macOS 的环境设置——无论宿主机 CPU 架构如何。启动容器并进入 shell 的命令如下:

root@kitploit:~
./docker_run.sh

注意: 首次运行可能需要一段时间来构建镜像。

注意(架构): Docker Compose 服务设置了 platform: "linux/arm64"。
在 x86_64 宿主机(Intel macOS/Windows/Linux)上,Docker Desktop 将在仿真模式下运行镜像,因此首次构建和启动可能较慢——这是正常的。在原生的 ARM64 宿主机(Apple Silicon、ARM 服务器)上,它会原生运行,速度更快。

注意: Docker 容器也可以运行 ARMv7 (armhf) 二进制文件。我们在镜像中安装了 armhf 运行时(动态加载器 + 库),并通过启动脚本注册了 aarch64 和 arm 的 binfmt 处理程序。

此外,请在宿主机上安装以下图形工具,用于交互式逆向工程任务(这些工具不包含在容器中):

  • Ghidra
  • Binary Ninja Free

这两个工具均可用于 Windows、Linux 和 macOS。

注意: Binary Ninja Free 不支持 AArch64。对于 AArch64 分析,请使用 Ghidra(或获得许可的 Binary Ninja 构建版)。因此,几个实验室提供了 ARMv7 配套 二进制文件(*.armv7),专门用于 Binary Ninja Free;这些文件也可以在同一个容器中运行。

任务顺序

每个任务都包含在 tasks/<name>/ 中,并包括:

  • samples/ — 练习中使用的二进制文件(有时包含源码)
  • task.md — 包含逐步指导与提示的任务说明

任务可以独立尝试,但我们提供了一个推荐顺序(如下所列),该顺序逐渐增加难度并逐步引入新技术。大多数示例针对 ARMv7 (Thumb/ARM32) 或 AArch64;在相关之处,任务说明会标注架构、所需工具以及任何特殊的运行时需求。

  • tasks/hello_world:ELF 文件及元数据分析基础;Ghidra / Binary Ninja 入门。

  • tasks/license_check:提取硬编码密钥/解锁功能;基本补丁以绕过验证(破解)。

  • tasks/game:简单的猜数字游戏;理解逻辑并破解试用版与完整版模式。

  • tasks/keygenning_1:逆向许可证验证,编写最小密钥生成器以生成有效序列号。

  • tasks/keygenning_2:稍复杂的密钥生成任务(盐值/密钥、十六进制编码)。

  • tasks/string_encryption:包含加密字符串的二进制文件(常见于恶意软件);识别解密器并静态恢复字符串。

  • tasks/mirai:使用字符串解密例程的嵌入式恶意软件;浏览更大的代码库,识别有趣的结构,处理混淆字符串。

  • tasks/embedded_linux_1:带有文件系统的嵌入式 Linux 固件;解包、探索并破解 Linux 登录信息(CTF 风格)。

  • tasks/embedded_linux_2:类似,但查找并分析一个本不该存在的隐藏二进制文件。

  • tasks/car_demo:裸机固件分析:识别架构、开发板、内存映射、工具链工件;提取 Wi-Fi 凭据和协议端点。

  • tasks/iot_diag:诊断工具的裸机固件转储;根据数据手册重建内存布局,然后找到解锁诊断模式的密码。

  • tasks/crypto_detection:执行密码操作的 AArch64 二进制文件,使用硬编码 AES 密钥;定位 EVP 调用并回溯密钥/IV 以在不运行程序的情况下解密。

  • tasks/license_check_anti_patching:通过代码校验和进行反补丁;理解 CRC 守卫并学习绕过方法。

许可证

除非另有说明,本仓库中的所有工作坊材料均采用 GNU 通用公共许可证第2版 (GPL-2.0) 授权。完整文本请参见 LICENSE。

一些第三方/外部来源的示例被排除在 GPL 之外,仅用于分析/教育(禁止再分发)。这些文件是:

  • tasks/mirai/samples/
  • tasks/embedded_linux_1/samples/
  • tasks/embedded_linux_2/samples/

注意: 如果子目录包含自己的许可证文件或头部,则该子目录内容以对应的许可证为准。

下载工具
  • tasks/fibonacci_obfuscation:干净版本 vs 混淆版本的斐波那契实现(switch 扁平化、计算 goto、不透明谓词、算术混淆、小型虚拟机);理解这些技术并将其归一化。