NSTool 활용 가이드: Nintendo Switch 파일 포맷 분석 및 추출

NSTool은 Nintendo Switch 전용 파일 포맷을 읽고 분석하며 내용을 추출할 수 있는 오픈소스 도구입니다. 개발자뿐 아니라 커스텀 펌웨어 사용자나 홈브류 애호가에게도 유용합니다.

주요 기능과 지원 포맷

NSTool은 다음과 같은 Switch 관련 파일 포맷을 처리할 수 있습니다:

  • PFS0 / HFS0: 파티션 기반 파일 시스템
  • RomFs: 읽기 전용 게임 자산 저장소
  • NCA: 콘텐츠 아카이브 (게임, 업데이트 등)
  • NSP: 디지털 배포용 패키지
  • XCI: 물리적 게임 카드 이미지
  • NPDM: 메타데이터 및 실행 권한 정보

설치 및 빌드

다음 명령어로 소스 코드를 가져와 빌드할 수 있습니다:

git clone https://gitcode.com/gh_mirrors/ns/nstool
cd nstool
make

빌드 완료 후 생성된 nstool 실행 파일을 사용하면 됩니다.

기본 사용법

파일 정보를 간단히 확인하려면:

nstool title.nsp

보다 상세한 구조를 보려면:

nstool --showlayout game.xci
nstool -v content.nca

파일 추출 예시

NCA 내부 데이터를 추출하려면:

nstool -x ./output/ content.nca

특정 경로의 파일만 추출하려면:

nstool -x /romfs/logo.bin ./assets/ base.nca

유효성 검증

디지털 서명이나 무결성을 검증할 수 있습니다:

nstool -y cert.cert
nstool -y cartridge.xci

고급 기능

개발자 빌드 파일을 처리하려면 -d 플래그를 사용합니다:

nstool -d dev_title.nsp

파일 시스템 트리를 출력하려면:

nstool --fstree data.pfs0

패치 NCA를 기본 NCA와 결합하여 추출하려면:

nstool --basenca base.nca -x ./patched/ update.nca

암호화 파일 처리

일부 파일은 Switch의 키 체인으로 암호화되어 있어, 별도의 키 파일(prod.keys 또는 dev.keys)이 필요합니다. 키 파일은 환경 변수 또는 명령행 옵션을 통해 지정할 수 있습니다.

모듈 구조

NSTool은 모듈식 아키텍처로 구성되어 있으며 주요 컴포넌트는 다음과 같습니다:

  • NcaProcess: NCA 파싱 및 해독
  • GameCardProcess: XCI 이미지 분석
  • PfsProcess, RomfsProcess: 파일 시스템 처리
  • KeyBag: 암호화 키 관리
  • PkiValidator: 인증서 및 서명 검증

유용한 팁

  • 파일 타입을 수동으로 지정해야 할 경우: nstool -t nsp unknown.bin
  • 문제 발생 시 -v 옵션으로 상세 로그 확인
  • 쉘 스크립트와 조합해 대량 파일 처리 가능

태그: Nintendo Switch NSTool NCA NSP XCI

9월 28일 17:31에 게시됨