-
scapy_.py: ๋ฃจํธ์์ visualizer๋ก ๊ฐ๋ wisun(tab-windows๋ก ์์ฑํ๊ณ , netsh๋ก ๋ฐ๊พผ ์ด๋ฆ)์ธํฐํ์ด์ค๋ก ์ง๋๋ค๋๋ ํจํท์ ์บก์ฒ
- ํ์ผ์ด๋ฆ ์ฒ๋ผ scapy๋ผ๋ ํจํค์ง ํ์ฉ
- prn: ์บก์ฒํ ํจํท ํธ๋ค๋ฌ ํจ์
- count: ์ค์ ๋ ํ์๋งํผ๋ง ์บก์ฒ(0์ด๋ฉด ๊ณ์)
-
socket_.py: ipv6-udp ์์ผ์ ์ด์ด์ host๋ก ๋ณด๋
- AF_INET6: ipv6 ์ฌ์ฉ์ ์ค์
- SOCK_DGRAM: udp ์ฌ์ฉ์ ์ค์
-
firestore_.py: observer์์ ๋ ธ๋์ ์ํ๋ฅผ firestore์ ์ ์ฅ & firestore์ ์ ๋ฐ์ดํธ๋ฅผ ๊ฐ์ง
- set: ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
- on_snapshot: ์ฐธ์กฐํ๊ณ ์๋ ๋ฌธ์์ ์ํ๋ณํ๋ฅผ ํ์ง
- ์ง๊ธ์ ๊ทธ๋ฅ ํ ์คํธ๋ก while true๋ก ๋ฌดํ๋ฃจํ ๋๋ ค๋์(๋์ค์ ๋ค๋ฅด๊ฒ ํ๊ฒ ์ง)
-
test.py: ๊ทธ๋ฅ ๋ด๊ฐ ๊ฐ๋จํ๊ฒ ํ ์คํธ ํ๋ํ์ผ
- ์ด๋ฏธ ๊น์ ์ฌ๋ ค์ ๊ทธ๋ฅ ์์
-
์ญํ
- visualizer๊ฐ ์๋ AP์์ ์คํ๋๋ฉด์ wi-sun ๋ชจ๋๋ค์ ์ํ๋ฅผ ๊ด์ฐฐ, ํ์ฌ ์ํ๋ฅผ ์๋ฒ(firebase)์ ์ ์ฅ
- ์๋ฒ์์ ์ค๋ ์์ฒญ์ ๋ ธ๋๋ก ์ ๋ฌ
-
์ฝ๋
- firestore ๊ฐ์ฒด์ eventListener๋ฅผ ๋ฑ๋กํด document์ ๋ณํ๋ฅผ ๊ฐ์ง
- ์ฌ์ฉ์ ์ดํ๋ฆฌ์ผ์ด์ ์์ ๋ชจ๋์ ๋ช ๋ น์ ๋ด๋ฆด๋, ํด๋น ๋ชจ๋์ document์ ํ๋๊ฐ์ ๋ณ๊ฒฝ ํจ์ผ๋ก์จ ๋ชจ๋๊ณผ ํต์
- 'wisun' ์ธํฐํ์ด์ค์ ํจํท์ ๊ด์ฐฐํจ์ผ๋ก์จ, ๋ชจ๋์ ์ํ๋ฅผ ํ์
- icmpv6.type.RPL_Control && icmpv6.code.Destination_Advertisement_Object_Acknowlegement ์ธ ํจํท์ ์ฐพ์ผ๋ฉด ์๋ก์ด ๋ชจ๋์ด ๋คํธ์ํฌ์ ๋ฑ๋ก๋๋ ๊ฒ์ ๊ฐ์ง
- firestore์ ์ ๋ชจ๋์ฉ document๋ฅผ ์์ฑ
- 'packetLoadToHex'ํจ์๋ฅผ ๋ง๋ค์ด load๋ฅผ hex๋ก ๋ณํํด, ์๋ก์ด ๋ชจ๋์ ํ ๋น๋ ip์ฃผ์๋ฅผ ํ๋
- payload์ 'check_reception'์ ์ฐพ์ผ๋ฉด ํด๋น ๋ชจ๋์ ์ฐจ๋์ ํ์ฌ ์กด์ฌ์ฌ๋ถ๋ฅผ ํ์
- ๋ชจ๋์ ํด๋นํ๋ document๋ฅผ ์ ๋ฐ์ดํธ(์ฑ์์ ํ์ธ๊ฐ๋ฅ)
- icmpv6.type.RPL_Control && icmpv6.code.Destination_Advertisement_Object_Acknowlegement ์ธ ํจํท์ ์ฐพ์ผ๋ฉด ์๋ก์ด ๋ชจ๋์ด ๋คํธ์ํฌ์ ๋ฑ๋ก๋๋ ๊ฒ์ ๊ฐ์ง
- soket์ ํ์ฉํ์ฌ 'wisun' ์ธํฐํ์ด์ค๋ก ํจํท(๋ช
๋ น)์ ์ ์ก
- ํด๋น ๋ชจ๋์ ip๋ฅผ ํ๊ฒ์ผ๋ก ์์ผ์ ์ด์ด ์ฐจ๋จ๋ด ํต์ ์ ๊ดํ ๋ช ๋ น์ ์ ๋ฌ
- firestore ๊ฐ์ฒด์ eventListener๋ฅผ ๋ฑ๋กํด document์ ๋ณํ๋ฅผ ๊ฐ์ง
- ์๊ตฌ์กฐ๊ฑด ๋ฐ ์ ์ฝ ์ฌํญ ๋ถ์์ ๋ํ ์์ ์ฌํญ
- ์ค๊ณ ์์ธํ ๋ฐ ๋ณ๊ฒฝ ๋ด์ญ
- ๊ตฌ์กฐ๋ ๊ทธ๋ฆผ ๋ฃ๊ธฐ
- ๊ฐฑ์ ๋ ๊ณผ์ ์ถ์ง ๊ณํ
- ๊ตฌ์ฑ์๋ณ ์ง์ฒ๋
- ๋ณด๊ณ ์์ ๊น์ง์ ๊ณผ์ ์ํ ๋ด์ฉ ๋ฐ ์ค๊ฐ ๊ฒฐ๊ณผ