Identifying cryptographic routines in binaries
Skill meltedinhex/analyst-ai-pack/skills/identifying-cryptographic-routines-in-binaries
Identifies cryptographic algorithms embedded in a binary by scanning for well-known constants and tables (AES S-box, SHA-256/MD5 init constants, ChaCha sigma, CRC32 table, base64 alphabet). Activates for requests to identify crypto in a binary, find AES/SHA constants, or detect which encryption algorithm a sample uses.From its SKILL.md
npx -y skills add meltedinhex/analyst-ai-pack --skill identifying-cryptographic-routines-in-binariesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 21 stars21 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
2.8 KB, 435 tokens by cl100k_base, as published. Nobody here has run it
Identifying Cryptographic Routines in Binaries
When to Use
- You need to determine which cryptographic algorithms a sample implements (ransomware crypto, C2 encryption, config protection) by locating constant tables.
- You want fast triage before manually reversing the crypto routine.
Do not use constant detection as proof of a specific mode/usage — it identifies the primitive, not how it is applied. This skill reads the binary statically and executes nothing.
Prerequisites
- The binary (read inertly).
Safety & Handling
- Read bytes statically; treat the sample as malicious data.
Workflow
Step 1: Scan for crypto constants
python scripts/analyst.py scan sample.bin
Searches for AES S-box/Te tables, SHA-256 H/K init constants, MD5 init, ChaCha/Salsa expand 32-byte k sigma, the CRC32 polynomial table, and the base64 alphabet, reporting offsets.
Step 2: Corroborate with imports/strings
Pair constant hits with crypto API imports (CryptDecrypt, BCryptEncrypt, EVP_*) or library
strings to confirm.
Step 3: Locate the routine
Use the constant offset to find the referencing function for deeper reversing/key extraction.
Step 4: Document
Record which primitives are present and where, mapping to behavior (e.g., AES → file encryption).
Validation
- Each hit references a real, named constant table (not a coincidental byte run).
- Detected primitives are corroborated by imports/strings where possible.
- Offsets point into the binary and can be navigated in a disassembler.
Pitfalls
- Statically linked crypto libraries adding constants unused by the malware's logic.
- Custom/modified S-boxes evading exact-match detection.
- Assuming AES presence implies ransomware — corroborate with behavior.
References
- See
references/api-reference.mdfor the scanner. - FIPS 197 and FIPS 180-4 constant references (linked in frontmatter).
What ships with it: 3 files
4.6 KB alongside SKILL.md, 1 of them executable
references/
- api-reference.md1.3 KB
scripts/
- analyst.pyruns3.0 KB
- LICENSE340 B