一键导入
crypto-recon-asymmetric
Specialist agent for detecting ALL asymmetric/public-key cryptography in downloaded JS files. Part of crypto-recon pipeline.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Specialist agent for detecting ALL asymmetric/public-key cryptography in downloaded JS files. Part of crypto-recon pipeline.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Download all JS/WASM/CSS assets from a target URL using cloudscraper. Saves to output/[domain]/. Called by crypto-recon-orchestrator.
Specialist for EVM blockchain cryptography — EIP-712, personal_sign, ABI encoding, keccak256, ethers.js/wagmi/viem/web3.js. EVM chains only (Ethereum, Polygon, BSC, Arbitrum, etc.). For non-EVM use crypto-recon-web3-solana, crypto-recon-web3-cosmos, or crypto-recon-web3-starknet.
Verifies reconstructed APK signing logic against live app traffic. Uses HAR test vectors or ADB+mitmproxy. Extends crypto-recon-debugging for Android context.
Specialist for finding ALL cryptography in decompiled Android APK — Java source (jadx) and Smali bytecode (apktool). Covers OkHttp interceptors, Retrofit, HMAC, AES, MD5, custom signing, ProGuard-obfuscated code.
Master orchestrator for Android APK reverse engineering. Fully autonomous — decompiles APK, spawns 11 parallel specialists, collects findings, writes report, reconstructs Python code. No intermediate stops. Accepts .apk/.apkm/.xapk + optional HAR.
Builds a complete, clean, standalone Python script for a full API flow (login, register, place bet, etc). Accepts input from reconstruct_*.py files AND from APK flow mappers (Retrofit catalog, auth chain trace, API endpoint list). Called automatically after analysis — no user prompting needed. Uses superpowers executing-plans and verification-before-completion.
| name | crypto-recon-asymmetric |
| description | Specialist agent for detecting ALL asymmetric/public-key cryptography in downloaded JS files. Part of crypto-recon pipeline. |
rsa-patterns.md — RSA in JS (jsencrypt, forge, Web Crypto) and Android, key format extraction, PKCS1 vs OAEP, Python reconstructionecc-patterns.md — ECDSA (secp256k1/P-256), Ed25519, X25519, noble libraries, Android Java EC, curve identificationFind every public-key cryptography operation in the target's JavaScript. RSA, ECC, DSA, DH, and all variants. Document key material, operation type, and full context.
RSA.encrypt(, RSA.decrypt(
jsencrypt, JSEncrypt, new JSEncrypt()
.setPublicKey(, .setPrivateKey(
.encrypt(, .decrypt(
forge.pki.rsa.encrypt(
forge.pki.rsa.decrypt(
subtle.encrypt({name: 'RSA-OAEP'
subtle.sign({name: 'RSASSA-PKCS1-v1_5'
subtle.sign({name: 'RSA-PSS'
subtle.verify({name: 'RSA-OAEP'
createPublicKey(, createPrivateKey(
PublicKey, PrivateKey, publicKey, privateKey
-----BEGIN PUBLIC KEY----- ← PEM embedded in JS
-----BEGIN RSA PUBLIC KEY-----
PKCS1, OAEP, PSS
ECDSA, ecdsa, EC.sign(, EC.verify(
ECDH, ecdh, ECDHE
subtle.sign({name: 'ECDSA'
subtle.verify({name: 'ECDSA'
subtle.deriveKey({name: 'ECDH'
subtle.deriveBits({name: 'ECDH'
elliptic, new elliptic.ec(
new elliptic.eddsa(
curve25519, secp256k1, secp256r1, P-256, P-384, P-521
ec.genKeyPair(, ec.sign(, ec.verify(
Ed25519, ed25519, EdDSA
X25519, x25519, Curve25519
nacl.sign(, nacl.sign.keyPair(
nacl.box(, nacl.box.keyPair( ← X25519 + XSalsa20
subtle.sign({name: 'Ed25519'
subtle.verify({name: 'Ed25519'
noble.ed25519, @noble/ed25519
tweetnacl
DSA.sign(, DSA.verify(
subtle.sign({name: 'ECDSA' ← includes DSA variants
forge.pki.createCertificate( ← may use DSA
DH, DiffieHellman, diffieHellman
crypto.createDiffieHellman(
subtle.generateKey({name: 'DH'
subtle.deriveKey({name: 'DH'
SM2, sm2, sm-crypto
SM9, sm9
gmssl
asymmetric, publicKey, privateKey, keypair, keyPair
generateKeyPair(, importKey(, exportKey(
sign(.*private, verify(.*public
pkcs8, spki, jwk ← key formats
Identify operation type
Extract all key material
Determine what is signed or encrypted
Find key loading mechanism
// Where does the key come from?
const pubKey = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBg..."
// vs
const pubKey = await fetch('/api/pubkey').then(r => r.text())
Trace to HTTP layer — is the signed/encrypted data sent in headers? body? query?
If a PEM or base64 key is found embedded in JS, extract it FULLY:
EMBEDDED PUBLIC KEY FOUND
File: common.modules-6d4292d1.js
Line: 5501
Format: PEM (RSA-2048)
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
[full key]
-----END PUBLIC KEY-----
JWK equivalent: (compute if possible)
n: ...
e: 65537
kty: RSA
ASYMMETRIC CRYPTOGRAPHY FINDINGS
=================================
[A1] RSA-2048 Encryption — HIGH
File: common.modules-6d4292d1.js
Line: 5501
Operation: Encrypt (RSA-OAEP)
Key type: Public key, hardcoded PEM
Key size: 2048-bit
Padding: OAEP
Input: Login credentials object (JSON)
Output: Base64 ciphertext → sent in POST body field "data"
Callers: loginRequest:890
[A2] ECDSA Signing — MEDIUM
File: index-5ef15b56.js
Line: 3302
Operation: Sign (ECDSA P-256)
Key: Generated per session via subtle.generateKey
Hash used: SHA-256
Input: Transaction data
Output: DER-encoded signature in header X-Signature
Callers: sendTransaction:4401