# UART
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** ๐ฌ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** ๐ฆ [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
## Basic Information
UART๋ ์ง๋ ฌ ํ๋กํ ์ฝ๋ก, ๊ตฌ์ฑ ์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ํ ๋นํธ์ฉ ์ ์กํฉ๋๋ค. ๋ฐ๋ฉด, ๋ณ๋ ฌ ํต์ ํ๋กํ ์ฝ์ ์ฌ๋ฌ ์ฑ๋์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋์์ ์ ์กํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์ง๋ ฌ ํ๋กํ ์ฝ์๋ RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express ๋ฐ USB๊ฐ ํฌํจ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก UART๊ฐ ์ ํด ์ํ์ผ ๋ ๋ผ์ธ์ ๋์ ์ํ(๋
ผ๋ฆฌ 1 ๊ฐ)๋ก ์ ์ง๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ฐ์ดํฐ ์ ์ก์ ์์์ ์ ํธํ๊ธฐ ์ํด ์ก์ ์๋ ์์ ์์๊ฒ ์์ ๋นํธ๋ฅผ ์ ์กํ๋ฉฐ, ์ด ๋์ ์ ํธ๋ ๋ฎ์ ์ํ(๋
ผ๋ฆฌ 0 ๊ฐ)๋ก ์ ์ง๋ฉ๋๋ค. ๋ค์์ผ๋ก ์ก์ ์๋ ์ค์ ๋ฉ์์ง๋ฅผ ํฌํจํ๋ 5~8๊ฐ์ ๋ฐ์ดํฐ ๋นํธ๋ฅผ ์ ์กํ๊ณ , ์ ํ์ ์ผ๋ก ํจ๋ฆฌํฐ ๋นํธ์ ํ๋ ๋๋ ๋ ๊ฐ์ ์ ์ง ๋นํธ(๋
ผ๋ฆฌ 1 ๊ฐ)๋ฅผ ์ ์กํฉ๋๋ค. ์ค๋ฅ ๊ฒ์ฌ์ฉ์ผ๋ก ์ฌ์ฉ๋๋ ํจ๋ฆฌํฐ ๋นํธ๋ ์ค์ ๋ก๋ ๊ฑฐ์ ๋ณด์ด์ง ์์ต๋๋ค. ์ ์ง ๋นํธ(๋๋ ๋นํธ)๋ ์ ์ก์ ๋์ ๋ํ๋
๋๋ค.
๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ตฌ์ฑ์ 8N1์ด๋ผ๊ณ ๋ถ๋ฆ
๋๋ค: 8๊ฐ์ ๋ฐ์ดํฐ ๋นํธ, ํจ๋ฆฌํฐ ์์, 1๊ฐ์ ์ ์ง ๋นํธ. ์๋ฅผ ๋ค์ด, ๋ฌธ์ C ๋๋ ASCII์์ 0x43์ 8N1 UART ๊ตฌ์ฑ์ผ๋ก ์ ์กํ๊ณ ์ ํ๋ค๋ฉด ๋ค์ ๋นํธ๋ฅผ ์ ์กํฉ๋๋ค: 0(์์ ๋นํธ); 0, 1, 0, 0, 0, 0, 1, 1(0x43์ ์ด์ง ๊ฐ), ๊ทธ๋ฆฌ๊ณ 0(์ ์ง ๋นํธ).
![](<../../.gitbook/assets/image (764).png>)
UART์ ํต์ ํ๊ธฐ ์ํ ํ๋์จ์ด ๋๊ตฌ:
* USB-์ง๋ ฌ ์ด๋ํฐ
* CP2102 ๋๋ PL2303 ์นฉ์ด ์๋ ์ด๋ํฐ
* Bus Pirate, Adafruit FT232H, Shikra ๋๋ Attify Badge์ ๊ฐ์ ๋ค๋ชฉ์ ๋๊ตฌ
### Identifying UART Ports
UART์๋ 4๊ฐ์ ํฌํธ๊ฐ ์์ต๋๋ค: **TX**(์ ์ก), **RX**(์์ ), **Vcc**(์ ์), ๋ฐ **GND**(์ ์ง). PCB์ **`TX`** ๋ฐ **`RX`** ๋ฌธ์๊ฐ **ํ๊ธฐ๋** 4๊ฐ์ ํฌํธ๋ฅผ ์ฐพ์ ์ ์์ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ํ์๊ฐ ์๋ค๋ฉด **๋ฉํฐ๋ฏธํฐ** ๋๋ **๋ก์ง ๋ถ์๊ธฐ**๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ค๋ก ์ฐพ์์ผ ํ ์๋ ์์ต๋๋ค.
**๋ฉํฐ๋ฏธํฐ**์ ์ฅ์น ์ ์์ด ๊บผ์ง ์ํ์์:
* **GND** ํ์ ์๋ณํ๋ ค๋ฉด **์ฐ์์ฑ ํ
์คํธ** ๋ชจ๋๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฒ์์ ๋ฆฌ๋๋ฅผ ์ ์ง์ ๋๊ณ ๋นจ๊ฐ์ ๋ฆฌ๋๋ก ์๋ฆฌ๊ฐ ๋ ๋๊น์ง ํ
์คํธํฉ๋๋ค. PCB์์ ์ฌ๋ฌ GND ํ์ ์ฐพ์ ์ ์์ผ๋ฏ๋ก UART์ ํด๋นํ๋ ํ์ ์ฐพ์๋์ง ์ฌ๋ถ๋ ๋ถํ์คํ ์ ์์ต๋๋ค.
* **VCC ํฌํธ**๋ฅผ ์๋ณํ๋ ค๋ฉด **DC ์ ์ ๋ชจ๋**๋ก ์ค์ ํ๊ณ 20V๋ก ์ค์ ํฉ๋๋ค. ๊ฒ์์ ํ๋ก๋ธ๋ฅผ ์ ์ง์ ๋๊ณ ๋นจ๊ฐ์ ํ๋ก๋ธ๋ฅผ ํ์ ๋์ต๋๋ค. ์ฅ์น๋ฅผ ์ผญ๋๋ค. ๋ฉํฐ๋ฏธํฐ๊ฐ 3.3V ๋๋ 5V์ ์ผ์ ํ ์ ์์ ์ธก์ ํ๋ฉด Vcc ํ์ ์ฐพ์ ๊ฒ์
๋๋ค. ๋ค๋ฅธ ์ ์์ด ๋์ค๋ฉด ๋ค๋ฅธ ํฌํธ๋ก ๋ค์ ์๋ํฉ๋๋ค.
* **TX** **ํฌํธ**๋ฅผ ์๋ณํ๋ ค๋ฉด, **DC ์ ์ ๋ชจ๋**๋ฅผ 20V๋ก ์ค์ ํ๊ณ ๊ฒ์์ ํ๋ก๋ธ๋ฅผ ์ ์ง์ ๋๊ณ ๋นจ๊ฐ์ ํ๋ก๋ธ๋ฅผ ํ์ ๋๊ณ ์ฅ์น๋ฅผ ์ผญ๋๋ค. ์ ์์ด ๋ช ์ด ๋์ ๋ณ๋ํ๋ค๊ฐ Vcc ๊ฐ์ผ๋ก ์์ ํ๋๋ฉด TX ํฌํธ๋ฅผ ์ฐพ์ ๊ฒ์
๋๋ค. ์ด๋ ์ ์์ด ์ผ์ง ๋ ์ผ๋ถ ๋๋ฒ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ๋๋ฌธ์
๋๋ค.
* **RX ํฌํธ**๋ ๋๋จธ์ง 3๊ฐ ํฌํธ์ ๊ฐ์ฅ ๊ฐ๊น์ด ํฌํธ๋ก, ์ ์ ๋ณ๋์ด ๊ฐ์ฅ ์ ๊ณ ๋ชจ๋ UART ํ ์ค์์ ๊ฐ์ฅ ๋ฎ์ ์ ์ฒด ๊ฐ์ ๊ฐ์ง๋๋ค.
TX์ RX ํฌํธ๋ฅผ ํผ๋ํด๋ ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์ง๋ง, GND์ VCC ํฌํธ๋ฅผ ํผ๋ํ๋ฉด ํ๋ก๊ฐ ์์๋ ์ ์์ต๋๋ค.
์ผ๋ถ ๋์ ์ฅ์น์์๋ ์ ์กฐ์
์ฒด๊ฐ RX ๋๋ TX ๋๋ ๋ ๊ฐ ๋ชจ๋๋ฅผ ๋นํ์ฑํํ์ฌ UART ํฌํธ๋ฅผ ๋นํ์ฑํํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ํ๋ก ๊ธฐํ์ ์ฐ๊ฒฐ์ ์ถ์ ํ๊ณ ์ผ๋ถ ๋ธ๋ ์ดํฌ์์ ํฌ์ธํธ๋ฅผ ์ฐพ๋ ๊ฒ์ด ๋์์ด ๋ ์ ์์ต๋๋ค. UART์ ๊ฐ์ง๊ฐ ์๊ณ ํ๋ก๊ฐ ๋์ด์ก์์ ํ์ธํ๋ ๊ฐ๋ ฅํ ํํธ๋ ์ฅ์น ๋ณด์ฆ์ ํ์ธํ๋ ๊ฒ์
๋๋ค. ์ฅ์น๊ฐ ๋ณด์ฆ๊ณผ ํจ๊ป ๋ฐฐ์ก๋ ๊ฒฝ์ฐ, ์ ์กฐ์
์ฒด๋ ์ผ๋ถ ๋๋ฒ๊ทธ ์ธํฐํ์ด์ค(์ด ๊ฒฝ์ฐ UART)๋ฅผ ๋จ๊ฒจ๋๊ณ , ๋ฐ๋ผ์ UART๋ฅผ ๋ถ๋ฆฌํ์ผ๋ฉฐ ๋๋ฒ๊น
์ค์ ๋ค์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๋ธ๋ ์ดํฌ์์ ํ์ ๋ฉ๋ํ๊ฑฐ๋ ์ ํผ ์์ด์ด๋ก ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
### Identifying the UART Baud Rate
์ฌ๋ฐ๋ฅธ ์ ์ก ์๋๋ฅผ ์๋ณํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ **TX ํ์ ์ถ๋ ฅ์ ๋ณด๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋ณด๋ ๊ฒ**์
๋๋ค. ์์ ํ ๋ฐ์ดํฐ๊ฐ ์ฝ์ ์ ์๋ค๋ฉด ๋ค์ ๊ฐ๋ฅํ ์ ์ก ์๋๋ก ์ ํํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ฝ์ ์ ์์ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค. USB-์ง๋ ฌ ์ด๋ํฐ๋ Bus Pirate์ ๊ฐ์ ๋ค๋ชฉ์ ์ฅ์น๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ํํ ์ ์์ผ๋ฉฐ, [baudrate.py](https://github.com/devttys0/baudrate/)์ ๊ฐ์ ๋์ฐ๋ฏธ ์คํฌ๋ฆฝํธ์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ์ก ์๋๋ 9600, 38400, 19200, 57600 ๋ฐ 115200์
๋๋ค.
{% hint style="danger" %}
์ด ํ๋กํ ์ฝ์์๋ ํ ์ฅ์น์ TX๋ฅผ ๋ค๋ฅธ ์ฅ์น์ RX์ ์ฐ๊ฒฐํด์ผ ํ๋ค๋ ์ ์ ์ ์ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค!
{% endhint %}
## CP210X UART to TTY Adapter
CP210X ์นฉ์ Serial Communication์ ์ํด NodeMCU(esp8266 ํฌํจ)์ ๊ฐ์ ๋ง์ ํ๋กํ ํ์
๋ณด๋์์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ์ด๋ํฐ๋ ์๋์ ์ผ๋ก ์ ๋ ดํ๋ฉฐ ๋์์ UART ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ์ฅ์น๋ 5๊ฐ์ ํ์ ๊ฐ์ง๊ณ ์์ต๋๋ค: 5V, GND, RXD, TXD, 3.3V. ์์์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋์์ด ์ง์ํ๋ ์ ์์ผ๋ก ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ด๋ํฐ์ RXD ํ์ ๋์์ TXD์, ์ด๋ํฐ์ TXD ํ์ ๋์์ RXD์ ์ฐ๊ฒฐํฉ๋๋ค.
์ด๋ํฐ๊ฐ ๊ฐ์ง๋์ง ์๋ ๊ฒฝ์ฐ, ํธ์คํธ ์์คํ
์ CP210X ๋๋ผ์ด๋ฒ๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํ์ญ์์ค. ์ด๋ํฐ๊ฐ ๊ฐ์ง๋๊ณ ์ฐ๊ฒฐ๋๋ฉด picocom, minicom ๋๋ screen๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Linux/MacOS ์์คํ
์ ์ฐ๊ฒฐ๋ ์ฅ์น๋ฅผ ๋์ดํ๋ ค๋ฉด:
```
ls /dev/
```
UART ์ธํฐํ์ด์ค์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ํธ์์ฉํ๋ ค๋ฉด ๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์:
```
picocom /dev/ --baud
```
minicom์ ๊ฒฝ์ฐ, ๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํฉ๋๋ค:
```
minicom -s
```
`Serial port setup` ์ต์
์์ baudrate ๋ฐ ์ฅ์น ์ด๋ฆ๊ณผ ๊ฐ์ ์ค์ ์ ๊ตฌ์ฑํฉ๋๋ค.
๊ตฌ์ฑ์ด ์๋ฃ๋๋ฉด `minicom` ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ UART ์ฝ์์ ์์ํฉ๋๋ค.
## Arduino UNO R3๋ฅผ ํตํ UART (ํ์ฐฉ ๊ฐ๋ฅํ Atmel 328p ์นฉ ๋ณด๋)
UART Serial to USB ์ด๋ํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ, Arduino UNO R3๋ฅผ ๋น ๋ฅธ ํดํน์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. Arduino UNO R3๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋์๋ ๊ตฌํ ์ ์์ผ๋ฏ๋ก ๋ง์ ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค.
Arduino UNO R3์๋ ๋ณด๋ ์์ฒด์ USB to Serial ์ด๋ํฐ๊ฐ ๋ด์ฅ๋์ด ์์ต๋๋ค. UART ์ฐ๊ฒฐ์ ์ป์ผ๋ ค๋ฉด ๋ณด๋์์ Atmel 328p ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ ์นฉ์ ๋นผ๋ด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด ํดํน์ Atmel 328p๊ฐ ๋ณด๋์ ๋ฉ๋๋์ง ์์ Arduino UNO R3 ๋ณํ์์ ์๋ํฉ๋๋ค(์ฌ๊ธฐ์๋ SMD ๋ฒ์ ์ด ์ฌ์ฉ๋ฉ๋๋ค). Arduino์ RX ํ(๋์งํธ ํ 0)์ UART ์ธํฐํ์ด์ค์ TX ํ์ ์ฐ๊ฒฐํ๊ณ Arduino์ TX ํ(๋์งํธ ํ 1)์ UART ์ธํฐํ์ด์ค์ RX ํ์ ์ฐ๊ฒฐํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, Serial Console์ ์ป๊ธฐ ์ํด Arduino IDE๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฉ๋ด์ `tools` ์น์
์์ `Serial Console` ์ต์
์ ์ ํํ๊ณ UART ์ธํฐํ์ด์ค์ ๋ฐ๋ผ baud rate๋ฅผ ์ค์ ํฉ๋๋ค.
## Bus Pirate
์ด ์๋๋ฆฌ์ค์์๋ ํ๋ก๊ทธ๋จ์ ๋ชจ๋ ์ถ๋ ฅ์ Serial Monitor๋ก ์ ์กํ๋ Arduino์ UART ํต์ ์ ์ค๋ํํ ๊ฒ์
๋๋ค.
```bash
# Check the modes
UART>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. KEYB
9. LCD
10. PIC
11. DIO
x. exit(without change)
# Select UART
(1)>3
Set serial port speed: (bps)
1. 300
2. 1200
3. 2400
4. 4800
5. 9600
6. 19200
7. 38400
8. 57600
9. 115200
10. BRG raw value
# Select the speed the communication is occurring on (you BF all this until you find readable things)
# Or you could later use the macro (4) to try to find the speed
(1)>5
Data bits and parity:
1. 8, NONE *default
2. 8, EVEN
3. 8, ODD
4. 9, NONE
# From now on pulse enter for default
(1)>
Stop bits:
1. 1 *default
2. 2
(1)>
Receive polarity:
1. Idle 1 *default
2. Idle 0
(1)>
Select output type:
1. Open drain (H=Hi-Z, L=GND)
2. Normal (H=3.3V, L=GND)
(1)>
Clutch disengaged!!!
To finish setup, start up the power supplies with command 'W'
Ready
# Start
UART>W
POWER SUPPLIES ON
Clutch engaged!!!
# Use macro (2) to read the data of the bus (live monitor)
UART>(2)
Raw UART input
Any key to exit
Escritura inicial completada:
AAA Hi Dreg! AAA
waiting a few secs to repeat....
```
## Dumping Firmware with UART Console
UART Console์ ๋ฐํ์ ํ๊ฒฝ์์ ๊ธฐ๋ณธ ํ์จ์ด์ ์์
ํ ์ ์๋ ํ๋ฅญํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ UART Console ์ ๊ทผ์ด ์ฝ๊ธฐ ์ ์ฉ์ธ ๊ฒฝ์ฐ ๋ง์ ์ ์ฝ์ด ์์ ์ ์์ต๋๋ค. ๋ง์ ์๋ฒ ๋๋ ์ฅ์น์์ ํ์จ์ด๋ EEPROM์ ์ ์ฅ๋๊ณ ํ๋ฐ์ฑ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง ํ๋ก์ธ์์์ ์คํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์๋ ํ์จ์ด๊ฐ ์ ์กฐ ์ค EEPROM ์์ฒด์ ์๊ธฐ ๋๋ฌธ์ ํ์จ์ด๋ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ ์ง๋๋ฉฐ, ์๋ก์ด ํ์ผ์ ํ๋ฐ์ฑ ๋ฉ๋ชจ๋ฆฌ๋ก ์ธํด ์์ค๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์๋ฒ ๋๋ ํ์จ์ด ์์
์ ํ์จ์ด ๋คํ๋ ๊ท์คํ ๋
ธ๋ ฅ์
๋๋ค.
์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ผ๋ฉฐ, SPI ์น์
์์๋ ๋ค์ํ ์ฅ์น๋ฅผ ์ฌ์ฉํ์ฌ EEPROM์์ ์ง์ ํ์จ์ด๋ฅผ ์ถ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค. ๊ทธ๋ฌ๋ ๋ฌผ๋ฆฌ์ ์ฅ์น์ ์ธ๋ถ ์ํธ์์ฉ์ ํตํด ํ์จ์ด๋ฅผ ๋คํํ๋ ๊ฒ์ ์ํํ ์ ์์ผ๋ฏ๋ก ๋จผ์ UART๋ฅผ ์ฌ์ฉํ์ฌ ํ์จ์ด๋ฅผ ๋คํํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
UART Console์์ ํ์จ์ด๋ฅผ ๋คํํ๋ ค๋ฉด ๋จผ์ ๋ถํธ๋ก๋์ ์ ๊ทผํด์ผ ํฉ๋๋ค. ๋ง์ ์ธ๊ธฐ ์๋ ๊ณต๊ธ์
์ฒด๋ Linux๋ฅผ ๋ก๋ํ๊ธฐ ์ํด uboot(Universal Bootloader)๋ฅผ ๋ถํธ๋ก๋๋ก ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ uboot์ ์ ๊ทผํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค.
๋ถํธ ๋ถํธ๋ก๋์ ์ ๊ทผํ๋ ค๋ฉด UART ํฌํธ๋ฅผ ์ปดํจํฐ์ ์ฐ๊ฒฐํ๊ณ Serial Console ๋๊ตฌ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ฅ์น์ ์ ์ ๊ณต๊ธ ์ฅ์น๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. ์ค์ ์ด ์ค๋น๋๋ฉด Enter ํค๋ฅผ ๋๋ฅด๊ณ ์ ์งํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ฅ์น์ ์ ์ ๊ณต๊ธ ์ฅ์น๋ฅผ ์ฐ๊ฒฐํ๊ณ ๋ถํ
์ ์์ํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด uboot์ ๋ก๋ฉ์ด ์ค๋จ๋๊ณ ๋ฉ๋ด๊ฐ ์ ๊ณต๋ฉ๋๋ค. uboot ๋ช
๋ น์ ์ดํดํ๊ณ ๋์๋ง ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชฉ๋ก์ ๋์ดํ๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค. ์ด๋ `help` ๋ช
๋ น์ผ ์ ์์ต๋๋ค. ๊ณต๊ธ์
์ฒด๋ง๋ค ๋ค๋ฅธ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ฏ๋ก ๊ฐ ๊ตฌ์ฑ์ ๊ฐ๋ณ์ ์ผ๋ก ์ดํดํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํ์จ์ด๋ฅผ ๋คํํ๋ ๋ช
๋ น์:
```
md
```
which stands for "memory dump". This will dump the memory (EEPROM Content) on the screen. It is recommended to log the Serial Console output before starting the proceedure to capture the memory dump.
๋ง์ง๋ง์ผ๋ก, ๋ก๊ทธ ํ์ผ์์ ๋ชจ๋ ๋ถํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๊ณ ํ์ผ์ `filename.rom`์ผ๋ก ์ ์ฅํ ๋ค์ binwalk๋ฅผ ์ฌ์ฉํ์ฌ ๋ด์ฉ์ ์ถ์ถํฉ๋๋ค:
```
binwalk -e
```
์ด๊ฒ์ ํฅ์ค ํ์ผ์์ ๋ฐ๊ฒฌ๋ ์๋ช
์ ๋ฐ๋ผ EEPROM์ ๊ฐ๋ฅํ ๋ด์ฉ์ ๋์ดํฉ๋๋ค.
๋ถํธ๋ก๋๊ฐ ์ฌ์ฉ๋๊ณ ์๋๋ผ๋ ํญ์ uboot๊ฐ ์ ๊ธ ํด์ ๋์ด ์๋ ๊ฒ์ ์๋๋ผ๋ ์ ์ ์ ์ํด์ผ ํฉ๋๋ค. Enter ํค๊ฐ ์๋ฌด๋ฐ ๋ฐ์์ ๋ณด์ด์ง ์์ผ๋ฉด Space ํค์ ๊ฐ์ ๋ค๋ฅธ ํค๋ฅผ ํ์ธํ์ญ์์ค. ๋ถํธ๋ก๋๊ฐ ์ ๊ฒจ ์๊ณ ์ค๋จ๋์ง ์์ผ๋ฉด ์ด ๋ฐฉ๋ฒ์ ์๋ํ์ง ์์ต๋๋ค. uboot๊ฐ ์ฅ์น์ ๋ถํธ๋ก๋์ธ์ง ํ์ธํ๋ ค๋ฉด ์ฅ์น ๋ถํ
์ค UART ์ฝ์์ ์ถ๋ ฅ์ ํ์ธํ์ญ์์ค. ๋ถํ
์ค์ uboot๊ฐ ์ธ๊ธ๋ ์ ์์ต๋๋ค.