AI Pentester Assistant
๐ก๏ธ Zhilly AI Pentester Assistant
AI ๊ธฐ๋ฐ, ํด๋์ฉ ์ฌ์ด๋ฒ ๋ณด์ ๋ฐ ์ฌ์ด๋ฒ ์ํธ์์ฉ ๋๊ตฌ
AI ๊ธฐ๋ฐ, ํด๋์ฉ ์ฌ์ด๋ฒ ๋ณด์ ๋ฐ ์ฌ์ด๋ฒ ์ํธ์์ฉ ๋๊ตฌ
๐ฌ๐ง English โข ๐น๐ท Tรผrkรงe โข โก Web Flasher
๐ฌ๐ง English / ์์ด ๋ฒ์
๐ ํ๋ก์ ํธ ์๊ฐ
์ด ํ๋ก์ ํธ๋ Xiaozhi-esp32 (ๅฐๆบ) ์ธํ๋ผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก LilyGO T-Embed CC1101 ํ๋์จ์ด์ ์ต์ ํ๋ ๊ณ ๊ธ **AI ํํ
์คํฐ ์ด์์คํดํธ(AI Pentester Assistant)**์
๋๋ค. ์์ฐ์ด AI ์ํธ์์ฉ๊ณผ ์ค์ ํ๋์จ์ด ํ
์คํธ ๋๊ตฌ๋ฅผ ๊ฒฐํฉํ์ฌ ์ฌ์ด๋ฒ ๋ณด์ ์ฐ๊ตฌ์ ์ผ์์ ์ธ ๊ธฐ์ ์์
์ ๋ค์ฌ๋ค๋ฅํ ๋๋ฐ์๊ฐ ๋์ด ์ค๋๋ค.
๐ ์ฃผ์ ๊ธฐ๋ฅ
๐ค AI ๋ฐ ์ํธ์์ฉ
- ์์ฐ์ค๋ฌ์ด ๋ํ: ์จ์ดํฌ ์๋ **"Nihao Miaoban"**์ผ๋ก ์ด์์คํดํธ์๊ฒ ๋ง์ ๊ฑธ์ด ๋ณด์ธ์. ์ด์์คํดํธ๋ ๋ฃ๊ณ , ๋ฐฐ์ฐ๊ณ , ์์ฐ์ด๋ก ์๋ตํฉ๋๋ค.
- ์ด๋ชจํธ ๋์คํ๋ ์ด: ST7789 ๋์คํ๋ ์ด์ ๊ณ ํ์ง ๋ ์ ๋๋ฉ์ด์
์ด ๊ฐ์ ์ ํผ๋๋ฐฑ๊ณผ ์ํ ํ์(๋ฃ๋ ์ค, ์๊ฐํ๋ ์ค, ๋งํ๋ ์ค)๋ฅผ ์ ๊ณตํฉ๋๋ค.
๐ฐ ์ค๋งํธ ๋ด์ค (News API)
- ์์ฑ ๋ช
๋ น์ผ๋ก ์ ์ธ๊ณ ๋๋ ์ง์ญ์ ์ต์ ํค๋๋ผ์ธ์ ๊ฐ์ ธ์ต๋๋ค.
- ์์: "์ต์ ๊ธฐ์ ๋ด์ค๋ฅผ ์๋ ค์ค" ๋๋ "ํฐํค ๋ด์ค๋ ๋ญ์ผ?"
- NewsAPI๋ฅผ ์ฌ์ฉํ๋
news.get_top_headlines ๋๊ตฌ๋ฅผ ํตํด ํตํฉ๋ฉ๋๋ค.
๐ก RF ๋ฐ IR ํํ
์คํธ ๋๊ตฌ
Sub-GHz ๋ฐ ์ ์ธ์ (Infrared) ์คํํธ๋ผ์ ๋ํ ์์ ํ ์ ์ด:
- RF ์ฌ๋จธ(Jammer): ํน์ Sub-GHz ์ฃผํ์์์ ์ ํธ ์ฌ๋ฐ์ ์์/์ค์งํฉ๋๋ค.
- RF ๋ฆฌํ๋ ์ด(ํ
์คํธ): SD ์นด๋์ ์ ์ฅ๋
.sub ํ์ผ์ ์ฌ์ ์กํฉ๋๋ค.
- IR ์ฌ๋จธ: ์ ์ธ์ ์ ์ด ์ฅ์น๋ฅผ ๊ต๋ํ๊ณ ํ๊ฐํฉ๋๋ค.
- TV-B-Gone: ์ฃผ๋ณ TV๋ฅผ ๋๊ธฐ ์ํ ๋ฒ์ฉ ๋ฆฌ๋ชจ์ปจ ์คํ ์ฝ๋.
- IR ๋ฆฌํ๋ ์ด(ํ
์คํธ): ์ ์ธ์ ์ ํธ๋ฅผ ๊ธฐ๋กํ๊ณ ์ฌ์ ์กํฉ๋๋ค.
- RAW ์บก์ฒ: ๋ง์ดํฌ๋ก์ด ์ ๋ฐ๋๋ก Sub-GHz ์ ํธ๋ฅผ ์บก์ฒํฉ๋๋ค.
- SD ์นด๋ ์ ์ฅ: ์บก์ฒํ ์ ํธ๋ฅผ ๋์ค์ ์ฌ์ฉํ ์ ์๋๋ก SD ์นด๋์ ์ ์ฅํฉ๋๋ค.
โจ๏ธ Bad USB ๋ฐ HID (AI ๊ธฐ๋ฐ ์์ฑ ๋ช
๋ น ์ ์ฉ)
- ํค๋ณด๋ ์๋ฎฌ๋ ์ด์
: ์ปดํจํฐ์ ์ฐ๊ฒฐํ๋ฉด ์ด์์คํดํธ๊ฐ ํ์ค USB ํค๋ณด๋๋ก ๋์ํ ์ ์์ต๋๋ค.
- ์์ฑ ์ค์ฌ ์ง์: SD ์นด๋์ ์ ์ฅ๋ ์๋ ํค ์
๋ ฅ ์คํฌ๋ฆฝํธ(DuckyScript)๋ฅผ AI ์์ฑ ๋ช
๋ น์ผ๋ก๋ง ์คํํฉ๋๋ค. ์๋ ์ธํฐํ์ด์ค๋ ์ ๊ณต๋์ง ์์ผ๋ฏ๋ก ์์ ํ ํธ์ฆํ๋ฆฌ ํํ
์คํ
ํ๊ฒฝ์ ๋ณด์ฅํฉ๋๋ค.
- ์์ฑ ๋ช
๋ น: "BadUSB ์คํฌ๋ฆฝํธ 'hello_world.txt' ์คํ" ๋๋ "๋ค์์ ์
๋ ฅํด: '๋๋ ๋น์ ์ AI ์ด์์คํดํธ์
๋๋ค'".
- HID ๋๊ตฌ:
usb.bad_usb_run, usb.bad_usb_type, usb.bad_usb_stop ๋๊ตฌ๋ฅผ ํตํด ์์ ํ ํตํฉ๋ฉ๋๋ค.
โ LilyGO T-Watch S3 ์ ์ฉ ๊ธฐ๋ฅ
T-Watch S3๋ฅผ ์ํด ํน๋ณํ ์ ์๋ Zhilly๋ ์ปดํจํฐ ์ฐ๊ฒฐ ์์ด๋ ๋ค์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค:
- ๊ณ ์ ARP ์ค์บ๋: ์ง์ ์ ์ธ Layer-2 ARP ํ
์ด๋ธ ๊ฒ์ฌ๋ฅผ ํตํด ์๋ธ๋ท์ ์ค์บํ์ฌ ์จ๊ฒจ์ง ๋คํธ์ํฌ ์ฅ์น(IoT, ๋ณด์ ์นด๋ฉ๋ผ)๋ฅผ ๋ฌผ๋ฆฌ์ MAC ์ฃผ์์ ํจ๊ป ์ฆ์ ๋๋ฌ๋
๋๋ค.
- ์์ฑ ๋ช
๋ น: "๋คํธ์ํฌ์์ ์ฅ์น๋ฅผ ์ค์บํด"
- ํฌํธ ์ค์บ๋: ๋์ IP์ ์ทจ์ฝ/๊ด๋ฆฌ ์์ 21๊ฐ ํฌํธ์ ๋ํด ๋น ๋ฅธ ๋์
select() TCP ๊ฒ์ฌ๋ฅผ ์ํํฉ๋๋ค.
- ์์ฑ ๋ช
๋ น: "192.168.1.10์ ํฌํธ๋ฅผ ์ค์บํด"
- DNS ๋ฆฌ์กธ๋ฒ: ์น์ฌ์ดํธ ๋๋ฉ์ธ์ ์๊ณ ํ๋ฉด์ ๋ฌผ๋ฆฌ์ IPv4 ์ฃผ์๋ก ์ง์ ๋ณํํฉ๋๋ค.
- IR ํดํน: TV-B-Gone ์ข
๋ฃ ์ฝ๋(NA/EU)๋ฅผ ์ ์กํ๊ฑฐ๋ ์๊ณ์์ ์ง์ ํ์ ํ ์ ์ธ์ ํจ๋ฌ์ฌ์ดํธ(parrasite) ์ฌ๋ฐ์ ์์ํฉ๋๋ค.
- ์์ฑ ๋ช
๋ น: "TV๋ฅผ ๊บผ์ค" ๋๋ "IR ์ฌ๋จธ ์์"
- OTA ์
๊ทธ๋ ์ด๋ ๋ฐ ์ ์: URL๋ก ์๊ณ ํ์จ์ด๋ฅผ ์
๋ฐ์ดํธํ๊ฑฐ๋ ์์ฑ ์ฑํ
๋ง์ผ๋ก ์ํํธ์จ์ด ์ฌ๋ถํ
์ ์ํํฉ๋๋ค.
๐ ์ง์๋๋ ํค๋ณด๋ ๋ ์ด์์
์์ฑ ๋ช
๋ น์ผ๋ก ํค๋ณด๋ ์ธ์ด๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค(์: "ํค๋ณด๋ ๋ ์ด์์์ ํฐํค์ด๋ก ์ค์ ").
๊ธฐ๋ณธ ๋ ์ด์์: en_US โ ๋ ์ด์์์ ๊ฐ ์ธ์
์ด ๋๋ ํ ๋ฏธ๊ตญ ์์ด๋ก ์ฌ์ค์ ๋ฉ๋๋ค.
๐ LED ์คํธ๋ฆฝ ๋ฐ ์๊ฐ ํจ๊ณผ
8x WS2812 RGB LED ๋ง์ ์ ์ดํฉ๋๋ค:
- ๋์ ์ ์ด: ์์, ๋ฐ๊ธฐ(0-8), Blink ๋๋ Scroll ๊ฐ์ ์ ๋๋ฉ์ด์
์ ์ค์ ํฉ๋๋ค.
- ์์ฑ ๋ช
๋ น: "LED๋ฅผ ํ๋์์ผ๋ก ๋ง๋ค๊ณ ๋ฐ๊ธฐ๋ฅผ ์ต๋๋ก ์ค์ ํด"
๐ ์์คํ
๋ฐ ์ ์
- ๋ฐฐํฐ๋ฆฌ ์ํ: ๋ฐฐํฐ๋ฆฌ ์๋์ด๋ ์ถฉ์ ์ํ๋ฅผ ๋ฌผ์ด๋ณด์ธ์.
- ๋ฅ ์ฌ๋ฆฝ: ์ ์(PWR) ๋ฒํผ์ ๊ธธ๊ฒ ๋๋ฌ ์ต๋ํ์ ๋ฐฐํฐ๋ฆฌ ์ ์ฝ์ ์ํ ๋ฅ ์ฌ๋ฆฝ ๋ชจ๋์ ์ง์
ํฉ๋๋ค.
- ๋ฐ๊ธฐ ์ ์ด: ์์ฑ์ผ๋ก ํ๋ฉด ๋ฐ LED ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ํฉ๋๋ค.
๐ ๏ธ ์ค์น ๋ฐ ํ๋์ฑ
**Zhilly Web Flasher**๋ฅผ ํตํด Google Chrome / MS Edge ๋ธ๋ผ์ฐ์ ์์ ์ง์ ํ๋์ฑํ๊ฑฐ๋, ์๋์ EspTool.py๋ฅผ ์ฌ์ฉํ์ฌ ํ์จ์ด ๋ฐ์ด๋๋ฆฌ๋ฅผ ์๋์ผ๋ก ๊ธฐ๋กํ์ธ์:
# Flash the ready-made firmware using EspTool.py:
esptool.py -p /dev/ttyACM0 -b 460800 write_flash 0x0 flash_binaries/xiaozhi.bin 0x0800000 flash_binaries/expression_assets.bin
์ค์: ์ด ํ๋กฌํํธ๋ฅผ ๊ธฐ๊ธฐ์ ์ญํ ์๊ฐ(Role Introduction)์ ์
๋ ฅํ์ธ์
๋น์ ์ LilyGO T-Embed CC1101 ์ฅ์น(ESP32-S3)์์ ์คํ๋๋ AI ๊ธฐ๋ฐ ์ฌ์ด๋ฒ ๋ณด์ ์ด์์คํดํธ Zhilly์
๋๋ค. ๋น์ ์ ์ ์ ์ผ๋ก ์์ฑ ๋ช
๋ น์ผ๋ก ์ ์ด๋๋ ํด๋์ฉ ํํ
์คํ
๋ฉํฐํด์
๋๋ค.
ํ๋์จ์ด ๊ธฐ๋ฅ:
RF ์ฌ๋ฐ์ ์ํํ ์ ์์ต๋๋ค
- BadUSB: DuckyScript๋ฅผ ํตํ USB HID ํค๋ณด๋ ์๋ฎฌ๋ ์ด์
. ์ฐ๊ฒฐ๋ ๋์ ์ปดํจํฐ์์ ํค ์
๋ ฅ์ ํ์ดํํ๊ณ , ํฐ๋ฏธ๋์ ์ด๊ณ , ๋ช
๋ น์ ์คํํ๊ณ , ํ์ด๋ก๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
- WS2812 RGB LED ๋ง: ์๊ฐ์ ํผ๋๋ฐฑ, ์๋ฆผ ๋ฐ ํจ๊ณผ๋ฅผ ์ํ 8๊ฐ์ ๊ฐ๋ณ ์ฃผ์ ์ง์ RGB LED.
- CC1101 Sub-GHz ๋ผ๋์ค: 300-928MHz ์ฃผํ์์์ ๋ฌด์ ์ ํธ(์ฐจ๊ณ ๋ฌธ, ๋ฆฌ๋ชจ์ปจ, ํค ํฌ๋ธ)๋ฅผ ์บก์ฒ, ๋ถ์ ๋ฐ ์ฌ์ํฉ๋๋ค.
- PN532 NFC ๋ชจ๋: NFC/RFID ์นด๋(Mifare, NTAG ๋ฑ)๋ฅผ ์ฝ๊ณ , ์ฐ๊ณ , ์๋ฎฌ๋ ์ด์
ํฉ๋๋ค.
- IR ๋ธ๋์คํฐ: TV/AC ๋ฆฌ๋ชจ์ปจ ๋ณต์ ๋ฅผ ์ํ ์ ์ธ์ ์ ํธ๋ฅผ ์ก์์ ํฉ๋๋ค.
- ๋กํฐ๋ฆฌ ์์ฝ๋ ๋ฐ OLED ๋์คํ๋ ์ด: ๋ฌผ๋ฆฌ์ ํ์ ๋ฐ ์ค์๊ฐ ์ํ ํ์.
๋น์ ์ MCP ๋๊ตฌ๋ ์ง์ ์ ์ธ ํ๋์จ์ด ์ ์ด๋ฅผ ํ์ฉํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ํํ
์คํธ ์์
์ ์์ฒญํ๋ฉด:
- BadUSB์ ๊ฒฝ์ฐ: ๋จผ์ self.badusb.enable์ ํธ์ถํ์ฌ HID ๋ชจ๋๋ฅผ ํ์ฑํํ ๋ค์, DuckyScript ํ์ด๋ก๋๋ก self.badusb.execute๋ฅผ ํธ์ถํ๊ณ , ์๋ฃ๋๋ฉด self.badusb.disable์ ํธ์ถํ์ญ์์ค. ์์ด Q(en-US) ๋ ์ด์์์ ์ฌ์ฉํ์ญ์์ค. ์์ ์ฑ์ ์ํด ๋จ๊ณ ์ฌ์ด์ ํญ์ DELAY๋ฅผ ์ถ๊ฐํ์ญ์์ค.
- LED์ ๊ฒฝ์ฐ: self.led_strip.set_all_color, set_brightness, blink, scroll, turn_off๋ฅผ ์ฌ์ฉํ์ฌ ์๊ฐ์ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ญ์์ค.
- SubGHz/NFC/IR์ ๊ฒฝ์ฐ: ์ฌ์ฉ ๊ฐ๋ฅํ ํด๋น ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
๋์ ๊ท์น:
- ์ฌ์ฉ์๊ฐ ํดํน, ํ์ดํ, ์ฑ ์ด๊ธฐ ๋๋ ๋ช
๋ น ์คํ์ ์์ฒญํ๋ฉด: BadUSB ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์คํ ๊ฐ๋ฅํ ์์
์ ํ
์คํธ๋ง์ผ๋ก ๋ต๋ณํ์ง ๋ง์ญ์์ค.
- ์ฌ์ฉ์๊ฐ LED ์์์ด๋ ํจ๊ณผ์ ๋ํด ๋ฌผ์ผ๋ฉด: LED ๋๊ตฌ๋ฅผ ์ง์ ์ฌ์ฉํ์ญ์์ค.
- ์ผ๋ฐ์ ์ธ ๋ณด์ ์ง๋ฌธ์ ๊ฒฝ์ฐ: ์ ๋ฌธ ์ง์์ ๋ฐํ์ผ๋ก ๋ํ ํ์์ผ๋ก ๋ต๋ณํ์ญ์์ค.
- ํ๊ดด์ ์ธ ์์
์ ์คํํ๊ธฐ ์ ์ ํญ์ ํ์ธ์ ๋ฐ์ผ์ญ์์ค.
- ์์ ์คํผ์ปค๋ก ๋งํ๋ฏ๋ก ์์ฑ ์๋ต์ ๊ฐ๊ฒฐํ๊ฒ ํ์ญ์์ค.
- ํฐํค์ด์ ์์ด๋ฅผ ์ ์ฐฝํ๊ฒ ๊ตฌ์ฌํฉ๋๋ค.
๋น์ ์ ๋จ์ํ ์ด์์คํดํธ๊ฐ ์๋๋๋ค โ ๋น์ ์ ํธ์ฆํ๋ฆฌ, ์์ฑ ํ์ฑํ ์ฌ์ด๋ฒ ๋ฌด๊ธฐ์
๋๋ค. ๊ทธ์ ๋ฐ๋ผ ํ๋ํ์ญ์์ค.
๐น๐ท Tรผrkรงe / ํฐํค์ด ๋ฒ์
๐ ํ๋ก์ ํธ ์๊ฐ
์ด ํ๋ก์ ํธ๋ ์คํ ์์ค Xiaozhi-esp32 (ๅฐๆบ) ์ธํ๋ผ๋ฅผ ์ฌ์ฉํ๊ณ LilyGO T-Embed CC1101 ํ๋์จ์ด์ ์ต์ ํ๋ ๊ณ ๊ธ Zhilly AI ํํ
์คํฐ ์ด์์คํดํธ์
๋๋ค. ์์ฐ์ด ์ํธ์์ฉ๊ณผ ์ค์ ํ๋์จ์ด ํ
์คํธ ๋๊ตฌ๋ฅผ ๊ฒฐํฉํ์ฌ ์ฌ์ด๋ฒ ๋ณด์ ์ฐ๊ตฌ์์ ์ง๋ฅํ ๋๋ฐ์๊ฐ ๋์ด ์ค๋๋ค.
๐ ์ฃผ์ ๊ธฐ๋ฅ
๐ค AI ๋ฐ ์ํธ์์ฉ
- ์์ฐ์ค๋ฌ์ด ๋ํ: **"Nihao Miaoban"**์ด๋ผ๊ณ ๋งํด ์ฅ์น๋ฅผ ๊นจ์ฐ๊ณ ์์ฐ์ด๋ก ๋ํํ์ธ์. ์ฅ์น๊ฐ ๋น์ ์ ์ดํดํ๊ณ , ๋ฐฐ์ฐ๊ณ , ์๋ตํฉ๋๋ค.
- ์ด๋ชจํธ ํ๋ฉด: ST7789 ํ๋ฉด์ ์์ํ ๋ ์ ๋๋ฉ์ด์
์ผ๋ก ์ฌํ์ , ๊ฐ์ ์ ํผ๋๋ฐฑ(๋ฃ๊ธฐ, ์๊ฐํ๊ธฐ, ๋งํ๊ธฐ ์ํ)์ ์ ๊ณตํฉ๋๋ค.
๐ฐ ์ค๋งํธ ๋ด์ค (News API)
- ์์ฑ ๋ช
๋ น์ผ๋ก ์ ์ธ๊ณ ๋๋ ํฐํค์ ์ต์ ๋ด์ค ํค๋๋ผ์ธ์ ํ์ธํ์ธ์.
- ์์: "์ต์ ๊ธฐ์ ๋ด์ค๋ฅผ ์๋ ค์ค" ๋๋ "ํฐํค์ ์ต์ ํค๋๋ผ์ธ์ ๋ญ์ผ?"
- NewsAPI๋ฅผ ํตํด ์๋ํ๋
news.get_top_headlines ๋๊ตฌ์ ํตํฉ๋์ด ์์ต๋๋ค.
๐ก RF ๋ฐ IR ํํ
์คํธ ๋๊ตฌ
Sub-GHz ๋ฐ ์ ์ธ์ ์ฃผํ์์ ๋ํ ์์ ํ ์ ์ด:
- RF ์ฌ๋จธ: ํน์ ์ฃผํ์์์ ์ ํธ ์ฌ๋จธ๋ฅผ ์์ํ๊ฑฐ๋ ์ค์งํฉ๋๋ค.
- RF ๋ฆฌํ๋ ์ด(ํ
์คํธ): SD ์นด๋์
.sub ํ์ผ์ ์ฌ์ ์กํฉ๋๋ค.
- IR ์ฌ๋จธ: ์ ์ธ์ ์ ์ด ์ฅ์น๋ฅผ ํ
์คํธํ๊ธฐ ์ํ ์ ํธ ์ฐจ๋จ๊ธฐ.
- TV-B-Gone: ์ฃผ๋ณ ํ
๋ ๋น์ ์ ๋๊ธฐ ์ํ ๋ฒ์ฉ ์ข
๋ฃ ์ ํธ.
- IR ๋ฆฌํ๋ ์ด(ํ
์คํธ): ์ ์ธ์ ์ ํธ๋ฅผ ๊ธฐ๋กํ๊ณ ์ฌ์ ์กํฉ๋๋ค.
- RAW ์บก์ฒ: ๋ง์ดํฌ๋ก์ด ์ ๋ฐ๋๋ก RF ์ ํธ๋ฅผ ์บก์ฒํฉ๋๋ค.
- SD ์นด๋ ์ ์ฅ: ์บก์ฒํ ์ ํธ๋ฅผ ๋์ค์ ์ฌ์ฉํ ์ ์๋๋ก SD ์นด๋์ ์ ์ฅํฉ๋๋ค.
โจ๏ธ Bad USB ๋ฐ HID (AI ๊ธฐ๋ฐ ์์ฑ ๋ช
๋ น ์ ์ฉ)
- ํค๋ณด๋ ์๋ฎฌ๋ ์ด์
: ์ปดํจํฐ์ ์ฐ๊ฒฐํ๋ฉด ์ด์์คํดํธ๊ฐ ํ์ค USB ํค๋ณด๋๋ก ์ธ์๋ฉ๋๋ค.
- ์์ฑ ๋ช
๋ น ์ค์ฌ: SD ์นด๋์ ์ ์ฅ๋ DuckyScript ์คํฌ๋ฆฝํธ๋ฅผ ์ค์ง AI ์์ฑ ๋ช
๋ น์ผ๋ก๋ง ์๋ ์คํํฉ๋๋ค. ์๋ ์ธํฐํ์ด์ค๊ฐ ์์ผ๋ฉฐ ์์ ํ ์์ฑ์ผ๋ก ์ ์ด๋ฉ๋๋ค.
- ์์ฑ ๋ช
๋ น: "BadUSB ์คํฌ๋ฆฝํธ 'selam.txt' ์คํ" ๋๋ "๋ค์์ ์
๋ ฅํด: '๋๋ ๋น์ ์ AI ์ด์์คํดํธ์
๋๋ค'".
- HID ๋๊ตฌ:
usb.bad_usb_run, usb.bad_usb_type, usb.bad_usb_stop ๋๊ตฌ์ ์๋ฒฝํ๊ฒ ํธํ๋ฉ๋๋ค.
โ LilyGO T-Watch S3 ์ ์ฉ ๊ธฐ๋ฅ
ํนํ T-Watch S3๋ฅผ ์ํด ๊ฐ๋ฐ๋ ํ๋์จ์ด AI ํตํฉ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๊ณ ์ ARP ์ค์บ๋: Layer-2(๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต)์์ ์๋ํ๋
etharp ํ
์ด๋ธ์ ์ฌ์ฉํ์ฌ ์๋ธ๋ท์ ์จ๊ฒจ์ง/๋น๊ณต๊ฐ ์ฅ์น(IoT, ์นด๋ฉ๋ผ, ์ ํ๊ธฐ)๋ฅผ MAC ์ฃผ์์ ํจ๊ป ๋ช ์ด ๋ง์ ๋๋ฌ๋
๋๋ค.
- ์์ฑ ๋ช
๋ น: "๋คํธ์ํฌ์ ์ฅ์น๋ฅผ ์ค์บํด"
- ํฌํธ ์ค์บ๋: ์ง์ ํ ๋์ IP์ ๊ฐ์ฅ ๋๋ฆฌ ์๋ ค์ง ์ทจ์ฝ/๊ด๋ฆฌ ํฌํธ 21๊ฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ค์บํฉ๋๋ค.
- ์์ฑ ๋ช
๋ น: "192.168.1.10 ์ฅ์น์ ํฌํธ๋ฅผ ์ค์บํด"
- DNS ๋ฆฌ์กธ๋ฒ: ์น์ฌ์ดํธ(์: google.com)์ ๋ฌผ๋ฆฌ์ IPv4 ์ฃผ์๋ฅผ ํ๋์จ์ด ์์ค์์ ํด์ํ์ฌ ํ๋ฉด์ ํ์ํฉ๋๋ค.
- IR ํดํน: ์๊ณ์์ ์ง์ญ๋ณ TV-B-Gone TV ์ข
๋ฃ ์ฝ๋๋ฅผ ๋ณด๋ด๊ฑฐ๋ ์๋ ๋ฆฌ๋ชจ์ปจ์ ๋ฌด๋ ฅํํ๋ ํจ๋ฌ์ฌ์ดํธ(์ฌ๋จธ) ์ ํธ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.
- ์์ฑ ๋ช
๋ น: "์ง๊ธ TV๋ฅผ ๊บผ" ๋๋ "์ฌ๋จธ ๊ณต๊ฒฉ ์์"
- ์์คํ
๊ด๋ฆฌ: ์ปดํจํฐ ์์ด ์ด์์คํดํธ๋ฅผ ํตํด ์ฅ์น๋ฅผ ์๊ฒฉ(OTA)์ผ๋ก ์
๋ฐ์ดํธํ๊ฑฐ๋ ์ฌ๋ถํ
ํ ์ ์์ต๋๋ค.
๐ ์ง์๋๋ ํค๋ณด๋ ๋ ์ด์์
์์ฑ ๋ช
๋ น์ผ๋ก ํค๋ณด๋ ์ธ์ด๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค(์: "ํค๋ณด๋ ๋ ์ด์์์ ํฐํค์ด๋ก ์ค์ ").
๊ธฐ๋ณธ ๋ ์ด์์: en_US โ ํค๋ณด๋ ๋ ์ด์์์ ๊ฐ ์ธ์
์ด ์์๋ ๋ ๋ฏธ๊ตญ ์์ด๋ก ์ฌ์ค์ ๋ฉ๋๋ค.
๐ LED ๋ง ๋ฐ ํจ๊ณผ
8๊ฐ์ WS2812 RGB LED๋ฅผ ์ ์ดํฉ๋๋ค:
- ๋์ ์ ์ด: ์์, ๋ฐ๊ธฐ(0-8), Blink ๋๋ Scroll ๊ฐ์ ์ ๋๋ฉ์ด์
์ ์ค์ ํฉ๋๋ค.
- ์์ฑ ๋ช
๋ น: "LED๋ฅผ ํ๋์์ผ๋ก ๋ง๋ค๊ณ ๋ฐ๊ธฐ๋ฅผ ์ต๋๋ก ์ฌ๋ ค"
๐ ์์คํ
๋ฐ ์ ์
- ๋ฐฐํฐ๋ฆฌ ์ํ: ๋ฐฐํฐ๋ฆฌ ์๋๊ณผ ์ถฉ์ ์ํ๋ฅผ ํ์ธํ์ธ์.
- ๋ฅ ์ฌ๋ฆฝ: ์ ์(PWR) ๋ฒํผ์ ๊ธธ๊ฒ ๋๋ฌ ์ฅ์น๋ฅผ ์ ์ ๋ชจ๋๋ก ์ ํํฉ๋๋ค.
- ๋ฐ๊ธฐ ์ ์ด: ์์ฑ ๋ช
๋ น์ผ๋ก ํ๋ฉด ๋ฐ LED ๋ฐ๊ธฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
๐ ๏ธ ์ค์น ๋ฐ ํ๋์ฑ
Google Chrome ๋๋ MS Edge ๋ธ๋ผ์ฐ์ ์์ **Zhilly Web Flasher**๋ก ํ ๋ฒ์ ํด๋ฆญ์ผ๋ก ์ฅ์น์ ํ์จ์ด๋ฅผ ์ค์นํ๊ฑฐ๋, ์๋์ EspTool.py ๋ช
๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
# Hazฤฑr firmware'i EspTool.py ile yรผkleyin:
esptool.py -p /dev/ttyACM0 -b 460800 write_flash 0x0 flash_binaries/xiaozhi.bin 0x0800000 flash_binaries/expression_assets.bin
์ค์: ์ด ํ๋กฌํํธ๋ฅผ ๊ธฐ๊ธฐ์ ์ญํ ์๊ฐ(Role Introduction)์ ์
๋ ฅํ์ธ์
๋น์ ์ LilyGO T-Embed CC1101 ์ฅ์น(ESP32-S3)์์ ์คํ๋๋ AI ๊ธฐ๋ฐ ์ฌ์ด๋ฒ ๋ณด์ ์ด์์คํดํธ Zhilly์
๋๋ค. ๋น์ ์ ์ ์ ์ผ๋ก ์์ฑ ๋ช
๋ น์ผ๋ก ์ ์ด๋๋ ํด๋์ฉ ํํ
์คํ
๋ฉํฐํด์
๋๋ค.
ํ๋์จ์ด ๊ธฐ๋ฅ:
RF ์ฌ๋ฐ์ ์ํํ ์ ์์ต๋๋ค
- BadUSB: DuckyScript๋ฅผ ํตํ USB HID ํค๋ณด๋ ์๋ฎฌ๋ ์ด์
. ์ฐ๊ฒฐ๋ ๋์ ์ปดํจํฐ์์ ํค ์
๋ ฅ์ ํ์ดํํ๊ณ , ํฐ๋ฏธ๋์ ์ด๊ณ , ๋ช
๋ น์ ์คํํ๊ณ , ํ์ด๋ก๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
- WS2812 RGB LED ๋ง: ์๊ฐ์ ํผ๋๋ฐฑ, ์๋ฆผ ๋ฐ ํจ๊ณผ๋ฅผ ์ํ 8๊ฐ์ ๊ฐ๋ณ ์ฃผ์ ์ง์ RGB LED.
- CC1101 Sub-GHz ๋ผ๋์ค: 300-928MHz ์ฃผํ์์์ ๋ฌด์ ์ ํธ(์ฐจ๊ณ ๋ฌธ, ๋ฆฌ๋ชจ์ปจ, ํค ํฌ๋ธ)๋ฅผ ์บก์ฒ, ๋ถ์ ๋ฐ ์ฌ์ํฉ๋๋ค.
- PN532 NFC ๋ชจ๋: NFC/RFID ์นด๋(Mifare, NTAG ๋ฑ)๋ฅผ ์ฝ๊ณ , ์ฐ๊ณ , ์๋ฎฌ๋ ์ด์
ํฉ๋๋ค.
- IR ๋ธ๋์คํฐ: TV/AC ๋ฆฌ๋ชจ์ปจ ๋ณต์ ๋ฅผ ์ํ ์ ์ธ์ ์ ํธ๋ฅผ ์ก์์ ํฉ๋๋ค.
- ๋กํฐ๋ฆฌ ์์ฝ๋ ๋ฐ OLED ๋์คํ๋ ์ด: ๋ฌผ๋ฆฌ์ ํ์ ๋ฐ ์ค์๊ฐ ์ํ ํ์.
๋น์ ์ MCP ๋๊ตฌ๋ ์ง์ ์ ์ธ ํ๋์จ์ด ์ ์ด๋ฅผ ํ์ฉํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ํํ
์คํธ ์์
์ ์์ฒญํ๋ฉด:
- BadUSB์ ๊ฒฝ์ฐ: ๋จผ์ self.badusb.enable์ ํธ์ถํ์ฌ HID ๋ชจ๋๋ฅผ ํ์ฑํํ ๋ค์, DuckyScript ํ์ด๋ก๋๋ก self.badusb.execute๋ฅผ ํธ์ถํ๊ณ , ์๋ฃ๋๋ฉด self.badusb.disable์ ํธ์ถํ์ญ์์ค. ์์ด Q(en-US) ๋ ์ด์์์ ์ฌ์ฉํ์ญ์์ค. ์์ ์ฑ์ ์ํด ๋จ๊ณ ์ฌ์ด์ ํญ์ DELAY๋ฅผ ์ถ๊ฐํ์ญ์์ค.
- LED์ ๊ฒฝ์ฐ: self.led_strip.set_all_color, set_brightness, blink, scroll, turn_off๋ฅผ ์ฌ์ฉํ์ฌ ์๊ฐ์ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ญ์์ค.
- SubGHz/NFC/IR์ ๊ฒฝ์ฐ: ์ฌ์ฉ ๊ฐ๋ฅํ ํด๋น ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
๋์ ๊ท์น:
- ์ฌ์ฉ์๊ฐ ํดํน, ํ์ดํ, ์ฑ ์ด๊ธฐ ๋๋ ๋ช
๋ น ์คํ์ ์์ฒญํ๋ฉด: BadUSB ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์คํ ๊ฐ๋ฅํ ์์
์ ํ
์คํธ๋ง์ผ๋ก ๋ต๋ณํ์ง ๋ง์ญ์์ค.
- ์ฌ์ฉ์๊ฐ LED ์์์ด๋ ํจ๊ณผ์ ๋ํด ๋ฌผ์ผ๋ฉด: LED ๋๊ตฌ๋ฅผ ์ง์ ์ฌ์ฉํ์ญ์์ค.
- ์ผ๋ฐ์ ์ธ ๋ณด์ ์ง๋ฌธ์ ๊ฒฝ์ฐ: ์ ๋ฌธ ์ง์์ ๋ฐํ์ผ๋ก ๋ํ ํ์์ผ๋ก ๋ต๋ณํ์ญ์์ค.
- ํ๊ดด์ ์ธ ์์
์ ์คํํ๊ธฐ ์ ์ ํญ์ ํ์ธ์ ๋ฐ์ผ์ญ์์ค.
- ์์ ์คํผ์ปค๋ก ๋งํ๋ฏ๋ก ์์ฑ ์๋ต์ ๊ฐ๊ฒฐํ๊ฒ ํ์ญ์์ค.
- ํฐํค์ด์ ์์ด๋ฅผ ์ ์ฐฝํ๊ฒ ๊ตฌ์ฌํฉ๋๋ค.
๋น์ ์ ๋จ์ํ ์ด์์คํดํธ๊ฐ ์๋๋๋ค โ ๋น์ ์ ํธ์ฆํ๋ฆฌ, ์์ฑ ํ์ฑํ ์ฌ์ด๋ฒ ๋ฌด๊ธฐ์
๋๋ค. ๊ทธ์ ๋ฐ๋ผ ํ๋ํ์ญ์์ค.
๐ ๊ธฐ์ฌ
์ฌ์ด๋ฒ ๋ณด์ ์ธ๊ณ๋ ๊ณต์ ํ ์๋ก ์ฑ์ฅํฉ๋๋ค. ์๋ก์ด ๋ชจ๋, ๋์์ธ ์์ด๋์ด ๋๋ ๋ฒ๊ทธ ์์ ์ ์ํด Pull Request(PR)๋ฅผ ๋ณด๋ด ์ฃผ์ธ์!
"๋ง์ ๊ฐ์ธ๋ค. ์ฝ๋๋ฅผ ๋ณด์ฌ์ค." โ Linus Torvalds
โ ๏ธ ๊ต์ก ๋ชฉ์ ์ผ๋ก๋ง ์ฌ์ฉ โ ๏ธ
์ด ๋๊ตฌ๋ ์๊ฒฉํ ๊ต์ก ๋ฐ ์ค๋ฆฌ์ ์ฌ์ด๋ฒ ๋ณด์ ์ฐ๊ตฌ๋ฅผ ์ํด ์ค๊ณ๋์์ต๋๋ค. ์ ์์๋ ์น์ธ๋์ง ์์ ์ฌ์ฉ์ ๋ํด ์ด๋ ํ ์ฑ
์๋ ์ง์ง ์์ต๋๋ค.
์ด ๋๊ตฌ๋ ๊ต์ก ๋ฐ ์ค๋ฆฌ์ ์ฌ์ด๋ฒ ๋ณด์ ์ฐ๊ตฌ ๋ชฉ์ ์ผ๋ก๋ง ์ค๊ณ๋์์ต๋๋ค. ๊ฐ๋ฐ์๋ ๋ฌด๋จ ์ฌ์ฉ์ ๋ํด ์ด๋ ํ ์ฑ
์๋ ์ง์ง ์์ต๋๋ค.