openwall / openwall/john

7z2john.pl: unsupported coders/filters

Open
#6,027 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C
Stars
13.6k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

In the 2026 Crack Me If You Can contest challenge 2 contained 5 .7z files that have newer coders/filters that are not supported by 7z2john.pl.

The challenge can be downloaded from https://contest-2026.korelogic.com/downloads/ and decrypted with:

gpg --batch --passphrase '46d;;Ho@]3LgfH3t-z#)' -d cmiyc_2026_challenge_2.tar.pgp > cmiyc_2026_challenge_2.tar

This produces 5 .7z files. Running 7z2john.pl gives:

$ run/7z2john.pl test_*.7z 
WARNING: unsupported coder with codec id '0x040109' in file 'test_1.7z' found.
WARNING: unsupported coder with codec id '0x020304' in file 'test_2.7z' found.
WARNING: unsupported coder with codec id '0x0b' in file 'test_3.7z' found.
WARNING: unsupported coder with codec id '0x0a' in file 'test_4.7z' found.
WARNING: unsupported coder with codec id '0x020302' in file 'test_5.7z' found.

The codec IDs appear to correspond to:

Codec ID Method/filter
0x040109 Deflate64
0x020304 Swap4
0x0b RISC-V BCJ filter
0x0a ARM64 BCJ filter
0x020302 Swap2

It would be useful if 7z2john.pl could support these methods/filters when extracting hashes from encrypted 7z archives.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with run/7z2john.pl and reproduce the warnings using the five .7z files from the Crack Me If You Can challenge 2 archive. Trace how the script handles coder and filter IDs, then verify extraction against all five files. Done means the listed Deflate64, Swap4, RISC-V BCJ, ARM64 BCJ, and Swap2 methods no longer produce unsupported-coder warnings while hashes are extracted.

Written by the indexing model from the issue text.

Assessment

Tech stack
perl
Domain
security, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.