Overview

IDA type system fundamentals

The IDA type system is based on familiar C-like constructs such as:

  • Structures: Aggregate data types that group multiple members.

  • Unions: Allow overlapping the same memory with different data types.

  • Enums: Provide named integer constants.

IDA ships with type libraries out-of-the-box, but you can define custom types in the Local Types window.

Type definitions sources

  • Built-in or custom type libraries(.til files)

  • Custom types

  • Debug information (e.g., PDB or DWARF)

Type libraries

IDA ships with type libraries for popular platforms and operating systems. They provide high-level, predefined data types that can be used in your analysis. You can view a list of currently loaded type libraries in the Type Libraries window (View → Open subviews → Type Libraries, or Shift+F11)

circle-info

Relation between Local Types and Type Libraries:

In IDA, Local Types are custom or imported type definitions specific to your current project, while Type Libraries provide pre-defined types for common platforms and architectures. Types in the Type Libraries, once referenced, are copied into the IDB and appear under the Local Types window.

Type library may contain:

  • function prototypes

  • typedefs

  • structure and enum definitions

See also

Local Types view

The Local Types view provides a centralized hub for managing and customizing type definitions directly within the IDA UI. To access this view, navigate to View → Open subviews → Local Types or press Shift+F1 keys.

Local Types window

The Local Types view allows you to:

  • Create custom structures, unions, and enums

  • Modify and delete existing types

See also:

  • Refer to the Working with Types for a practical step-by-step tutorial covering the essentials of type management

Last updated

Was this helpful?