
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 패널이 하나의 창에 모두 포함FromHex+XOR(0x55)+ADD(3) 또는 FromBase64+NOT+ROL(3)pycryptodome과 함께 사용 가능(선택 사항)idachef_plugin.py와 idachef/ 폴더 둘 다를 IDA 플러그인 디렉터리에 복사하십시오:
| 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 암호화의 경우: IDA의 Python에 pycryptodome을 설치하세요:
"<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의 출력 창에 세 줄을 출력합니다:
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 인코드/디코드, HTML 엔티티, 모스 부호, Quoted-Printable. 엔디언 교환, 문자열 이스케이프/언이스케이프, 유니코드 이스케이프/언이스케이프, Punycode, BCD, Hex Content. CSV↔JSON, 유니코드 정규화, 텍스트↔정수 변환, UUID 생성.
XOR (바이트 또는 UTF-16LE 워드 단위), XOR 브루트 포스 (스코어링 + 크립), ROT13/ROT13 브루트 포스, ROT47/ROT47 브루트 포스, ROT8000, ROR13 (바이트 회전 + 클래식 32비트 문자열 해시), Atbash, Vigenère 인코드/디코드, 비트 시프트 왼쪽/오른쪽. RC4/RC4 Drop. AES 암호화/복호화 (CBC/ECB/CTR/GCM), AES 키 랩/언랩. DES/3DES 암호화/복호화. Blowfish 암호화/복호화. RC2 암호화/복호화. ChaCha20, Salsa20. TEA/XTEA/XXTEA 암호화/복호화. 치환, Affine/A1Z26/Rail Fence/Bacon/Bifid 암호 인코드/디코드, Caesar Box. PBKDF2/HKDF 키 유도. Bcrypt, Scrypt.
Gzip/Gunzip, Zlib Deflate/Inflate, Raw Deflate/Inflate, Bzip2 압축/ 압축 해제, LZMA 압축/압축 해제. Tar/Untar, Zip/Unzip. LZ4 압축/ 압축 해제, LZString 압축/압축 해제 (pieroxy의 lz-string JS 라이브러리와 호환), LZNT1 압축 해제 (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 체크섬, TCP/IP 체크섬, XOR 체크섬, Luhn 체크섬, 패리티 비트. HMAC, CMAC, MurmurHash3, NT 해시, LM 해시. 엔트로피, 빈도 분포, 해시 분석.
반전, 대문자/소문자/스왑/교대/케이스 변경. 공백/ 널 바이트/ANSI 이스케이프 코드/줄 번호/발음 구별 부호 제거. 찾기/바꾸기 (정규식), 정규식 치환, 정렬, 셔플, 고유값, 분할, 필터. Head, Tail, 바이트 드롭/테이크, 줄 패딩, 줄 번호 추가, 발생 횟수 세기. Diff, 해밍/레벤슈타인 거리. UNIX 타임스탬프↔날짜, DateTime 파싱, 시간 가져오기. JWT 디코드. 일치 지수, 카이제곱.
추출: IPv4/IPv6, URL, 이메일, 도메인, 16진수 문자열, MAC 주소, 해시, 파일 경로, 날짜. 사용자 정의 정규식 (목록 + 개수), 문자열 (ASCII + UTF-16LE), RAKE 키워드 추출.
IP & URL 디팽/리팽. MAC 주소 형식 지정 (: 또는 - 포함/미포함). IPv6 파싱, IPv4/TCP/UDP 헤더 파싱, URI 파싱. HTTP 응답 디청킹, HTTP 헤더 제거. IP 범위 파싱 (CIDR 또는 명시적 범위), CIDR → IP 범위. IPv4→10진수, 10진수→IPv4. IP 형식 변경, IP 주소 그룹화.