Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
firmware-mod-kit — code.google.com/p/firmware-mod-kit에서 자동으로 내보내짐 | Kitploit
도구/GitHubGitHub/rampagex/firmware-mod-kit
Embedded Systems SecurityReverse EngineeringHardware SecurityFirmware Analysis
GitHubrampagex/firmware-mod-kit

firmware-mod-kit

code.google.com/p/firmware-mod-kit에서 자동으로 내보내짐

저장소 보기
9962076개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

면책 조항

자동으로 code.google.com/p/firmware-mod-kit에서 내보내졌습니다.

펌웨어 수정 키트

이 키트는 리눅스 기반 펌웨어 이미지를 추출하고 재구축하기 위한 스크립트와 유틸리티 모음입니다.

root@kitploit:~
펌웨어 이미지를 구성 요소로 추출
사용자가 펌웨어의 파일 시스템 또는 웹 UI(webif)를 원하는 대로 수정
펌웨어 재구축
수정된 펌웨어를 장치에 플래시하고 벽돌로 만들기 (하)

경고: 이 키트를 사용하면 장치가 벽돌이 됩니다 (아닐 수도 있지만, 그럴 것이라고 말하는 것이 낫습니다). 벽돌이란 효과적으로 작동하지 않는 '벽돌'로 변하는 것을 의미합니다. 하드웨어 수정 없이 복구가 가능한 경우도 있습니다. 때로는 하드웨어 수정이 필요합니다 (예: 직렬 또는 JTAG 헤더를 PCB에 납땜). 때로는 실현 가능하지 않거나, 총 복구 비용이 장치 가치보다 더 많이 들 수 있습니다.

라우터가 벽돌이 될 준비가 되지 않았다면 이 키트를 사용하지 마십시오!

EULA: 이 키트를 다운로드하거나 사용함으로써, 귀하는 펌웨어 모드 키트의 사용 또는 오용으로 인한 결과에 대한 책임을 수락하는 데 동의합니다. 여기에는 장치의 벽돌화가 포함됩니다. 이 키트의 저자는 귀하에게 정중히 경고했습니다. 이 키트는 임베디드 시스템 소프트웨어 엔지니어만을 위한 것입니다.

Firmware Mod Kit

  • 소개
  • 전제 조건
  • 키트 사용하기
    • 키트 실행 파일
    • 펌웨어 작업 디렉토리
    • 펌웨어 추출
    • 펌웨어 재구축
    • DD-WRT 웹 페이지 수정
    • 벤더 펌웨어로 되돌리기
    • 예제
    • Linksys 펌웨어
    • 도구 / 유틸리티
  • 기타 링크

소개

Firmware Mod Kit은 다양한 임베디드 장치의 펌웨어 이미지를 쉽게 분해하고 재구성할 수 있게 해줍니다. 주로 리눅스 기반 라우터를 대상으로 하지만, TRX/uImage 및 SquashFS/CramFS와 같은 일반적인 펌웨어 형식과 파일 시스템을 사용하는 대부분의 펌웨어와 호환되어야 합니다.

전제 조건

Firmware Mod Kit을 사용하려면 서브버전 클라이언트, 표준 리눅스 개발 도구(gcc, make 등), python-magic 모듈, zlib 및 lzma 개발 패키지가 필요합니다. apt-get을 사용하는 리눅스 배포판(예: Ubuntu 또는 Debian)을 실행 중인 경우 다음을 사용하십시오:

For Ubuntu 18.04 and older:

root@kitploit:~
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python-magic autoconf

For Ubuntu 20.04 and newer:

root@kitploit:~
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python3-magic autoconf python-is-python3

For RedHat:

root@kitploit:~
yum groupinstall "Development Tools"
yum install git zlib1g-dev xz-devel python-magic zlib-devel util-linux

For Arch Linux:

There is a AUR package for https://aur.archlinux.org/packages/firmware-mod-kit/

다른 배포판의 경우 해당 배포판의 패키지 관리자를 사용하여 동등한 패키지를 설치해야 합니다.

root@kitploit:~
git clone https://github.com/rampageX/firmware-mod-kit.git
cd firmware-mod-kit/src
make

Binwalk 2.1.1

root@kitploit:~
[Back in firmware-mod-kit directory]
cd src/binwalk-2.1.1
sudo python2 setup.py install

Firmware Mod Kit은 리눅스 플랫폼에서만 지원됩니다. 약간의 수정만으로 다른 POSIX 플랫폼에서도 작동할 것입니다.

키트 사용하기

Git으로 Firmware Modification Kit 저장소를 클론하세요.

키트 실행 파일

Firmware Mod Kit은 유틸리티와 셸 스크립트 모음입니다. 유틸리티는 직접 사용하거나 셸 스크립트를 사용하여 일반적인 펌웨어 작업(예: 추출 및 재구축)을 자동화하고 결합할 수 있습니다. 펌웨어 작업을 용이하게 하는 핵심 스크립트는 다음과 같습니다.

Primary scripts:

스크립트설명
extract-firmware.sh펌웨어 추출 스크립트
build-firmware.sh펌웨어 재구축 스크립트

Secondary scripts:

ddwrt-gui-extract.sh추출된 DD-WRT 펌웨어에서 웹 GUI 파일을 추출합니다.
ddwrt-gui-rebuild.sh수정된 웹 GUI 파일을 추출된 DD-WRT 펌웨어에 복원합니다.

펌웨어 작업 디렉토리

Firmware Mod Kit은 'fmk'라는 '하드 코딩된' 작업 디렉토리를 사용합니다. 추출 스크립트는 이 폴더로 추출하고, 재구축 스크립트는 이 폴더에서 재구축합니다. 대체 작업 디렉토리는 일부 작업에 대해 지원되지만 전부는 아닙니다. 앞으로 이를 확장할 예정입니다. 현재 여러 작업 디렉토리가 있는 경우 현재 작업 중이 아닌 디렉토리의 이름을 바꾸는 것이 좋습니다.

펌웨어 추출

자동화된 펌웨어 추출은 일반적으로 uImage/TRX 펌웨어 헤더를 사용하고 SquashFS 또는 CramFS 파일 시스템을 사용하는 대부분의 펌웨어 이미지에서 작동합니다. 현재 extract-firmware.sh는 이전 old-extract.sh 스크립트보다 더 많은 펌웨어 유형을 지원하므로 선호되는 추출 방법입니다. 그러나 old-extract.sh는 여전히 포함되어 있으며 많은 펌웨어 형식에서 작동합니다.

extract-firmware.sh와 build-firmware.sh의 사용법은 간단합니다:

root@kitploit:~
./extract-firmware.sh firmware.bin

기본적으로 extract-firmware.sh의 출력은 'fmk' 디렉토리에 위치하는 반면, old-extract.sh는 추출된 데이터를 지정된 작업 디렉토리에 배치합니다.

펌웨어 재구축

사용할 빌드 스크립트는 사용된 추출 스크립트에 따라 다릅니다. extract-firmware.sh로 펌웨어 이미지를 추출했다면 재구축하기 위해 build-firmware.sh를 사용해야 합니다. 마찬가지로 old-extract.sh를 사용했다면 이미지를 재구축할 때 old-build.sh를 호출해야 합니다:

root@kitploit:~
./build-firmware.sh [-nopad] [-min]

build-firmware.sh로 생성된 새 펌웨어는 'fmk/new-firmware.bin'에 위치하는 반면, old-build.sh는 여러 다른 형식의 펌웨어 이미지를 생성하여 지정된 출력 디렉토리에 저장합니다.

선택적 -nopad 스위치는 build-firmware.sh가 펌웨어를 원래 크기까지 패딩하지 않도록 지시합니다.

선택적 -min 스위치는 최대 squashfs 블록 크기인 1MB를 사용합니다. 이렇게 하면 대상 장치에서 사용되는 추가 CPU 및 RAM 리소스를 희생하여 펌웨어 이미지 크기가 줄어듭니다. 반드시 필요한 경우가 아니라면 이 스위치를 사용하지 마십시오. 임베디드 시스템에는 매우 큰 블록 크기입니다. 원래 펌웨어 squashfs 블록 크기는 재구축 시 유지되며, 자신이 무엇을 하고 있는지 확신하지 않는 한 원래 블록 크기를 사용해야 합니다. 너무 큰 블록 크기는 겉으로는 잘 작동하는 것처럼 보일 수 있지만, 펌웨어의 런타임 성능이 모든 또는 일부 부하에서 저하될 수 있습니다.

DD-WRT 웹 페이지 수정

Firmware Mod Kit의 매우 독특한 기능 중 하나는 DD-WRT 웹 GUI에서 파일을 추출하고 재구축할 수 있는 능력입니다. 이 작업은 ddwrt-gui-extract.sh와 ddwrt-gui-restore.sh 스크립트에 의해 자동화됩니다.

extract-firmware.sh를 사용하여 DD-WRT 펌웨어 이미지를 추출한 후, 다음을 실행하여 웹 파일을 추출할 수 있습니다:

root@kitploit:~
./ddwrt-gui-extract.sh

그러면 'www'라는 디렉토리가 생성되고 거기에 웹 파일이 추출됩니다. 파일을 원하는 대로 수정할 수 있지만, 파일을 추가하거나 삭제할 수는 없습니다.

편집이 완료되면 다음을 실행하여 웹 파일을 재구축할 수 있습니다:

root@kitploit:~
./ddwrt-gui-rebuild.sh

벤더 펌웨어로 되돌리기

때때로 Gargoyle이나 DD-WRT와 같은 서드파티 펌웨어를 열정적으로 플래시했지만 필요한 기능이 부족하거나 벤더 펌웨어만큼 성능이 좋지 않거나 기능적 문제가 있음을 발견할 수 있습니다. 이러한 상황에서 벤더 펌웨어로 돌아가고 싶지만 방법이 없을 수 있습니다!

Firmware Mod Kit이 벤더 펌웨어로 되돌리는 데 도움이 되는 방법은 다음과 같습니다. 과정은 다음과 같습니다:

  1. 벤더 펌웨어를 추출합니다. 그런 다음 'fmk' 디렉토리의 이름을 바꿉니다.
  2. 서드파티 '업그레이드' 펌웨어(예: Gargoyle-sysupgrade)를 추출합니다.
  3. 추출된 서드파티 펌웨어의 rootfs와 image_parts를 벤더 펌웨어의 것으로 대체합니다.
  4. 펌웨어 이미지를 재구축합니다.
  5. 벤더 펌웨어 이미지를 플래시합니다(이제 서드파티 펌웨어가 예상하는 대로 패키징됨).
  6. 모든 것이 성공하면 다시 벤더 펌웨어를 사용하게 됩니다.

벤더 펌웨어로 돌아가면 다시 벤더 펌웨어 이미지를 수용합니다.

예제

다음 예제는 펌웨어 이미지를 추출하고, 기존 텔넷 데몬을 사용자 정의 빌드된 것으로 교체한 다음, 새 펌웨어 이미지를 구축하는 방법을 보여줍니다:

root@kitploit:~
./extract-firmware.sh firmware.bin
cp new-telnetd fmk/rootfs/usr/sbin/telnetd
./build-firmware.sh

다음은 DD-WRT 펌웨어 이미지를 추출하고, 웹 인덱스 페이지를 수정한 다음, 새 펌웨어 이미지를 구축하기 위해 실행할 명령의 예입니다:

root@kitploit:~
./extract-firmware.sh firmware.bin
./ddwrt-gui-extract.sh
echo "HELLO WORLD" > www/index.asp
./ddwrt-gui-rebuild.sh
./build-firmware.sh

Linksys 펌웨어

Linksys에는 체크섬 검사가 있는 사용자 정의 푸터가 있으므로, 이미지의 체크섬을 계산하고 그에 따라 푸터를 변경하는 과정을 자동화하기 위해 이 스크립트가 작성되었습니다. 새 이미지는 modified_checksum.img에 기록됩니다. 수정 및 build-firmware.sh 후에 실행하십시오.

root@kitploit:~
./linksys_footer.sh modified_firmware.img

도구 / 유틸리티

Firmware Mod Kit은 임베디드 펌웨어 이미지 작업 시 유용한 도구 모음으로 구성됩니다. 여기에는 아래에 나열된 도구가 포함되지만, 여기에 나열되지 않은 훨씬 더 많은 도구가 있습니다.

기타 링크

포럼

도구 다운로드
도구설명
AsusTRXASUSTRX의 확장 버전으로, '일반' TRX 파일과 선택적으로 ASUS addver 스타일 헤더가 추가된 파일을 모두 빌드할 수 있습니다. 또한 WL-530g와 같은 Marvell ASUS 장치와의 호환성을 위해 TRX에서 세그먼트 오프셋을 강제할 수 있습니다(-b 스위치 사용). 이 도구는 '일반' trx 도구와 addver를 모두 대체합니다. 포함된 현재 버전: 0.90 베타.
AddPatternTRX에 Linksys 스타일 HDR0 헤더를 앞에 추가하는 유틸리티.
AddVer버전 정보가 포함된 헤더를 TRX 이미지에 추가하는 ASUS 유틸리티. ASUSTRX에는 이 기능이 포함되어 있습니다. 현재 버전: 버전 미지정.
Binwalk펌웨어 이미지에서 알려진 파일 형식(펌웨어 헤더, 압축된 커널, 파일 시스템 등)을 스캔합니다.
CramFSCKCRAMFS 파일 시스템 이미지 검사기 및 추출기. 포함된 현재 버전: 2.4x.
CramFSSwapCramFS 이미지의 엔디언을 교환하는 유틸리티
CRCalc주어진 펌웨어 이미지 내의 모든 uImage 및 TRX 헤더를 패치하는 유틸리티.
MkSquashFSsquashfs 파일 시스템 이미지를 빌드합니다. 포함된 현재 버전: 2.1-r2, 3.0.
MkCramFScramfs 파일 시스템 이미지를 빌드합니다. 다음 버전에서 제공 예정. 포함된 현재 버전: 2.4x.
MotorolaBinMotorola 장치 WR850G, WA840G, WE800G용 TRX 이미지에 8바이트 헤더를 앞에 추가하는 유틸리티. 현재 버전: 버전 미지정.
Splitter3펌웨어 이미지의 구성 요소를 스캔하고 추출하는 유틸리티.
Tpl-toolTP-Link 벤더 형식 이미지를 조작하는 유틸리티.
UnCramFScramfs 파일 시스템 이미지를 추출하는 대체 도구. 가능하면 cramfsck을 대신 사용하십시오. 더 신뢰할 수 있는 것으로 보입니다. 포함된 현재 버전: 0.7 (cramfs v2.x용).
UnCramFS-LZMAOpenRG에서 사용되는 것과 같은 LZMA 압축 cramfs 파일 시스템 이미지를 추출하는 대체 도구.
UnSquashFSzlib squashfs 파일 시스템 이미지를 추출합니다. 포함된 현재 버전: 3.0 이미지용 1.0 및 2.x 이미지용 1.0(자체 혼합).
UnSquashFS-LZMAlzma squashfs 파일 시스템 이미지를 추출합니다. 포함된 현재 버전: 3.0 이미지용 1.0 및 2.x 이미지용 1.0(자체 혼합). 참고: 모든 squashfs-lzma 패치가 서로 호환되는 것은 아닙니다. 모든 일반적인 squashfs-lzma 변형에 대한 지원을 추가하기 위해 작업 중입니다.
UnTRXTRX 스타일 펌웨어를 구성 요소로 분할합니다. 또한 앞에 추가된 addpattern HDR0 스타일 헤더를 지원합니다. 이 키트 전용으로 개발되었습니다. 포함된 현재 버전: 0.45.
WebDecompDD-WRT 펌웨어 이미지에서 웹 GUI 파일을 추출하고 복원하여 웹 페이지를 수정할 수 있습니다.
WRTVxImgToolWRT54G(S) v5 시리즈용 VxWorks 호환 펌웨어 이미지를 생성하는 유틸리티.