IDA
Version Notes
This sheet is updated against the current Hex-Rays docs and IDA 9.3 release notes. IDA shortcuts are customizable in Options -> Shortcuts..., so treat this as the default/current map and verify local changes there.
Older shortcut sheets differ in a few places. In current docs, Ctrl+S is save, Q is jump to problem or hexadecimal depending on context, and Shift+F5 opens Signatures. It is not the decompiler shortcut.
High Signal Keys
| Action | Shortcut |
|---|---|
| Decompile current function / open pseudocode | F5 |
| Toggle disassembly and pseudocode | Tab |
| Produce a C file from selected functions or whole program | Ctrl+F5 |
| Open Microcode view | Ctrl+Shift+F8 |
| Command palette | Ctrl+Shift+P |
| Jump Anywhere | Ctrl+Alt+G |
| Jump to address | G |
| Jump by name | Ctrl+L |
| Jump to function | Ctrl+P |
| Cross-references for current operand/name | X |
| Rename | N |
| Set type | Y |
| Create function | P |
| Stack variables | Ctrl+K |
| Strings | Shift+F12 |
| Functions | Shift+F3 |
| Names | Shift+F4 |
| Local Types | Shift+F1 |
| Signatures | Shift+F5 |
| Breakpoint | F2 |
| Start / continue debugger | F9 |
| Step into / step over | F7 / F8 |
| Run to cursor | F4 |
F5 Family
| Shortcut | Meaning |
|---|---|
F5 | Decompile the current function. In pseudocode, refresh the current decompilation. |
Tab | Jump between disassembly and pseudocode. |
Ctrl+F5 | File -> Produce file -> Create C file, for selected functions or the whole program. |
Shift+F5 | Open the Signatures subview. This is not decompile. |
Ctrl+Shift+F5 | No documented default decompiler shortcut in the current official shortcut docs. Check Options -> Shortcuts... if a plugin or local config uses it. |
Ctrl+Shift+F8 | Open Microcode view. In IDA 9.3, microcode became more interactive: Tab jumps to disassembly and Del toggles delete/restore for an instruction. |
Command Palette
Use Ctrl+Shift+P for Options -> Show command palette.... It lists actions available in the current UI context and lets you fuzzy-search commands without memorizing every shortcut.
Use it for commands with no obvious default shortcut:
Show command paletteOpen subviewsCreate C fileJump AnywhereMove to folder- Lumina actions
- Plugin actions
Use Options -> Shortcuts... to inspect, add, or reset bindings.
Navigation
| Action | Shortcut |
|---|---|
| Jump to operand | Enter |
| Jump in new window | Alt+Enter |
| Jump back | Esc |
| Jump forward | Ctrl+Enter |
| Jump to address | G |
| Jump Anywhere | Ctrl+Alt+G |
| Jump by name | Ctrl+L |
| Jump to function | Ctrl+P |
| Previous / next function | Ctrl+Shift+Up / Ctrl+Shift+Down |
| Jump to segment | Ctrl+S |
| Jump to segment register | Ctrl+G |
| Jump to problem | Q |
| Jump to entry point | Ctrl+E |
| Xrefs for current operand/name | X |
| Mark position | Alt+M |
| Jump to bookmark | Ctrl+M |
| Bookmarks window | Ctrl+Shift+M |
| Toggle graph and linear view | Space |
| Zoom out to proximity/callgraph view | - |
Jump Anywhere was introduced in IDA 9.2 and improved in IDA 9.3. It searches across addresses, functions, names, local types, and segments. IDA can also map it to G from Options -> Feature Flags..., depending on the version/configuration.
Search
| Action | Shortcut |
|---|---|
| Search text | Alt+T |
| Search next text | Ctrl+T |
| Search sequence of bytes | Alt+B |
| Search next sequence of bytes | Ctrl+B |
| Search immediate value | Alt+I |
| Search next immediate value | Ctrl+I |
| Next code | Alt+C |
| Next data | Ctrl+D |
| Next explored | Ctrl+A |
| Next unexplored | Ctrl+U |
| Search/filter many list views | Ctrl+F |
Editing And Types
| Action | Shortcut |
|---|---|
| Rename | N |
| Set type | Y |
| Repeatable comment | ; |
| Regular comment | : |
| Begin selection | Alt+L |
| Make code | C |
| Make data | D |
| Make string | A |
| Make array | * |
| Undefine | U |
| Insert line before | Ins |
| Insert line after | Shift+Ins |
| Offset, data segment | O |
| Offset, current segment | Ctrl+O |
| Offset, any segment | Alt+R |
| Offset, user-defined | Ctrl+R |
| Struct/union member | T |
| Stack variable | K |
| Hexadecimal | Q |
| Decimal | H |
| Binary | B |
| Character | R |
| Enum member | M |
| Change sign | _ |
| Bitwise negate | ~ |
| String literal options | Alt+A |
| Setup data types | Alt+D |
| Edit segment | Alt+S |
| Change segment register value | Alt+G |
| Select union member | Alt+Y |
| Undo | Ctrl+Z |
| Redo | Ctrl+Shift+Z |
For structs and function prototypes, Y is usually the fastest cleanup key. In IDA 9.3, Options -> General -> Misc -> Setting type renames target controls whether applying a renamed type also renames the target.
Open Subviews
| Subview | Shortcut |
|---|---|
| Pseudocode | F5 |
| Microcode | Ctrl+Shift+F8 |
| Local Types | Shift+F1 |
| Functions | Shift+F3 |
| Names | Shift+F4 |
| Signatures | Shift+F5 |
| Segments | Shift+F7 |
| Segment Registers | Shift+F8 |
| Structures | Shift+F9 |
| Enumerations | Shift+F10 |
| Type Libraries | Shift+F11 |
| Strings | Shift+F12 |
| Stack Variables | Ctrl+K |
| Cross References Tree | Shift+X |
| Bookmarks | Ctrl+Shift+M |
Local Types in recent IDA builds has C type-name autocompletion. Use Ctrl+Space when editing a declaration.
Functions
| Action | Shortcut |
|---|---|
| Create function | P |
| Edit function | Alt+P |
| Set function end | E |
| Stack variables | Ctrl+K |
| Change stack pointer | Alt+K |
| Rename register | V |
| Set type | Y |
| Jump to current function start | Ctrl+P, Enter |
| Jump previous function | Ctrl+Shift+Up |
| Jump next function | Ctrl+Shift+Down |
Decompiler Workflow
Use this loop for normal reversing:
- Find target function:
Ctrl+P,Ctrl+L,G,Ctrl+Alt+G, or xrefs withX. - Decompile with
F5. - Rename variables/functions with
N. - Fix types with
Y. - Create structs and apply members with
T,K, and Local Types. - Move between assembly and pseudocode with
Tab. - Export selected functions or the whole program with
Ctrl+F5only when you need a C file. - Inspect hard cases with Microcode using
Ctrl+Shift+F8.
In pseudocode:
| Action | Shortcut |
|---|---|
| Refresh current decompilation | F5 |
| Jump to matching disassembly | Tab |
| Follow/decompile function under cursor | Enter |
| Open target in new pseudocode window | Ctrl+Enter or Ctrl double-click |
| Go back in pseudocode history | Esc |
| Rename | N |
| Set type | Y |
| Copy selection | Ctrl+C |
Microcode
Microcode is Hex-Rays’ intermediate representation between assembly and pseudocode. Use it when pseudocode hides too much or an optimization/obfuscation issue needs lower-level inspection.
| Action | Shortcut |
|---|---|
| Open Microcode view | Ctrl+Shift+F8 |
| Increase / decrease maturity level | > / < |
| Jump to corresponding disassembly | Tab |
| Delete / restore microcode instruction | Del |
IDA 9.3 added more interactive microcode work: assertions, instruction deletion with undo, flow graphs, def-use/use-def chain display, compact/detailed mode, value numbers, number origins, and persistent viewer state.
Debugger
| Action | Shortcut |
|---|---|
| Add/remove breakpoint | F2 |
| Start / continue process | F9 |
| Terminate process | Ctrl+F2 |
| Step into | F7 |
| Step over | F8 |
| Run until return | Ctrl+F7 |
| Run to cursor | F4 |
| Breakpoint list | Ctrl+Alt+B |
| Stack trace / call stack | Ctrl+Alt+S |
IDA 9.3 improves Android 14-16 native debugging and adds stack-view dereferencing. IDA 9.2 improved x86-64 PE call stacks using unwind info and refreshed the debugger register widget.
File And Windows
| Action | Shortcut |
|---|---|
| Parse C header file | Ctrl+F9 |
| Create ASM file | Alt+F10 |
| Create C file from decompiler | Ctrl+F5 |
| Save database | Ctrl+S |
| Exit | Alt+X or Alt+F4 |
| Windows list / next window | Ctrl+Tab |
| Switch to window 1..9 | Alt+1..Alt+9 |
| Close window | Alt+F3 or Ctrl+F4, depending on platform/config |
| Script command | Shift+F2 |
| Focus command line | . |
| Leave command line / return focus | Esc |
| Calculator | ? |
Lumina
Current docs expose Lumina through the Lumina menu and command palette:
- Pull all metadata
- Push all metadata
- View all metadata
- Pull current function metadata
- Push current function metadata
- Revert current function metadata
Older PDF sheets commonly listed F12, Ctrl+F12, and Alt+F12 for Lumina actions. Since the current official shortcuts page does not list those as default bindings, verify Lumina shortcuts in Options -> Shortcuts... on the exact IDA install.
Pwndbg / IDA Integration
Modern pwndbg decompiler integration is installed from inside pwndbg:
di install ida
set integration-provider ida
Then open the same binary in IDA and the debugger. The integration lets pwndbg query IDA/Hex-Rays symbols and decompilation.
Useful debugger-side commands and helpers:
p/x $ida("main")
b *$ida("main")
b *$ida("sub_3C350")
decomp $pc
decomp *$ida("sub_3C350")
pwndbg ida
config ida
Older pwndbg notes may mention manually running ida_script.py or pwndbg-idascript.py from IDA. Prefer the current di install ida flow unless working with an older pwndbg checkout.
References
- https://docs.hex-rays.com/release-notes/9_3
- https://docs.hex-rays.com/release-notes/9_2
- https://docs.hex-rays.com/user-guide/configuration/shortcuts
- https://docs.hex-rays.com/user-guide/decompiler/interactive
- https://docs.hex-rays.com/user-guide/user-interface/subviews
- https://hex-rays.com/blog/ida-9.3-jump-anywhere
- https://hex-rays.com/blog/igor-tip-of-the-week-02-ida-ui-actions-and-where-to-find-them
- https://pwndbg.re/pwndbg/latest/tutorials/decompiler-integration/ida-integration/
- https://pwndbg.re/stable/tutorials/decompiler-integration/