mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
Translated ['todo/hardware-hacking/uart.md'] to kr
This commit is contained in:
parent
c90e90a00b
commit
2dbf1ec134
1 changed files with 40 additions and 31 deletions
|
@ -1,60 +1,61 @@
|
||||||
|
# UART
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary><strong>제로부터 영웅이 될 때까지 AWS 해킹을 배우세요</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
<summary><strong>htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 처음부터 전문가까지 배우세요</strong></summary>
|
||||||
|
|
||||||
HackTricks를 지원하는 다른 방법:
|
HackTricks를 지원하는 다른 방법:
|
||||||
|
|
||||||
* **회사가 HackTricks에 광고되길 원하거나** **PDF 형식으로 HackTricks 다운로드**하려면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
|
- **회사가 HackTricks에 광고되길 원하거나 HackTricks를 PDF로 다운로드하고 싶다면** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
|
||||||
* [**공식 PEASS & HackTricks 굿즈**](https://peass.creator-spring.com)를 구매하세요
|
- [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
|
||||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
|
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
|
||||||
* **💬 [Discord 그룹](https://discord.gg/hRep4RUj7f)** 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)을 **팔로우**하세요.
|
- **💬 [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을 제출하세요.
|
- **HackTricks** 및 **HackTricks Cloud** github 저장소로 **PR을 제출**하여 해킹 트릭을 공유하세요.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
## 기본 정보
|
||||||
|
|
||||||
# 기본 정보
|
UART는 데이터를 한 번에 한 비트씩 컴포넌트 간에 전송하는 시리얼 프로토콜입니다. 반면에 병렬 통신 프로토콜은 여러 채널을 통해 동시에 데이터를 전송합니다. 일반적인 시리얼 프로토콜에는 RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express 및 USB가 포함됩니다.
|
||||||
|
|
||||||
UART는 컴포넌트 간에 데이터를 한 번에 한 비트씩 전송하는 직렬 프로토콜입니다. 반면에 병렬 통신 프로토콜은 여러 채널을 통해 동시에 데이터를 전송합니다. 일반적인 직렬 프로토콜에는 RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express 및 USB가 포함됩니다.
|
일반적으로 UART가 대기 상태에 있을 때 라인은 높은 상태(논리 1 값)를 유지합니다. 그런 다음 송신기는 수신기에 시작 비트를 보내어 데이터 전송의 시작을 신호합니다. 이 동안 신호는 낮은 상태(논리 0 값)를 유지합니다. 그런 다음 송신기는 실제 메시지를 포함하는 다섯 개에서 여덟 개의 데이터 비트를 보내고, 선택적으로 패리티 비트와 논리 1 값을 가진 하나 또는 두 개의 스톱 비트를 보냅니다. 오류 확인에 사용되는 패리티 비트는 실제로는 거의 보이지 않습니다. 스톱 비트(또는 비트)는 전송의 끝을 나타냅니다.
|
||||||
|
|
||||||
일반적으로 UART가 대기 상태에 있을 때 라인은 고수준(논리 1 값)을 유지합니다. 그런 다음 송신기는 수신기에 시작 비트를 보내어 데이터 전송의 시작을 신호합니다. 이 동안 신호는 낮은 수준(논리 0 값)을 유지합니다. 그런 다음 송신기는 실제 메시지를 포함하는 다섯 개에서 여덟 개의 데이터 비트를 보내고, 선택적으로 패리티 비트와 논리 1 값을 가진 하나 또는 두 개의 스톱 비트를 보냅니다. 오류 확인에 사용되는 패리티 비트는 실제로는 거의 보이지 않습니다. 스톱 비트(또는 비트)는 전송의 끝을 나타냅니다.
|
|
||||||
|
|
||||||
가장 일반적인 구성인 8N1을 사용합니다: 여덟 개의 데이터 비트, 패리티 없음 및 하나의 스톱 비트. 예를 들어, 8N1 UART 구성에서 문자 C 또는 ASCII에서 0x43을 보내려면 다음 비트를 보냅니다: 0(시작 비트); 0, 1, 0, 0, 0, 0, 1, 1(2진수 0x43의 값) 및 0(스톱 비트).
|
가장 일반적인 구성인 8N1을 사용합니다: 여덟 개의 데이터 비트, 패리티 없음 및 하나의 스톱 비트. 예를 들어, 8N1 UART 구성에서 문자 C 또는 ASCII에서 0x43을 보내려면 다음 비트를 보냅니다: 0(시작 비트); 0, 1, 0, 0, 0, 0, 1, 1(2진수 0x43의 값) 및 0(스톱 비트).
|
||||||
|
|
||||||
![](<../../.gitbook/assets/image (648) (1) (1) (1) (1).png>)
|
![](<../../.gitbook/assets/image (761).png>)
|
||||||
|
|
||||||
UART와 통신하기 위한 하드웨어 도구:
|
UART와 통신하기 위한 하드웨어 도구:
|
||||||
|
|
||||||
* USB-시리얼 어댑터
|
- USB-시리얼 어댑터
|
||||||
* CP2102 또는 PL2303 칩이 장착된 어댑터
|
- CP2102 또는 PL2303 칩이 장착된 어댑터
|
||||||
* Bus Pirate, Adafruit FT232H, Shikra 또는 Attify Badge와 같은 다목적 도구
|
- Bus Pirate, Adafruit FT232H, Shikra 또는 Attify Badge와 같은 다목적 도구
|
||||||
|
|
||||||
## UART 포트 식별
|
### UART 포트 식별
|
||||||
|
|
||||||
UART에는 **TX**(송신), **RX**(수신), **Vcc**(전압) 및 **GND**(그라운드) 4개의 포트가 있습니다. PCB에 **`TX`** 및 **`RX`** 글자가 **쓰여 있는** 4개의 포트를 찾을 수 있습니다. 그러나 표시가 없는 경우 **멀티미터**나 **로직 분석기**를 사용하여 직접 찾아야 할 수 있습니다.
|
UART에는 **TX**(송신), **RX**(수신), **Vcc**(전압), **GND**(그라운드) 4개의 포트가 있습니다. PCB에 **`TX`** 및 **`RX`** 글자가 **쓰여 있는** 4개의 포트를 찾을 수 있습니다. 그러나 표시가 없는 경우 **멀티미터**나 **로직 분석기**를 사용하여 직접 찾아야 할 수 있습니다.
|
||||||
|
|
||||||
**멀티미터**와 장치 전원을 끈 상태에서:
|
**멀티미터**와 장치 전원을 끈 상태에서:
|
||||||
|
|
||||||
* **Continuity Test** 모드를 사용하여 **GND** 핀을 식별하려면 백색 리드를 그라운드에 놓고 빨간 리드로 테스트하여 멀티미터에서 소리가 들리면 됩니다. PCB에는 여러 GND 핀이 있으므로 UART에 속한 핀을 찾았을 수도 있고 아닐 수도 있습니다.
|
- **GND** 핀을 식별하려면 **연속성 테스트** 모드를 사용하여 백색 리드를 그라운드에 놓고 빨간 리드로 테스트하여 멀티미터에서 소리가 들리면 됩니다. PCB에는 여러 GND 핀이 있을 수 있으므로 UART에 속한 핀을 찾았을 수도 있고 아닐 수도 있습니다.
|
||||||
* **VCC 포트**를 식별하려면 **DC 전압 모드**를 설정하고 20V의 전압으로 설정하세요. 검은 프로브를 그라운드에 놓고 빨간 프로브를 핀에 놓습니다. 장치의 전원을 켭니다. 멀티미터가 3.3V 또는 5V의 일정한 전압을 측정하면 Vcc 핀을 찾은 것입니다. 다른 전압을 측정하면 다른 포트로 다시 시도하세요.
|
- **VCC 포트**를 식별하려면 **DC 전압 모드**를 설정하고 20V의 전압으로 설정하세요. 검은 프로브를 그라운드에 놓고 빨간 프로브를 핀에 놓고 장치의 전원을 켜세요. 멀티미터가 3.3V 또는 5V의 일정한 전압을 측정하면 Vcc 핀을 찾은 것입니다. 다른 전압을 얻으면 다른 포트로 다시 시도하세요.
|
||||||
* **TX** **포트**를 식별하려면 **DC 전압 모드**를 20V의 전압으로 설정하고 검은 프로브를 그라운드에 놓고 빨간 프로브를 핀에 놓고 장치의 전원을 켭니다. 전압이 몇 초 동안 변동한 다음 Vcc 값으로 안정화되면 대부분 TX 포트를 찾은 것입니다. 이는 전원을 켤 때 일부 디버그 데이터를 보내기 때문입니다.
|
- **TX** **포트**를 식별하려면 **DC 전압 모드**를 사용하여 20V의 전압으로 설정하고 검은 프로브를 그라운드에 놓고 빨간 프로브를 핀에 놓고 장치의 전원을 켜세요. 전압이 몇 초 동안 변동한 다음 Vcc 값으로 안정화되면 대부분 TX 포트를 찾은 것입니다. 이는 전원을 켤 때 일부 디버그 데이터를 보내기 때문입니다.
|
||||||
* **RX 포트**는 다른 3개의 포트 중에서 가장 가까운 위치에 있으며 UART 핀 중에서 가장 낮은 전압 변동과 전체 값이 가장 낮습니다.
|
- **RX 포트**는 다른 3개의 포트 중에서 가장 가까운 위치에 있으며 UART 핀 중에서 가장 낮은 전압 변동과 전체 값이 가장 낮습니다.
|
||||||
|
|
||||||
TX와 RX 포트를 혼동해도 아무 일도 일어나지 않지만 GND와 VCC 포트를 혼동하면 회로를 손상시킬 수 있습니다.
|
TX와 RX 포트를 혼동해도 아무 일도 일어나지 않지만 GND와 VCC 포트를 혼동하면 회로를 손상시킬 수 있습니다.
|
||||||
|
|
||||||
일부 대상 장치에서 제조업체가 RX 또는 TX를 비활성화하거나 둘 다 비활성화하여 UART 포트를 비활성화하는 경우가 있습니다. 이 경우 회로 기판에서 연결을 추적하고 일부 브레이크아웃 포인트를 찾는 것이 도움이 될 수 있습니다. UART를 감지하지 못하고 회로가 끊어진 것을 확인하는 강력한 힌트는 장치 보증을 확인하는 것입니다. 장치에 보증이 함께 제공된 경우 제조업체는 일부 디버그 인터페이스(이 경우 UART)를 남겨두고 있으며 디버깅 중에 UART를 연결하고 다시 연결할 것입니다. 이러한 브레이크아웃 핀은 솔더링이나 점퍼 와이어로 연결할 수 있습니다.
|
일부 대상 장치에서 제조업체가 RX 또는 TX를 비활성화하거나 둘 다 비활성화하여 UART 포트를 비활성화하는 경우가 있습니다. 이 경우 회로 기판에서 연결을 추적하고 일부 브레이크아웃 포인트를 찾는 것이 도움이 될 수 있습니다. UART를 감지하지 못하고 회로가 끊어진 것을 확인하는 강력한 힌트는 장치 보증을 확인하는 것입니다. 장치가 일부 보증으로 출하된 경우 제조업체는 일부 디버그 인터페이스(이 경우 UART)를 남겨두고 있으며 디버깅 중에 다시 연결할 것입니다. 이러한 브레이크아웃 핀은 솔더링이나 점퍼 와이어로 연결할 수 있습니다.
|
||||||
|
|
||||||
## UART 보드 속도 식별
|
### UART 보드 속도 식별
|
||||||
|
|
||||||
올바른 보드 속도를 식별하는 가장 쉬운 방법은 **TX 핀의 출력을 확인하고 데이터를 읽어보는 것**입니다. 받은 데이터가 읽을 수 없는 경우 데이터가 읽을 수 있을 때까지 다음 가능한 보드 속도로 전환하세요. 이 작업을 수행하려면 USB-시리얼 어댑터나 Bus Pirate와 함께 [baudrate.py](https://github.com/devttys0/baudrate/)와 같은 도우미 스크립트를 사용할 수 있습니다. 가장 일반적인 보드 속도는 9600, 38400, 19200, 57600 및 115200입니다.
|
올바른 보드 속도를 식별하는 가장 쉬운 방법은 **TX 핀의 출력을 확인하고 데이터를 읽어보는 것**입니다. 받은 데이터가 읽을 수 없는 경우 데이터가 읽을 수 있을 때까지 다음 가능한 보드 속도로 전환하세요. 이 작업을 수행하기 위해 USB-시리얼 어댑터나 Bus Pirate와 함께 [baudrate.py](https://github.com/devttys0/baudrate/)와 같은 도우미 스크립트를 사용할 수 있습니다. 가장 일반적인 보드 속도는 9600, 38400, 19200, 57600 및 115200입니다.
|
||||||
|
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
이 프로토콜에서는 한 장치의 TX를 다른 장치의 RX에 연결해야 합니다!
|
이 프로토콜에서는 한 장치의 TX를 다른 장치의 RX에 연결해야 합니다!
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
# CP210X UART to TTY 어댑터
|
## CP210X UART to TTY 어댑터
|
||||||
|
|
||||||
CP210X 칩은 NodeMCU(esp8266이 장착된)와 같은 프로토타이핑 보드에서 시리얼 통신에 사용됩니다. 이러한 어댑터는 비교적 저렴하며 대상의 UART 인터페이스에 연결하는 데 사용할 수 있습니다. 이 장치에는 5개의 핀이 있습니다: 5V, GND, RXD, TXD, 3.3V. 대상이 지원하는 전압으로 연결하여 손상을 방지하세요. 마지막으로 어댑터의 RXD 핀을 대상의 TXD에 연결하고 어댑터의 TXD 핀을 대상의 RXD에 연결하세요.
|
CP210X 칩은 NodeMCU(esp8266이 장착된)와 같은 프로토타이핑 보드에서 시리얼 통신을 위해 사용됩니다. 이러한 어댑터는 비교적 저렴하며 대상의 UART 인터페이스에 연결하는 데 사용할 수 있습니다. 이 장치에는 5개의 핀이 있습니다: 5V, GND, RXD, TXD, 3.3V. 대상이 지원하는 전압으로 연결하여 손상을 방지하세요. 마지막으로 어댑터의 RXD 핀을 대상의 TXD에 연결하고 어댑터의 TXD 핀을 대상의 RXD에 연결하세요.
|
||||||
|
|
||||||
어댑터가 감지되지 않는 경우 호스트 시스템에 CP210X 드라이버가 설치되어 있는지 확인하세요. 어댑터가 감지되고 연결된 후에는 picocom, minicom 또는 screen과 같은 도구를 사용할 수 있습니다.
|
어댑터가 감지되지 않는 경우 호스트 시스템에 CP210X 드라이버가 설치되어 있는지 확인하세요. 어댑터가 감지되고 연결된 후에는 picocom, minicom 또는 screen과 같은 도구를 사용할 수 있습니다.
|
||||||
|
|
||||||
|
@ -70,11 +71,19 @@ minicom을 구성하려면 다음 명령을 사용하십시오:
|
||||||
```
|
```
|
||||||
minicom -s
|
minicom -s
|
||||||
```
|
```
|
||||||
설정을 구성하십시오. `Serial port setup` 옵션에서 보드 속도 및 장치 이름과 같은 설정을 구성하십시오.
|
`시리얼 포트 설정` 옵션에서 보오드레이트와 장치 이름과 같은 설정을 구성합니다.
|
||||||
|
|
||||||
구성 후 `minicom` 명령을 사용하여 UART 콘솔을 시작하십시오.
|
구성 후 `minicom` 명령을 사용하여 UART 콘솔을 시작합니다.
|
||||||
|
|
||||||
# Bus Pirate
|
## 아두이노 UNO R3를 통한 UART (탈착 가능한 Atmel 328p 칩 보드)
|
||||||
|
|
||||||
|
UART 시리얼 대 USB 어댑터를 사용할 수 없는 경우, 아두이노 UNO R3를 빠른 해킹으로 사용할 수 있습니다. 아두이노 UNO R3는 일반적으로 어디서나 사용 가능하기 때문에 많은 시간을 절약할 수 있습니다.
|
||||||
|
|
||||||
|
아두이노 UNO R3에는 보드 자체에 내장된 USB에서 시리얼 어댑터가 있습니다. UART 연결을 얻으려면 아두이노의 Atmel 328p 마이크로컨트롤러 칩을 보드에서 뽑기만 하면 됩니다. 이 해킹은 보드에 납땜되지 않은 Atmel 328p이 있는 아두이노 UNO R3 변형에서 작동합니다 (SMD 버전이 사용됨). 아두이노의 RX 핀 (디지털 핀 0)을 UART 인터페이스의 TX 핀에 연결하고, 아두이노의 TX 핀 (디지털 핀 1)을 UART 인터페이스의 RX 핀에 연결합니다.
|
||||||
|
|
||||||
|
마지막으로 UART 인터페이스에 맞게 보오드레이트를 설정하고 `도구` 섹션에서 `시리얼 콘솔` 옵션을 선택하여 아두이노 IDE를 사용하는 것이 좋습니다.
|
||||||
|
|
||||||
|
## 버스 파이러트
|
||||||
|
|
||||||
이 시나리오에서는 프로그램의 모든 출력을 시리얼 모니터로 보내는 아두이노의 UART 통신을 스니핑할 것입니다.
|
이 시나리오에서는 프로그램의 모든 출력을 시리얼 모니터로 보내는 아두이노의 UART 통신을 스니핑할 것입니다.
|
||||||
```bash
|
```bash
|
||||||
|
@ -150,14 +159,14 @@ waiting a few secs to repeat....
|
||||||
```
|
```
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>에서 제로부터 영웅이 될 때까지 AWS 해킹을 배우세요!</summary>
|
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>와 함께 제로부터 영웅이 될 때까지 AWS 해킹을 배우세요!</summary>
|
||||||
|
|
||||||
다른 방법으로 HackTricks를 지원하는 방법:
|
다른 방법으로 HackTricks를 지원하는 방법:
|
||||||
|
|
||||||
* **회사가 HackTricks에 광고되길 원하거나 HackTricks를 PDF로 다운로드하길 원한다면** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
|
* **회사가 HackTricks에 광고되길 원하거나 HackTricks를 PDF로 다운로드하길 원한다면** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
|
||||||
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
|
* [**공식 PEASS & HackTricks 스왹**](https://peass.creator-spring.com)을 구매하세요
|
||||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
|
||||||
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)에서 **팔로우**하세요.
|
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)을 **팔로우**하세요.
|
||||||
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
|
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
Loading…
Reference in a new issue