Re Format Elf
dslsdzc/rev-skills
ELF 格式解析:ehdr/phdr/shdr、GOT/PLT、initarray、符号恢复. An agent skill from dslsdzc/rev-skills.
Provides cryptography attack techniques for CTF challenges. An agent skill from ljagiello/ctf-skills.
$ npx skills add ljagiello/ctf-skills --skill ctf-crypto -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ljagiello/ctf-skills ctf-crypto --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ljagiello/ctf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/ctf-crypto .claude/skills/ctf-crypto && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ctf-crypto" agent skill from https://github.com/ljagiello/ctf-skills/tree/main/ctf-crypto into .claude/skills/ctf-crypto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ctf-crypto", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ljagiello/ctf-skills/tree/main/ctf-cryptoType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ljagiello/ctf-skills --skill ctf-crypto -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ljagiello/ctf-skills ctf-crypto --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ljagiello/ctf-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/ctf-crypto .agents/skills/ctf-crypto && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ctf-crypto" agent skill from https://github.com/ljagiello/ctf-skills/tree/main/ctf-crypto into .agents/skills/ctf-crypto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ctf-crypto", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ljagiello/ctf-skills --skill ctf-crypto -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ljagiello/ctf-skills ctf-crypto --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ljagiello/ctf-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/ctf-crypto .cursor/skills/ctf-crypto && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ctf-crypto" agent skill from https://github.com/ljagiello/ctf-skills/tree/main/ctf-crypto into .cursor/skills/ctf-crypto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ctf-crypto", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ljagiello/ctf-skills.git --path ctf-crypto--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ljagiello/ctf-skills --skill ctf-crypto -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ljagiello/ctf-skills ctf-crypto --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ljagiello/ctf-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/ctf-crypto .gemini/skills/ctf-crypto && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ctf-crypto" agent skill from https://github.com/ljagiello/ctf-skills/tree/main/ctf-crypto into .gemini/skills/ctf-crypto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ctf-crypto", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ljagiello/ctf-skills ctf-cryptoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ljagiello/ctf-skills --skill ctf-crypto -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ljagiello/ctf-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/ctf-crypto .github/skills/ctf-crypto && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ctf-crypto" agent skill from https://github.com/ljagiello/ctf-skills/tree/main/ctf-crypto into .github/skills/ctf-crypto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ctf-crypto", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ljagiello/ctf-skills --skill ctf-crypto -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ljagiello/ctf-skills ctf-crypto --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ljagiello/ctf-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/ctf-crypto .opencode/skills/ctf-crypto && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ctf-crypto" agent skill from https://github.com/ljagiello/ctf-skills/tree/main/ctf-crypto into .opencode/skills/ctf-crypto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ctf-crypto", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ctf-cryptoProvides cryptography attack techniques for CTF challenges. An agent skill from ljagiello/ctf-skills.
Ctf Crypto is an agent skill from ljagiello/ctf-skills. Provides cryptography attack techniques for CTF challenges. Use when attacking encryption, hashing, signatures, ZKP, PRNG, or mathematical crypto problems involving RSA, AES, ECC, lattices, LWE, CVP, number theory, Coppersmith, Pollard, Wiener, padding oracle, GCM, key derivation, or stream/block cipher weaknesses.
Its SKILL.md is about 11k tokens, which your agent loads only when the skill is triggered. The skill folder holds 19 other files (for example `advanced-math.md`, `classic-ciphers.md` and `dh-attacks.md`). Compatibility notes: Requires filesystem-based agent (Claude Code or similar) with bash, Python 3, and internet access for tool installation.
It sits in Security, covering Capture the flag and Cryptography. It works with Homebrew, Linux and macOS. The repository describes itself as: Agent skills for solving CTF challenges - web exploitation, binary pwn, crypto, reverse engineering, forensics, OSINT, and more. The licence is MIT.
Read from SKILL.md and the folder at commit c332c7b. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadWriteEditGlobGrepTaskWebFetchWebSearchFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3pipaptbrewgitopensslpythonFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires filesystem-based agent (Claude Code or similar) with bash, Python 3, and internet access for tool installation.
From compatibility in the SKILL.md frontmatter.
Ctf Crypto loads about 11k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 4,227 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Task, WebFetch, WebSearchAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ljagiello/ctf-skills at commit c332c7b, republished under its MIT licence (© ljagiello). 4,227 words, ~10,500 tokens.
.claude/skills/ctf-crypto/SKILL.md (or your agent's skills folder). This skill also uses 19 other files; get the full folder from GitHub.Quick reference for crypto CTF challenges. Each technique has a one-liner here; see supporting files for full details with code.
Python packages (all platforms):
pip install pycryptodome z3-solver sympy gmpy2 hashpumpy fpylll py_ecc
# Coppersmith (optional): pip install coppersmith
# Alternative Coppersmith lib: git clone https://github.com/jvdsn/crypto-attacks ~/.ctf-tools/crypto-attacks && pip install -r ~/.ctf-tools/crypto-attacks/requirements.txtLinux (apt):
apt install hashcatmacOS (Homebrew):
brew install hashcatManual install:
apt install sagemath, macOS: brew install --cask sagegit clone https://github.com/RsaCtfTool/RsaCtfTool (automated RSA attacks)git clone https://github.com/jvdsn/crypto-attacks ~/.ctf-tools/crypto-attacks + pip install -r ~/.ctf-tools/crypto-attacks/requirements.txt (alternative to pip install coppersmith)Note:
gmpy2requires libgmp — Linux:apt install libgmp-dev, macOS:brew install gmp.
/ctf-reverse./ctf-forensics./ctf-pwn or /ctf-web./ctf-ai-ml./ctf-misc.# Identify cipher type
python3 -c "from Crypto.Util.number import *; n=<N>; print(f'bits={n.bit_length()}')"
# RSA quick check
python3 -c "from sympy import factorint; print(factorint(<n>))" # Small factors?
openssl rsa -pubin -in key.pub -text -noout # Extract n, e from PEM
# Quick factorization tools
python3 RsaCtfTool.py -n <n> -e <e> --uncipher <c>
# XOR analysis
python3 -c "from pwn import xor; print(xor(bytes.fromhex('<hex>'), b'flag{'))"
# Hash identification
hashid '<hash>'
hashcat --identify '<hash>'
# Quick factorization (sympy, primary)
python3 -c "from sympy import factorint; print(factorint(<n>))"
# Sage alternative: sage -c "print(factor(<n>))"(ct - pt) mod 26. Kasiski examination for unknown key length (GCD of repeated sequence distances)C1 XOR C2 XOR known_P = unknown_P; crib dragging when no plaintext knownfile reports "data". XOR first bytes against expected magic bytes to derive repeating key; extend using trailer structures (%%EOF, IEND marker). See classic-ciphers.md.See classic-ciphers.md for full code examples.
ecb_cpa_decrypt); image ECB preserves visual patterns. ECB cut-and-paste: splice ciphertext blocks to forge JSON fields (e.g., is_admin: true). See modern-ciphers-2.md.new_sig = old_sig XOR block_difflen(set(sbox)) < 256) enables 4,097-query key recovery(state >> 1) XOR next_state for LSB=1 transitions to directly recover tap mask. Autocorrelation sliding finds correct length. See stream-ciphers.md.SHA256(public_key) XOR seed is fully recoverable without private key; "hybrid" RSA+AES provides no security. See modern-ciphers-2.md.nonce-disrespect. See modern-ciphers.md.A = 0 or A = n to force shared secret to 0, bypassing password verification entirely. See modern-ciphers-2.md.c = m^2 mod n with LSB oracle enables binary search plaintext recovery in log2(n) queries via multiplicative homomorphism (c * 4 mod n doubles plaintext). See modern-ciphers-2.md.SHA1(password) instead of password when original exceeds 64 bytes. See modern-ciphers-2.md.fastcol runs to produce 2^k files with identical MD5. Merkle-Damgard composition: collisions propagate through appended suffixes. See modern-ciphers-2.md.sha256((key XOR msg) + msg) leaks key bits: msg=0 gives sha256(key), msg=2^i matches iff key bit i is set. See modern-ciphers-3.md.See modern-ciphers.md and modern-ciphers-2.md for full code examples.
or short-circuit skips expensive PBKDF2 when Y != 0, creating fast/slow timing oracle. Full 3-step attack (~1024 iterations for 1024-bit RSA). Calibrate timing bounds with known-fast/known-slow samples.g(0) = 0 for polynomial hash; craft suffix for msg = 0 (mod P), signature = 0r = flag mod f, filter coprime, CRT combinep=q so server computes wrong phi=(p-1)^2 instead of p*(p-1); test decryption fails, leaking ciphertextnthroot_mod, enumerate CRT combinations (3^k feasible for small k)phi(n) (e.g., e*d-1) enables factoring via Miller-Rabin square root technique; succeeds with prob ≥ 1/2 per attemptp = kp*B + tp with small kp create mixed-radix structure in n; brute-force kp*kq (2^24) to factore' = e/g, compute d' = e'^(-1) mod phi, partial decrypt to m^g, then take g-th root over integers(dp*e-1)/k+1 is prime. See rsa-attacks-2.md.gcd(s^e - m, n) (Bellcore attack). See rsa-attacks-2.md.c by querying oracle with c * r^e mod n, then dividing result by r. See rsa-attacks-2.md.n has many small prime factors, factor with trial division, solve m mod p_i per prime, CRT combine. See rsa-attacks-2.md.e recipients applies a known affine transform a_i*m+b_i before encryption, CRT + Coppersmith small_roots recovers m. See rsa-attacks.md.m+pad1 and m+pad2 with known padding difference; polynomial GCD in Zmod(n) recovers m directly. See rsa-attacks.md.(n, e); set e=1 and n = sig - PKCS1_pad(msg) so pow(sig, 1, n) equals expected padded hash. See rsa-attacks-2.md.q ~ k*p for known k, approximate q ~ sqrt(k*n) and use Coppersmith small_roots on the error term. Generalizes Fermat factorization to non-consecutive primes. See rsa-attacks.md.See rsa-attacks.md and advanced-math.md for full code examples.
p-1 or curve order are small). sympy/fpylll BSGS+Pohlig-Hellman (Sage alternative collapsed). See advanced-math.md.r in two signatures leaks nonce k and private key d via modular arithmetic. Check for repeated r valueskey = master * uid mod l; query powers of 2, check y-coordinate consistencyb* = max(Mb[i] - M[i][j]) recovers shared secret directly from public matricesk is small (e.g., 20-bit), brute-force all k values and check which yields the known r. See ecc-attacks.md.gcd(n1, n2) reveals the shared prime. See ecc-attacks.md.k derives from MD5(prefix+counter), use fastcoll to produce MD5 prefix collision forcing nonce reuse, then standard private key recovery. See ecc-attacks.md.See ecc-attacks.md, advanced-math.md, and exotic-crypto.md for full code examples.
g = 0, 1, p-1 and peer values A = 0, 1, p-1, p first; unvalidated range checks give known-constant secrets. See dh-attacks.md.p-1; smooth means full DLP via BSGS per subgroup + CRT. See dh-attacks.md.p-1 with small factors; send order-r element, brute b mod r via MAC/decrypt oracle, CRT across r_i. See dh-attacks.md.u forces all-zero K; u = 0, 1 always probe. Missing all-zero check = 1-2 query break. See ecc-attacks.md.observed * 2^t + hidden and solve for the small hidden corrections. See lattice-and-lwe.md.[q*I | 0; A^T | I], use fpylll GSO.Mat.babai or CVP.closest_vector to find closest vector, project to ternary {-1,0,1}. Watch for endianness mismatches between server description and actual encoding.See advanced-math.md for worked LWE solving code and lattice-and-lwe.md for attack selection, embeddings, and failure-mode triage.
nx.coloring.greedy_color(G, strategy='saturation_largest_first')counter < N checksSee zkp-and-advanced.md for full code examples and solver patterns.
c = A*x+b (mod M), M composite (e.g., 65=5*13). Chosen-plaintext recovery via one-hot vectors, CRT inversion per prime factor. See modern-ciphers.md.m*s < 2^128. ~128 queries to recover AES key.Self-referential CRC: find ASCII string whose CRC equals itself. CRC is linear over GF(2), so the constraint becomes a solvable linear system. Free variables chosen for printable ASCII range. See advanced-math.md.
Server reveals valid/invalid padding → decrypt any CBC ciphertext without key. ~4096 queries per 16-byte block. Use PadBuster or padding-oracle Python library. See modern-ciphers.md.
RSA PKCS#1 v1.5 padding validation oracle → adaptive chosen-ciphertext plaintext recovery. ~10K queries for RSA-2048. Affects TLS implementations via timing. See modern-ciphers.md.
n-bit hash collision in ~2^(n/2) attempts. Meet-in-the-middle breaks double encryption in O(2^k) instead of O(2^(2k)). See modern-ciphers.md.
CRC32 is linear — append 4 chosen bytes to force any target CRC32, forging CRC32(msg || secret) signatures without the secret. See modern-ciphers.md.
Extend ciphertext by one bit per oracle query to leak plaintext via parity. Manipulate BBS squaring sequence to produce valid extended ciphertexts. See modern-ciphers-2.md.
Exploits Merkle-Damgard hashes (hash(SECRET || user_data)) — append arbitrary data and compute valid hash without knowing the secret. Use hashpump or hashpumpy. See modern-ciphers-2.md.
Compression before encryption leaks plaintext via ciphertext length changes. Send chosen plaintexts; matching n-grams compress shorter. Same class as CRIME/BREACH. See modern-ciphers-2.md.
RC4's second output byte is biased toward 0x00 (probability 1/128 vs 1/256). Distinguishes RC4 from random with ~2048 samples. See stream-ciphers.md.
Unpadded RSA: S(a) * S(b) mod n = S(a*b) mod n. If oracle blacklists target message, sign its factors and multiply. See rsa-attacks-2.md.
phi = (p-1)*(q-1), d = inverse(e, phi), m = pow(c, d, n). See rsa-attacks.md for full examples.from pwn import xor; xor(ct, key). See classic-ciphers.md for XOR variants.Pattern: Binary uses srand(time(NULL)) + rand() for keys/XOR masks. Python's random module uses a different PRNG. Use ctypes.CDLL('./libc.so.6') to call C's srand(int(time())) and rand() directly, reproducing the exact sequence. See prng.md for XOR decryption examples and timing tips.
Pattern: V8 JavaScript engine uses xs128p PRNG for Math.random(). Given 5-10 consecutive outputs of Math.floor(CONST * Math.random()), recover internal state (state0, state1) with Z3 QF_BV solver and predict future values. Values must be reversed (LIFO cache). Tool: d0nutptr/v8_rand_buster. See prng.md.
Pattern: Server exposes random.random() floats. Standard untemper needs 624 × 32-bit integers, but floats yield only ~8 usable bits each. A precomputed GF(2) magic matrix (not_random library) recovers the full MT state from 3360+ float observations. Use to predict password reset tokens, session IDs, or CSRF tokens derived from random.random(). See prng.md.
x = r * x * (1 - x), r ≈ 3.99-4.0; seed recovery by brute-forcing high-precision decimalsstruct.pack("<f", x) per iteration; XOR with ciphertextSee prng.md for full code.
Divide-and-conquer SPN key recovery: attack each S-box position independently, intersect valid key candidates across multiple plaintext-ciphertext pairs. Reduces exponential key space to independent sub-key searches. See modern-ciphers-3.md.
pip install pycryptodome z3-solver sympy gmpy2sage -python script.py — only for collapsed Sage alternativespython RsaCtfTool.py -n <n> -e <e> --uncipher <c> — automated RSA attack suite (tries Wiener, Hastad, Fermat, Pollard, and many more)© ljagiello, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 19 other files in ctf-crypto of ljagiello/ctf-skills.
Open the folder on GitHubat commit c332c7b
Ctf Crypto next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ctf Crypto this skillljagiello/ctf-skills | 3.4k | — | ~11k | Automated safety check: Notes | MIT | |
| Re Format Elfdslsdzc/rev-skills | 135 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Re Fw Emulatedslsdzc/rev-skills | 135 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Re Hardware Iodslsdzc/rev-skills | 135 | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Re Stegodslsdzc/rev-skills | 135 | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Re Armdslsdzc/rev-skills | 135 | — | ~2.2k | Automated safety check: Pass | Apache-2.0 |
dslsdzc/rev-skills
ELF 格式解析:ehdr/phdr/shdr、GOT/PLT、initarray、符号恢复. An agent skill from dslsdzc/rev-skills.
dslsdzc/rev-skills
固件仿真:QEMU 用户态/全系统. An agent skill from dslsdzc/rev-skills.
dslsdzc/rev-skills
硬件接口:JTAG/UART/flash 读取. An agent skill from dslsdzc/rev-skills.
dslsdzc/rev-skills
隐写术检测与提取:文件尾附加、图片 LSB、音频与其他载体、提取验证. An agent skill from dslsdzc/rev-skills.
dslsdzc/rev-skills
ARM 架构逆向(非 Android):Cortex-M/A 向量表、Thumb/ARM 切换、AAPCS 调用约定、位置相关代码重定位、MMIO 外设寄存器交叉。
dslsdzc/rev-skills
磁盘/文件系统取证:删除恢复、时间线、可疑文件定位. An agent skill from dslsdzc/rev-skills.
ljagiello/ctf-skills
Provides open source intelligence techniques for CTF challenges.
ljagiello/ctf-skills
Provides malware analysis and network traffic techniques for CTF challenges.
ljagiello/ctf-skills
Solves CTF challenges by performing first-pass triage, identifying the dominant category, and routing execution to the right specialized ctf- skill.
ljagiello/ctf-skills
Generates a single standardized submission-style CTF writeup for competition handoff and organizer review.
ljagiello/ctf-skills
Provides digital forensics and signal analysis techniques for CTF challenges.
Categories
Provides cryptography attack techniques for CTF challenges. An agent skill from ljagiello/ctf-skills. Ctf Crypto is an agent skill from ljagiello/ctf-skills. Provides cryptography attack techniques for CTF challenges.
Ctf Crypto fits situations like: attacking encryption; mathematical crypto problems involving RSA; stream/block cipher weaknesses.
Run `npx skills add ljagiello/ctf-skills --skill ctf-crypto -a claude-code`. Or copy the skill folder (ctf-crypto in ljagiello/ctf-skills) into .claude/skills/ctf-crypto in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ljagiello/ctf-skills --skill ctf-crypto -a codex`. Or copy the skill folder (ctf-crypto in ljagiello/ctf-skills) into .agents/skills/ctf-crypto in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ljagiello/ctf-skills --skill ctf-crypto -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ctf-crypto, .gemini/skills/ctf-crypto, .github/skills/ctf-crypto and .opencode/skills/ctf-crypto in your project.
Going by SKILL.md and its folder, Ctf Crypto needs the command-line tools its instructions call (python3, pip, apt, brew, git and openssl). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Glob, Grep, Task, WebFetch, WebSearch. Compatibility (from SKILL.md): Requires filesystem-based agent (Claude Code or similar) with bash, Python 3, and internet access for tool installation..
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Ctf Crypto is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 11k tokens (SKILL.md is roughly 42k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ctf Crypto: Re Format Elf (dslsdzc/rev-skills, 135 stars), Re Fw Emulate (dslsdzc/rev-skills, 135 stars), Re Hardware Io (dslsdzc/rev-skills, 135 stars) and Re Stego (dslsdzc/rev-skills, 135 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ljagiello (a GitHub user) maintains it in ljagiello/ctf-skills, which has 3,421 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on September 13, 2026.
Source: ljagiello/ctf-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.