Skip to content

Guide · Agent skill

How to use the CTF ZIP Archive Solver agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The competition-zip-archive skill is an agent skill that gives an AI agent a fixed workflow for capture-the-flag (CTF) challenges that use legacy ZipCrypto-encrypted ZIP or PKZIP archives. It is meant for CTF players and security students working in a sandbox. After reading this guide you will know how to install the skill, how to phrase a request that triggers it, what it needs to run, and where it will stop.

CTF ZIP Archive Solverzhaoxuya520/reverse-skill · MIT

Quick start

  1. 1Download and unzip the skill. Download the ZIP from this page and unzip it into ~/.claude/skills/ for personal use, or into .claude/skills/ inside a project. In the Claude apps, upload the ZIP under Settings → Capabilities → Skills instead.
  2. 2Activate the parent skill. Make sure ctf-sandbox-orchestrator is active and has set the sandbox assumptions. This skill is meant to run only after that routing.
  3. 3Install bkcrack and check tools. Run the bootstrap script from the parent repository to install bkcrack on Windows, or the bash equivalent on Kali. Confirm that 7z is available.
  4. 4Make a request with the archive details. Ask the agent to solve the encrypted ZIP challenge and name the archive, the encrypted entry, and any known plaintext you have.
  5. 5Review the entry list and keys. Check the bkcrack -L output and the three recovered internal keys. The agent should keep the original file untouched and work on a copy.
  6. 6Validate the unlocked archive. Let the agent test unlocked.zip with 7z and extract it. Check the output hash or flag against what you expect.

What the skill makes the agent do

An agent skill is a folder of instructions that an AI agent reads when a request matches the skill's description. This one covers a narrow case: an encrypted ZIP challenge where the encryption is legacy ZipCrypto and the solver has a predictable piece of plaintext, such as a file header or template.

The skill tells the agent to keep the original archive untouched, list its entries, confirm the encryption type, and then use the bkcrack tool to recover internal keys from the known plaintext. The agent then makes an unlocked copy and tests and extracts it with 7z. The skill also says to avoid starting with blind password brute force.

  • Preserve the original file and record its SHA-256 hash
  • Inspect entries with bkcrack -L before any password attack
  • Recover the three internal ZipCrypto keys from a known-plaintext sample
  • Create unlocked.zip, validate it with 7z, and extract it
  • Record commands, keys, and output hashes as evidence

Install the skill in Claude

You can install the skill in one of three ways. Pick the one that matches how you use Claude.

For Claude Code, download the skill ZIP from this page and unzip it into your personal skills folder at ~/.claude/skills/. To limit it to one project, unzip it into the .claude/skills/ folder inside that project instead.

In the Claude apps, open Settings, go to Capabilities, and upload the ZIP under Skills.

  • Personal install: ~/.claude/skills/
  • Project install: .claude/skills/ inside your project
  • Claude apps: Settings → Capabilities → Skills, then upload the ZIP

Prepare the required parent skill and tools

This skill is a downstream step. It says it should be used only after the parent skill ctf-sandbox-orchestrator is active and has set the sandbox assumptions and routed the task here. If you start with this skill alone, the agent is meant to return to the orchestrator first.

The skill also depends on bkcrack, 7z, and PowerShell or bash bootstrap scripts from the parent repository. The source says the Windows bootstrap script installs bkcrack and checks it against the GitHub asset digest. On Kali the equivalent is a bash bootstrap script. The skill does not say how to install 7z itself, so check the parent repository for that.

  • Parent skill: ctf-sandbox-orchestrator must already be active
  • bkcrack: installed by the bootstrap script on Windows, or installed manually
  • 7z: used to test and extract the unlocked archive
  • Bootstrap scripts: PowerShell or bash, from the parent repository
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/bootstrap-reverse.ps1 -Capability bkcrack

How to trigger the skill with a natural request

The agent loads the skill when your request matches its description. Name the archive, say what you already know, and say that you are working on a CTF challenge in a sandbox. Mention the parent skill so the routing is clear.

Good triggers describe the decisive path: an encrypted ZIP, a ZipCrypto check, or a known file prefix. Avoid asking for a password with no context, because the skill is built to avoid that approach.

  • Use $ctf-sandbox-orchestrator to set up the sandbox, then solve the encrypted ZIP challenge in challenge.zip.
  • Inspect the ZipCrypto metadata in challenge.zip and tell me whether known plaintext will work.
  • The challenge gives a PNG header. Recover the keys from flag.txt in challenge.zip using known.zip and unlock it.

Read the workflow the agent follows

The agent first records the file hash and runs bkcrack -L to list entries, compression methods, and encryption status. It does not decide the encryption type from the .zip extension alone. It then looks for an entry that provides predictable plaintext. A local ZIP header is archive metadata, not plaintext inside the encrypted member, so the skill does not treat it as a useful sample.

If the known plaintext is at an offset, the agent adds an offset option. If only 8 to 11 bytes match, it can add sparse byte hints. The source states that the attack needs at least 12 known bytes, including at least 8 contiguous bytes.

bkcrack -C challenge.zip -c flag.txt -P known.zip -p flag.txt

Know when the skill stops

The skill is clear about its limits. bkcrack does not recover WinZip AES or other modern encryption, so the agent is told to stop and identify the challenge's actual primitive. If there is no reliable known plaintext, the agent is told to look at filenames, metadata, compression choices, and other entries before considering password recovery.

The skill also hands off other problems. An upload or parser chain goes to competition-file-parser-chain, and a generic or custom cipher after extraction goes to competition-crypto-mobile.

  • WinZip AES or other modern encryption: stop this path
  • No reliable known plaintext: inspect other evidence first
  • Application upload or parser issue: use competition-file-parser-chain
  • Generic or custom cipher: use competition-crypto-mobile

Safety notes: scripts and network access

This skill runs scripts and uses the network. The source says so directly. The bootstrap scripts can download bkcrack, and the Windows path verifies the GitHub asset digest. Review the scripts in the parent repository before you run them, and run the work inside the sandbox the orchestrator sets up.

The skill is framed as CTF-only. It is not meant for real-world archives. Recovering keys from data you do not own or are not authorized to access is illegal or unethical, so do not use it for that.

  • Read the bootstrap scripts before running them
  • Run work in the sandbox the parent orchestrator sets up
  • Use it only for CTF or authorized, competition-style challenges

What people use it for

  • Solving a sandboxed CTF challenge where a ZIP member begins with a known PNG or PDF header
  • Checking whether an encrypted archive in a challenge uses legacy ZipCrypto before choosing an attack
  • Teaching a security class why legacy ZipCrypto is weak against known-plaintext attacks
  • Recording a reproducible extraction with hashes, commands, and key values for a writeup

Frequently asked questions

Is the competition-zip-archive skill free to use?

The source describes the skill as MIT licensed, and this page links it as an agent skill download. The source does not mention prices or paid tiers, so check the license file in the download for the exact terms.

What do I need before installing this skill?

You need the ctf-sandbox-orchestrator parent skill, bkcrack, 7z, and the PowerShell or bash bootstrap scripts from the parent repository. The skill runs scripts and uses the network, so review them first.

Can this skill crack WinZip AES archives?

No. The skill says bkcrack does not recover WinZip AES or other modern encryption. When it sees that, the agent is told to stop this path and identify the actual encryption method.

Does the skill brute-force ZIP passwords?

No, the skill says not to begin with blind password brute force. It prefers known-plaintext recovery with bkcrack when there is a predictable file, header, or template.

How is this different from a general ZIP password cracker?

A general cracker guesses passwords. This skill recovers internal ZipCrypto keys from known plaintext, then makes an unlocked copy. It only applies to legacy ZipCrypto, and it is scoped to CTF work inside a sandbox.

Why does the attack fail with my archive?

Common causes in the source are a plaintext sample that does not match the encrypted bytes, a deflated entry paired with an uncompressed file, or too few contiguous known bytes. The attack needs at least 12 known bytes, including 8 contiguous.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use this skill if you are a CTF player or security student working in a sandbox on legacy ZipCrypto archives with a known file header or template. Pick a different tool if the archive uses WinZip AES or other modern encryption, or if the archive is not part of a competition or an authorized test.

Download the skill