홈으로 돌아가기

D-Link DWR-M921 RTL8197F 펌웨어 수정

이 기사는 RTL8197F 칩셋의 D-Link DWR-M921 라우터 부트로그를 분석합니다. MTD 파티션 구조, USB 및 WLAN 초기화, 펌웨어 수정 제한 사항을 설명합니다. AdGuardHome 같은 커스텀 소프트웨어 주입 벡터를 제안합니다.

D-Link DWR-M921 부트로그 및 펌웨어 수정
Advertisement 728x90

D-Link DWR-M921 펌웨어 분석 및 개조 가이드 (RTL8197F)

D-Link DWR-M921은 Realtek RTL8197F 칩셋을 기반으로 하며, 400MHz 속도의 128MB DDR2 메모리와 Winbond W25Q64 8MB SPI NOR 플래시를 탑재하고 있습니다. MIPS 24Kc 프로세서(00019385)는 Linux 3.10.90에서 999MHz 클럭으로 동작하며, Realtek의 MSDK로 gcc 4.4.7로 컴파일되었습니다.

온보드 UART 인터페이스를 통해 부팅 로그를 캡처할 수 있으며, 이를 통해 MTD 파티션 구조를 확인할 수 있습니다:

  • 0x00000-0x30000: "boot+cfg+linux"
  • 0x30000-0x80000: "rootfs"
  • 0x80000-0xb0000: "boot+cfg+linux2" (비활성)
  • 0xb0000-0x100000: "rootfs2" (비활성)

활성 부트뱅크=1. 커널은 0x80a00000에서 로드되며, rootfs는 /dev/mtdblock1에 squashfs로 마운트됩니다.

Google AdInline article slot

서브시스템 초기화 상세 분석

부팅 로그는 순차적인 초기화 과정을 보여줍니다:

  • 메모리 및 캐시: 128MB 중 114MB 여유, SLUB(HWalign=32).
  • USB 컨트롤러: EHCI(버스 1), OHCI(버스 2), DWC OTG(버스 3) – 40MHz OSC용 PHY 패치 적용.
  • 네트워킹: Realtek WLAN(RFE TYPE=0, 512 RX/TX 디스크립터), FastPath v1.03, VLAN 802.1Q.
  • 파일시스템: squashfs 4.0, exFAT 1.2.9, NTFS R/W.
  • 드라이버: PPP, L2TP, GobiNet/Serial(모뎀용), nf_conntrack.

특정 USB PHY 레지스터:

port 0 reg e0=e2, e1=31, e2=33, e3=8d, e4=c9, e5=19, e6=c1, e7=91
port 0 reg f0=fc, f1=8c, f2=0, f3=11, f4=9b, f5=4, f6=0

이더넷 포트 eth0-eth4는 VLAN에 매핑되며 FastPath 가속을 지원합니다.

Google AdInline article slot

펌웨어 구조 및 장애 요인

펌웨어는 듀얼 뱅크 구조를 사용하지만 뱅크 2는 잠겨 있습니다. D-Link의 오픈소스 코드가 없고 RTL8197F에 대한 OpenWRT 지원이 불안정해 커스텀 빌드가 어렵습니다. SourceForge의 구형 Realtek SDK(rtl819x) 시도는 실패합니다.

주요 부팅 로그 사양:

  • 커널 명령줄: console=ttyS0,38400 root=/dev/mtdblock1
  • DRAM: 128MB DDR2@400MHz
  • 플래시: w25q64@29MHz (max_speed_hz=29000000Hz)
  • CPU: 660.68 BogoMIPS

개조 공격 벡터

  • UART/JTAG 덤프: 전체 이미지를 추출해 리버스 엔지니어링.
  • Squashfs 패칭: rootfs 압축 해제 후 AdGuardHome 또는 커스텀 패키지 주입.
  • 부트로더 훅: U-Boot 또는 독점 로더 수정으로 대체 루트 실행.
  • SDK 익스플로잇: Realtek MSDK 활용해 호환 이미지 생성.
  • TFTP 복구: 활성화 시 네트워크로 개조 이미지 로드.

RTL8197F는 PCIe(링크업 실패), USB OTG, GPIO를 지원해 저수준 해킹에 유리합니다.

Google AdInline article slot

주요 요약

  • RTL8197F 칩셋: MIPS 24Kc@999MHz, 128MB RAM, OpenWRT 지원 제한적.
  • MTD 파티션: boot+cfg+linux(0x300KB)와 rootfs(0x500KB)만 활성.
  • USB PHY 패치: EHCI/OHCI/DWC OTG 안정성 필수.
  • Realtek WLAN: RFE=0, 512 디스크립터, Adaptivity 9.3.4.
  • 커널 버전: 3.10.90(2021), 구형 드라이버(gcc 4.4.7).

— Editorial Team

Advertisement 728x90

다음 읽기