Translated ['todo/hardware-hacking/uart.md'] to jp

This commit is contained in:
Translator 2024-04-04 08:55:56 +00:00
parent cd7b9ddcdb
commit 0c2a55e8ad

View file

@ -5,10 +5,10 @@
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を入手する
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする
- **ハッキングテクニックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する**
- [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を入手
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする
- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
</details>
@ -17,44 +17,66 @@ HackTricksをサポートする他の方法
UARTはシリアルプロトコルであり、コンポーネント間でデータを1ビットずつ転送します。一方、並列通信プロトコルは複数のチャネルを通じてデータを同時に送信します。一般的なシリアルプロトコルには、RS-232、I2C、SPI、CAN、Ethernet、HDMI、PCI Express、USBなどがあります。
通常、UARTはアイドル状態でラインが高い論理値1を保持します。次に、データ転送の開始を示すために、送信機が受信機にスタートビットを送信し、その間信号は低い論理値0を保持します。次に、送信機は実際のメッセージを含む5〜8ビットのデータビットを送信し、オプションのパリティビットと1または2ビットのストップビット論理値1)が続きます。エラーチェックに使用されるパリティビットは実際にはほとんど見られません。ストップビット(またはビット)は送信の終わりを示します。
通常、UARTがアイドル状態にあるときは、ラインは高い論理1の値に保持されます。次に、データ転送の開始を示すために、送信機が受信機にスタートビットを送信します。この間、信号は低い論理0の値に保持されます。次に、送信機は、実際のメッセージを含む5〜8ビットのデータビットを送信し、オプションのパリティビットと1または2ビットのストップビット論理1の値)が続きます。エラーチェックに使用されるパリティビットは実際にはほとんど見られません。ストップビット(またはビット)は送信の終わりを示します。
最も一般的な構成である8N1を呼びます8ビットのデータビット、パリティなし、1ビットのストップビット。たとえば、8N1 UART構成で文字C、またはASCIIで0x43を送信したい場合、次のビットを送信します0スタートビット0、1、0、0、0、0、1、1バイナリで0x43の値、および0ストップビット
最も一般的な構成を8N1と呼びます8つのデータビット、パリティなし、1つのストップビット。たとえば、8N1 UART構成で文字CまたはASCIIの0x43を送信したい場合、次のビットを送信します0スタートビット0、1、0、0、0、0、1、1バイナリで0x43の値、および0ストップビット
![](<../../.gitbook/assets/image (648) (1) (1) (1) (1).png>)
UARTと通信するためのハードウェアツール
- USBシリアルアダプタ
- USB-to-serialアダプタ
- CP2102またはPL2303チップを搭載したアダプタ
- Bus Pirate、Adafruit FT232H、Shikra、またはAttify Badgeなどの多目的ツール
## UARTポートの識別
UARTには**TX**(送信)、**RX**(受信)、**Vcc**(電圧)、**GND**グラウンドの4つのポートがあります。基板に**`TX`**と**`RX`**の文字が**書かれている**4つのポートを見つけることができるかもしれません。ただし、指示がない場合は、**マルチメータ**または**ロジックアナライザ**を使用して自分で見つける必要があるかもしれません。
UARTには4つのポートがあります**TX**(送信)、**RX**(受信)、**Vcc**(電圧)、および**GND**グラウンド。PCBに**`TX`**と**`RX`**の文字が**書かれている**4つのポートを見つけることができるかもしれません。ただし、明確な指示がない場合は、**マルチメータ**または**ロジックアナライザ**を使用して自分で見つける必要があるかもしれません。
**マルチメータ**とデバイスの電源を切った状態で:
**マルチメータ**とデバイスの電源を切った状態で:
- **GND**ピンを特定するには、**連続性テスト**モードを使用し、バックリードをグラウンドに置き、赤いリードでテストして、マルチメーターから音が聞こえるまで確認します。複数のGNDピンが基板上に見つかる場合があるため、UARTに属するピンを見つけたかどうかはわかりません。
- **VCCポート**を特定するには、**DC電圧モード**を設定し、電圧を20Vに設定します。黒いプローブをグラウンドに、赤いプローブをピンに置きます。デバイスの電源を入れます。マルチメーターが3.3Vまたは5Vの一定の電圧を測定する場合、Vccピンを見つけました。他の電圧が表示される場合は、他のポートで再試行してください。
- **TX** **ポート**を特定するには、**DC電圧モード**を20Vの電圧に設定し、黒いプローブをグラウンドに、赤いプローブをピンに置き、デバイスの電源を入れます。電源を入れると、一時的に電圧が変動し、その後Vccの値に安定する場合、おそらくTXポートを見つけたでしょう。これは、電源を入れるとデバッグデータが送信されるためです。
- **GND**ピンを特定するには、**連続性テスト**モードを使用し、バックリードをグラウンドに置き、赤いリードでテストして、マルチメータから音が聞こえるまで試してください。複数のGNDピンがPCB上に見つかる場合がありますので、UARTに属するピンを見つけたかどうかはわかりません。
- **VCCポート**を特定するには、**DC電圧モード**を設定し、20Vの電圧に設定します。黒いプローブをグラウンドに、赤いプローブをピンに置きます。デバイスの電源を入れます。マルチメータが3.3Vまたは5Vの定電圧を測定した場合、Vccピンを見つけました。他の電圧が表示される場合は、他のポートで再試行してください。
- **TX** **ポート**を特定するには、**DC電圧モード**を20Vの電圧に設定し、黒いプローブをグラウンドに、赤いプローブをピンに置き、デバイスの電源を入れます。電源を入れると、一時的に電圧が変動し、その後Vccの値に安定する場合、おそらくTXポートを見つけた可能性が高いです。これは、電源を入れるとデバッグデータが送信されるためです。
- **RXポート**は他の3つに最も近いものであり、UARTピンの中で最も低い電圧変動と最も低い全体的な値を持っています。
TXとRXポートを混同しても何も起こりませんが、GNDとVCCポートを混同すると回路を壊す可能性があります。
TXとRXポートを混同しても何も起こりませんが、GNDとVCCポートを混同すると回路を破損させる可能性があります。
ロジックアナライザーを使用して:
一部のターゲットデバイスでは、製造元によってUARTポートが無効にされている場合があります。その場合、基板内の接続を追跡し、いくつかのブレイクアウトポイントを見つけることが役立ちます。UARTの検出がないことと回路の切断を確認する強力なヒントは、デバイスの保証を確認することです。デバイスに保証が付属して出荷された場合、製造元はいくつかのデバッグインターフェイスこの場合はUARTを残し、したがってUARTを切断し、デバッグ中に再接続する必要があります。これらのブレイクアウトピンは、はんだ付けまたはジャンパーワイヤーで接続できます。
## UARTボーレートの識別
正しいボーレートを特定する最も簡単な方法は、**TXピンの出力を見てデータを読み取ろうとする**ことです。受信したデータが読めない場合は、データが読めるまで次の可能なボーレートに切り替えてください。これには、USBシリアルアダプタやBus Pirateなどの多目的デバイスを使用し、[baudrate.py](https://github.com/devttys0/baudrate/)などのヘルパースクリプトを組み合わせることができます。最も一般的なボーレートは9600、38400、19200、57600、115200です。
正しいボーレートを特定する最も簡単な方法は、**TXピンの出力を見てデータを読み取ろうとする**ことです。受信したデータが読み取れない場合は、データが読み取れるまで次の可能なボーレートに切り替えてください。これには、USB-to-serialアダプタやBus Pirateなどの多目的デバイスと、[baudrate.py](https://github.com/devttys0/baudrate/)などのヘルパースクリプトを使用できます。最も一般的なボーレートは9600、38400、19200、57600、115200です。
{% hint style="danger" %}
このプロトコルでは、デバイスのTXを他のデバイスのRXに接続する必要があることに注意してください
このプロトコルでは、1つのデバイスのTXを他のデバイスのRXに接続する必要があることに注意してください
{% endhint %}
# CP210X UART to TTYアダプタ
CP210Xチップは、NodeMCUesp8266搭載などのプロトタイピングボードでシリアル通信に使用されます。これらのアダプタは比較的安価であり、ターゲットのUARTインターフェースに接続するために使用できます。デバイスには5つのピンがあります5V、GND、RXD、TXD、3.3V。損傷を防ぐために、ターゲットがサポートする電圧に接続するように注意してください。最後に、アダプタのRXDピンをターゲットのTXDに、アダプタのTXDピンをターゲットのRXDに接続してください。
アダプタが検出されない場合は、ホストシステムにCP210Xドライバがインストールされていることを確認してください。アダプタが検出され、接続されたら、picocom、minicom、またはscreenなどのツールを使用できます。
Linux/MacOSシステムに接続されたデバイスをリストアップするには
```
ls /dev/
```
UART インターフェースとの基本的なやり取りには、次のコマンドを使用します:
```
picocom /dev/<adapter> --baud <baudrate>
```
minicomを使用する場合は、次のコマンドを使用して構成します
```
minicom -s
```
シリアルポートの設定(ボーレートやデバイス名など)は、「シリアルポートの設定」オプションで行います。
設定後、`minicom`コマンドを使用してUARTコンソールを開始します。
# Bus Pirate
このシナリオでは、プログラムのすべてのプリントをシリアルモニターに送信しているArduinoのUART通信をスニッフする予定です。
このシナリオでは、ArduinoのUART通信をスニッフすることになります。Arduinoはプログラムのすべての出力をシリアルモニタに送信しています。
```bash
# Check the modes
UART>m
@ -128,14 +150,14 @@ waiting a few secs to repeat....
```
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を使って、ゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見る
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見る
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**してください
* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
</details>