How do I extract a CXI file from a CIA file?

Guide: Udtræk en CXI-fil fra et CIA-arkiv

28/05/2025

Rating: 4.69 (3384 votes)

At dykke ned i strukturen af Nintendo 3DS-spil kan være en fascinerende proces for udviklere, moddere eller nysgerrige entusiaster. En almindelig opgave er at udtrække det eksekverbare indhold, kendt som en CXI-fil, fra et installerbart arkiv, en CIA-fil. Denne proces giver dig adgang til spillets kernekomponenter, såsom ExeFS (det eksekverbare filsystem) og RomFS (det skrivebeskyttede filsystem), hvor spillets aktiver som grafik, lyd og tekst er gemt. Denne guide vil føre dig detaljeret gennem hele processen ved hjælp af det kraftfulde kommandolinjeværktøj ctrtool.

How do I extract a CXI file from a CIA file?
Write the "CE" command, and enter the name of your .CIA file WITHOUT its extension. Write the "CXI" command, and enter the name of your .CXI file WITHOUT its extension. Wait while it's extracting. The ExeFS content will be extracted in an ExtractedExeFS folder. The RomFS content will be extracted in an ExtractedRomFS folder.
Indholdsfortegnelse

Forudsætninger for at komme i gang

Før vi begynder selve udtrækningsprocessen, er der et par ting, du skal have på plads. At sikre, at du har de rigtige værktøjer og filer fra starten, vil gøre hele processen meget glattere og forhindre unødvendige fejl.

  • En dekrypteret CIA-fil: Det er afgørende, at den CIA-fil, du arbejder med, er dekrypteret. Værktøjerne kan ikke håndtere krypteret indhold direkte. Processen er kun beregnet til brug med spil, du lovligt ejer.
  • Værktøjet ctrtool: Dette er det primære kommandolinjeværktøj, vi vil bruge. Hvis du bruger et 64-bit operativsystem, kan du normalt finde forudkompilerede versioner online. Hvis du bruger et 32-bit system, skal du muligvis selv kompilere kildekoden.
  • Grundlæggende kendskab til terminal/kommandolinje: Du skal være komfortabel med at navigere i mapper, køre kommandoer og forstå grundlæggende syntaks i din computers terminal (f.eks. Command Prompt i Windows, Terminal på macOS eller Linux).
  • En dedikeret mappe: For at holde styr på dine filer anbefales det kraftigt at oprette en ny mappe, hvor du placerer både din CIA-fil og ctrtool-værktøjet. Dette forhindrer, at de udpakkede filer roder på dit system.

Forståelse af CIA-arkivets struktur

En CIA-fil (CTR Importable Archive) er en container, der indeholder flere forskellige datadele, som kaldes 'contents'. Hver del er indekseret, og indekset angiver typisk, hvilken type data det indeholder. At forstå denne struktur er nøglen til at vide, hvilke filer du skal udtrække.

Indeks (XXXX)AnvendelseFiltype
0Spillets eksekverbare filCXI
1Spillets manualCFA
2Download Play-containerCFA

Det vigtigste for os i denne guide er Indeks 0, som indeholder spillets hovedprogram i en CXI-container. Nogle systemtitler eller DLC'er kan have en anden struktur, men for de fleste spil er dette standarden.

How do I rebuild a CIA file?
1. Click tools > select CIA & rebuild. 2. Drag & Drop CIA (s) 3. Click extract. 4. Edit what you want. 5. Rebuild to apply changes. 6. Open extracted folder. 7. Copy edited CIA somewhere. Spoiler: See picture below for visuals.

Trin-for-trin guide til udtrækning

Nu hvor forudsætningerne er på plads, kan vi gå i gang med selve udtrækningsprocessen. Følg disse trin nøje.

Trin 1: Udtræk indholdet fra CIA-filen

Det første skridt er at udtrække de forskellige 'contents' fra din CIA-container. Åbn din terminal eller kommandoprompt, naviger til den mappe, hvor du har placeret din CIA-fil og ctrtool, og kør følgende kommando:

ctrtool --contents=contents game.cia

Erstat 'game.cia' med navnet på din specifikke CIA-fil. Denne kommando vil analysere CIA-filen og udtrække dens indhold til nye filer i samme mappe. Filerne vil have navne i formatet contents.XXXX.YYYYYYYY, hvor XXXX er indholdsindekset (f.eks. 0000 for spillet) og YYYYYYYY er indholds-ID'et.

Ctrtool har flere argumenter, du kan bruge til at udtrække specifikke dele:

  • --certs=filnavn: Gemmer certifikatkæden i en fil.
  • --tik=filnavn: Gemmer 'Ticket' i en fil.
  • --tmd=filnavn: Gemmer 'Title Metadata' (TMD) i en fil.
  • --contents=filnavn: Gemmer alt indhold. Dette er normalt alt, hvad du behøver.
  • --meta=filnavn: Gemmer meta-regionen. Bemærk: Denne funktion kan være fejlbehæftet i ældre versioner af ctrtool.

Trin 2: Identificer og klargør CXI-filen

Efter at have kørt den første kommando, vil du se flere nye filer. Den fil, vi er interesserede i, er den, der repræsenterer spillets eksekverbare fil. Baseret på strukturen beskrevet tidligere, vil dette typisk være filen med indekset 0000:

contents.0000.xxxxxxxx

Dette er din CXI-fil, selvom den ikke har .cxi-filtypenavnet. For nemheds skyld kan du omdøbe den til noget mere genkendeligt, f.eks. game.cxi, men det er ikke et krav for det næste trin.

Trin 3: Udtræk ExeFS og RomFS fra CXI-filen

Nu hvor vi har isoleret CXI-filen, kan vi udtrække dens indre filsystemer: ExeFS og RomFS. ExeFS indeholder den kompilerede kode, mens RomFS indeholder spillets aktiver. Kør følgende kommando i din terminal:

ctrtool --exefsdir=ExtractedExeFS --romfsdir=ExtractedRomFS contents.0000.xxxxxxxx

Igen, husk at erstatte contents.0000.xxxxxxxx med det faktiske filnavn på din CXI-fil. Når kommandoen er færdig, vil du have to nye mapper:

  • ExtractedExeFS: Indeholder spillets eksekverbare filer, såsom .code, icon og banner.
  • ExtractedRomFS: Indeholder alle spillets aktiver. Dette er ofte den mest interessante mappe for moddere, da den indeholder grafik, lydfiler, 3D-modeller, tekststrenge og meget mere.

Hvis du støder på en fejl som "Unknown file" på dette trin, er det næsten altid fordi din oprindelige CIA-fil ikke var korrekt dekrypteret. Du skal sikre dig, at du bruger en dekrypteret version, før du prøver igen.

How do I transfer a save game from a CIA game?
SaveDataFiler and also be used to transfer your save game from a CIA version of the game (Eshop downloaded game for example) to an actual cartridge version of the game. If you know what you are doing it's also possible to transfer save games from a 3DS virtual console game to an emulator or from an emulator to a 3DS virtual console game.

Avancerede teknikker med 3dstool

Mens ctrtool er fremragende til at udtrække de primære filsystemer, kan det have begrænsninger, når det kommer til at udtrække visse header-filer. Her kan et andet værktøj, 3dstool, være nyttigt.

Udtrækning af NCCH Header

NCCH-headeren indeholder vigtige metadata om CXI-containeren. Ctrtool kan ikke udtrække denne direkte. Du kan bruge 3dstool til at gøre det:

3dstool -xvtf cxi contents.0000.xxxxxxxx --header ncchheader.bin

Udtrækning af ExeFS Header

På samme måde kan ExeFS-headeren udtrækkes fra ExeFS-filsystemet. Dette kræver, at du først udtrækker ExeFS som en enkelt fil (f.eks. med --exefs=exefs.bin i ctrtool) og derefter bruger 3dstool:

3dstool -xvtf exefs exefs.bin --exefs-dir exefs --header exefsheader.bin

Disse avancerede trin er normalt kun nødvendige for dybdegående analyse eller specifikke udviklingsformål.

Ofte Stillede Spørgsmål (FAQ)

Hvorfor får jeg en "Unknown file" fejl?

Denne fejl opstår næsten altid, fordi den CIA-fil, du forsøger at behandle, er krypteret. Ctrtool kan kun arbejde med dekrypterede filer. Du skal finde en måde at dekryptere din CIA-fil på, før du fortsætter.

How do I extract a CIA from a game?
Some system titles also only use a CFA as the first index. Put your CIA in its own folder. Extract the contents of the CIA. For example, to extract the contents such as Game Executable and Manual: Explanation of possible arguments for this situation: This feature is broken on the latest ctrtool release (0.15), it extracts "Contents" instead.

Hvad er forskellen på en CIA- og en CXI-fil?

En CIA-fil er en installerbar pakke eller container, der kan indeholde spillet, en manual, opdateringsdata osv. En CXI-fil er specifikt den eksekverbare del af spillet, som findes inde i CIA-filen. Man kan tænke på CIA som en installationspakke (.msi eller .dmg) og CXI som selve programmet (.exe eller .app) indeni.

Kan jeg bruge disse værktøjer på Windows, macOS og Linux?

Ja. Både ctrtool og 3dstool er kommandolinjeværktøjer, der er designet til at være platformsuafhængige. Du kan finde eller kompilere versioner, der kører på alle større operativsystemer.

Er denne proces lovlig?

Udtrækning af filer fra spil, du selv ejer, til personlig brug, såsom analyse eller backup, befinder sig ofte i en juridisk gråzone. Distribution af de udpakkede filer eller brug af processen på spil, du ikke lovligt har anskaffet, er ulovligt. Denne guide er udelukkende til uddannelsesmæssige formål.

Hvis du vil læse andre artikler, der ligner Guide: Udtræk en CXI-fil fra et CIA-arkiv, kan du besøge kategorien Træ.

Go up