fcrackzip — gendan glemte zip-kodeord på Linux, macOS og Windows (2026)
fcrackzip er et lille, gammelt kommandolinjeværktøj, der gendanner kodeord på klassisk-ZipCrypto-krypterede .zip-filer. Brute-force eller dictionary, kører overalt, stadig nyttigt i 2026 — med hashcat/john som moderne opfølger, når det ikke er hurtigt nok.
TL;DR — fcrackzip er et gratis, open-source kommandolinjeværktøj til at gendanne kodeordet på en krypteret .zip-fil. Det understøtter brute-force (over et bruger-defineret charset og længde) og dictionary-angreb, virker på Linux/macOS/WSL, og er det rigtige første værktøj, når du skal gendanne et glemt kodeord på en zip, du lovligt ejer. Det er kun hurtigt mod klassisk ZipCrypto-kryptering; til den nyere AES-256-zip-profil virker fcrackzip ikke — så skal du bruge zip2john + hashcat i stedet. Installeres med apt install fcrackzip (Debian/Ubuntu), brew install fcrackzip (macOS) eller bygges fra kilden.
Dette indlæg går gennem de praktiske tilfælde. Det antager, at du har autorisation til at gendanne kodeordet — dine egne filer, en kundes, en CTF. Brug det ikke på zips, du ikke ejer.
Installation
# Debian / Ubuntu / Mint / Kali
sudo apt install fcrackzip
# macOS (Homebrew)
brew install fcrackzip
# Arch / Manjaro
sudo pacman -S fcrackzip
# Windows
# Brug WSL2 + Ubuntu og `apt install fcrackzip`.
# En native .exe findes, men er gammel — WSL er simplere.
# Fra kilden
git clone https://github.com/hyc/fcrackzip.git
cd fcrackzip && ./configure && make
sudo cp fcrackzip /usr/local/bin/
Tjek først, hvilken kryptering din zip bruger
fcrackzip håndterer kun klassisk ZipCrypto (den originale, svage PKZIP-kryptering). Til moderne AES-128 / AES-256-zips (introduceret af WinZip 9 i 2003, nu default i nogle værktøjer) vil fcrackzip lydløst fejle i at finde kodeordet, uanset hvor længe du lader det køre.
Hurtigste tjek med zipinfo:
$ zipinfo -v arkiv.zip | head -40
Led efter WinZip AES encryption, strength 3 (= AES-256). Ser du det, så spring til hashcat-sektionen.
Eller med 7z:
$ 7z l -slt arkiv.zip | grep -i 'method\|encrypted'
Method = ZipCrypto Store ← fcrackzip virker
Method = AES-256 Deflate ← fcrackzip virker IKKE
Grundlæggende brute-force
fcrackzip -v -b -c 'a1' -p aaaa -u arkiv.zip
-v— verbose.-b— brute-force-mode.-c 'a1'— charset.a= små bogstavera–z,A= store,1= cifre,!= printbare symboler. Kombiner:'aA1!'= alt printbart ASCII (94 tegn).-p aaaa— start-kodeord (definerer minimum-længde = 4 her).-u— rapporterer kun, hvis den dekrypterede fil “unzipper” rent (filtrerer falske positive — ZipCrypto har en lille CRC, som mange tilfældige kodeord passerer).
Længde: -p aaaaa starter ved 5 tegn. fcrackzip har ikke et --max-length-flag; det inkrementerer start-kodeordet gennem charsettet uendeligt, så at lade det køre til “færdigt” ved længde 8 på det fulde printbare ASCII-charset er ca. 94⁸ ≈ 6×10¹⁵ kandidater — ikke realistisk. Du afgrænser angrebet ved at vælge et rimeligt max charset + længde eller ved at bruge en dictionary.
Dictionary-angreb
fcrackzip -v -D -u -p /usr/share/wordlists/rockyou.txt arkiv.zip
-D— dictionary-mode.-p <fil>— ordliste-fil, én kandidat pr. linje.-u— verificér via unzip, som før.
rockyou.txt er den standard 14 M-indgange-ordliste, der leveres med Kali og er tilgængelig overalt. Har du kontekst om kodeordet (det er nogens navn + årstal, det er et projektkodenavn), så saml en mindre målrettet ordliste — hit-raterne er som regel meget højere end med en generisk liste.
Hastighed og hvad du kan forvente
fcrackzip er single-threaded og CPU-bundet. På en moderne laptop ser du groft:
- 10–30 millioner ZipCrypto-forsøg pr. sekund pr. core for et dictionary-angreb mod en typisk zip.
- Brute-force en anelse hurtigere pga. mindre streng-I/O.
Det gør den fin til:
- Dictionary-angreb mod en hvilken som helst rimelig ordliste.
- Kort brute-force (4–6 tegn alfanumerisk).
Det gør den uegnet til:
- Længde 8+ med symboler — du når aldrig i mål.
- AES-256-zips — forkert værktøj.
Hvornår du skal skifte til hashcat
Hvis fcrackzip er for langsom, eller zip’en er AES-krypteret, så gå over til hashcat. Det er det general-purpose kodeord-cracking-værktøj, GPU-accelereret, og håndterer både ZipCrypto og AES-WinZip-hashes.
Trin 1: træk hashen ud med zip2john
zip2john er en del af John the Ripper. Ubuntu: apt install john.
$ zip2john arkiv.zip > hash.txt
$ cat hash.txt
arkiv.zip:$zip2$*0*3*0*...*$/zip2$::arkiv.zip:hemmelig.pdf:/sti/til/arkiv.zip
Trin 2: fodr den til hashcat
# ZipCrypto (mode 17200, 17210, 17220, 17225 afhængigt af komprimering)
hashcat -m 17200 hash.txt /sti/til/ordliste.txt
# AES-krypteret WinZip (mode 13600)
hashcat -m 13600 hash.txt /sti/til/ordliste.txt
På en enkelt moderne diskret GPU (fx RTX 4090) ser du:
- ZipCrypto: ~5–10 milliarder H/s
- WinZip AES-256: ~10–50 millioner H/s (meget langsommere, fordi AES er dyrt, og der er PBKDF2-iterationer involveret)
hashcats rule-engine, mask-angreb (-a 3) og combinator-mode (-a 1) gør den massivt mere fleksibel end fcrackzip. Til alt ikke-trivielt er den det rigtige værktøj.
Almindelige faldgruber
“PASSWORD FOUND!!!!: pw == abc”, men unzip beder stadig om et kodeord
Du brugte ikke -u. fcrackzips CRC-tjek har falske positive. Kør igen med -u for at verificere kandidater mod et rigtigt dekomprimerings-forsøg.
Forskellige filer i samme zip har forskellige kodeord
Klassisk PKZIP understøtter per-fil-kodeord. fcrackzip angriber én fil ad gangen; giv -l <filnavn> (eller lad den vælge den første krypterede) hvis du skal være specifik.
fcrackzip finder kodeordet, men jeg kan stadig ikke unzippe
Charset/locale-problem. Hvis kodeordet indeholder ikke-ASCII-tegn, har zip’ens skaber måske brugt en anden encoding end din terminal. Prøv unzip -P "$(echo -n 'passwd' | iconv -t cp437)" arkiv.zip.
AES-krypteret, og dictionary finder det ikke
hashcat + regler + en målrettet ordliste er løsningen. Se migrations-trinnene ovenfor.
Defensiv pointe
Hvis du laver zip-filer, der skal forblive krypterede: brug AES-256, ikke ZipCrypto. De fleste moderne værktøjer (7z, zip fra InfoZIP med -e, WinZip, Keka) giver dig AES, hvis du beder om det. Default på zip er desværre stadig ZipCrypto på mange systemer. Tjek med 7z l -slt arkiv.zip før du sender den afsted.
Og vælg et kodeord med længde, ikke smarthed. hashcat er ligeglad med, hvor mærkeligt dit substitutions-mønster er; det handler kun om entropi. En fire-ords passphrase (correct-horse-battery-staple-stil, ~44 bit) er fin mod offline ZipCrypto-angreb; et tilfældigt 12-tegns blandet kodeord (~78 bit) er fint mod GPU-AES-angreb. Alt kortere er genvindbart.
Ofte stillede spørgsmål
Er fcrackzip lovligt?
At gendanne kodeord på filer du ejer eller har autorisation til at tilgå, er lovligt i alle jurisdiktioner, jeg kender. At gøre det på en andens fil uden autorisation er uautoriseret adgang — samme lov som for enhver anden computer-indtrængen.
Er fcrackzip vedligeholdt?
Kun lige. Kodebasen har været stabil i femten-plus år. Til moderne arbejde har kombinationen af zip2john + hashcat overtaget.
Kan fcrackzip bruge en GPU?
Nej. fcrackzip er kun CPU. Hvis GPU er det, du har, så gå direkte til hashcat.
Håndterer fcrackzip .7z, .rar, .gpg-filer?
Nej — kun klassisk PKZIP .zip. Til .7z, brug 7z2john + hashcat (mode 11600). Til .rar, rar2john + hashcat (mode 12500 / 13000). Til .gpg, gpg2john + hashcat (mode 17010+).
Hvordan genererer jeg en målrettet ordliste?
hashcats maskprocessor (mp64), crunch og cewl (crawler et site for kandidat-ord) er alle værd at kende. Til at gendanne et specifikt glemt kodeord er den højeste-yield-tilgang at skrive ned, hvad du husker om det — længde, sandsynlige ord, sandsynlige tal — og bygge et mask-angreb fra det.
Opsummering
fcrackzip+-D+ en ordliste er det rigtige første forsøg.- Virker det ikke, og det er ZipCrypto:
fcrackzip+-bmed et snævert charset og kort længde. - Virker det ikke, eller det er AES:
zip2john+hashcatpå en GPU. - Virker det ikke: dit kodeord var stærkt nok. Det er systemet, der virker som tiltænkt.