idapython — community idapython, ida-pro-mcp, community, ide skills, Claude Code, Cursor, Windsurf

v1.0.0
GitHub

About this Skill

Perfect for Reverse Engineering Agents needing advanced IDA Pro integration with language models through MCP. AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.

mrexodia mrexodia
[0]
[0]
Updated: 3/5/2026

Agent Capability Analysis

The idapython skill by mrexodia is an open-source community AI agent skill for Claude Code and other IDE workflows, helping agents execute tasks with better context, repeatability, and domain-specific guidance.

Ideal Agent Persona

Perfect for Reverse Engineering Agents needing advanced IDA Pro integration with language models through MCP.

Core Value

Empowers agents to bridge IDA Pro with language models, utilizing modern `ida_*` modules like `ida_bytes`, `ida_funcs`, and `ida_hexrays` for comprehensive reverse engineering capabilities, including bytes and memory analysis, function management, and decompilation.

Capabilities Granted for idapython

Automating reverse engineering tasks with IDA Pro and language models
Analyzing bytes and memory using `ida_bytes` module
Decompiling functions with `ida_hexrays` for in-depth analysis

! Prerequisites & Limits

  • Requires IDA Pro installation
  • Python compatibility required
  • Avoids legacy `idc` module, uses modern `ida_*` modules instead
Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

idapython

Install idapython, an AI agent skill for AI agent workflows and automation. Works with Claude Code, Cursor, and Windsurf with one-command setup.

SKILL.md
Readonly

IDAPython

Use modern ida_* modules. Avoid legacy idc module.

Module Router

TaskModuleKey Items
Bytes/memoryida_bytesget_bytes, patch_bytes, get_flags, create_*
Functionsida_funcsfunc_t, get_func, add_func, get_func_name
Namesida_nameset_name, get_name, demangle_name
Typesida_typeinftinfo_t, apply_tinfo, parse_decl
Decompilerida_hexraysdecompile, cfunc_t, lvar_t, ctree visitor
Segmentsida_segmentsegment_t, getseg, add_segm
Xrefsida_xrefxrefblk_t, add_cref, add_dref
Instructionsida_uainsn_t, op_t, decode_insn
Stack framesida_frameget_frame, define_stkvar
IterationidautilsFunctions(), Heads(), XrefsTo(), Strings()
UI/dialogsida_kernwinmsg, ask_*, jumpto, Choose
Database infoida_idainf_get_*, inf_is_64bit()
Analysisida_autoauto_wait, plan_and_wait
Flow graphsida_gdlFlowChart, BasicBlock
Register trackingida_regfinderfind_reg_value, reg_value_info_t

Core Patterns

Iterate functions

python
1for ea in idautils.Functions(): 2 name = ida_funcs.get_func_name(ea) 3 func = ida_funcs.get_func(ea)

Iterate instructions in function

python
1for head in idautils.FuncItems(func_ea): 2 insn = ida_ua.insn_t() 3 if ida_ua.decode_insn(insn, head): 4 print(f"{head:#x}: {insn.itype}")

Cross-references

python
1for xref in idautils.XrefsTo(ea): 2 print(f"{xref.frm:#x} -> {xref.to:#x} type={xref.type}")

Read/write bytes

python
1data = ida_bytes.get_bytes(ea, size) 2ida_bytes.patch_bytes(ea, b"\x90\x90")

Names

python
1name = ida_name.get_name(ea) 2ida_name.set_name(ea, "new_name", ida_name.SN_NOCHECK)

Decompile function

python
1cfunc = ida_hexrays.decompile(ea) 2if cfunc: 3 print(cfunc) # pseudocode 4 for lvar in cfunc.lvars: 5 print(f"{lvar.name}: {lvar.type()}")

Walk ctree (decompiled AST)

python
1class MyVisitor(ida_hexrays.ctree_visitor_t): 2 def visit_expr(self, e): 3 if e.op == ida_hexrays.cot_call: 4 print(f"Call at {e.ea:#x}") 5 return 0 6 7cfunc = ida_hexrays.decompile(ea) 8MyVisitor().apply_to(cfunc.body, None)

Apply type

python
1tif = ida_typeinf.tinfo_t() 2if ida_typeinf.parse_decl(tif, None, "int (*)(char *, int)", 0): 3 ida_typeinf.apply_tinfo(ea, tif, ida_typeinf.TINFO_DEFINITE)

Create structure

python
1udt = ida_typeinf.udt_type_data_t() 2m = ida_typeinf.udm_t() 3m.name = "field1" 4m.type = ida_typeinf.tinfo_t(ida_typeinf.BTF_INT32) 5m.offset = 0 6m.size = 4 7udt.push_back(m) 8tif = ida_typeinf.tinfo_t() 9tif.create_udt(udt, ida_typeinf.BTF_STRUCT) 10tif.set_named_type(ida_typeinf.get_idati(), "MyStruct")

Strings list

python
1for s in idautils.Strings(): 2 print(f"{s.ea:#x}: {str(s)}")

Wait for analysis

python
1ida_auto.auto_wait() # Block until autoanalysis completes

Key Constants

ConstantValue/Use
BADADDRInvalid address sentinel
ida_name.SN_NOCHECKSkip name validation
ida_typeinf.TINFO_DEFINITEForce type application
o_reg, o_mem, o_imm, o_displ, o_nearOperand types
dt_byte, dt_word, dt_dword, dt_qwordData types
fl_CF, fl_CN, fl_JF, fl_JN, fl_FCode xref types
dr_R, dr_W, dr_OData xref types

Critical Rules

  1. NEVER convert hex/decimal manually — use int_convert MCP tool
  2. Wait for analysis: Call ida_auto.auto_wait() before reading results
  3. Thread safety: IDA SDK calls must run on main thread (use @idasync)
  4. 64-bit addresses: Always assume ea_t can be 64-bit

Anti-Patterns

AvoidDo Instead
idc.* functionsUse ida_* modules
Hardcoded addressesUse names, patterns, or xrefs
Manual hex conversionUse int_convert tool
Blocking main threadUse execute_sync() for long ops
Guessing at typesDerive from disassembly/decompilation

Detailed API Reference

For comprehensive documentation on any module, read docs/<module>.md:

  • High-use: ida_bytes, ida_funcs, ida_hexrays, ida_typeinf, ida_name, idautils
  • Medium-use: ida_segment, ida_xref, ida_ua, ida_frame, ida_kernwin
  • Specialized: ida_dbg (debugger), ida_nalt (netnode storage), ida_regfinder (register tracking)

Full RST sources from hex-rays.com available at docs/<module>.rst.

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is idapython?

Perfect for Reverse Engineering Agents needing advanced IDA Pro integration with language models through MCP. AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.

How do I install idapython?

Run the command: npx killer-skills add mrexodia/ida-pro-mcp/idapython. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for idapython?

Key use cases include: Automating reverse engineering tasks with IDA Pro and language models, Analyzing bytes and memory using `ida_bytes` module, Decompiling functions with `ida_hexrays` for in-depth analysis.

Which IDEs are compatible with idapython?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for idapython?

Requires IDA Pro installation. Python compatibility required. Avoids legacy `idc` module, uses modern `ida_*` modules instead.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add mrexodia/ida-pro-mcp/idapython. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use idapython immediately in the current project.

Related Skills

Looking for an alternative to idapython or another community skill for your workflow? Explore these related open-source skills.

View All

widget-generator

Logo of f
f

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.

149.6k
0
AI

flags

Logo of vercel
vercel

flags is a Next.js feature management skill that enables developers to efficiently add or modify framework feature flags, streamlining React application development.

138.4k
0
Browser

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI