hacktricks/todo/hardware-hacking
2024-02-09 02:09:47 +00:00
..
i2c.md Translated ['forensics/basic-forensic-methodology/memory-dump-analysis/R 2024-02-09 02:09:47 +00:00
jtag.md Translated ['forensics/basic-forensic-methodology/memory-dump-analysis/R 2024-02-09 02:09:47 +00:00
radio.md Translated ['forensics/basic-forensic-methodology/memory-dump-analysis/R 2024-02-09 02:09:47 +00:00
README.md Translated ['forensics/basic-forensic-methodology/memory-dump-analysis/R 2024-02-09 02:09:47 +00:00
spi.md Translated ['forensics/basic-forensic-methodology/memory-dump-analysis/R 2024-02-09 02:09:47 +00:00
uart.md Translated ['forensics/basic-forensic-methodology/memory-dump-analysis/R 2024-02-09 02:09:47 +00:00

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

支持HackTricks的其他方式

JTAG

JTAG允许执行边界扫描。边界扫描分析特定电路包括每个引脚的嵌入式边界扫描单元和寄存器。

JTAG标准定义了进行边界扫描的特定命令,包括以下内容:

  • BYPASS 允许您在不经过其他芯片的开销的情况下测试特定芯片。
  • SAMPLE/PRELOAD 在设备处于正常工作模式时,获取进入和离开设备的数据样本。
  • EXTEST 设置和读取引脚状态。

它还可以支持其他命令,例如:

  • IDCODE 用于识别设备
  • INTEST 用于设备的内部测试

当您使用类似JTAGulator的工具时您可能会遇到这些指令。

测试访问端口

边界扫描包括对四线测试访问端口TAP的测试这是一个通用端口提供了内置于组件中的JTAG测试支持功能的访问。TAP使用以下五个信号

  • 测试时钟输入(TCKTCK是定义TAP控制器何时执行单个操作换句话说在状态机中跳转到下一个状态时钟
  • 测试模式选择(TMS输入TMS控制有限状态机。在每个时钟节拍中设备的JTAG TAP控制器检查TMS引脚上的电压。如果电压低于某个阈值则信号被视为低电平并解释为0而如果电压高于某个阈值则信号被视为高电平并解释为1。
  • 测试数据输入(TDITDI是通过扫描单元将数据发送到芯片的引脚。每个供应商负责定义通过此引脚的通信协议因为JTAG没有定义这一点。
  • 测试数据输出(TDOTDO是将数据发送从芯片输出的引脚。
  • 测试复位(TRST输入可选的TRST将有限状态机重置为已知的良好状态。或者如果TMS保持在1状态下连续五个时钟周期它会调用重置就像TRST引脚一样这就是为什么TRST是可选的。

有时您可以在PCB上找到标记了这些引脚。在其他情况下您可能需要找到它们

识别JTAG引脚

检测JTAG端口的最快但最昂贵的方法是使用JTAGulator,这是专门为此目的创建的设备(尽管它也可以检测UART引脚布局)。

它有24个通道,您可以连接到板上的引脚。然后,它对所有可能的组合执行BF攻击,发送IDCODEBYPASS边界扫描命令。如果收到响应它会显示与每个JTAG信号对应的通道。

识别JTAG引脚的更便宜但速度较慢的方法是使用加载在兼容Arduino微控制器上的JTAGenum

使用JTAGenum,您首先需要定义用于枚举的探测设备的引脚。您需要参考设备的引脚图,并将这些引脚与目标设备上的测试点连接起来。

识别JTAG引脚的第三种方法是通过检查PCB以找到其中一个引脚布局。在某些情况下PCB可能会方便地提供Tag-Connect接口这清楚地表明该板具有JTAG连接器。您可以在https://www.tag-connect.com/info/上查看该接口的外观。此外检查PCB上芯片组的数据表可能会显示指向JTAG接口的引脚布局。

SDW

SWD是专为调试而设计的ARM特定协议。

SWD接口需要两个引脚:一个是双向SWDIO信号相当于JTAG的TDI和TDO引脚和一个时钟,即SWCLK相当于JTAG中的TCK。许多设备支持串行线或JTAG调试端口SWJ-DP这是一个结合了JTAG和SWD接口的接口使您可以将SWD或JTAG探针连接到目标设备。