Wiznet makers

bruno

Published June 18, 2026 ©

178 UCC

15 WCC

46 VAR

0 Contests

0 Followers

0 Following

Original Link

Que vaut Lan Tester une application de test réseaux filaire pour le Flipper Zero ?

Let's take a look at LAN Tester, an application that performs basic tests on wired networks. We will examine its advantages and disadvantages.

COMPONENTS
PROJECT DESCRIPTION

 

WIZnet W5500 + Flipper Zero로 만드는 휴대용 네트워크 진단·보안 테스터

주머니에 들어가는 Flipper Zero에 WIZnet W5500 모듈 하나만 붙이면, ARP 스캔·DHCP 분석·트레이스라우트·패킷 캡처까지 수행하는 휴대용 LAN 테스터가 된다. 노트북을 꺼내지 않고 현장에서 유선 네트워크의 상태와 보안 취약점을 즉시 점검할 수 있다는 것이 이 프로젝트의 핵심 가치다.


구성 요소

하드웨어 구성 요소

  • WIZnet W5500 (또는 W5500 Lite) 이더넷 모듈 — SPI 인터페이스, 하드와이어드 TCP/IP, RJ45
  • Flipper Zero (OFW 공식 펌웨어 또는 Momentum 펌웨어)
  • (선택) Flipper Zero용 프로토 PCB — 모듈을 GPIO 헤더에 고정 결선
  • RJ45 이더넷 케이블, 점퍼선

소프트웨어 및 도구

  • 앱: Flipper Zero LAN Tester (W5500)dok2d/fz-W5500-lan-analyse, MIT 라이선스, C99
  • 빌드 도구: ufbt (micro Flipper Build Tool)
  • 드라이버: WIZnet ioLibrary_Driver (W5500 HAL)
  • 결과 분석(선택): PC + Wireshark (캡처한 PCAP 분석), 웹 브라우저(내장 파일 매니저 접속)

출처 안내 본 글은 프랑스어 YouTube 채널 Kanjian(@kanjian_fr)의 영상 "LAN Tester" 데모(영상 ID: -3fZLPYkNUY)와, 해당 앱의 공개 저장소 github.com/dok2d/fz-W5500-lan-analyse 및 Flipper Lab 카탈로그 정보를 교차 확인해 재구성한 것이다. 단순 번역이 아니라, W5500을 "TCP/IP 오프로드 칩"이 아닌 "L2 raw 캡처/주입 엔진(MACRAW)"으로 쓴다는 기술적 관점에서 다시 정리했다. 공개 출처로 확인되지 않는 항목은 본문에서 **[확인 필요]**로 표기한다.


작성자 / 출처 신뢰도

재구성·게시 (WIZnet Maker 에디터)

  • WIZnet Maker 콘텐츠 형식에 맞춰 기술적 의미 중심으로 재구성. 사실관계는 GitHub README, Flipper Lab, 영상 화면을 대조해 검증.

원 영상 제작자 — Kanjian 채널

  • 채널: Kanjian (youtube.com/@kanjian_fr) — 프랑스어 Flipper Zero·사이버보안 인식 제고 콘텐츠 채널.
  • 운영자 핸들: inaz0 (GitHub github.com/inaz0/flipperZero, X/Twitter @bsmt_nevers).
  • Flipper 액세서리 쇼핑몰 shop.kanjian.fr 운영(현재 빈 PCB·NFC 카드 중심으로 품목 축소 예정이라고 영상에서 언급).
  • 구독자 규모: 영상 내에서 "9,500명 이상"으로 직접 언급. 현재 정확한 구독자 수는 [확인 필요].
  • 영상은 교육 목적임을 명시하고, "본인 소유 장비 또는 명시적 서면 허가를 받은 장비에서만 테스트하라"는 윤리적 사용 경고를 반복함. → 보안 도구 데모로서 신뢰도 양호.

앱 개발자 — dok2d

  • GitHub dok2d/fz-W5500-lan-analyse, MIT 라이선스. README 상 계보가 명시되어 있음:
    • karasevia/finik_eth (원작) → arag0re/fz-eth-troubleshooter (개선) → dok2d (기능 확장·재작성).
  • W5500 제어에 WIZnet 공식 ioLibrary_Driver를 사용한다고 명기 → 하드웨어 추상화 출처가 분명.
  • 저장소 README의 기능표는 비교적 보수적(Link Info·LLDP·CDP·ARP·DHCP·Ping·Statistics)이나, 저장소 설명문·Flipper Lab 등록 정보·영상 데모에는 트레이스라우트·포트 스캔·DNS 조회·패킷 캡처·WoL·파일 매니저·PXE 등 확장 기능이 포함되어 있음. 즉 배포·데모 버전이 README 표보다 기능이 많다(README가 일부 갱신 시차를 가진 것으로 추정). [확인 필요: 정식 release 태그 / 버전별 기능 차이]

신규 콘텐츠 요약

  • 무엇: Flipper Zero + W5500으로 구현한 휴대용 유선 네트워크 진단·보안 점검 도구(FAP 단일 앱).
  • 사용 칩: WIZnet W5500 (SPI, 하드와이어드 TCP/IP). 단, 앱은 오프로드 스택을 쓰지 않고 MACRAW 모드로 동작.
  • 프로토콜: Ethernet/ARP, DHCP, ICMP, LLDP·CDP, DNS, mDNS/SSDP, STP/VLAN, Wake-on-LAN, (확장) PXE/HTTP.
  • 플랫폼: Flipper Zero(OFW/Momentum), 빌드 ufbt, 결과 일부는 PC+Wireshark에서 분석.
  • 핵심 가치: PC·노트북 없이 현장에서 즉시 링크 상태·DHCP·이웃 장비·열린 포트·DNS 변조 여부를 점검하는 "포켓 사이즈 네트워크 멀티툴".

유사한 기존 콘텐츠

1. Flipper Zero 이더넷 네트워크 테스트 모듈(W5500 포함)

  • 링크: https://maker.wiznet.io/josephsr/resellers/flipper-zero-ethernet-network-testing-module-with-w5500/
  • 유사한 이유: 칩(W5500)·플랫폼(Flipper Zero)·응용(네트워크 테스트) 3개 차원이 모두 일치. 본 영상에서 쓰인 바로 그 하드웨어 모듈 계열을 다룬 글이다.
  • 다른 점: 이쪽은 SPI 결선 하드웨어 모듈(제품) 소개 중심이고, 본 콘텐츠는 그 위에서 돌아가는 소프트웨어(LAN Tester 앱)의 동작 원리에 초점.
  • 연결 포인트: "하드웨어 모듈 → 그 위에서 돌리는 진단 앱"으로 두 글을 시리즈처럼 연결 가능.

2. 주머니에 쏙 들어가는 크기의 네트워크 테스터 (W5500-EVB-Pico2 및 OLED 디스플레이 탑재)

  • 링크: https://maker.wiznet.io/Benjamin/projects/pocket-sized-network-tester-with-w5500-evb-pico2-and-oled-display/
  • 유사한 이유: 칩(W5500 계열)·응용(휴대용 네트워크 테스터, 이더넷 링크/DHCP 검증) 2개 차원 일치.
  • 다른 점: 플랫폼이 W5500-EVB-Pico2 + OLED 독립 디바이스다. Flipper의 풍부한 입력·메뉴 UI 대신 전용 표시장치를 쓰며, 검증 항목도 "포트 연결·DHCP" 중심으로 더 단순.
  • 연결 포인트: 같은 "현장 진단" 문제를 (a) 범용 멀티툴(Flipper) vs (b) 단일 목적 전용기(Pico2)로 푸는 두 가지 설계 철학 비교 소재로 활용.

3. ARPoLAN: 네트워크 모니터링 및 보안 도구

  • 링크: https://maker.wiznet.io/Benjamin/projects/arpolan-network-monitoring-and-security-tool/
  • 유사한 이유: 칩(W5500)·프로토콜(ARP)·응용(네트워크 스캐닝/보안) 다수 차원 일치. ARP 기반 네트워크 가시화라는 핵심 메커니즘이 동일.
  • 다른 점: MCU가 ATmega32U4라 USB HID 기능을 결합(ARP 스푸핑 + HID)해 능동적 공격 성격이 강함. 반면 LAN Tester는 Flipper에서 주로 수동 탐지·진단에 무게를 둔다(영상도 man-in-the-middle류는 RAM/성능상 비현실적이라고 명시).
  • 연결 포인트: "ARP를 어디까지 쓸 것인가" — 탐지(Tester) vs 변조(ARPoLAN) 스펙트럼을 보여주는 대비 사례.

추가 연결 소재: Wake-on-LAN-Button(https://maker.wiznet.io/mason/projects/wake-on-lan-button/)은 본 앱의 WoL 유틸리티 기능과, "Flipper Zero용 모듈 만들기" 기고(https://maker.wiznet.io/gunn/projects/----flipper-zero------/)는 모듈 설계 관점과 각각 연결할 수 있다.


차이점과 확장 가치

기존 WIZnet Maker 콘텐츠 대부분은 W5500을 TCP/IP를 오프로드해 주는 통신 칩으로 소개한다(MQTT 전송, 웹서버, EVB 보드 통신 등). 본 프로젝트의 결정적 차이는 W5500을 MACRAW(raw L2) 캡처·주입 엔진으로 쓴다는 점이다. 즉 칩의 내장 TCP/IP 스택을 일부러 비우고, 앱이 직접 Ethernet/ARP/DHCP/ICMP 프레임을 만들고 파싱한다. 같은 칩의 전혀 다른 활용법을 보여주는 사례다.

확장 가치는 세 방향이다. 첫째, 하드웨어 글(#1)·전용기 글(#2)과 묶어 "모듈 → 전용 테스터 → 멀티툴 앱"의 스펙트럼 콘텐츠로 시리즈화할 수 있다. 둘째, 영상에서 드러난 한계(메모리 부족 크래시, IPv4 한정, ARP 결과 중복 카운트)는 W5500-EVB-Pico2처럼 RAM 여유가 큰 플랫폼으로 포팅하면 상당 부분 해소될 수 있어, "같은 기능을 더 안정적으로" 구현하는 후속 프로젝트의 출발점이 된다. 셋째, ARPoLAN(#3)과 대비해 "탐지 전용 / 화이트햇 진단" 포지셔닝을 명확히 하면, 보안 교육·현장 점검 콘텐츠로서 차별화된다.


프로젝트 설명

문제 제기 — 현장에서 "이 랜 포트, 살아 있나? 속도는? DHCP는 정상인가? 이 서브넷에 어떤 장비들이 붙어 있지? 누가 DNS를 변조하고 있진 않나?"를 확인하려면 보통 노트북과 여러 CLI 도구가 필요하다. 점검 한 번에 가방을 풀어야 하는 것이다.

이 프로젝트의 답은 — "TCP/IP를 칩에 맡기지 말고, 칩을 raw 프레임 입출력 장치로 쓴다"이다. W5500을 MACRAW 모드로 두고 Flipper Zero가 직접 L2/L3 프로토콜을 다루게 하면, 손바닥만 한 장치 하나로 링크 진단부터 보안 점검까지 수행하는 멀티툴이 만들어진다.


0. 핵심 기술/부품 — WIZnet W5500과 MACRAW 모드

핵심은 W5500을 "내장 TCP/IP 스택"이 아니라 "MACRAW(raw Ethernet) 소켓"으로 연다는 점이다. W5500은 본래 TCP·UDP·ICMP·IPv4·ARP·IGMP·PPPoE를 하드웨어로 처리하고 8개 소켓을 동시 지원하는 오프로드 칩이다. 그런데 이 앱은 Socket 0을 MACRAW + MFEN=0(프로미스큐어스) 으로 설정한다. 그러면 멀티캐스트를 포함한 모든 이더넷 프레임이 그대로 올라오고, 앱이 직접 헤더를 해석한다. 진단 도구에는 "정상 통신"보다 "오가는 모든 프레임을 보는 능력"이 필요하기 때문이다.

1. 개발 도구/플랫폼 — Flipper Zero + ufbt + ioLibrary_Driver

Flipper Zero의 FAP 앱으로 빌드하며, W5500 제어는 WIZnet 공식 ioLibrary_Driver에 위임한다. 빌드는 ufbt(micro Flipper Build Tool)로 한다.

cd eth_tester
ufbt build      # 빌드만
ufbt launch     # 빌드 + USB로 Flipper에서 실행
ufbt install    # .fap을 SD 카드에 설치 (/ext/apps/GPIO/)

공식(OFW)·Momentum 펌웨어 모두에서 동작하고, 미리 컴파일된 .fap은 재컴파일 없이 양쪽에서 쓸 수 있다. 영상 제작자는 Momentum 펌웨어에서 키보드 입력(IP·포트 직접 타이핑)이 더 매끄러웠다고 보고했다(OFW에서는 점·하이픈 같은 특수문자 입력이 제한됨). 플랫폼별로 입력 UX가 갈린다는 실무 팁이다.

2. 동작 원리

W5500 ↔ Flipper는 SPI로 연결되고, 전원이 들어오면 W5500을 MACRAW로 초기화한 뒤 단일 스레드 이벤트 루프가 프레임을 송수신한다. 흐름은 다음과 같다.

  1. 앱 시작 시 Flipper의 OTG 3.3V 출력이 자동 활성화되어 W5500에 급전.
  2. SPI로 W5500 레지스터를 설정하고 Socket 0을 MACRAW로 오픈.
  3. 기능별로 프레임을 만들어 주입(ARP 요청, DHCP Discover, ICMP Echo 등)하거나, 올라오는 프레임을 수동 청취(LLDP/CDP)·파싱.
  4. 결과를 화면에 표시하고 /ext/apps_data/eth_tester/에 텍스트로 저장.

설계상 추가 스레드 없이 FreeRTOS 이벤트 루프 하나로 돌아가고, 큰 버퍼는 힙에 할당(앱 스택 4KB 한계 회피)하며, 바이트 순서는 (buf[0]<<8)|buf[1] 식 수동 빅엔디안 파싱을 쓴다(부동소수 printf·htons 미사용). 임베디드 자원 제약에 맞춘 선택이다.

3. 장치 A 구현 — W5500 하드웨어 결선

W5500 모듈을 Flipper GPIO에 7선으로 연결한다(앱 전용 핀맵이라 다른 W5500 데모와 배선이 다름). 저장소 기준 배선은 다음과 같다.

W5500 모듈        Flipper Zero GPIO
MOSI (MO)   →     A7  (pin 2)
SCLK (SCK)  →     B3  (pin 5)
CS   (nSS)  →     A4  (pin 4)
MISO (MI)   →     A6  (pin 3)
RESET (RST) →     C3  (pin 7)
3V3  (VCC)  →     3V3 (pin 9)
GND  (G)    →     GND (pin 8 또는 11)

주의: 같은 W5500이라도 다른 Flipper 앱(예: 이전 데모)과 핀맵이 다를 수 있다. 영상에서도 "이전 영상 배선대로 하면 모듈을 못 찾는다"고 명확히 경고한다. 반드시 앱 저장소 배선을 따를 것.

전원 관련 실무 팁: 표준 결선은 OTG 3.3V(pin 9)지만, 영상 제작자는 모듈이 5V를 잘 견딘다며 pin 1(5V)·pin 8(GND) 로 한쪽에 몰아 결선하기도 했다. 간단한 PCB를 만들어 5V로 깔끔하게 올리는 것을 권장. [확인 필요: 사용 모듈별 5V 허용 여부는 보드 사양 확인 필요]

4. 장치 B 구현 — Flipper LAN Tester 앱 구조

앱은 HAL / protocols / utils 계층으로 분리된 단일 FAP다. 핵심 구조:

 
eth_tester/
├── eth_tester_app.c     # 진입점, ViewDispatcher, 기능 로직
├── hal/w5500_hal.c      # SPI·GPIO·MACRAW 소켓 관리
├── protocols/
│   ├── lldp.c  cdp.c    # 수동 이웃 탐지 파서
│   ├── arp_scan.c       # ARP 요청 생성 + 응답 파서
│   ├── dhcp_discover.c  # DHCP Discover 생성 + Offer 파서
│   └── icmp.c           # IPRAW 기반 ICMP Echo
├── utils/oui_lookup.c   # MAC → 벤더 (~120 OUI)
└── lib/ioLibrary_Driver # WIZnet W5500 드라이버

프로토콜마다 "프레임을 만드는 빌더"와 "응답을 해석하는 파서"가 짝을 이룬다. 모든 TLV 파서에 경계 검사를 넣어 버퍼 오버런을 막는 점이 임베디드 보안 도구로서 중요한 구현 포인트다.

5. 핵심 통신/보안/제어 로직

대표 기능 네 가지의 동작 의도를 의사코드로 요약한다.

ARP 스캔 — 서브넷 가시화. DHCP로 IP를 받고 마스크에서 스캔 범위를 동적으로 정한 뒤, 16개 묶음·15ms 간격으로 ARP 요청을 뿌려 응답 호스트의 IP·MAC·벤더를 수집한다.

 
ip, mask = dhcp_lease()
for host in subnet(ip, mask):
    send_arp_request(host)        # batch=16, delay=15ms
on arp_reply(ip, mac):
    show(ip, mac, oui_lookup(mac))

DHCP 분석 — 무해한 점검. Discover만 보내고 Offer만 해석한다. 실제 IP 임대를 받지 않으므로 운영망에서도 안전하다(서버 IP·게이트웨이·DNS·도메인·NTP·임대시간·옵션 핑거프린트 추출).

DNS 변조 점검(Cache Poisoning Check) — 보안 기능. 같은 도메인을 공개 DNS네트워크 DNS에 각각 질의해 응답 IP를 비교한다. 불일치하면 누군가 캐시 포이즈닝으로 거짓 IP를 줬을 가능성을 경고한다(단, 사내 도메인 필터링 같은 정상 사유일 수도 있음).

 
ip_pub  = resolve(domain, via=public_dns)
ip_local= resolve(domain, via=network_dns)
verdict = "POISONED?" if ip_pub != ip_local else "OK"

Wake-on-LAN — 제어. 대상 MAC으로 매직 패킷을 보내 꺼져 있는 장비의 부팅을 유도한다.

영상은 보안 기능들이 공격이 아니라 자기 네트워크 점검용임을 분명히 한다. man-in-the-middle처럼 모든 트래픽을 가로채 조작하는 작업은 Flipper+W5500의 RAM·성능상 비현실적이라고 명시했다.

6. 검증 / 예외 처리

가장 큰 실전 이슈는 메모리 부족 크래시다. 영상에서 앱이 자주 out of memory로 멈췄고, 그때마다 Flipper를 하드 리부트(좌측 방향키 + Back 버튼 동시 길게) 해 RAM을 비워야 했다. 그 외 관찰된 한계:

  • IPv4 전용 — IPv6 주소는 입력·질의 불가(통계에서 IPv6 EtherType 식별은 가능).
  • ARP 결과 중복 카운트 — 동일 호스트를 두 번 세는 경우가 있어 "12개 발견"이 실제 12개가 아님(신뢰도 주의).
  • 입력 UX 제약 — OFW 키보드에서 점·하이픈 등 특수문자 입력이 막혀 커스텀 포트 범위·트레이스라우트 대상 입력이 어려움(Momentum에서 완화).
  • 파일 매니저 접속 실패 — 데모에서 내장 웹 파일 매니저에 접속이 안 됨 [확인 필요: 펌웨어/네트워크 설정 의존성].

코드 차원에서는 TLV 파서 경계 검사·힙 할당으로 메모리 안전성을 확보하려 했으나, 전체 앱 안정성은 "최적화 여지 있음" 수준이라는 게 영상의 총평이다.

7. 서버 & 결과

앱은 단순 진단을 넘어 LAN 상의 서비스(웹 파일 매니저·PXE)와 PC 연동 분석까지 제공한다.

  • 웹 파일 매니저: Flipper SD 카드를 80번 포트 HTTP 서버로 노출해 같은 LAN의 브라우저에서 파일 열람·업/다운로드·폴더 조작(다크 테마, 모바일/데스크톱 대응). 경로에 ..을 막는 path traversal 보호 포함.
  • PXE 부트 서버: 외부 DHCP를 자동 감지해 자체 DHCP와 충돌을 피하고 부트 파일을 골라 제공.
  • 패킷 캡처 → Wireshark: Flipper 화면만으로는 PCAP 해석이 불가하므로, 캡처 후 PC/태블릿의 Wireshark로 분석하는 워크플로우를 권장.

데모 결과 예시: 100Mbps 링크 자동 감지, IP/게이트웨이/DNS 표시, ARP 스캔으로 공유기·Raspberry Pi·NAS 등 발견, 포트 스캔에서 22(SSH)·80(웹)·443 오픈 확인, 트레이스라우트로 목적지까지 다수 홉 추적.


핵심 요약

  1. 칩의 "용도 전환"이 핵심 인사이트다. 오프로드 통신 칩(W5500)을 MACRAW로 두면 진단·보안용 raw 패킷 엔진이 된다 — 같은 BOM, 전혀 다른 제품.
  2. 하드웨어 추상화를 표준 드라이버에 맡긴 것이 이식성의 비결. WIZnet ioLibrary_Driver 위에 프로토콜 계층을 얹어, 다른 W5500 플랫폼으로 옮기기 쉽다.
  3. "탐지 우선" 포지셔닝은 보안 도구의 신뢰도를 높인다. 능동 공격 대신 수동 청취·무해한 DHCP Discover·DNS 비교 점검에 무게를 둔 설계가 현장 점검 도구로서 적절하다.

개선 여지

  • 메모리 안정성: 잦은 OOM 크래시는 가장 시급한 과제. 버퍼 재사용·기능별 메모리 풀·캡처 길이 제한으로 완화 가능. RAM이 큰 플랫폼(W5500-EVB-Pico2 등)으로 포팅하면 구조적으로 해결.
  • 입력 UX: IP·포트 입력 위젯을 펌웨어 키보드에 의존하지 말고 전용 숫자/IP 입력 UI로 대체.
  • ARP 결과 신뢰도: 응답 중복 제거(MAC 기준 dedup) 보강.
  • IPv6 지원·SNMP/TLS: 현 SDK·RAM 제약상 어렵다고 명시됨 — 상위 보드 포팅 시 검토 대상. [확인 필요: 대상 보드 RAM/암호화 라이브러리 가용성]

신규 설계 시 참고

  • MACRAW + 프로미스큐어스(MFEN=0) 가 모든 진단 기능의 토대다. 새 진단 앱을 설계한다면 여기서 시작하라.
  • DHCP는 Discover-only로 설계하면 운영망에서도 안전하게 점검할 수 있다.
  • 앱 전용 핀맵을 README 최상단에 고정하고, 기존 다른 앱과의 배선 차이를 명시하라(현장 디버깅 시간을 가장 많이 잡아먹는 부분).
  • 화면 표시는 요약만, 상세 분석은 PCAP → Wireshark로 오프로딩하는 분업 구조가 임베디드 자원 제약에 맞다.

서류

Documents
Comments Write