A comprehensive reference for writing IDAPython scripts, covering both interactive GUI usage and IDALib headless analysis introduced in IDA 9.0. You get ready-to-use snippets for the essential reverse engineering tasks: reading and patching memory in debug and IDB contexts, traversing functions and basic blocks, manipulating registers, pattern searching, cross-reference analysis, and working with the debugger. It includes practical examples like parsing GNU C++ std::map structures, calling debuggee functions with Appcall, and reading XMM registers. If you're automating binary analysis, dealing with obfuscated code, or batch-processing binaries and don't want to dig through IDA's API docs every time, this gives you working code to adapt. The snippets assume familiarity with IDA but save you from remembering whether it's get_qword or read_dbg_qword.

skills.sh installs
1.9K
GitHub stars
2.4K
last updated
Aug 21, 2026

Install

$ npx -y skills add p4nda0s/reverse-skills --skill rev-idapython --agent claude-code

Installs into .claude/skills of the current project.

Files

rev-idapython - IDAPython / IDALib Script Reference

IDAPython script snippets for IDA interactive use and IDALib headless analysis. Use as reference when generating IDAPython code.

  • IDAPython: scripts run inside IDA GUI (Script Command, plugin, or IDC console)
  • IDALib: headless mode introduced in IDA 9.0 — run analysis scripts without opening the IDA GUI

Common API

Register Operations

idc.get_reg_value('rax')
idaapi.set_reg_val("rax", 1234)

Debug Memory Operations

idc.read_dbg_byte(addr)
idc.read_dbg_memory(addr, size)
idc.read_dbg_dword(addr)
idc.read_dbg_qword(addr)
idc.patch_dbg_byte(addr, val)
idc.add_bpt(0x409437)          # add breakpoint
idaapi.get_imagebase()         # get image base address

Local Memory Operations (modifies IDB database)

idc.get_qword(addr)
idc.patch_qword(addr, val)
idc.patch_dword(addr, val)
idc.patch_word(addr, val)
idc.patch_byte(addr, val)
idc.get_db_byte(addr)
idc.get_bytes(addr, size)
idaapi.get_dword(addr)
idc.get_strlit_contents          # read string literal

Disassembly

Sponsors

Details

Repository
github.com/p4nda0s/reverse-skills
Categories
Backend & APIs, Debugging, Automation & Workflows
First seen
Jun 3, 2026

More from p4nda0s/reverse-skills

All 8
1nvidia avatarcupynumeric-migration-readinessnvidia/skillsPre-migration readiness assessor for porting NumPy to cuPyNumeric. Use BEFORE substantial porting work begins when the user asks whether code will scale on GPU,1.9Kskills.sh installs
2mcollina avatardocumentationmcollina/skillsCreates, structures, and reviews technical documentation following the Diátaxis framework (tutorials, how-to guides, reference, and explanation pages). Use when1.9Kskills.sh installs
3daymade avatartranscript-fixerdaymade/claude-code-skillsCorrects speech-to-text transcription errors using dictionary rules and Claude's built-in AI (no external API key required — Native AI Correction is the DEFAULT1.9Kskills.sh installs
4abhigyanpatwari avatargitnexus-exploringabhigyanpatwari/gitnexusUse when the user asks how code works, wants to understand architecture, trace execution flows, or explore unfamiliar parts of the codebase. Examples: "How does1.9Kskills.sh installs
5cognitedata avatarcorrectness-and-error-handlingcognitedata/builder-skillsMUST be used whenever fixing correctness and error handling issues in a Flows app. This skill finds AND fixes bugs, missing error states, unhandled rejections, 1.9Kskills.sh installs
6jackwener avataropencli-operatejackwener/opencliMake websites accessible for AI agents. Navigate, click, type, extract, wait — using Chrome with existing login sessions. No LLM API key needed.1.9Kskills.sh installs