
IDA Pro向けのCyberChef風レシピツールキット:データベースのバイト列に対して289種類のエンコード、暗号、圧縮、ハッシュ操作を連鎖させ、その結果をバイナリにパッチとして書き戻します。
IDA Pro 9.x に組み込まれた CyberChef スタイルのレシピ/オペレーションツールキット。 多段階のデータ変換チェーン — エンコード、暗号化、圧縮、ハッシュ、抽出 — を構築し、IDA データベースのバイト列や文字列に対して直接実行できます。結果をバイナリにパッチとして書き戻すか、コメントとして挿入できます。
┌──────────────┬──────────────────┬─────────────────────────────┐
│ Operations │ Recipe │ I/O Panel │
│ (search) │ │ │
│ │ ┌─ From Hex ──┐ │ Input: 5e 73 68 7d 6c... │
│ Data format │ │ XOR [0x55] │ │ [Get Selected Bytes] │
│ ▸ From Hex │ │ ADD [3] │ │ [Get String @ Cursor] │
│ ▸ To Hex │ └─────────────┘ │ [From Clipboard] │
│ ▸ From B64 │ │ │
│ ... │ [Up] [Down] │ [✓ Auto Bake] [Bake!] │
│ │ [Remove][Clear] │ │
│ Encryption │ │ Output: 4b 58 87 7f e8 │
│ ▸ XOR │ Arguments: │ [Copy] [Output → Input] │
│ ▸ AES Dec │ Key: [0x55 ] │ │
│ ... │ │ Address: [0x140001000] │
│ │ │ [Patch Bytes] [Set Comment] │
└──────────────┴──────────────────┴─────────────────────────────┘
Ctrl-Alt-C) — 操作ブラウザ、レシピビルダー、
I/O パネルを 1 つのウィンドウに統合FromHex+XOR(0x55)+ADD(3) や FromBase64+NOT+ROL(3)pycryptodome で利用可能 (オプション)idachef_plugin.py と idachef/ フォルダの両方を IDA の
plugins ディレクトリにコピーします:
| OS | パス |
|---|---|
| Windows | %APPDATA%\Hex-Rays\IDA Pro\plugins\ |
| macOS | ~/Library/Application Support/Hex-Rays/IDA Pro/plugins/ |
| Linux | ~/.idapro/plugins/ |
plugins/
idachef_plugin.py
idachef/
__init__.py
core/
__init__.py
dish.py
formula.py
logger.py
operation.py
recipe.py
utils.py
operations/
__init__.py
arithmetic.py
ciphers.py
codeformat.py
compression.py
encoding.py
extractors.py
hashing.py
language.py
networking.py
other.py
publickey.py
textutils.py
ui/
__init__.py
chef_widget.py
qt_compat.py
(オプション)AES/DES/RC4暗号化の場合:pycryptodome を IDA の Python にインストールします:
"<ida>/python3/python.exe" -m pip install pycryptodome
それ以外のすべて — Base64/32/85、hex、XOR、ROT13/47、gzip/zlib/bzip2/lzma、 MD5/SHA*、CRC、HMAC、抽出器 — は標準ライブラリのみで動作します。
IDA を再起動します(または Edit → Plugins → IDAChef / Ctrl-Alt-C)。
Edit → Plugins → IDAChef または Ctrl-Alt-C を押します。
すべてのパネルはスプリッタベースで、自由にサイズ変更可能です — 列間、 レシピリストとその引数エディタ間、Input / Output / Batch セクション間の 区切り線をドラッグできます。
左 — オペレーションブラウザ: 検索可能なカテゴリ別ツリー。オペレーションを ダブルクリックするとレシピに追加されます。検索ボックスに入力すると、名前、 カテゴリ、または説明でフィルタリングできます。
中央 — レシピ: オペレーションの順序付きリスト。ステップをクリックすると その引数を編集できます。Up / Down / Remove / Clear ボタンで 並べ替えやリセットができます。引数は入力に応じてライブ更新されます(Auto Bake 有効時)。Save Recipe / Load Recipe はチェーンを JSON としてエクスポート およびインポートします(クリップボードにもコピーされます)。Load Recipe はさらに CyberChef からエクスポートされたレシピも受け付け、その位置引数を IDAChef の スキーマにマッピングします。
右 — I/O パネル:
入力テキストはプレーンテキストとして扱われます(\xHH エスケープをサポート)。
さらなる処理の前に、明示的なレシピステップ — From Hex、From Base64、
From Binary など — を使用して入力をデコードしてください。
各ベイクは IDA の出力ウィンドウに 3 行を出力します:
Input: 5e6877497d7d71526c776d536c707c6c
Step 1 'From Hex' -> ^hwI}}qRlwmSlp|l
Step 2 'XOR' -> KX...
Result: KX...
すべてのバイト内容はデコードされたテキスト(UTF-8、フォールバックとして Latin-1)として出力され、 300 文字で切り捨てられます。エラーにはステップのインデックスと例外 メッセージが含まれます。
Formula (compound) 操作では、式構文を使用して 単一のレシピステップ内で複数のバイトレベル操作を連鎖させることができます:
FromHex+XOR(0x55)+ADD(3) — decode hex, XOR with 0x55, add 3 (mod 256)
FromBase64+NOT+ROL(3) — decode base64, bitwise NOT, rotate left 3
XOR(0xaa)+SHR(2)+AND(0x7f) — XOR then shift-right then mask
サポートされるバイトレベル演算: XOR、ADD、SUB、AND、OR、NOT、
ROL、ROR、SHL、SHR、MUL、MOD
オプションの From プレフィックス: FromHex または FromBase64(バイトレベル演算が適用される前に
入力全体をデコードします)。プレフィックスが指定されていない場合、
入力バイトはそのまま使用されます。
XOR/ADD/SUB/AND/OR/MUL/MOD のキーは、16進数(0xNN)または
10進整数で指定できます。マルチバイトの16進キーは循環的に繰り返されます。
To/From: Hex、Hexdump、Base64、Base32、Base45、Base85、Base58、Base62、 Binary、Octal、Decimal、Float、Charcode。URL Encode/Decode、HTML Entity、 Morse Code、Quoted-Printable。Swap Endianness、Escape/Unescape String、 Escape/Unescape Unicode、Punycode、BCD、Hex Content。CSV↔JSON、 Unicode Normalisation、Text↔Integer Conversion、Generate UUID。
XOR(バイト単位またはUTF-16LEワード単位)、XOR Brute Force(スコアリング + crib)、 ROT13/ROT13 Brute Force、ROT47/ROT47 Brute Force、ROT8000、 ROR13(バイトローテート + 従来の32ビット文字列ハッシュ)、Atbash、 Vigenère Encode/Decode、Bit Shift Left/Right。RC4/RC4 Drop。 AES Encrypt/Decrypt(CBC/ECB/CTR/GCM)、AES Key Wrap/Unwrap。 DES/3DES Encrypt/Decrypt。Blowfish Encrypt/Decrypt。 RC2 Encrypt/Decrypt。ChaCha20、Salsa20。TEA/XTEA/XXTEA Encrypt/Decrypt。 Substitute、Affine/A1Z26/Rail Fence/Bacon/Bifid Cipher Encode/Decode、 Caesar Box。PBKDF2/HKDF 鍵導出。Bcrypt、Scrypt。
Gzip/Gunzip、Zlib Deflate/Inflate、Raw Deflate/Inflate、Bzip2 Compress/ Decompress、LZMA Compress/Decompress。Tar/Untar、Zip/Unzip。LZ4 Compress/ Decompress、LZString Compress/Decompress(pieroxyの lz-string JSライブラリと互換)、LZNT1 Decompress(Windows ntdll自身のデコンプレッサに対して検証済み)。
MD2、MD4、MD5、SHA0(本物のSHA-0、FIPS 180)、SHA1、SHA224、SHA256、SHA384、 SHA512、SHA2(統合)、SHA3-224/256/384/512、SHA3(統合)、Keccak、 RIPEMD160、BLAKE2b、BLAKE2s。 CRC16(CCITT/IBM)、CRC32、CRC-8/16/32(統合、Modbus & XMODEMを含む)、 Adler32、Fletcher Checksum、TCP/IP Checksum、XOR Checksum、Luhn Checksum、 Parity Bit。HMAC、CMAC、MurmurHash3、NT Hash、LM Hash。Entropy、 Frequency Distribution、Analyse Hash。
Reverse、To Upper/Lower/Swap/Alternating/Change Case。Remove Whitespace/ Null Bytes/ANSI Escape Codes/Line Numbers/Diacritics。Find/Replace(正規表現)、 Regex Substitution、Sort、Shuffle、Unique、Split、Filter。Head、Tail、 Drop/Take Bytes、Pad Lines、Add Line Numbers、Count Occurrences。 Diff、Hamming/Levenshtein Distance。UNIX Timestamp↔Date、Parse DateTime、 Get Time。JWT Decode。Index of Coincidence、Chi Square。