Skills zipcracker
CTF-oriented ZIP cracking and recovery with the bundled ZipCracker engine. Use when Codex or OpenClaw needs to analyze or recover an encrypted ZIP in authorized contexts, including pseudo-encryption repair, default dictionary attacks, custom wordlists, mask attacks, short-plaintext CRC32 recovery, known-plaintext attacks, bkcrack workflows, template KPA, WinZip AES triage, or large-dictionary handling. Trigger on requests mentioning zip password, encrypted zip, ZIP challenge, 压缩包破解, ZIP 爆破, 伪加密, 掩码, 四位数字密码, 字典跑一下, 已知明文, 明文攻击, bkcrack, CRC32, AES ZIP, 看起来像 png/exe/pcapng/zip 模板, 这个压缩包打不开, or ClawHub/OpenClaw ZIP solving.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/asaotomo/zipcracker" ~/.claude/skills/clawdbot-skills-zipcracker && rm -rf "$T"
skills/asaotomo/zipcracker/SKILL.mdZipCracker
Use this skill as a self-contained ZIP cracking package. Always prefer the bundled wrapper in
scripts/openclaw_zipcracker.py over assuming the original repository still exists somewhere else.
Only use it for CTF, self-owned archives, or authorized security work. If the request sounds like unauthorized access to third-party data, refuse.
Quick Start
- Collect the minimum inputs before running anything:
- Target ZIP path.
- Whether the user already has a dictionary, a password pattern, a known plaintext file, a passwordless reference ZIP, or only a file signature guess.
- Whether the user wants the original ZIP password itself, or only wants extraction/recovery.
- Whether the archive is clearly ZIP-specific; do not force this skill onto
orrar
.7z
- In ambiguous cases, inspect first:
python3 <skill-dir>/scripts/openclaw_zipcracker.py --profile <zip>
Use the profile mode to surface pseudo-encryption, AES vs ZipCrypto mix, short-plaintext candidates, template KPA candidates, and recommended next commands.
- Run the bundled wrapper:
python3 <skill-dir>/scripts/openclaw_zipcracker.py <zip> ...
- Prefer the wrapper flags over ad-hoc environment variables:
for short-plaintext CRC32 prompts.--auto-crc
to let the bundled engine follow up on template-KPA suggestions automatically.--auto-template-kpa
only when the user explicitly accepts a very large mask search.--auto-large-mask
for huge wordlists.--skip-dict-count
when the user only cares about extraction speed after a--skip-orig-password-recovery
-based recovery.bkcrack
only when the user explicitly wants interactive dependency installation attempts.--allow-install-prompts
- Keep the current working directory as the project directory that contains the target ZIP. The bundled engine resolves its own built-in dictionary relative to the skill, so custom relative paths for the target, plaintext, or dictionary still behave naturally.
Decision Tree
1. Start with the least-assumption path
When the user only says "crack this ZIP" or "analyze this archive", inspect first, then begin with the default flow:
python3 <skill-dir>/scripts/openclaw_zipcracker.py --profile <zip>
Then:
python3 <skill-dir>/scripts/openclaw_zipcracker.py --auto-template-kpa <zip>
This preserves the original ZipCracker mindset:
- Try pseudo-encryption repair before brute force.
- Warn about AES and missing
.pyzipper - Use the built-in dictionary first.
- Fall back to the generated 1-6 digit numeric dictionary.
- Offer template-based KPA when the archive structure strongly suggests it.
Add
--auto-crc only when short-plaintext recovery is likely relevant or when the user explicitly asks to try CRC32-style recovery.
2. Choose the main attack based on the best clue
- If the user has a custom dictionary file or dictionary directory:
python3 <skill-dir>/scripts/openclaw_zipcracker.py <zip> <dict-or-dir>
- If the user knows the password shape, use a mask:
python3 <skill-dir>/scripts/openclaw_zipcracker.py <zip> -m '?u?l?l?l?d?d'
- If the user has a full known plaintext file or a passwordless reference ZIP, use
:-kpa
python3 <skill-dir>/scripts/openclaw_zipcracker.py <zip> -kpa <plain-file-or-zip>
- If the known plaintext is partial, add offset and extra known bytes:
python3 <skill-dir>/scripts/openclaw_zipcracker.py <zip> -kpa <part.bin> --kpa-offset 78 -x 0 4d5a
- If the user only knows the file type or magic header, use a built-in template:
python3 <skill-dir>/scripts/openclaw_zipcracker.py <zip> --kpa-template png -c image.png
- If the user wants pure
recovery and does not want fallback methods:bkcrack
python3 <skill-dir>/scripts/openclaw_zipcracker.py <zip> -kpa <plain-file> --bkcrack
3. Prefer the strongest clue instead of stacking random tactics
- Full known plaintext beats mask guessing.
- Partial known plaintext plus
usually beats blind dictionary work when at least some bytes are reliable.bkcrack - A realistic custom wordlist beats the built-in defaults.
- A tight mask beats a giant generic wordlist.
- Template KPA is worth trying when the encrypted member looks like
,png
,zip
, orexe
.pcapng
Solving Heuristics
Pseudo-encryption first
Do not jump directly into brute force when the request is vague. The bundled engine already attempts pseudo-encryption repair by clearing the encryption bit and validating extraction. Keep that behavior because many CTF ZIP tasks are fake-encrypted rather than truly protected.
Short plaintext CRC32 recovery
Use CRC32 recovery only for entries whose plaintext size is 1 to 6 bytes. This is not a generic password attack; it is a content recovery trick for tiny stored plaintexts. In OpenClaw, opt in with
--auto-crc when the challenge obviously contains tiny files or the user asks to try CRC-based recovery.
KPA matching rules
When using
-kpa, the engine reproduces the original matching strategy:
- Prefer an encrypted member with the same full inner path.
- Otherwise prefer the same basename.
- If the plaintext ZIP contains exactly one usable file, use it automatically.
- If the encrypted ZIP contains exactly one encrypted regular file, use it automatically.
- If matching is ambiguous, supply
explicitly.-c <inner-name>
Partial KPA strength
Treat partial KPA as high-value only when the hints are meaningful. The original tool prints a warning when the known bytes are weak. In practice:
- Aim for at least 12 known bytes total.
- Aim for at least 8 contiguous bytes.
- Add
byte fragments when you know fixed values like-x
,MZ
, or chunk markers.PE
Template KPA strategy
The bundled engine carries the original built-in templates:
pngzipexepcapng
These are strongest when:
- The encrypted member extension matches the template family.
- The file is
, or at least size-compatible with a known header pattern.ZIP_STORED - The user has no full plaintext but the file type is obvious.
If the user says "run the full default workflow", include
--auto-template-kpa so OpenClaw does not stall at the follow-up prompt.
Dictionary and mask strategy
- Start with the bundled defaults only when the user has no better clue.
- Use the user's dictionary immediately when they provide one.
- Use
for very large wordlists to avoid expensive upfront line counting.--skip-dict-count - Use
only after the user explicitly accepts the cost of a huge mask search.--auto-large-mask - Remember that the built-in default sequence is: bundled
then 1-6 digit numeric passwords.password_list.txt
AES and bkcrack caveats
- WinZip AES is supported for dictionary and mask workflows when
is available, but it is slower.pyzipper - Fast in-memory known-plaintext validation only applies to legacy ZipCrypto, not WinZip AES.
is the preferred path for full or partial KPA on ZipCrypto.bkcrack- Without
, partial/template KPA should be explained as unavailable rather than pretending it was tried.bkcrack
Execution Rules for OpenClaw
- Default to
before cracking when the user has not already provided a strong clue.--profile - Use
as the command entrypoint.scripts/openclaw_zipcracker.py - Quote and show the exact command you ran in your response.
- Explain why the selected attack path matches the available clues.
- If a run fails, choose the next tactic based on evidence, not by blindly enumerating every flag.
- If dependencies are missing in a restricted environment, explain the blocker and the next best path. Do not imply AES KPA succeeded when it was skipped.
- If the user only wants the decrypted contents, prefer
after successful--skip-orig-password-recovery
extraction.bkcrack
Command Patterns
- Profile first:
python3 <skill-dir>/scripts/openclaw_zipcracker.py --profile <zip>
- Default triage:
python3 <skill-dir>/scripts/openclaw_zipcracker.py --auto-template-kpa <zip>
- Huge custom dictionary:
python3 <skill-dir>/scripts/openclaw_zipcracker.py --skip-dict-count <zip> <huge-dict.txt>
- Tight mask:
python3 <skill-dir>/scripts/openclaw_zipcracker.py <zip> -m '?l?l?l?l?d?d'
- Known plaintext ZIP:
python3 <skill-dir>/scripts/openclaw_zipcracker.py <zip> -kpa <plain.zip>
- Partial known plaintext plus extra bytes:
python3 <skill-dir>/scripts/openclaw_zipcracker.py <zip> -kpa <part.bin> --kpa-offset 78 -x 0 4d5a -x 128 50450000
- Template KPA:
python3 <skill-dir>/scripts/openclaw_zipcracker.py --auto-template-kpa <zip> --kpa-template exe -c app.exe
References
- Read
when you need the final recommended Chinese and English storefront copy, tags, and default prompt for direct submission.references/clawhub-final-submission.md - Read
when you need polished listing copy, tags, and a prompt pack for ClawHub.references/clawhub-publishing-copy.md - Read
when you need Chinese and English storefront copy with stronger marketing positioning.references/clawhub-bilingual-copy.md - Read
when you want a sharper, more player-like default prompt or demo prompt.references/competitive-ctf-prompts.md - Read
when the user request is vague but contains clues that should map to a specific command.references/natural-language-command-examples.md - Read
for the latest local pressure-test findings and wording adjustments.references/forward-test-report.md - Read
before publishing or updating the skill on ClawHub.references/release-checklist.md - Read
for the preflight-to-execution flow optimized for OpenClaw.references/openclaw-workflow.md - Read
for concrete user-intent-to-command mappings.references/attack-playbook.md - Read
for the full reproduction of the tool's solving logic, clue prioritization, and troubleshooting heuristics.references/ctf-techniques.md