构建硬件黑客实验室的初学者指南


本文全面阐述了嵌入式系统实验室的基本要求。

工作台
首先也是最重要的,您需要一个地方来执行您的工作。根据您的需要,这可能只是您办公桌上的一小部分,或者您可能需要一个完全独立的工作台。

在选择工作台时,您很快就会发现您可以花很多钱购买高端站立式办公桌,特别是如果您正在寻找更大的办公桌。您可能会考虑寻找的一个地方是 Home Depot / Lowes,我是他们的 Husky 站立式工作台的忠实粉丝,目前在我的办公室使用其中两个。

如果您正在寻找更传统的东西,我还使用宜家的桌面和腿构建了一些工作台设置,这是工作站的一个非常受欢迎的选择。

静电放电保护
您最不想发生的事情就是意外损坏静电设备,为了避免这种情况,最好使用 ESD 腕带或 ESD 防护垫。

焊接
无论您是拆除新路由器还是寻找新目标来执行故障注入,您都需要在硬件黑客之旅中的某个时刻进行焊接。焊接是用“焊料”连接金属表面的过程;在两个焊接点之间建立导电连接。当填充未使用的调试引脚接头或将电线连接到目标电路板上您希望与之交互的点时,焊接非常有用。

烙铁
在寻找新烙铁时,必须牢记您的目标:

  • 您主要关注小型表面贴装器件 (SMD) 返工项目吗?
  • 您是否会使用可能需要大量热量才能消除的较大/较旧的组件?

理想情况下,您需要一个具有可调节温度和可拆卸烙铁头的烙铁。这些可以从亚马逊和其他在线供应商那里相对便宜地购买。我推荐一个带有紧急超时功能的产品,以防您在深夜焊接后忘记关闭烙铁。

热风站/热板
进行SMD返修时,热风站和热板都可以使用。热板的工作原理如您所料,它们需要表面与表面的接触才能加热目标器件,从而允许使用焊膏或传统烙铁将焊料粘合到接触垫上。当然,这些都有一些缺点,如果您使用的系统具有塑料连接器、外壳或双面 PCB,每一面都有组件,您将无法有效使用加热板而不冒损坏目标的风险。热板可以与热风枪结合使用,以“预热”目标,使元件拆卸变得更容易。

万用表
无论您正在处理什么类型的组件和目标,您都需要一个万用表。这是您对设备进行初步调查时使用的工具,例如测量电压、电阻、电流和检查连续性。选择万用表时,请确保检查可用的电压和电流范围,并确保它们与预期目标的范围相匹配。一些万用表还具有“自动量程”功能,该功能将尝试自动选择适当的量程来测量电压/电流/电阻等。在测量未知电压时,此功能会很有帮助;在测量目标上的点时,它可以节省您按几次按钮的时间。下面列出的两个万用表是我放在工具箱中的。我还提供了不同的探针组,可以测量更小的焊盘/引脚。

显微镜/放大倍率
第一次拆卸目标时,您首先要找到并记录所有零件号。零件编号和 PCB 标记有时很难用肉眼看到,因此拥有一台便宜的台式显微镜或手持放大镜绝不是一个坏主意。在拆卸或修改小组件时,这些也会派上用场。手持式放大镜非常适合快速识别组件。

示波器
万用表帮助我们测量目标设备上的各种信号,而示波器可以帮助我们捕获和可视化这些测量结果。选择范围时,您需要考虑用例是什么。您会进行差分功率分析或功率跟踪捕获吗?或者您对在较长时间内捕获其他类型的模拟波形更感兴趣?选择示波器时要考虑的主要变量是:

  • 通道数- 您可以捕获多少个通道
  • 内存深度- 这是您可以捕获的时间长度
  • 采样率- 模拟信号的采样速度
  • 带宽- 可通过模拟前端(探头)的输入信号的最大频率

如果没有足够的带宽,您将捕获看似失真的信号,并且采样率太慢,您将面临数据丢失的风险。

逻辑分析仪
假设您用万用表识别出波动的电压序列,并决定用示波器查看信号。使用示波器查看信号后,您会看到高脉冲和低脉冲序列。

我们需要逻辑分析仪来更好地理解该信号捕获。逻辑分析仪用于分析数字信号;它们可以获取高电压和低电压序列并将其转换为逻辑 1 和 0 流。然后可以通过软件分析和解码该 1 和 0 流,以向用户显示数据包结构和更用户友好的数据。选择逻辑分析仪时,我们需要考虑以下因素:

  • 通道数 - 一次可以分析多少个通道?
  • 采样率 - 我们可以多快采样数据?
  • 硬件采样深度/内存深度 - 我们可以采样多长时间?
  • 阈值电压 - 该设备兼容哪些电压范围?

在分析使用 SPI、eMMC 等的标准 COTS 设备时,Kingst 和 DSLogic 系列逻辑分析仪在 90% 的时间内都可以正常工作。Saleae 拥有完善的软件界面,包括用于编写解码器和检测捕获的 API。Saleae 的模拟捕获功能在调试较低级别的问题时也很有用。尽管是此处列出的最昂贵的分析仪,但如果您的预算允许,它们还是值得购买的。

示波器 vs. 逻辑分析仪

  1. 示波器可用于分析模拟波形,即随时间稳定变化的数据
  2. 逻辑分析仪用于分析数字信号,并将高/低电压脉冲转换为我们可以尝试解释的 0 和 1 序列。

夹子/跳线/探针
有时,我们必须连接到特定的焊盘或引脚来分析目标设备上的信号,但这并不总是需要焊接和移除组件。在执行固件补丁或测试 PoC 时,探测测试焊盘和读取电路内闪存芯片可以显着减少调试/分析时间。以下是我在焊接/连接到新目标时使用的一些有用的项目。PCBite 套件很方便,因为细尖探针通常可以让您在执行初始分析时无需焊接到测试焊盘。

电源
选择电源时,您需要考虑目标的电源要求。请务必检查电压和电流限制,并根据您要分析的目标选择合适的电源。有些电源具有过流保护 (OCP) 等选项,该功能可防止电源提供超出其处理能力的电流。一些电源还包括远程感应功能,用于调节目标负载的输出电压。这可以补偿连接电源和目标负载的电缆上的压降。

JTAG/调试适配器
也许在拆卸过程中,您发现了一组您认为可能用于硬件级调试的测试点或调试头,例如 JTAG 或 SWD。如果您尝试在目标上进行硬件级调试,那么查看有哪些可用的 OEM 工具总是一个好主意。我在下面列出了我保存在工具箱中的一些更通用的工具。其中大多数都是以 ARM 为中心的,因为许多其他适用于不同架构的 JTAG 工具通常需要购买特定的硬件/软件或使用 OpenOCD。

闪存阅读器
因此,您已经完成了初步拆卸并确定了要从中提取一些数据的非易失性存储设备。也许您想要从中提取数据的SPI 闪存芯片或TSOP 48 并行闪存。有许多闪存阅读器可供使用;下面是我实验室里的物品清单。Xeltek 价格有些昂贵(目前售价为 995.00 美元),不同芯片封装的单独插槽价格从 400 美元到 700 美元不等,因此成本增加得很快。然而,随着成本的增加,Xeltek 的支持和相当可靠的工具也随之而来,假设您对 BGA 返工和重新球化 IC 感到满意,那么这可能是您和您的团队的正确选择。

SBC/接口工具
在你的工具包中拥有一些通用的嵌入式接口工具总是一个好主意。我非常喜欢使用嵌入式 Linux SBC,因为它们具有灵活性,而且您可以使用整个操作系统,这可以为您提供使用您最喜欢的编程语言与标准外设进行交互的机会。

Raspberry Pi 是最常见的基于 Linux 的 SBC 之一,在过去几年中一直很难获得。

幸运的是,Armbian 项目支持其他主板,例如 Orange Pi Zero 2 和 Orange Pi 4 LTS。您可能并不总是需要功能齐全的操作系统,而只需要一个可以与外围设备通信的工具。

在这种情况下,基于 FT2232H 的板(例如通用分线板和 Tigard 等)也会派上用场。虽然 FT2232H 是众所周知的经典接口 IC,但 RP2040 由于其易用性和可用性而迅速受到欢迎。

Buspirate 是一款经典的嵌入式瑞士军刀,最近发布了由 RP2040 提供动力的新版本(请注意,下面的链接仅适用于 PCB,而不适用于整个产品)

故障注入
故障注入 (FI) 涉及引入足够小的错误/修改,足以导致目标出现未定义的行为,但不足以完全阻止目标运行。这通常涉及注入高压脉冲或暂时耗尽目标电源或目标系统上“电源轨”的电压。

通过引起瞬时电压调制(高于或低于预期电压),我们可以迫使目标系统进入未定义行为的领域。有针对性的故障可以绕过各种安全检查或其他可能阻碍攻击者或逆向工程师的功能。

射频工具和仪器
在安全测试领域,这些工具在评估和保护无线通信系统和设备的完整性方面发挥着至关重要的作用。高成本选项提供了深入分析各种射频信号的强大功能,使安全专业人员能够识别漏洞、拦截和解码无线传输,并评估通信协议的稳健性。这些工具通常用于学术和研究环境中进行高级射频安全研究。另一方面,低成本选项是易于使用的解决方案,有助于测试和保护更常见的无线技术,包括 RFID、蓝牙、Wi-Fi 和各种 ISM 频段设备。


更多详细点击标题