> This is part 1 of 90 of the full documentation (pages 1–100 of 8958).
> The content is paginated: fetch every part to see all of it.
> Next part: https://docs.hex-rays.com/llms-full.txt/1
> Page index: https://docs.hex-rays.com/llms.txt

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
This site has an agentic ask interface you may use to query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.hex-rays.com/index.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

---

# Welcome to Hex-Rays docs

Discover the core of Hex-Rays tutorials and reference resources, guiding you through IDA features and real-life usage scenarios.

{% hint style="info" %}
This is documentation for IDA 9.5 beta. It may be incomplete and will evolve during the beta period.
{% endhint %}

## Getting Started

New to IDA? Explore our selection of documentation to support you through the installation process and kickstart your reverse engineering journey.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><strong>Install IDA</strong></td><td>Get your IDA instance up and running on your local machine</td><td><a href="/ida-9.5/getting-started/install-ida">IDA Installation</a></td><td><a href="https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-8e0685657a8b6a77aa0c202421d66c00ace61d35%2Finstall%20IDA.jpg?alt=media">install IDA.jpg</a></td></tr><tr><td><strong>Activate your license</strong></td><td>Check how to activate your license and share them with your team members</td><td><a href="/ida-9.5/getting-started/licensing">License Activation</a></td><td><a href="https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-948938fac30cc3902b46d58242561ce96b1f5d41%2FActivate%20license.jpg?alt=media">Activate license.jpg</a></td></tr><tr><td><strong>Check basic features</strong></td><td>Reverse your first binary file and discover the capabilities of disassembly and decompilation</td><td><a href="/ida-9.5/getting-started/basic-usage">Basic Usage</a></td><td><a href="https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-3c7c0f3fb0f1f4a7a83cec4b455ade2d93802b84%2FCheck%20basic%20feature.jpg?alt=media">Check basic feature.jpg</a></td></tr></tbody></table>

## IDA Core

The essential capabilities and renowned, fundamental components of IDA. This section gives you everything you need to set up your workspace and begin your analysis.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Disassembler</strong></td><td>Human-readable assembly code</td><td><a href="/ida-9.5/core/disassembler">Disassembler</a></td></tr><tr><td><strong>Decompiler</strong></td><td>Readable pseudocode and microcode to power up your analysis</td><td><a href="/ida-9.5/core/decompiler">Decompiler</a></td></tr><tr><td><strong>Debugger</strong></td><td>Local and remote dynamic analysis</td><td><a href="/ida-9.5/core/debugger">Debugger</a></td></tr></tbody></table>

## IDA Add-ons

Optional IDA features, including Teams, Private Lumina, and enterprise licensing options.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Teams</strong></td><td>Collaborative reverse engineering</td><td><a href="/ida-9.5/add-ons/teams">Teams</a></td></tr><tr><td><strong>Private Lumina</strong></td><td>Get fast function recognition with full control over your metadata</td><td><a href="/ida-9.5/add-ons/lumina">Lumina</a></td></tr><tr><td><strong>Floating License Server</strong></td><td>License sharing across users and devices</td><td><a href="/ida-9.5/add-ons/floating-license">Floating License</a></td></tr></tbody></table>

## Developer Resources

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Domain API</strong></td><td><a href="https://github.com/HexRaysSA/ida-docs/blob/9.4/developer-guide/domain-api.md">https://github.com/HexRaysSA/ida-docs/blob/9.4/developer-guide/domain-api.md</a></td></tr><tr><td><strong>C++ SDK</strong></td><td><a href="https://github.com/HexRaysSA/ida-docs/blob/9.4/developer-guide/cpp-sdk.md">https://github.com/HexRaysSA/ida-docs/blob/9.4/developer-guide/cpp-sdk.md</a></td></tr><tr><td><strong>IDAPython SDK</strong></td><td><a href="https://github.com/HexRaysSA/ida-docs/blob/9.4/developer-guide/idapython.md">https://github.com/HexRaysSA/ida-docs/blob/9.4/developer-guide/idapython.md</a></td></tr></tbody></table>

## What's new in docs?

Check the [latest updates](/ida-9.5/readme/whats-new) in the Hex-Rays documentation.


# What's new?

Check the latest changes in the Hex-Rays documentation, including new tutorials and manuals, along with significant revisions to existing content.

## June-July 2026

### Reworked Dyld Shared Cache workflow (IDA 9.4)

IDA 9.4 ships a redesigned workflow for analysing Apple Dyld Shared Caches. Opening a DSC no longer eagerly loads images: a new **DSC Index** subview lets you browse the cache's images, branch islands, branch mappings, GOTs and gaps, and pick what to load on demand. Three locator actions — by **address**, **symbol** or **string** — work across the entire cache, even on parts that have not been loaded yet. The whole workflow is exposed through a public scripting API (`<dscu.h>` / `ida_dscu`).

See [**DSC Workflow**](/ida-9.5/core/disassembler/concepts/dsc-workflow).

### Git-based Teams (9.4)

The Teams add-on for IDA Pro now supports Git servers. You can collaborate on IDB files using GitHub, GitLab, Bitbucket, or any self-hosted provider. We've put together a few guides to help you get started:

* Already have a Git repository? See the [setup guide](/ida-9.5/add-ons/teams/getting-started/getting-started-git) and the [everyday tasks](/ida-9.5/add-ons/teams/how-tos/working-with-git) walkthrough.
* Migrating from Vault? See the [Vault to Git migration](/ida-9.5/add-ons/teams/how-tos/migrating-from-vault-to-git) tutorial.
* Need a self-hosted Git server? See our recommended [Gitea setup](/ida-9.5/add-ons/teams/admin/git-backend-on-premise-setup).
* Want to use IDA repositories from a terminal? See [Using git-ida from the command line](/ida-9.5/add-ons/teams/how-tos/git_ida_cli).

### Deep Links (9.4)

IDA 9.4 introduces deep links: shareable URLs that navigate directly to a specific location in a database. Open them from a chat, email, or external tool and IDA jumps straight to the right spot. See [Deep links](/ida-9.5/core/user-interface/concepts/deep-links) for an overview and [Using deep links](/ida-9.5/core/user-interface/how-tos/using-deep-links) for a step-by-step guide.

### Unified Scripts window (9.4)

The old “Execute script” and “Snippets” dialogs have been replaced with a single dockable **Scripts** window. See the [overview](/ida-9.5/core/user-interface/concepts/scripts-window) of its tabs and options.

### New Qualcomm Hexagon disassembler and loader (9.4)

IDA 9.4 adds a new Hexagon (QDSP6) processor module and a Qualcomm MBN boot-image loader. See the [Hexagon disassembler](/ida-9.5/core/disassembler/concepts/hexagon) reference for details on packet-based execution, ISA coverage, and processor-specific display options, and the [loading Qualcomm MBN files](/ida-9.5/core/disassembler/how-tos/loading-qualcomm-mbn) how-to for loader specifics.

### Pathfinder, Jump Anywhere, and Xrefs Graph (9.4)

* The new [**Pathfinder**](/ida-9.5/core/disassembler/concepts/pathfinder) widget finds call paths between functions. You can pick waypoints, exclude noise, and view results as a tree or a highlighted Xrefs Graph.
* [**Jump Anywhere**](/ida-9.5/core/user-interface/concepts/jump-anywhere) is now the default jump dialog, with live previews, cross-database history, expression evaluation, and new options for restoring the last query on reopen.
* The [**Xrefs Graph**](/ida-9.5/core/disassembler/concepts/xref-graph) documentation has been updated to cover the redesigned interface, new node headers, and the path-highlighting layout used by Pathfinder.

## May 2026

### New clang parser tutorial

Added a [clang parser](/ida-9.5/core/types/how-tos/creating-type-libraries/clang) tutorial covering how to parse C/C++/Objective-C headers and build type libraries. The clang parser is now the recommended replacement for IDAClang.

### Server installation checklists

Published step-by-step installation checklists for servers:

* [Teams](/ida-9.5/add-ons/teams/admin/teams-server/teams-server-checklist)
* [Private Lumina](/ida-9.5/add-ons/lumina/admin/lumina-server/lumina-server-checklist)
* [Floating License Server](/ida-9.5/add-ons/floating-license/admin/license-server/license-server-checklist)

## March 2026

### Documentation Updates for the 9.3 release

Along with the [**9.3 release**](/ida-9.5/release-notes/9_3) and several new and updated features, we also revised the relevant parts of the documentation to improve consistency. The most significant updates affect the following sections:

* [**Teams**](/ida-9.5/add-ons/teams) – The Teams functionality is now fully integrated into IDA. The HVUI has been deprecated.
* [**Floating License Server Administration**](/ida-9.5/add-ons/floating-license/admin/license-server) – updated to cover new License Server features, including:
  * JSON Configuration,
  * Access Control Lists (ACL)
  * Access Logging, and
  * Enhanced lsadm

## December 2025

### Revamped Menu Bar Action Reference

We **rewrote the reference documentation for all** [**menu bar actions**](/ida-9.5/core/user-interface/reference/menu-bar-actions). Because the list of available actions in some menus are often context-sensitive, the documentation now allows you to explore available options and understand the change depending on the view you are working in.

## November 2025

### Introducing IDA Plugin Manager and Enhanced Plugin Ecosystem

With the rollout of the [IDA Plugin Manager](https://hcli.docs.hex-rays.com/user-guide/plugin-manager/) and a refined plugin ecosystem for discovering, installing and maintaining plugins we’re entering a new era of plugin management; for both plugin users and plugin authors.

**For Plugin Users**:

Plugin Manager transforms how you discover and install plugins. Browse available plugins via HCLI and install them in IDA with just a few clicks. Read the [Plugin Manager docs](https://hcli.docs.hex-rays.com/user-guide/plugin-manager/) for more.

**For Plugin Developers**:

Manual submissions via My Hex-Rays portal are a thing of the past. Publishing your plugin into new [IDA Plugin Repository](https://github.com/HexRaysSA/plugin-repository) now follows a transparent, automated process that gets plugins into users' hands faster. Ensure your plugin is compatible with HCLI and Plugin Manager, and it's ready to be listed!

To ease the adoption, we've prepared a set of documents to **make your plugin compatible with HCLI and Plugin Manager**:

[Repository Architecture](/ida-9.5/developer/publishing-plugins/concepts/plugin-repository-architecture) | [Packaging Format](/ida-9.5/developer/publishing-plugins/concepts/plugin-packaging-and-format) | [Publishing guidelines](/ida-9.5/developer/publishing-plugins/how-tos/plugin-publishing) | [Testing checklist](/ida-9.5/developer/publishing-plugins/how-tos/test-plugin-before-publishing) |

**What's Changed** in a nutshell:

* `ida.plugin.json` file has [new required and optional](/ida-9.5/developer/publishing-plugins/how-tos/plugin-publishing#1-update-or-create-ida-pluginjson) fields.
* Plugins need to be packed into ZIP Archive
* You should publish releases on GitHub

**Migrating your existing plugins**

Already submitted a plugin under the [plugins.hex-rays.com](https://plugins.hex-rays.com/)? Check our [FAQ](/ida-9.5/developer/publishing-plugins/how-tos/plugin-publishing#faq) for guidance on updating to the new ecosystem.

## October 2025

### Introducing HCLI Commands and Documentation Resources

With the release of [HCLI](https://github.com/HexRaysSA/ida-hcli) - **an extendable command-line interface for managing licenses, downloads, and more** - the docs now include hint boxes showing **HCLI commands** as faster alternatives to certain actions. This is especially worth taking a glimpse at for admins who manage multiple license environments or plugin authors looking to automate their workflows.

**Getting started**:

* Check out the [HCLI documentation](https://hcli.docs.hex-rays.com/) for installation steps, usage examples, and guidance on creating extensions.

**Automation workflow**:

* Are you a plugin developer who wants to automate plugin testing and workflows? Take a look at the [HCLI IDA GitHub Action](https://github.com/HexRaysSA/ida-hcli-actions) for CI/CD integration that automatically installs IDA Pro and allows you to run tests across multiple platforms.

## August 2025

### Domain API Documentation Resources

The easy-to-use [Domain API](https://ida-domain.docs.hex-rays.com/) is our newly released, Pythonic interface for developing IDA plugins and scripts. To help you get up and running quickly with this open-source API, we’ve prepared a set of documentation resources:

* [Getting Started Guide](https://ida-domain.docs.hex-rays.com/getting_started/), including installation and first steps
* [Real-life Code Examples](https://ida-domain.docs.hex-rays.com/examples/)
* [Domain API Reference](https://ida-domain.docs.hex-rays.com/usage/)

#### Not sure if the Domain API is right for you?

If you're new to the Domain API, start with our [FAQ](/ida-9.5/developer/domain-api) to see how it compares with existing approaches and whether it suits your needs.

## June 2025

### Revamped Subviews Overview

We refreshed and updated the [Subviews](/ida-9.5/core/user-interface/concepts/subviews) listing and overview.

## March 2025

### Improved IDC Reference

We've refined the experience for the [IDC Reference](https://idc.docs.hex-rays.com) documentation. Starting now, you can explore it just like the IDAPython and C++ SDK references. To improve searchability and usability, we've moved the IDC function lists to a dedicated site. Meanwhile, conceptual documentation, such as core concepts, remains under the Developer Guide.

### License Server on WSL – New Guide

We updated our Admin Guide with a step-by-step tutorial on how to [configure the license server on WSL](/ida-9.5/add-ons/floating-license/admin/license-server-on-wsl), making it easier for Windows users to set up and manage the Hex-Rays server for floating licenses.

## February 2025

### Debugger Tutorials – revamped and expanded

* The local [Linux Debugger](/ida-9.5/core/debugger/concepts/local-debugging/linux-debugger) and [WinDbg Debugger](/ida-9.5/core/debugger/concepts/local-debugging/windbg-debugger) tutorials have been revamped for clarity and updated.
* A brand-new [WinDbg Time Travel Debugging (TTD)](/ida-9.5/core/debugger/concepts/local-debugging/windbg-ttd) tutorial has been added, covering installation, setup and essential commands.

### License management command line options

The `-Olicense` command line switch is now documented as a part of the [license manager](/ida-9.5/ida-actions/licensemanager).

## January 2025

### New Floating Licenses User Guide

We've introduced a [Floating Licenses User Guide](/ida-9.5/add-ons/floating-license/getting-started), that explains core concepts such as **seats allocation, checking out, and borrowing licenses**.

## December 2024

### Updated Porting Guides

With the recent changes to our API that came into life with SP1 for IDA 9.0, we updated Porting Guides for [IDAPython](/ida-9.5/developer/idapython/how-tos/idapython-porting-guide-ida-9) and [C++ SDK](/ida-9.5/developer/cpp-sdk/how-tos/cpp-sdk-porting-guide-ida-9).

### New IDAPython examples

With the new or reworked IDAPython examples that were added to our [examples library](/ida-9.5/developer/idapython/idapython-examples), we revamped the examples categories to make the navigation among them more intuitive. Take a look at the new [Working with types](/ida-9.5/developer/idapython/idapython-examples#types) category for samples that utilize our updated Types endpoints.

### Revamped IDAPython reference

We updated the UI layout of [IDAPython Reference Documentation](https://python.docs.hex-rays.com/) and improve cross-referencing.

## November 2024

### Other updates

* To reflect the current state of Local Types window as a one hub to all types-related operations, we updated the [Subviews](https://github.com/HexRaysSA/ida-docs/blob/9.4/user-guide/user-interface/menu-bar/view/open-subviews.md).

## October 2024

With IDA 9.0, we changed how the Hex-Rays documentation is organized and added new guides and tutorials to kickstart your IDA journey and ease the migration from previous IDA versions.

### New Structure

Our docs are divided into three main categories:

* **User Guide**, dedicated to individual users and covering whole IDA products (including add-ons, like Teams and Lumina). Most of the documentation regarding IDA, like manuals or tutorials, is currently accessible under the User Guide.
* **Developer Guide**, which focuses on developer's needs, covers the reference and contextual documentation for **IDAPython API** and **C++ SDK**, as well as native **IDC** language. This part is mainly dedicated to plugin authors and devs interested in enhancing basic IDA capabilities with our development kit or scripting.
* **Admin Guide** mainly focuses on administrators installing and managing servers for Teams and Lumina or floating licenses.

In [**Archive**](/ida-9.5/archive), we gathered docs with rather historical value that some of you may still find interesting but focused on previous versions of IDA.

### New Getting Started Guides

We prepared a [Getting Started](broken://pages/nQp9YpjxWg2SLA6NBljQ) section for IDA newbies and also gathered additional materials to help you find your way around our [IDAPython API](/ida-9.5/developer/idapython/idapython-getting-started) or [IDA SDK](/ida-9.5/developer/cpp-sdk/cpp-sdk-getting-started).

### Migration and Porting Guides

For those familiar with previous versions of IDA, we prepared Porting Guides for [IDAPython](/ida-9.5/developer/idapython/how-tos/idapython-porting-guide-ida-9) and [C++ SDK](/ida-9.5/developer/cpp-sdk/how-tos/cpp-sdk-porting-guide-ida-9). If you use the Flexera server for floating licenses, check our [Migration Guide for new Hex-Rays license server](/ida-9.5/add-ons/floating-license/admin/hex-rays-license-server-migration-guide).

### New features described

We added installation and setup guides for [IDA Feeds](/ida-9.5/add-ons/plugins/concepts/plugins-shipped-with-ida/ida-feeds) plugin and [idalib](/ida-9.5/core/idalib).


# IDA Installation

By following the steps in this guide, you can successfully install your IDA instance on macOS, Linux, and Windows.

{% hint style="info" %}
For automatic, non-interactive installation in unattended mode, check the [installer command-line options](/ida-9.5/getting-started/install-ida/ida-installer-commandline-options).
{% endhint %}

The installation steps are valid for all product versions: IDA Pro, IDA Home, or IDA Free.

This installation guide is dedicated to individual users.

## Minimum system requirements

{% tabs %}
{% tab title="macOS" %}
macOS 12 (Monterey) or later (x64 or ARM64)
{% endtab %}

{% tab title="Linux" %}
x64 (x86\_64) CentOS 7 or later, Ubuntu 16.04 or later. Other equivalent distributions may work but not guaranteed.
{% endtab %}

{% tab title="Windows" %}

* GUI: x64 Windows 10 1607 (build 14393) or higher, Windows 11 recommended
* TUI/headless: x64 Windows 7 or later
* Debug servers: Windows XP or later
  {% endtab %}
  {% endtabs %}

## Pre-installation steps

Activate your [named](/ida-9.5/getting-started/licensing#named-licenses-activation) or [computer](/ida-9.5/getting-started/licensing#computer-licenses-activation) license via My Hex-Rays portal.

### **Installation on macOS**

**Prerequisites:**

* Ensure that you have [activated your computer/named license](/ida-9.5/getting-started/licensing#license-activation) and downloaded your license file (*ida.hexlic*) locally.
* Python 3.11 or later must be installed for the IDAPython API to work. After installing IDA, set up a [Python virtual environment](/ida-9.5/getting-started/idapython-environment) for IDAPython and plugins.

**Step 1: Download the installer**

* Download the macOS version of IDA Pro from Download Center in [My Hex-Rays](https://my.hex-rays.com/) portal.

**Quick alternative**

{% hint style="success" %}
**HCLI Commands |** [**See HCLI Docs**](https://hcli.docs.hex-rays.com/)

`hcli download`
{% endhint %}

**Step 2: Run the installer**

* Extract the .zip archive.
* Double-click on the extracted file to run the installation wizard.
* Follow the wizard's instructions to complete the installation:
  * accept the license agreement and installation directory;
  * copy your `ida.hexlic` file to IDA installation directory or to `$HOME/.idapro` directory before launching IDA.

**Quick alternative**

{% hint style="success" %}
**HCLI Commands |** [**See HCLI Docs**](https://hcli.docs.hex-rays.com/)

`hcli ida install <path-to-installer>`
{% endhint %}

**Step 3: Launch IDA Pro for the first time**

* Double-click on the IDA Pro icon to launch the application.

**Step 4: Point to your named/computer license**

{% hint style="info" %}
The step below is valid for named and computer licenses for individual use. If you are going to use floating licenses, check [this](#use-floating-license-server) alternative step.
{% endhint %}

* In the License manager pop-up window, specify the path of your license file and click **OK.**

![License manager](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-e15fc767f31bf55e90343da5a59ca60269cdd183%2Flicense_manager.png?alt=media)

{% hint style="info" %}
You won't be asked about your license again unless the subscription period expires or you move your license file to a different location.
{% endhint %}

***

### **Installation on Linux**

**Prerequisites:**

* Ensure that you have [activated your computer/named license](/ida-9.5/getting-started/licensing#license-activation) and downloaded your license file (*ida.hexlic*) locally.
* Python 3.11 or later must be installed for the IDAPython API to work. After installing IDA, set up a [Python virtual environment](/ida-9.5/getting-started/idapython-environment) for IDAPython and plugins.
* Verify that you have the required libraries installed. Use your package manager to install any missing dependencies. Common dependencies include `libx11`, `libxext`, `libxrender`, and `libglib2.0`.

**Step 1: Download the installer**

* Download the Linux version of IDA Pro from Download Center in [My Hex-Rays](https://my.hex-rays.com/) portal.

**Quick alternative**

{% hint style="success" %}
**HCLI Commands |** [**See HCLI Docs**](https://hcli.docs.hex-rays.com/)

`hcli download`
{% endhint %}

**Step 2: Run the installer**

* Navigate to the directory containing your IDA installer, and make it executable.
* Run the installer by double-click it or enter `./<your_IDA_version_>linux.run` in the terminal to execute it.
* Follow the wizard's instructions to complete the installation:
  * accept the license agreement and installation directory;
  * copy your `ida.hexlic` file to IDA installation directory or to `$HOME/.idapro` directory before launching IDA.

**Quick alternative**

{% hint style="success" %}
**HCLI Commands |** [**See HCLI Docs**](https://hcli.docs.hex-rays.com/)

`hcli ida install <path-to-installer>`
{% endhint %}

**Step 3: Launch IDA Pro for the first time**

* Go to the directory where IDA is installed and run the command: `./ida90`

**Step 4: Point to your named/computer license**

{% hint style="info" %}
The step below is valid for named and computer licenses for individual use. If you are going to use floating licenses, check [this](#use-floating-license-server) alternative step.
{% endhint %}

* In the License manager pop-up window, specify the path of your license file and click **OK.**

{% hint style="info" %}
You won't be asked about your license again unless the subscription period expires or you move your license file to a different location.
{% endhint %}

***

### **Installation on Windows**

* Ensure that you have [activated your computer/named license](/ida-9.5/getting-started/licensing#license-activation) and downloaded your license file (*ida.hexlic*) locally.
* Python 3.11 or later must be installed for the IDAPython API to work. The Windows installer can bundle Python 3 via the `--install_python` [command-line option](/ida-9.5/getting-started/install-ida/ida-installer-commandline-options). After installing IDA, set up a [Python virtual environment](/ida-9.5/getting-started/idapython-environment) for IDAPython and plugins.

**Step 1: Download the installer**

* Download the Windows version of IDA Pro from Download Center in [My Hex-Rays](https://my.hex-rays.com/) portal.

**Quick alternative**

{% hint style="success" %}
**HCLI Commands |** [**See HCLI Docs**](https://hcli.docs.hex-rays.com/)

`hcli download`
{% endhint %}

**Step 2: Run the installer**

* Locate the downloaded `.exe` file and double-click it to run the installer.
* Follow the installation wizard's instructions to complete the installation:
  * accept the license agreement and installation directory;
  * copy your `ida.hexlic` file to IDA installation directory or to `%APPDATA%/Hex-Rays/IDA Pro` directory before launching IDA.

**Quick alternative**

{% hint style="success" %}
**HCLI Commands |** [**See HCLI Docs**](https://hcli.docs.hex-rays.com/)

`hcli ida install <path-to-installer>`
{% endhint %}

**Step 3: Launch IDA Pro for the first time**

* Navigate to the Start Menu or desktop shortcut and launch IDA Pro.

**Step 4:** **Point to your named/computer license**

{% hint style="info" %}
The step below is valid for named and computer licenses for individual use. If you are going to use floating licenses, check [this](#use-floating-license-server) alternative step.
{% endhint %}

* In the License Manager pop-up window, specify the path of your license file and click **OK.**

{% hint style="info" %}
You won't be asked about your license again unless the subscription period expires or you move your license file to a different location.
{% endhint %}

***

#### Use floating license server

**Step 1:** In the License manager pop-up window, select the option *Use floating license server* and then type a **license server** hostname provided by your administrator.

**Step 2:** Borrow one of the licenses visible under the **available licenses** list and click **OK.**

Note that you don't need a license file stored on your machine locally while using floating licenses.

***

#### Common Post-Installation Steps

**Step 1: Update IDA Pro**

* After installation, check for any available updates. Hex-Rays often releases patches and updates for IDA Pro. You can check for updates within the application via **Help -> Check for free update** or download the latest version from [My Hex-Rays](https://my.hex-rays.com/dashboard/download-center/downloads) portal.

**Step 2: Set up the Python environment**

* Set up a [Python virtual environment](/ida-9.5/getting-started/idapython-environment) so that IDAPython and plugins can install and use Python packages.

**Step 3: Configure environment (optional)**

* Customize your IDA Pro environment settings to suit your preferences. This can include configuring hotkeys, and adjusting appearance settings.

**Step 4: Install additional plugins (optional)**

* You can extend the functionality of IDA Pro by installing additional plugins that can be found on the official [Hex-Rays repository](https://plugins.hex-rays.com/) or other trusted sources in the reverse engineering community.


# Installer command-line options

The IDA installer can be used in a standard, interactive mode. It can also be run in an unattended mode (e.g., for automatic, non-interactive installation).

## Available options

To get the list of available options, launch the installer with the `--help` argument. For example, here's the output on linux:

```
root@jfndilt2# ./ida-pro_93_x64linux.run --help
IDA Professional 9.3
Usage:

 --help                                      Display the list of valid options

 --version                                   Display product information

 --unattendedmodeui <unattendedmodeui>       Unattended Mode UI
                                             Default: none
                                             Allowed: none minimal minimalWithDialogs

 --optionfile <optionfile>                   Installation option file
                                             Default:

 --debuglevel <debuglevel>                   Debug information level of verbosity
                                             Default: 2
                                             Allowed: 0 1 2 3 4

 --mode <mode>                               Installation mode
                                             Default: gtk
                                             Allowed: gtk xwindow text unattended

 --debugtrace <debugtrace>                   Debug filename
                                             Default:

 --installer-language <installer-language>   Language selection
                                             Default: en
                                             Allowed: sq ar es_AR az eu pt_BR bg ca hr cs da nl en et fi fr de el he hu id it ja kk ko lv lt no fa pl pt ro ru sr zh_CN sk sl es sv th zh_TW tr tk uk va vi cy

 --prefix <prefix>                           Installation Directory
                                             Default: /opt/ida-pro-9.3

 --errortrace <errortrace>                   Error trace filename
                                             Default:
```

To run the installer in text (console) instead of GUI mode specify `--mode text`.

On Windows, the set of options is slightly different (and is shown in a GUI dialog instead of console):

```
IDA Professional 9.3
Usage:

 --help                                      Display the list of valid options

 --version                                   Display product information

 --unattendedmodeui <unattendedmodeui>       Unattended Mode UI
                                             Default: none
                                             Allowed: none minimal minimalWithDialogs

 --optionfile <optionfile>                   Installation option file
                                             Default: 

 --debuglevel <debuglevel>                   Debug information level of verbosity
                                             Default: 2
                                             Allowed: 0 1 2 3 4

 --mode <mode>                               Installation mode
                                             Default: win32
                                             Allowed: win32 unattended

 --debugtrace <debugtrace>                   Debug filename
                                             Default: 

 --installer-language <installer-language>   Language selection
                                             Default: en
                                             Allowed: sq ar es_AR az eu pt_BR bg ca hr cs da nl en et fi fr de el he hu id it ja kk ko lv lt no fa pl pt ro ru sr zh_CN sk sl es sv th zh_TW tr tk uk va vi cy

 --prefix <prefix>                           Installation Directory
                                             Default: C:\Program Files/ida-pro-9.3

 --install_python <install_python>           Install Python 3
                                             Default: 

 --errortrace <errortrace>                   Error trace filename
                                             Default: 
```

In particular, `--install_python` option allows to enable the installation of the bundled Python3 (useful for machines without Python preinstalled). On Linux and Mac, the system-wide Python is presumed to be available.

{% hint style="info" %}
After installing IDA (by any method), set up a [Python virtual environment](/ida-9.5/getting-started/idapython-environment) for IDAPython and plugins. A virtual environment avoids permission errors and package conflicts with the system Python.
{% endhint %}

## Using the option file

Especially for unattended mode, you may need to specify multiple options (install path, Python version, installation password, etc.). Instead of passing them all on the command line, you can use the option file:

1. Create a simple text file with a list of `option=value` lines. The option names are those from the usage screen without the leading --.
2. Pass the filename to the installer using the `--optionfile <filename>` switch. For example, here’s a file for unattended install for Python 3:

```
prefix=/home/jfndi/ida-93
mode=unattended
```

## Running Mac installer from the command line

Because the Mac installer is not a single binary but an app bundle, you need to pass arguments to the executable inside the bundle, for example:

```
ida[...].app/Contents/MacOS/installbuilder.sh --mode text
```

## Uninstaller options

The uninstaller options can be displayed with `uninstall --help`.

Linux uninstaller options are:

```
IDA Professional 9.3
Usage:

 --help                                      Display the list of valid options

 --version                                   Display product information

 --debuglevel <debuglevel>                   Debug information level of verbosity
                                             Default: 2
                                             Allowed: 0 1 2 3 4

 --mode <mode>                               Installation mode
                                             Default: gtk
                                             Allowed: gtk xwindow text unattended

 --debugtrace <debugtrace>                   Debug filename
                                             Default: 

 --installer-language <installer-language>   Language selection
                                             Default: en
                                             Allowed: sq ar es_AR az eu pt_BR bg ca hr cs da nl en et fi fr de el he hu id it ja kk ko lv lt no fa pl pt ro ru sr zh_CN sk sl es sv th zh_TW tr tk uk va vi cy

 --errortrace <errortrace>                   Error trace filename
                                             Default: 
```

And for Windows:

```
IDA Professional 9.3
Usage:

 --help                                      Display the list of valid options

 --version                                   Display product information

 --debuglevel <debuglevel>                   Debug information level of verbosity
                                             Default: 2
                                             Allowed: 0 1 2 3 4

 --mode <mode>                               Installation mode
                                             Default: win32
                                             Allowed: win32 unattended

 --debugtrace <debugtrace>                   Debug filename
                                             Default: 

 --installer-language <installer-language>   Language selection
                                             Default: en
                                             Allowed: sq ar es_AR az eu pt_BR bg ca hr cs da nl en et fi fr de el he hu id it ja kk ko lv lt no fa pl pt ro ru sr zh_CN sk sl es sv th zh_TW tr tk uk va vi cy

 --errortrace <errortrace>                   Error trace filename
                                             Default: 
```


# IDAPython Environment

IDA embeds a Python interpreter for scripts and plugins. The interpreter, the packages installed in its environment, and the way IDA finds them all depend on how Python is configured on your system. This page explains the recommended setup and how to get there.

## Why use a virtual environment

Without a virtual environment, IDA uses the system Python directly. This causes problems:

* On recent Linux distributions (Ubuntu 24.04+, Debian) and some macOS configurations, the system Python is marked *externally managed* (PEP 668). pip refuses to install packages into it.
* System Pythons often require administrator privileges to install packages.
* Packages installed globally can conflict with OS-managed packages.

A virtual environment gives IDA its own isolated set of packages. Plugins install their dependencies there without affecting the rest of the system.

## Recommended setup

The recommended configuration has four parts:

1. A virtual environment at `$IDAUSR/venv` (typically `~/.idapro/venv` on Linux and macOS, `%APPDATA%\Hex-Rays\IDA Pro\venv` on Windows).
2. The virtual environment has pip available.
3. The `IDAPYTHON_VENV_EXECUTABLE` environment variable points to the virtual environment's Python interpreter.
4. The virtual environment's Python version (major.minor) matches the `libpython` that `idapyswitch` registered for IDA.

When all four conditions hold, IDA and tools like [HCLI](https://hcli.docs.hex-rays.com/) can find and use the correct Python without guesswork.

IDA checks these conditions at startup and warns about any that are not met. If you have an existing setup that works and you understand its trade-offs, you can suppress the check by starting IDA with `--no-python-environment-check`. This is not recommended for new installations.

## Setting up with HCLI

If you use [HCLI](https://hcli.docs.hex-rays.com/) to install IDA, add `--create-python-environment` to the install command:

```bash
hcli ida install \
    --download-id ida-pro:latest \
    --set-default \
    --create-python-environment \
    --accept-eula \
    --yes
```

This creates a virtual environment at `$IDAUSR/venv` and configures `IDAPYTHON_VENV_EXECUTABLE`.

To create the environment after IDA is already installed:

```bash
hcli ida python create-environment
```

The command detects which Python version IDA uses, creates the virtual environment with pip, and shows the shell command to set `IDAPYTHON_VENV_EXECUTABLE`. You can accept or apply it yourself.

## Setting up manually

If you do not use HCLI, create the virtual environment yourself.

{% tabs %}
{% tab title="macOS / Linux" %}
First, determine the Python version IDA expects. Run `idapyswitch` (in your IDA installation directory) to see the registered `libpython`. If IDA registered `libpython3.12`, create the virtual environment with Python 3.12.

With [uv](https://github.com/astral-sh/uv) (includes pip automatically):

```bash
uv venv --seed --python 3.12 ~/.idapro/venv
```

Or with the standard library:

```bash
python3.12 -m venv ~/.idapro/venv
```

Then set the environment variable in your shell profile (e.g. `~/.zshrc`, `~/.bashrc`):

```bash
export IDAPYTHON_VENV_EXECUTABLE="$HOME/.idapro/venv/bin/python"
```

On macOS, shell profile variables do not apply to IDA started from Finder or the Dock. To set the variable system-wide:

```bash
launchctl setenv IDAPYTHON_VENV_EXECUTABLE "$HOME/.idapro/venv/bin/python"
```

Or start IDA from a terminal where the variable is set.
{% endtab %}

{% tab title="Windows" %}
First, determine the Python version IDA expects. Run `idapyswitch.exe` (in your IDA installation directory) to check the registered library. If IDA registered `python312.dll`, create the virtual environment with Python 3.12.

```powershell
python -m venv "%APPDATA%\Hex-Rays\IDA Pro\venv"
```

Then set the environment variable permanently:

```powershell
setx IDAPYTHON_VENV_EXECUTABLE "%APPDATA%\Hex-Rays\IDA Pro\venv\Scripts\python.exe"
```

Restart IDA and any open terminals for the variable to take effect.
{% endtab %}
{% endtabs %}

## Key concepts

### idapyswitch

The `idapyswitch` utility ships with IDA. It selects which Python shared library (`libpython3.X`) IDA loads at startup. Run it from your IDA installation directory to see or change the registered Python.

The venv must use the same Python version (major.minor) that `idapyswitch` registered. For example, if `idapyswitch` registered `libpython3.12`, the venv must use Python 3.12. A mismatch can cause subtle problems: native Python packages compiled for one version may crash or fail to import on another, while pure-Python packages may appear to work fine. This makes version mismatches a source of hard-to-diagnose bugs.

### IDAPYTHON\_VENV\_EXECUTABLE

This environment variable tells IDA which virtual environment to use, regardless of how IDA is started: from a terminal, from the Dock or Start Menu, or by opening a file. It is the most reliable way to connect IDA to a virtual environment.

Other approaches (activating a venv in your shell before starting IDA, or adding activation code to `idapythonrc.py`) only work in specific launch scenarios. Desktop shortcuts, file associations, and system launchers do not carry shell activation.

### idapythonrc.py

The file `idapythonrc.py` in your IDA user directory (`$IDAUSR`) runs immediately after IDAPython initializes. You can use it to import modules, configure settings, or run startup code.

* Windows: `%APPDATA%\Hex-Rays\IDA Pro\idapythonrc.py`
* Linux / macOS: `~/.idapro/idapythonrc.py`

{% hint style="info" %}
Some online guides suggest adding virtual environment activation code to `idapythonrc.py`. While this works for interactive IDA sessions, it does not reliably work in batch mode or when tools probe IDA's Python configuration. Use `IDAPYTHON_VENV_EXECUTABLE` instead.
{% endhint %}

See the [IDAPython examples](/ida-9.5/developer/idapython/idapython-examples#idapythonrc) for a sample `idapythonrc.py`.

### IDAPYTHON.CFG

The [`IDAPYTHON.CFG`](/ida-9.5/core/user-interface/concepts/configuration-files) configuration file controls IDAPython settings. IDA looks for it in `%IDADIR%/cfg` and then in `%IDAUSR%/cfg`. See the comments inside the file for available options.

## Installing packages

To install Python packages into IDA's environment, use the virtual environment's interpreter:

{% tabs %}
{% tab title="macOS / Linux" %}

```bash
~/.idapro/venv/bin/python -m pip install <package>
```

{% endtab %}

{% tab title="Windows" %}

```powershell
"%APPDATA%\Hex-Rays\IDA Pro\venv\Scripts\python.exe" -m pip install <package>
```

{% endtab %}
{% endtabs %}

If you use HCLI, you can also run:

```bash
hcli ida python exec -m pip install <package>
```

Plugins distributed through the [Plugin Manager](https://plugins.hex-rays.com/) declare their dependencies in `ida-plugin.json`. HCLI installs these automatically when you install a plugin.

## Verifying the setup

HCLI provides a diagnostic command:

```bash
hcli ida python doctor
```

This reports which IDA installation and Python interpreter it found, whether a virtual environment is present, whether pip is available, and whether the Python version matches. It lists any problems with suggested fixes.

## Troubleshooting

### "externally-managed-environment" error

The system Python is marked as externally managed (PEP 668). Create a virtual environment as described above. Do not remove the `EXTERNALLY-MANAGED` marker file.

### pip is not available

The virtual environment was created without pip. Recreate it with `uv venv --seed` or `python3 -m venv` (which includes pip by default). If you used `uv venv` without `--seed`, add pip with:

```bash
~/.idapro/venv/bin/python -m ensurepip
```

### Python version mismatch

The venv uses a different Python version than what `idapyswitch` registered for IDA. Recreate the venv with the correct Python version, or run `idapyswitch` to register the version that matches your venv.

### IDA does not see installed packages

Check that `IDAPYTHON_VENV_EXECUTABLE` is set and points to the correct interpreter. Verify that you installed packages into the venv rather than the system Python. If you set the variable in your shell profile, make sure IDA was started from a session where it applies (or use `launchctl setenv` on macOS / `setx` on Windows).

### Plugin installation fails

If `hcli plugin install` fails with a Python error, run `hcli ida python doctor` to diagnose the environment. The most common causes are a missing virtual environment, missing pip, or a version mismatch.

### Suppressing the startup check

If you have a working Python setup that does not follow the recommended layout (for example, a conda environment or a custom `sys.path` configuration), IDA's startup check may warn on every launch. You can suppress it:

```
ida64 --no-python-environment-check
```

The check exists to catch common misconfiguration before it causes hard-to-diagnose failures. Only suppress it if you are confident your setup is correct.


# License Activation

In this document, we cover the fundamentals of our licensing model, including how to activate your license based on its type, check license details and share them with your team members.

Here, you can learn how to:

* [**Activate your licenses**](#license-activation)\
  [Named](#named-licenses-activation) | [Computer](#computer-licenses-activation) | [Floating](#floating-licenses-activation) | [In Bulk](#bulk-activation)
* [**Add and activate servers**](#add-servers)\
  [Lumina](#private-lumina-server-activation-for-admins) | [Teams](#teams-vault-server-activation-for-admins) | [License server](#floating-licenses-activation)
* [Check license details](#license-details) or [modify them](#license-editing)
* [Download your license files](#download-the-license-files)
* [Invite team members](#grant-access-to-manage-licenses)
* [Change your current plan](#change-your-plan) or [renew your current plan](#renew-your-plan)

## Licenses overview

### License types

At Hex-Rays, we offer two basic license types for IDA products, which are **suitable for individual users**:

* **Named licenses,** that are assigned to specific individuals.
* **Computer licenses** that are assigned to specific devices.

There is also an additional type, called **floating licenses**, that allows a set number of concurrent users but is not assigned to specific individuals or devices.

{% hint style="info" %}
Floating licenses are available only for IDA Pro and dedicated to business/organization purposes.
{% endhint %}

### How many licenses should I have?

Besides the license for the IDA product, you need also a separate active license for each server available in your subscription.

The components of your subscription that require their own license:

* Base IDA license (e.g., IDA Pro Expert 4)
* Teams server for Teams add-on
* Lumina server for Lumina add-on
* License server for floating licenses

**Example**: You've purchased **IDA Pro Expert 4 Plan** with **Teams** and **Private Lumina**, along with **floating** type of license with 6 seats. In this case, you’ll need to activate the following four licenses:

1. License server license
2. Private Lumina server license
3. Teams server license
4. IDA Pro Expert 4 license

### What's a license file?

The `.hexlic` license file contains your license ID and other data, and is required to make your IDA instance fully operative after installation (or your Lumina, Teams or License server). You can download your license files from [My Hex-Rays portal](https://my.hex-rays.com/) after activation.

{% hint style="info" %}
Once you've downloaded your license, it cannot be modified.
{% endhint %}

## License activation

To complete the installation, you need an active IDA license with an assigned owner (for a named license) or a MAC address (for a computer/floating license). Without activation, you cannot download your license file.

### What is needed to activate my license?

* verified account (see [identity verification](#identity-verification-kyc))
* for named licenses: the email address of the owner,
* for computer licenses: the MAC address of a specific device
* for floating licenses: the MAC address of the device where the license server will be running

{% hint style="info" %}
The license type (named/computer/floating) is selected when you purchase your subscription.
{% endhint %}

### Identity verification (KYC)

Before you can activate a paid license, your identity must be verified.

* **Individuals** can complete verification via Sumsub right after purchase at checkout. If you skip it at that point, you can return to it later from your [My Hex-Rays](https://my.hex-rays.com/) dashboard.
* For **companies**, we will contact you by email with the required documentation details.

**To verify as an individual:**

1. After purchase, click **Start verification** at checkout.
2. Provide a valid identity document and perform a liveness check.
3. Verification completes right away. Once approved, you can activate your licenses.

![Start verification](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-f6c8f8c6ea633ef06847b585b3cd228e29bd40ba%2Fstart-veryfication.png?alt=media)

### Where can I activate my license?

From the **License** tab in [My Hex-Rays](https://my.hex-rays.com/) portal, you can initiate the activation process and open the **License activation** dialog from several locations:

* In the table, locate your license and click **Activate Now** (1),
* Click on the desired license to open its detail view, then click **Activate License** (2), or
* Select multiple licenses of the same type by ticking their checkboxes, then click **Bulk Activation** (3).

![Activate license](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-ef637b10e04de35c323bf32b814699e3a65ed36b%2Factivate-license-1.png?alt=media)

![Activate license](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-db62b5aae9f206e570804e6aa6c8675f2c04ae61%2Factivate-license-2.png?alt=media)

![Bulk Activate](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-e7435a351f870cf2ef523aa8ce4ec041829266a5%2Factivate-license-bulk-3.png?alt=media)

### Named licenses activation

1. Go to [My Hex-Rays](https://my.hex-rays.com/) portal and navigate to the **Licenses** tab.
2. Locate the license ID you want to activate. Ensure it has the **Pending activation** status.

{% hint style="info" %}
If you haven't completed the KYC procedure yet, you will need to do so for accessing paid products. A **Pending KYC** status indicates that your verification is still in progress and must be completed before you can activate your license.
{% endhint %}

3. Open the [**License activation**](#where-can-i-activate-my-license) dialog, select decompilers and click **Next**.
4. Assign the ownership of the license: set the email address for this IDA instance user (it can be yours) and click **Activate license**.

![Activate named license](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-b49ef68d2953b79f7ab0ecd71c27a62091c2656f%2Flicense-activation-named.png?alt=media)

Your license is now active.

You can check the license details and modify it if needed. If all details are correct, you can [download your license key](#download-the-license-files).

### Computer licenses activation

1. Go to [My Hex-Rays](https://my.hex-rays.com/) portal and navigate to the **Licenses** tab.
2. Locate the license ID you want to activate. Ensure it has the **Pending activation** status.

{% hint style="info" %}
If you haven't completed the KYC procedure yet, you will need to do so for accessing paid products. A **Pending KYC** status indicates that your verification is still in progress and must be completed before you can activate your license.
{% endhint %}

3. Open the [**License activation**](#where-can-i-activate-my-license) dialog, select decompilers and click **Next**.
4. Add the MAC address of the machine where this IDA instance will be installed and running (it can be yours) and click **Activate license**.

![Activate computer license](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-2d0e59e8c0a3865ea616438cc2f457099682ecd8%2Flicense-activation-computer.png?alt=media)

Your license is now active.

You can check the license details and modify it if needed. If all details are correct, you can [download your license key](#download-the-license-files).

### Download the license files

If you are sure that all of the license details are correct, you can download your license hexlic file. You will need it to complete the installation process.

{% hint style="warning" %}
Downloading the license locks the configuration and prevents further edits.
{% endhint %}

1. Go to the **Licenses** tab in [My Hex-Rays](https://my.hex-rays.com/) portal.
2. Under the **Actions** column, click the three dots and then **Download hexlic** from the dropdown menu (1), or, alternatively, in the license detail view, click **Download hexlic**.

![Download hexlic](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-0959503c2cb094d36072d9c4cf2a65544f6a22a5%2Fdownload-hexlic-1.png?alt=media)

3. To download multiple license files at once, select the desired licenses by ticking their checkboxes, or click **Select all**. Then, click **Download License Files** (2).

#### Download the floating license files

1. Go to the **Servers** tab in [My Hex-Rays](https://my.hex-rays.com/) portal and locate your IDA License Server Plan.
2. Under the **Actions** column, click the three dots and then **Download hexlic** from the dropdown menu.

![Download hexlic](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-00c9a6af54be5c4832751d5ee5a6da73260a079b%2Fdownload-floating-license-server.png?alt=media)

{% hint style="info" %}
In a floating license setup, you don't need the individual hexlic files for the IDA clients installed on users' machines.
{% endhint %}

**Quick alternative**

{% hint style="success" %}

#### HCLI Commands | [See HCLI Docs](https://hcli.docs.hex-rays.com/)

`hcli license get`
{% endhint %}

#### **What's next?**

Now you are ready to [install your IDA instance](/ida-9.5/getting-started/install-ida#ida-installation).

### Floating licenses activation

To use floating licenses, you need to activate:

* A license for your license server
* A base IDA Pro license linked to that server

Both licenses can be activated and linked in a single step, as described below.

1. Navigate to the **Licenses** tab and look for your IDA license with **Floating** label. Ensure it has the **Pending activation** status.
2. Open the [**License activation**](#where-can-i-activate-my-license) dialog, select decompilers and click **Next**.
3. Assign a license server. If you [added the license server before](#add-servers), select the **Use existing server** option and then tick the server from the list. If you haven't done it yet, you can add and activate a license server now. Select **Add new server** option, type the MAC address and click **Add**.

![License activation floating](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-239d1ef29ece5c247657716806c5ed043aff37ca%2Flicense-activation-floating.png?alt=media)

4. Add tags if needed, and click **Activate license** to finalize.
5. Your licenses are now active.

You can check the license details and modify it if needed.

If all details are correct, you can [download your license key](#download-the-license-files) and license files for the license server.

### Bulk activation

If you have multiple licenses of the same type (for example, ten IDA Pro Expert 2 licenses), you can activate them all in a single batch operation. All licenses activated in bulk will share the same configuration details, decompilers set, and add-ons, while allowing for unique owner email addresses and MAC addresses.

1. Go to [My Hex-Rays](https://my.hex-rays.com/) portal and navigate to the **Licenses** tab.
2. Locate the licenses you want to activate with the **Pending activation** status. Select all of them by ticking the checkboxes on their left side.
3. In the top menu that appears after selection, click **Bulk Activation**.

![Bulk activate licenses](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-cc6be910600fa6784a10b49abaeb565256e8dc87%2Fbulk-activation.png?alt=media)

4. In the new dialog, select decompilers (this action is done for all licenses in a batch) and click **Next**.
5. Depending on your license type, assign the license user's emails or set the MAC addresses. Optionally, you can add tags.
6. Click **Activate Licenses**.

If you notice a mistake, you can still edit your licenses before downloading them.

#### Bulk download the license files

1. In the **Licenses** tab, select the licenses for bulk download and click **Download License Files**.

### License details

The License Details card provides a complete overview of the license, including assigned decompilers and users it has been shared with. **You can edit access permissions and tags at any time**, even for active and already downloaded licenses.\
To open the **License Details** view, go to the [My Hex-Rays](https://my.hex-rays.com/) portal, open the **License** or **Servers** tab, and click the license you want to view.

![License Details view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-dca66f807c9a36cdb6722a291a73e9fab8962d59%2Flicense-details.png?alt=media)

### License editing

When you activate your license using one of the methods shown above, **you can still make changes**, such as modifying the decompiler set, **as long as you have not downloaded the license file(s)**. Once the license file(s) are downloaded, further modifications will no longer be possible.

To edit the license:

1. Go to [My Hex-Rays](https://my.hex-rays.com/) portal and navigate to the **Licenses** or **Servers** tab.
2. Locate the licenses you want to edit with the **Active** status. Under the **Actions** column, click the three dots and then **Edit** from the dropdown menu, or alternatively, in the license detail view, click **Edit**. If the **Edit** option is not visible, it means the license has already been downloaded and can no longer be edited.

![Edit license](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-4464d1bcd54e10ac93f6d24d3f7be57319f9407d%2Fedit-license.png?alt=media)

3. Make changes and click on **Next/Activate license** to confirm.

## Server licenses

If your subscription includes a server (for Private Lumina, Teams or floating licenses), you'll need to activate the corresponding server licenses to download the license files. To do so, make sure to add the relevant servers to your account.

{% hint style="info" %}
You can create and activate the license server simultaneously during the [IDA floating license activation](#floating-licenses-activation) process.
{% endhint %}

### Add servers

1. In [My Hex-Rays](https://my.hex-rays.com/) portal, go to the **Servers** tab and click **+ Add server**.

![Add server](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-448ce7e21420980a63b6c941c82d9795283bf425%2Fadd-server.png?alt=media)

2. Select the type of server(s) you want to add and click **Next**. You may add multiple servers at one go.

![Add servers dialog](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-115d679549d7ae9a33cf5d54d3ef547947333389%2Fadd-servers.png?alt=media)

3. Assign MAC addresses and click **Create servers** to finalize.
4. After that, your servers will appear in the **Servers** list with an **Active** status, allowing you to download the server certificates (1) and hexlic files (2).

![Active server licenses](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-3999e63cd9aa5af94e8828129b5997f98226dbbb%2Factive-server-licenses.png?alt=media)

5. If you are using floating licenses, you can now go ahead and activate your IDA licenses that use the server.

{% hint style="info" %}
Ensure all floating license plans associated with the license server are activated **before** downloading the license server hexlic file.
{% endhint %}

### Downloading the server license files

Once all IDA Pro licenses intended for use with your floating license server have been activated, you can proceed to download the server’s hexlic file and license certificate.\
Maintaining this order is crucial: the **hexlic file contains essential details about the linked licenses**, which are properly embedded only when the IDA license is associated with the specific floating license server.

#### License server installation for admins

Server installation for floating licenses should be done by the administrator. Check [Floating License Server Administration](/ida-9.5/add-ons/floating-license/admin/license-server) for details.

#### How can I start using IDA as a floating license user?

Once your administrator installs a license server, adds particular license seats to the pool, and hands over the credentials, you are ready to [install your IDA instance](/ida-9.5/getting-started/install-ida#ida-installation).

You don't need to download a license file/key to your local machine while using the floating license server.

{% hint style="success" %}
**New to the floating licenses?** Start with [Overview](/ida-9.5/add-ons/floating-license/overview) and [Getting Started](/ida-9.5/add-ons/floating-license/getting-started).
{% endhint %}

**Floating licenses check-out**

Every time you launch IDA, you'll see the License Manager pop-up window. As long as there are free seats, you can check-out one of the available licenses and start using IDA.

{% hint style="info" %}
Note that some of the available licenses may have different decompilers and add-ons enabled.
{% endhint %}

### Add-ons servers' licenses

#### Private Lumina server activation for admins

To proceed with Private Lumina installation and setup, an active server license is required.

1. [Add the server](#add-servers) to your account (activate the license).
2. Locate your server license on the **Servers** tab and download the following files:

* Lumina server certificate (1)
* .hexlic file (license key) (2)

![Download Lumina license files](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-8123cbe308309cc4f337c5452ad6a2cdc45f4d6f%2Fdownload-lumina-license.png?alt=media)

You'll need both files to continue with the server installation and setup.

**Quick alternative**

{% hint style="success" %}

#### HCLI Commands | [See HCLI Docs](https://hcli.docs.hex-rays.com/)

`hcli license get`
{% endhint %}

#### Private Lumina server installation for admins

Server installation for Private Lumina should be done by the administrator. Check our [Admin Guide](/ida-9.5/add-ons/lumina/admin/lumina-server) for details.

#### Teams Vault server activation for admins

{% hint style="warning" %}
This section applies to the legacy **Vault backend** only. The Git backend requires no server license — if you are setting up [Teams with Git](/ida-9.5/add-ons/teams/getting-started/getting-started-git), skip this section.
{% endhint %}

To proceed with Teams Vault server installation, you need an active server license.

1. [Add the server](#add-servers) to your account (activate the license).
2. Locate your server license on the **Servers** tab and download the following files:

* Teams server certificate (1)
* .hexlic file (license key) (2)

![Download Teams license files](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-77c0b31d72c67187664d5c22251f3f6fccb94c52%2Fdownload-teams-license.png?alt=media)

You'll need both files to continue with the server installation and setup.

**Quick alternative**

{% hint style="success" %}

#### HCLI Commands | [See HCLI Docs](https://hcli.docs.hex-rays.com/)

`hcli license get`
{% endhint %}

#### Vault Teams server installation for admins

Server installation for Teams should be done by the administrator. Check our [Admin Guide](/ida-9.5/add-ons/teams/admin/teams-server) for details.

## Grant access to manage licenses

You can invite your teammates to view and activate licenses via their own My Hex-Rays account. To grant access:

1. Select the license(s) you want to share and click **Grant Access** (1).
2. Add the email address of your teammate and click **Confirm** (2).
3. Your team member will receive an email invitation to log in to the portal and access the shared licenses.

![Grant access](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-b0723d725dbdbc16c22c849f0ca07f04eabbfacb%2Fgrant-access.png?alt=media)

The [License Details](#license-details) view allows you to review who currently has access to the license, remove users, or grant access to new ones.

***

**Key points**:

* Once a license has been downloaded, it cannot be modified.
* Multiple licenses of the same type can be activated in bulk.
* You can grant access to manage licenses to other teammates, while the ownership of the license remains the same.

## Change your plan

If you need additional decompilers or add-ons, you can upgrade your plan at any time through [My Hex-Rays](https://my.hex-rays.com/) portal.

Steps to update your plan:

1. Go to the Licenses tab.
2. Find/select the IDA license plan you want to renew.
3. Click **Renew/Change plan** in the top panel or in the license’s row in the table.

![Renew/Change plan](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-ad1e9773bd897b59af22f6a44b5b2dfef27ad945%2Frenew-change-plan.png?alt=media)

4. Review the plan options. You can upgrade your plan, change the license type to floating, and add seats or add-ons.
5. Select **Change plan (starts immediately)** to apply the changes right after the upgrade. Click **Continue to Payment** to finalize.

![Review plan options](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-c6e5993e4fbf5f52044c0ec9a5c1c103c264c922%2Fchange-plan.png?alt=media)

6. The new plan will appear under the **Licenses** tab with a *Pending Activation* status. Activate the license to start using the updated plan.

{% hint style="info" %}
If your plan change is issued as a quote, you can review and approve or reject it directly from the **Quotes** tab in the portal. Once approved, you can also complete the payment from the same location.
{% endhint %}

{% hint style="info" %}
**Actions Required After Update**

If you **upgraded your plan** (for example, from IDA Pro Expert 2 to IDA Pro Expert 4), you will need to **activate your new license** and **download the new license files** before you can use the updated plan.
{% endhint %}

## Renew your plan

You can renew your subscription and, if needed, change your plan(s) in one go through [My Hex-Rays](https://my.hex-rays.com/) portal.

Steps to renew and change your plan:

1. Go to the Licenses tab.
2. Find/select the IDA license plan you want to renew.
3. Click **Renew/Change plan** in the top panel or in the license’s row in the table.

![Renew/Change plan](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-ad1e9773bd897b59af22f6a44b5b2dfef27ad945%2Frenew-change-plan.png?alt=media)

4. Select subscription duration and review the plan options. You can upgrade/downgrade your plan, change the license type, and add seats or add-ons.
5. Select one of the following options:

* **Renew (starts after current period)**, if you want all changes to be applied at the renewal date, or
* **Change plan (starts immediately)**, if you want the changes to take effect right away. Click **Continue to Payment** to finalize.

![Review plan options](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-bbff8fb6ec3ef2cc8d9630486d64b98c6fe1fbe8%2Frenew-plan.png?alt=media)

6. Based on your selection, follow the appropriate scenario:

* a. **Renewal without plan change**: The subscription validity is automatically extended. Re-download the license files and save them in your usual location (you can check and change the .hexlic location via Help → License Manager…).
* b. **Renewal with plan change**: The new plan will appear under the **Licenses** tab with a *Pending Activation* status. You need to activate it, then download and save the new license file locally.

{% hint style="info" %}
If you would like to **downgrade** your current plan, you can do that **at your next renewal date only**.
{% endhint %}

{% hint style="info" %}
If your renewal is issued as a quote, you can review and approve or reject it directly from the **Quotes** tab in the portal. Once approved, you can also complete the payment from the same location.
{% endhint %}

{% hint style="info" %}
**Actions Required After Renewal With/Without Upgrade**

If you **upgraded your plan** (for example, from IDA Pro Expert 2 to IDA Pro Expert 4), you will need to **activate your new license** and **download the new license files** before you can use the updated plan. If you **renewed your existing plan without changes**, **re-download a license file** to apply the extended validity period.
{% endhint %}

### License Renewal and Update FAQ

#### How can I change only my decompilers?

If you only want to change the type of decompilers (not the number of decompilers, and without upgrading or downgrading your plan), this can be done **after your current plan expires**. Instead of renewing the current plan, you will need to **place a new order**. A new license will then be generated, and during activation, you will be able to choose different decompilers.

#### How can I add more decompilers to my current plan?

To add more decompilers to your active subscription, you’ll need to **upgrade to a higher plan** that includes the desired number of decompilers. You can upgrade your plan at any time through My Hex-Rays portal, and choose to apply the changes immediately.

#### What changes can I make during renewal?

You can apply the following changes during renewal via My Hex-Rays portal:

* Switch to a different license type
* Upgrade or downgrade your plan
* Add optional add-ons (Teams or Lumina)
* Add additional seats

Some changes, such as downgrading a plan or changing the license type from computer to named, can only take effect at the next term, not during the active subscription period.

For other modifications, such as changing an active license type from named to computer, contact our [Sales team](mailto:sales@hex-rays.com).

#### What changes can I make to my active license?

During your current subscription period, you can:

* Upgrade to a higher plan
* Add seats or add-ons
* Switch to a floating license type

You can **apply these changes immediately** to your active license.

#### Can I change the license type of my active subscription plan?

During an active subscription period, the only license type change you can make yourself via My Hex-Rays portal is switching to a floating license. Other changes (e.g., switching between named and computer licenses) are only possible at renewal for the next term, or require assistance from our [Sales team](mailto:sales@hex-rays.com).

#### Can I downgrade my active license?

Downgrades are possible only for your next renewal date.

#### I have IDA Pro Essential and want to upgrade to IDA Pro Expert 4. How can I do this?

You can upgrade your plan at any time through My Hex-Rays portal, and choose to apply the changes immediately, or at your next renewal date. Check the details on [how to change your current plan](#change-your-plan).

#### I have a named license, can I change the license type to computer?

You can change the license type (for example, from the named to computer) via the customer portal only **while renewing for the next term**. In other words, you cannot change the license type for active subscription period. If you need to do that for some reason, contact our [Sales team](mailto:sales@hex-rays.com).

#### Why can’t I renew or change the license?

If the Renew/Change plan option is missing or greyed out, it means the license was shared with you and bought by someone else. Only the person who purchased the license can renew or modify the plan.


# Basic Usage

## Basic Usage

In this document, we'll explore the essentials of IDA capabilities to kickstart your journey and disassemble your first binary file.

### Prerequisites

Your IDA instance is [installed and running](/ida-9.5/getting-started/install-ida).

## Before you begin

### What files and processors are supported?

IDA natively recognizes plenty of [file formats](/ida-9.5/core/disassembler/specification/supported-file-formats) and [processors](/ida-9.5/core/disassembler/specification/supported-processors).

If you later realize that's not enough, you can always use one of our community plugins that add additional formats or processor types or try to write your own with [C++ SDK](/ida-9.5/developer/cpp-sdk).

### What are IDA database files?

IDA stores the analysis results in the IDA Database files (called IDB), with the extension `.i64`. This allows you to save your work and continue from the same point later. After loading a file at the beginning, IDA does not require access to the binary.

Any modifications you make are saved in the database and do not affect the original executable file.

**Dive deeper**

* **Blog**: :pencil: Check what exactly IDB contains in [Igor's tip of the week](https://hex-rays.com/blog/igors-tip-of-the-week-174-ida-database-idbdetails/) about IDA database.

### What decompilers can I work with?

IDA provides decompilers designed to work with multiple processor architectures. The number of decompilers and their type (local or remote) available in your IDA instance depends on your chosen product and subscription plan and affects your ability to produce C-like pseudocode.

### Where can I find exemplary binaries to work with?

Check [CrackMe](https://crackmes.one/), from where you can download executable files to test your reverse engineering skills.

## Part 1: Loading your file

When you launch IDA, you will see a Quick Start dialog that offers three ways to continue. For now, we'll focus on loading a new file and proceeding to disassembly results.

1. Launch IDA and in the **Quick start** dialog (1), click **New**.
2. Specify the path for your binary file.
3. In the **Load a new file** dialog (2), IDA presents loaders that are suited to deal with a selected file. Accepting the loader default selection and then the processor type is a good strategy for beginners. Click **OK** to confirm your selection.

![Quick start](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-92ba07b66e08ca46bba9c38c4a7030d2a7d94522%2Fquick-start.png?alt=media)

4. IDA begins autoanalysis of your binary file.

After completion, you will be present with the default IDA desktop layout, that we'll describe in the [next part](#part-2-ui-overview).

**Dive deeper**

* **Video**: :video\_camera: Watch different ways of [loading files](https://www.youtube.com/watch?v=eGbLP7_XDFM) in our [channel](https://www.youtube.com/@HexRaysSA).

## Part 2: UI overview

After autoanalysis is done, you'll see the main IDA desktop with the initial results. Let's examine the default desktop layout and commonly used UI elements.

![UI overview](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-f8023c6b0b492b97a4475eaf57987f8b8afc9400%2Fui-overview.png?alt=media)

1. Main menu bar (1)
2. Toolbar (2)
3. Navigation band (3)
4. Subviews (4)
5. Output (5)
6. Status bar (6)

### Main menu bar

The main menu bar provides quick access to essential features. Moreover, almost all menu commands can be quickly accessible via customizable [shortcuts](/ida-9.5/core/user-interface/reference/shortcuts).

![Main Menu Bar](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-37f80aefcd28387dc807ecdf9bee9881c2880d80%2Fmain-menu-bar.png?alt=media)

For a handy cheatsheet of all commands and their hotkeys, check **Options -> Show command palette...**.

**Dive deeper**

* **Docs**: :book: Check our [Menu Bar Actions Reference](/ida-9.5/core/user-interface/reference/menu-bar-actions) for a comprehensive description of all menu items.

### Toolbar

Below the main menu bar, you will see a toolbar with icons that give you quick access to common functionalities (available also via the main menu/shortcuts). It has just one line by default, but you can customize it by adding or rearranging your actions.

![Toolbar](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-5648aef16854728242ea9d1db10f5feb53683405%2Ftoolbar.png?alt=media)

**Dive deeper**

* **Video**: :video\_camera: Curious about practical ways to set up your toolbar? Watch our [video tutorial](https://www.youtube.com/watch?v=Hlq0eDArW-A).

### Navigation band

The navigation band shows the graphical representation of the analyzed binary file and gives a short overview of its contents and which areas may need your attention. The yellow arrow (indicator) shows where the cursor is currently positioned in the disassembly view.

![Navigation band](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-dd7121d6ab85e0d3b30be418b0340d5b87bb4117%2Fnavigation-band.png?alt=media)

As you'll soon recognize, the colors used in the nav band match those in other views.

**Dive deeper**

* **Blog**: :pencil: A detailed navigation band overview with the full colors legend you can found in [Igor's tip of the week](https://hex-rays.com/blog/igors-tip-of-the-week-49-navigation-band/).

### Output

The output window is a place where various messages and logs are displaying, often describing what currently IDA is doing, like analyzing data or running a script. In the CLI box you can type commands in [IDC language](/ida-9.5/developer/idc) or [IDAPython](/ida-9.5/developer/idapython).

### Status bar

At the bottom left corner of the IDA window, you can see the status bar, which contains:

* analysis indicator `AU`, which shows the actual status of autoanalysis (1). In our case, it is `idle`, which means the autoanalysis is already finished.
* search direction indicator (2)
* remaining free disk space (3)

![Status bar](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-7a9321c5043f13bc63b5a6a43ae5b69249e70f0b%2Fstatus-bar.png?alt=media)

Right-clicking on the status bar brings up a context menu that allows you to **reanalyze the program**.

**Dive deeper**

* **Docs**: :book: To check all possible values and their meaning, take a look at [analysis options](/ida-9.5/ida-actions/options#analysis-options).

### Subviews

The [subviews](/ida-9.5/core/user-interface/concepts/subviews) are one of the most prominent parts of your everyday work with IDA. These additional views (behaving like tabs) give a different perspective and information on the binary file, but the number of native IDA subviews may be a bit overwhelming. Here, we will focus on the most versatile and common subviews for beginners, where you'll spend most of the time, like:

* IDA View
* Pseudocode
* Hex Dump View
* Local Types
* Functions View

![Subviews](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-5894d93cc33562a084bdfcea040afb3389a2fec3%2Fsubviews.png?alt=media)

#### IDA View / Disassembly Window

When autoanalysis is done, you will see a **graph view** inside an IDA View by default. This flowchart graph should help you to understand the flow of the functions.

{% hint style="info" %}
The graph view is available only for the part of the binary that IDA has recognized as functions.
{% endhint %}

IDA view has three modes:

* **graph view** (1), that shows instructions grouped in blocks,
* **linear view** (2), that lists all instructions and data in order of their addresses,
* and **proximity view** (3), which allows you to see relations between functions, global variables, and other parts of the program.

![IDA view modes](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-64d1392c51090888ac87fe78ea087711c4473dfa%2Fida-view-modes.png?alt=media)

{% hint style="info" %}
Press <kbd>Space</kbd> to switch between graph and linear mode. Proximity view is available from the context menu in IDA view.
{% endhint %}

**Dive deeper**

* **Video**: :video\_camera: Check our [video tutorial](https://www.youtube.com/watch?v=R1GKm-7WfCU) covering the basics of graph view.
* **Blog**: :pencil: Read the [graph mode overview](https://hex-rays.com/blog/igors-tip-of-the-week-23-graph-view/) in Igor's tip of the week.

#### Hex View Window

In hex view, you can see the raw bytes of the program's instructions.

There are two ways of highlighting the data in this view:

1. **Text match highlight**, which shows matches of the selected text anywhere in the views.
2. **Current item highlight**, which shows the bytes group constituting the current item.

![Hex view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-6a6fec9016e281349d4886b649fdbfe9659f9fe3%2Fhex-view.png?alt=media)

{% hint style="info" %}
The IDA view, pseudocode, and hex view can be synchronized, meaning that they highlight the same part of the analyzed program, and changes made inside one of the views are visible in the others.
{% endhint %}

**Dive deeper**

* **Video**: :video\_camera: Listen about hex view and others in our [video tutorial](https://www.youtube.com/watch?v=v8TAg873d_k).
* **Blog**: :pencil: Detailed [overview of the hex view](https://hex-rays.com/blog/igors-tip-of-the-week-38-hex-view/) you can read in Igor's tip of the week.

#### Pseudocode Window

Generated by the famous <kbd>F5</kbd> shortcut, the pseudocode shows the assembly language translated into human-readable, C-like pseudocode. Click <kbd>Tab</kbd> to jump right into the Pseudocode view.

![Pseudocode Window](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-8cc0b2020ee1f7191e7c19ea8e8ad3ecfff6ffdc%2Fpseudocode-window.png?alt=media)

#### Local Types Window

This view shows the high-level types used in databases, like structs or enums.

**Dive deeper**

* **Docs**: :book: Check our manual giving an overview of [Local Types window](/ida-9.5/core/user-interface/concepts/subviews#local-types-window).

#### Functions Window

This window displays all the functions recognized by IDA, along with key details for each:

* **Function name**
* **Segment** the segment that contains the function
* **Start**: the function starting address
* **Length**: the size of the function in bytes
* **Local**: the amount of stack space taken by local variables
* **Arguments**: the amount of stack space taken by arguments

By default, the entire window is not visible, so you may scroll horizontally to see the hidden elements. As you probably noticed, the colors in Functions window match the colors in navigation band; in our example, green highlighting shows functions recognized by [Lumina](https://hex-rays.com/lumina).

![Functions view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-2d4a973b4858170be4eed8a63e74ff291e92209f%2Ffunctions.png?alt=media)

This view is read-only, but you can automatically synchronize the function list with the IDA view, pseudocode, or hex view. Click to open the context menu and select **Turn on synchronization**.

**Dive deeper**

* **Docs**: :book: Read the manual explaining all of the [function window](/ida-9.5/core/user-interface/concepts/subviews#functions-window) columns in detail.
* **Video**: :video\_camera: Watch our [video tutorial](https://www.youtube.com/watch?v=DA7dTADDbc8) exploring the functions view.

## Part 3: Basic navigation

A crucial step in mastering IDA is learning how to navigate quickly to specific locations in the output. To help you get started, we'll cover essential commands and hotkeys commonly used for efficient navigation in IDA.

### Double-click and jump to the location

When you double-click on an item, such as a name or address, IDA automatically jumps to that location and relocate the display.

### Jump Anywhere

Press <kbd>G</kbd> to open the [Jump Anywhere](/ida-9.5/ida-actions/jumpanywhere) dialog — IDA's universal navigation entry point. It accepts names, expressions, addresses, segment-relative values, and script identifiers.

**Handy shortcut**:

* To jump again to the last location visited through Jump Anywhere, press <kbd>G</kbd> <kbd>↓</kbd> <kbd>↵</kbd>.

**Dive deeper**

* **Docs**: :book: Get the full reference for [acceptable inputs in the Jump Anywhere dialog](/ida-9.5/core/user-interface/concepts/jump-anywhere#what-you-can-type)

### See the list of cross-references

1. Position the cursor on a function or instruction, then go to **Jump -> Jump to xref to operand...** or press <kbd>X</kbd> to see the dialog with listed all cross-references to this identifier.
2. Select an item from the list and click **OK** to jump to that location.

### Explore cross-references

Press <kbd>X</kbd> with the cursor on any item to open a chooser listing all cross-references to that identifier. Select an entry and click **OK** to jump there.

To explore reference chains visually, open the [Xref Graph](/ida-9.5/core/disassembler/concepts/xref-graph) via **View → Graphs → Xrefs to/from**.

**Dive deeper**

* **Video**: :video\_camera: Explore the rest of the jump commands in our [video tutorial](https://www.youtube.com/watch?v=uKu3T5Rt1F8)

## Part 4: Manipulate your disassembly results

Now that the initial autoanalysis is done and you’ve mastered the basics of navigation, it’s time to explore the basic interactive operations that reveal the true power of IDA in transforming your analysis.

### Rename a stack variable

One of the first steps you might take is to enhance readability by assigning meaningful names to local or global variables, but also functions, registers and other objects that IDA initially assigned a dummy name.

1. In the IDA View, right-click on the variable you want to rename and click **Rename** or press <kbd>N</kbd> when the variable is cursor-highlighted.
2. In the newly opened dialog, insert a new name and click **OK**.

If at any point you want to go back to the original dummy name given by IDA, leave the field blank and click **OK**. It will reset the name to the default one.

{% hint style="info" %}
Once you change the name, IDA will propagate the changes through the decompiler and Pseudocode view.
{% endhint %}

**Dive deeper**

* **Video**: :video\_camera: Watch our [step-by-step tutorial](https://www.youtube.com/watch?v=_CkyWaInIjM) on renaming techniques.
* **Blog**: :pencil: Check [Igor's tips of the week](https://hex-rays.com/blog/igors-tip-of-the-week-42-renaming-and-retyping-in-the-decompiler/?utm_source=Social-Media-Post\&utm_medium=Youtube\&utm_campaign=ida-pro-tutorial-12) for expert advice on renaming.

### Add a comment

Adding comments may be a useful way to annotate your work.

1. Highlight the line where you want to insert a comment and press <kbd>:</kbd>.
2. In the dialog box, type your comment (you can use multiple lines) and click **OK**. This will add a regular (non-repeatable) comment to the location.

{% hint style="info" %}
If you want to add a repeatable comment in every location that refers to the original comment, press <kbd>;</kbd>.
{% endhint %}

**Dive deeper**

* **Video**: :video\_camera: Watch our [tutorial](https://www.youtube.com/watch?v=zUo5BnuqfDQ) about commenting.

## Part 5: Customizing IDA

Nearly every UI element is customizable, allowing you to rearrange and align widgets to suit your habits. You can save your personalized desktop layout by going to **Windows -> Save desktop**.

Most of the basic appearance you can change under **Options** menu.

* To change the colors or theme, go to **Options -> Colors**.
* To change the font, go to **Options -> Fonts**.

If you need more control over customization settings, you may check the [IDA configuration files](/ida-9.5/core/user-interface/concepts/configuration-files).

## Part 6: Debug your file

If you are ready to delve into dynamic analysis and start debugging your programs, here are some key steps to get you started:

1. **Select the right debugger and complete the setup**: Go to **Debugger -> Select debugger...** and pick up one of the available debuggers. Under **Debugger -> Debugger options**, you can configure the setup in detail.
2. **Add breakpoints**: Right-click on the line where you want to stop the execution and select **Add breakpoint** from the context menu, or press <kbd>F2</kbd>.
3. **Start the process**: Run the debugging session by pressing <kbd>F9</kbd> or click a green arrow on the tooltip.

**Dive deeper**

* **Docs**: :book: Read our User Guide for [local](/ida-9.5/core/debugger/concepts/local-debugging) and [remote](/ida-9.5/core/debugger/concepts/remote-debugging) debugging manuals, or check step-by-step tutorials for specific debuggers.

## Part 7: Install a plugin

One of the most common way of extending IDA capabilities is to use one of our community-developed plugins.

### Where can I find IDA plugins?

You can find a variety of plugins in the official Hex-Rays [plugin repository](https://plugins.hex-rays.com/), or via [HCLI and Plugin Manager](https://hcli.docs.hex-rays.com/user-guide/plugin-manager/).

{% hint style="success" %}
**HCLI Commands |** [**See HCLI Docs**](https://hcli.docs.hex-rays.com/)

`hcli plugin search`
{% endhint %}

### Installing your plugin

For this guide purposes, we'll walk you through general installation steps.

{% hint style="info" %}
The installation process can vary depending on the plugin and some of them may required installing dependencies or further configuration. Don't hesitate to refer to the specific instructions provided by the plugin author.
{% endhint %}

**Quick alternative**

{% hint style="success" %}
**HCLI Commands |** [**See HCLI Docs**](https://hcli.docs.hex-rays.com/)

`hcli plugin install <plugin-name>`
{% endhint %}

#### Load your plugin

1. Copy your plugin folder to the plugins directory inside your IDA installation directory.
2. Alternatively, you can load the plugin from the command line in IDA by using **File -> Script file...** and selecting `app.entry.py` file.

#### Run your plugin

1. Navigate to **Edit -> Plugins -> your\_plugin\_name** or use the assigned hotkey.

{% hint style="info" %}
You may need to restart IDA to see your plugin in the list.
{% endhint %}

**Dive deeper**

* **Docs**: :book: Want to learn about writing your own plugins?
  * For an easy entry point, check our [Domain API](https://ida-domain.docs.hex-rays.com/).
  * Need more low-level control? Check our Developer Guide on how to create a plugin in [IDAPython](/ida-9.5/developer/idapython/how-tos/how-to-create-a-plugin) or with [C++ SDK](/ida-9.5/developer/cpp-sdk/how-tos/how-to-create-a-plugin).

## Key hotkeys cheatsheet

Here's a handy list of all of the shortcuts we used so far.

* <kbd>Space</kbd> — Switches between graph and linear mode in the IDA View
* <kbd>F5</kbd> — Generates pseudocode
* <kbd>Tab</kbd> — Jumps into pseudocode View
* <kbd>G</kbd> — Opens **Jump Anywhere** dialog
* <kbd>Esc</kbd> — Jumps back to the previous position
* <kbd>Ctrl</kbd> + <kbd>Enter</kbd> — Jumps to the next position
* <kbd>X</kbd> — Shows the list of all cross-references
* <kbd>N</kbd> — Opens dialog to rename the current item
* <kbd>;</kbd> — Adds repeatable comment
* <kbd>:</kbd> — Adds regular comment

## Domain API: Beginner-friendly scripting and plugin development in IDA

Looking to extend IDA's capabilities with your own scripts or plugins? Meet the **Domain API**—a high-level, Pythonic interface designed to simplify development and make interacting with IDA more intuitive.

* Check [Getting Started with the Domain API](https://ida-domain.docs.hex-rays.com/getting_started/), and
* Browse [Real-life Domain API Examples](https://ida-domain.docs.hex-rays.com/examples/) to kickstart.


# What's next?

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><a href="https://hex-rays.com/training"><strong>Enroll in our trainings</strong></a></td><td>Maksimize your IDA experience with trainigs tailored to all skill levels.</td></tr><tr><td><a href="https://www.youtube.com/@HexRaysSA"><strong>Watch tutorials</strong></a></td><td>Explore the full collection of IDA Pro tutorial videos on our Hex-Rays channel.</td></tr><tr><td><a href="https://hex-rays.com/blog"><strong>Check the blog</strong></a></td><td>Learn more about IDA with Igor's tip of the week and explore recent news from Hex-Rays.</td></tr></tbody></table>


# User Interface

The user interface of IDA is designed to provide a flexible environment for reverse engineering.

## Basic Resources

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Subviews</strong></td><td>Explore the various subviews available in IDA</td><td><a href="https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-4c4efbc952e562d5213223adb8a2ad038145e274%2Fsubviews.jpg?alt=media">subviews.jpg</a></td><td><a href="/ida-9.5/core/user-interface/concepts/subviews">Subviews</a></td></tr><tr><td><strong>Menu Bar Actions</strong></td><td>A complete reference to all avaliable menu actions</td><td><a href="https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-038a79c4a7a9eee922c438b509588e74a3bda63b%2Fmenu.jpg?alt=media">menu.jpg</a></td><td><a href="/ida-9.5/core/user-interface/reference/menu-bar-actions">Menu Bar Actions</a></td></tr><tr><td><strong>Desktops</strong></td><td>Understand how to create, save, and switch between different desktops</td><td><a href="https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-fcca6d413cd12a0bff2b492a1bde0f36ad17cca1%2FDesktop.jpg?alt=media">Desktop.jpg</a></td><td><a href="/ida-9.5/core/user-interface/concepts/desktops">Desktops</a></td></tr></tbody></table>

View all [Concepts](/ida-9.5/core/user-interface/concepts)

## Try it yourself

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Customize IDA</strong></td><td>Add your own themes and more with Qt and CSS styles</td><td><a href="/ida-9.5/core/user-interface/how-tos/css-based-styling">CSS-based styling</a></td></tr><tr><td><strong>Use Deep Links</strong></td><td>Copy, share, and follow links to any location in the IDA database</td><td><a href="/ida-9.5/core/user-interface/how-tos/using-deep-links">Using Deep Links</a></td></tr></tbody></table>


# Overview

The IDA user interface is your primary workspace for reverse engineering. It's designed to be highly flexible: IDA lets you arrange, show, and hide different panels and windows to match your workflow and the complexity of the binary you're analyzing.

## **Main UI Elements**

### **Subviews**

Subviews are the individual windows/views that make up your workspace. Each subview surfaces a different aspect of the binary: the disassembly listing, hex data, function lists, call graphs, and more.

### Menu Bar

The Top Level Menu Bar is the entry point for all of IDA's actions. The list of available actions is mostly context-specific and depends on your cursor position, etc.

### Desktops

Desktops are saved layouts of your entire workspace. They let you quickly switch between different arrangements of IDA’s windows depending on what task you’re doing. You can create multiple desktops for different tasks and switch between them anytime.

**See also**

* [Basic Usage Part 2: UI overview](/ida-9.5/getting-started/basic-usage#part-2-ui-overview)

## Beyond the Visual Interface

The visual user interface is the most common way to use IDA, but not the only one. If you prefer working without launching the full application, IDA also supports `idat` (a text-mode interface) and a headless mode for scripted or automated workflows.

**See also**

* [idalib](/ida-9.5/core/idalib/overview) - Meet Headless IDA


# Concepts

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Workspace</strong></td><td><ul><li><a href="/ida-9.5/core/user-interface/concepts/subviews">Subviews</a></li><li><a href="/ida-9.5/core/user-interface/concepts/desktops">Desktops</a></li><li><a href="/ida-9.5/core/user-interface/concepts/list-viewers">List Viewers</a></li></ul></td></tr><tr><td><strong>Environment &#x26; Tooling</strong></td><td><ul><li><a href="/ida-9.5/core/user-interface/concepts/helper-tools">Helper Tools</a></li><li><a href="/ida-9.5/core/user-interface/concepts/command-line-switches">Command line switches</a></li><li><a href="/ida-9.5/core/user-interface/concepts/configuration-files">Configuration files</a></li></ul></td></tr></tbody></table>


# Subviews

Subviews (also referred to as *windows*, *widgets*, or simply *views*) are an essential part of working with IDA, providing different perspectives and detailed information about the loaded binary.

## Subviews essentials

* Some subviews are opened by default, while others can be accessed at any time via **View → Open subviews**.
* Certain subviews, (known as *choosers*) are list views, that allow you to interact with and manipulate their contents using [list](/ida-9.5/core/user-interface/concepts/list-viewers) viewer commands.
* Others, known as *listings*, present generated text laid out line by line rather than rows and columns (see [Listings](#listings)).
* All subviews can be moved, rearranged and docked in various parts of the IDA interface.

The following is a list of all available subviews.

| Icon                                                                                                                                                                                                                   | View                                                   | Access Mode                      | Shortcut                                           |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | -------------------------------- | -------------------------------------------------- |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9c4479501527093c8d38e69e2a739dbf77dd0ed3%2FGraphFlatView.svg?alt=media)        | [Disassembly/IDA View](#ida-view-disassembly-window)   | Interactive (r/w), address-based | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9c4479501527093c8d38e69e2a739dbf77dd0ed3%2FGraphFlatView.svg?alt=media)        | [Pseudocode](#pseudocode-window)                       | Interactive (r/w), address-based | <kbd>F5</kbd>                                      |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9c4479501527093c8d38e69e2a739dbf77dd0ed3%2FGraphFlatView.svg?alt=media)        | [Microcode](#microcode-window)                         | Interactive                      | <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>F8</kbd> |
| N/A                                                                                                                                                                                                                    | [CTree](#ctree-window)                                 | Interactive                      | <kbd>Ctrl</kbd> + <kbd>F6</kbd>                    |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-dde690787528bea678f8e0a5306552e2221bc1fe%2FToggleDump.svg?alt=media)           | [Hex View](#hex-view--hex-dump-window)                 | Interactive (r/w), address-based | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-e7df479449a44c4d5e5fc7160f367bb131d9e35c%2FAddressDetails.svg?alt=media)       | [Address details](#address-details-window)             | Read-only chooser                | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9afa605518d8299f9dd372e6b39bd5651dada8b7%2FOpenExports.svg?alt=media)          | [Exports](#exports-window)                             | Read-only chooser                | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-33529305796d7d9b723099003d8ef62378e36ce8%2FOpenImports.svg?alt=media)          | [Imports](#imports-window)                             | Read-only chooser                | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-2d16cdb19383a6d7041eb725a5d07de5b6c4c902%2FOpenNames.svg?alt=media)            | [Names](#names-window)                                 | Read-only chooser                | <kbd>Shift</kbd> + <kbd>F4</kbd>                   |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-eaa1faa117f5d101a74178d599480f16d0ff50ab%2FOpenFunctions.svg?alt=media)        | [Functions](#functions-window)                         | Read-only chooser                | <kbd>Shift</kbd> + <kbd>F3</kbd>                   |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-a4453fd7a39e8881d0789e99a6ad8efb41095da9%2FOpenStrings.svg?alt=media)          | [Strings](#strings-window)                             | Read-only chooser                | <kbd>Shift</kbd> + <kbd>F12</kbd>                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-7904566ce24ae8b845e981e1d2ef8bfdae96a15c%2FOpenStackVariables.svg?alt=media)   | [Stack Variables](#stack-variables-window)             | Interactive (r/w)                | <kbd>Ctrl</kbd> + <kbd>K</kbd>                     |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-4c241205e6cfc5c7bced9ed271a21ac2e99a9be6%2FOpenSegments.svg?alt=media)         | [Segments](#segments-window)                           | Interactive (r/w)                | <kbd>Shift</kbd> + <kbd>F7</kbd>                   |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-a18732501c9bcf88fb2d1922d75b4f74238e7a55%2FOpenSegmentRegisters.svg?alt=media) | [Segments Registers](#segment-registers-window)        | Interactive (r/w)                | <kbd>Shift</kbd> + <kbd>F8</kbd>                   |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-15954f02567fa17f5d6b5f1fef0ad5405b6e5ddc%2FOpenSelectors.svg?alt=media)        | [Selectors](#selectors-window)                         | Interactive (r/w)                | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-2d226d6c1adb3f494670c9cf3ef95329c5bb8a0e%2FOpenSignatures.svg?alt=media)       | [Signatures](#signatures-window)                       | Interactive (r/w)                | <kbd>Shift</kbd> + <kbd>F5</kbd>                   |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-69014e5909c4de21f87cd29d676a44ae139a847e%2FOpenTypeLibraries.svg?alt=media)    | [Type libraries](#type-libraries-window)               | Interactive (r/w)                | <kbd>Shift</kbd> + <kbd>F11</kbd>                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9d9b80b050217e69054ea096a1b6bae238be7aa5%2FOpenLocalTypes.svg?alt=media)       | [Local Types](#local-types-window)                     | Interactive (r/w)                | <kbd>Shift</kbd> + <kbd>F1</kbd>                   |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-31e92268357a293fb7d0048a7f556d3dbba3188f%2FOpenXrefs.svg?alt=media)            | [Cross References](#cross-references-window)           | Interactive (r/w)                | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-051eedb10dac9a4c1d431665fe4da323c3200b0c%2Fxref-tree.svg?alt=media)            | [Cross References Tree](#cross-references-tree-window) | Interactive (r/w)                | <kbd>Shift</kbd> + <kbd>X</kbd>                    |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-645277ff03c5f2502dae0fb45f21102946a99ebb%2FOpenPathfinding.svg?alt=media)      | [Pathfinder](#pathfinder)                              | Interactive (r/w)                | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-24ad66a53befb8522cbcfe8192f0ac5de491f74c%2FBookmarks.svg?alt=media)            | [Bookmarks](#bookmarks-window)                         | Interactive (r/w)                | <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>M</kbd>  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-0297bea17fc013b775ae48f0a6eaa4b0964aad85%2FOpenNotepad.svg?alt=media)          | [Notepad](#notepad-window)                             | Interactive (r/w)                | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-1f51a847d8a85d28cbbffd9bf262553790d8bf54%2FOpenProblems.svg?alt=media)         | [Problems](#problems-window)                           | Read-only chooser                | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-babbc6607dfe3958fc7a0e41144ed19f8af68b50%2FPatchedBytes.svg?alt=media)         | [Patched bytes](#patched-bytes-window)                 | Read-only chooser                | <kbd>Ctrl</kbd> + <kbd>Option</kbd> + <kbd>P</kbd> |
| N/A                                                                                                                                                                                                                    | [Navigation history](#navigation-history-window)       | Read-only chooser                | -                                                  |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-b51332b2081c3547c9ef17e57add3e713aeb2695%2FShowUndoHistory.svg?alt=media)      | [Undo history](#undo-history-window)                   | Read-only chooser                | -                                                  |

The following subviews are only available for specific file types. See [Format-specific subviews](#format-specific-subviews).

| Icon | View                             | Available for            | Access Mode                      | Shortcut                                           |
| ---- | -------------------------------- | ------------------------ | -------------------------------- | -------------------------------------------------- |
| N/A  | [Class tree](#class-tree-window) | Dalvik (APK, DEX)        | Interactive (r/w)                | -                                                  |
| N/A  | [Classes](#classes-window)       | Dalvik (APK, DEX)        | Interactive (r/w), address-based | <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>F6</kbd> |
| N/A  | [DSC Index](#dsc-index-window)   | Apple dyld shared caches | Interactive                      | -                                                  |
| N/A  | [KC Index](#kc-index-window)     | Apple kernelcaches       | Interactive                      | -                                                  |

## Listings

A *listing* is a subview whose content is text that IDA generates and colors: laid out line by line and scrolled as one continuous document, as opposed to a chooser, which presents its content as the rows of a table. The listings are:

* [IDA View](#ida-view-disassembly-window), in flat mode
* [Hex View](#hex-view--hex-dump-window)
* [Pseudocode](#pseudocode-window)
* [Microcode](#microcode-window)
* the type listing — the right-hand pane of the [Local Types](#local-types-window) window

The IDA View's graph mode is not a listing: it arranges basic blocks as a graph rather than as a document of lines. It does offer the same copy commands, which act on the flat listing behind it.

Because a listing is rendered text, all of it — or any part you select — can be [copied to the clipboard or exported to an HTML file](/ida-9.5/core/user-interface/how-tos/exporting-and-copying-listings), colors included.

## IDA View / Disassembly window

{% hint style="info" %}
While working in the IDA/Disassembly view, the actions available under the **Edit**, **Jump** and **Search** menus may differ from those in other views. For more information, see [View-Dependent Menus](/ida-9.5/core/user-interface/reference/menu-bar-actions).
{% endhint %}

IDA View has three modes:

* Flat/linear mode (1), a [listing](#listings)
* Graph mode (2)
* Proximity mode (3)

IDA automatically opens one disassembly window (IDA view) at the start. If the current location is an instruction belonging to a function, then the [graph view](/ida-9.5/core/disassembler/concepts/graph-view) is available. You can toggle between the flat and graph view using the <kbd>Space</kbd> key. You can also switch to proximity view by zooming out to the callgraph using the <kbd>-</kbd> key.

![IDA View modes](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-64d1392c51090888ac87fe78ea087711c4473dfa%2Fida-view-modes.png?alt=media)

[Arrows](#arrows-window) on the left side of the flat mode represent the control flow. The IDA UI [highlights](/ida-9.5/core/disassembler/concepts/highlighting-identifiers) the current identifier.

![Disassembly - arrows](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-ab94e53b9c15bbb271d2bddac72d2ad7e467772a%2Farrows-disassembly.png?alt=media)

{% hint style="info" %}
**Synchronized views**

By default, the IDA View and Hex View are **synchronized**. Navigating in one of these views automatically updates the cursor position in the others. You can disable/enable this behavior via the context menu by selecting **Synchronize with**. It's worth mentioning that any address-based view (including IDA View, Pseudocode, or Hex View) can be synchronized with another. For more information on view synchronization, see [Igor's Tip of the Week on synchronized views](https://hex-rays.com/blog/igors-tip-of-the-week-154-synchronized-views).
{% endhint %}

### Arrows window

There is a small window with arrows on the left of the disassembly. These arrows represent the execution flow, namely the branch and jump instructions. The arrow color can be:

* **red**: means that the arrow source and destination do not belong to the same function. Usually, the branches are within functions and the red color will conspicuously represent branches from or to different functions.
* **black**: the currently selected arrow. The selection is made by moving to the beginning or the end of the arrow using the Up or Down keys or left-clicking on the arrow start or the arrow end. The selection is not changed by pressing the PageUp, PageDown, Home, End keys or using the scrollbar. This allows to trace the selected arrow far away.
* **grey**: all other arrows

The arrow thickness can be:

* **thick**: a backward arrow. Backward arrows usually represent loops. Thick arrows represent the loops in a clear and notable manner.
* **thin**: forward arrows.

Finally, the arrows can be solid or dotted:

* the **dotted** arrows represent conditional branches,
* the **solid** arrows represent unconditional branches.

You can resize the arrows window using a vertical splitter or even fully hide it. If it is hidden, the arrows window will not be visible on the screen but you can reveal it by dragging the splitter to the right. IDA remembers the current arrow window size in the registry when you close the disassembly window.

![](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-42b488ca1c7049dc5d57a578b9a5d99f148bba54%2Farrows.png?alt=media)

### Refine the disassembly results

Use the disassembly [editing](/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/ida-view-actions) commands to improve the listing.

### Set the anchor

Use <kbd>Shift</kbd> + <kbd>↑</kbd> <kbd>↓</kbd> <kbd>→</kbd> <kbd>←</kbd> or <kbd>Alt</kbd> + <kbd>L</kbd> to drop the anchor. If you have a mouse, you can drop the anchor with it too.

A double click of the mouse is equivalent to the <kbd>Enter</kbd> key.

### Set disassembler options

Go to the **Options → General → Disassembly** to customize what information is displayed in the disassembly window.

## Pseudocode window

{% hint style="info" %}
While working in the Pseudocode view, the actions available under the **Edit**, **Jump** and **Search** menus may differ from those in other views. For more information, see [View-Dependent Menus](/ida-9.5/core/user-interface/reference/menu-bar-actions).
{% endhint %}

The Pseudocode [listing](#listings) shows the assembly language translated into human-readable, C-like pseudocode. You can decompile the current function by <kbd>F5</kbd> shortcut, and navigate between IDA disassembly and pseudocode with <kbd>Tab</kbd>.

![Pseudocode view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-456a2aadb946ff6ff0ba0b613a2ffe8040fc5500%2Fpseudocode.png?alt=media)

## Microcode window

The [Microcode view](/ida-9.5/core/decompiler/how-tos/microcode-view) is a [listing](#listings) displaying the decompiler's intermediate representation (microcode) at various maturity levels, allowing you to explore how the pseudocode is generated step-by-step.

### Specifying operand values

You can specify values for operands of microcode instructions to influence the decompilation process. To do this, right-click on the operand you want to specify and select **Specify value...** from the context menu.

This action inserts a new `mov` instruction that assigns the specified value to the selected operand. A dialog will open with the following fields:

* **Operand**: Pre-filled with the current operand, if one exists. You can modify it if needed.
* **Value**: The value you want to assign to the operand.
* **Insert after**: Check this option to insert the new `mov` instruction after the current instruction; uncheck it to insert before.

## CTree window

The [CTree view](/ida-9.5/core/decompiler/concepts/ctree-view) renders the decompiler's C-level AST (ctree) for the current function.

## Hex View / Hex dump window

{% hint style="info" %}
While working in the Hex view, the actions available under the **Edit**, **Jump** and **Search** menus may differ from those in other views. For more information, see [View-Dependent Menus](/ida-9.5/core/user-interface/reference/menu-bar-actions).
{% endhint %}

The Hex View [listing](#listings) shows the raw bytes of the program's instructions or data.

There are two ways of highlighting the data in the Hex Dump:

* **Text match highlight**, which shows matches of the selected text anywhere in the views
* **Current item highlight**, which shows the bytes group constituting the current item

![Hex dump view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-7bce7bf5b0b9b8424fd63448ac3cf59e50046012%2Fhex-view%20\(1\).png?alt=media)

### Related topics

* Learn the [Hex View features and tricks](https://hex-rays.com/blog/igors-tip-of-the-week-38-hex-view)
* Change [Hex View encoding](https://hex-rays.com/blog/igors-tip-of-the-week-109-hex-view-text-encoding)

## Address details window

The Address details view displays detailed information about the current address selected in the IDA View, Hex View, or Pseudocode window. It updates automatically as you change location. By default, it opens on the right side of the main IDA window and consist of the below sections:

* **Name** assigned to address; allows you to rename location (1)
* **Flags** displays low-level details associated with the address, alternatively to print internal flags action (2)
* **Data inspector** displays how the bytes at the current address can be interpreted in different formats (3)

![Address details view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-1412f7d92fa0315d87651489bab625d72a5f5268%2Faddress-details.png?alt=media)

## Exports window

This view shows list of all exported symbols. The columns display the following information:

* **Name** of the exported symbol
* **Address** of the exported symbol inside the analyzed program
* **Ordinal** of the exported symbol

![Exports view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-8ffce775cf36b333a21fe0aa83a45ac3d6494164%2Fexports.png?alt=media)

You can use [list viewer](/ida-9.5/core/user-interface/concepts/list-viewers) commands in this window.

## Imports window

This view shows list of all symbols imported through dynamic linking. The columns display the following information:

* **Address** of the imported symbol (located in virtual imports segment)
* **Ordinal** of the imported symbol
* **Name** of the imported symbol
* Shared **Library** name from which the symbol is imported

![Imports view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-ca1a5ccf8e959a8abd62b4620c2e75f83e45f17a%2Fimports.png?alt=media)

You can use [list viewer](/ida-9.5/core/user-interface/concepts/list-viewers) commands in this window.

## Functions window

{% hint style="info" %}
While working in the Functions view, the actions available under the **Edit**, **Jump** and **Search** menus may differ from those in other views. For more information, see [View-Dependent Menus](/ida-9.5/core/user-interface/reference/menu-bar-actions).
{% endhint %}

This view presents all functions in the program. Functions view is a part of IDA’s default desktop layout and displays on the left side of the screen. You can add, delete, modify functions using [list](/ida-9.5/core/user-interface/concepts/list-viewers) viewer commands.

![Functions view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-95e3308f764dcabf6102e6b14165132aaa042945%2Ffunctions%20\(1\).png?alt=media)

Each function entry includes the following details:

* **Function name**
* **Segment** that contains the function
* Function **Start** address
* Function **Length** in bytes
* size (in bytes) of **Locals** + saved registers
* size (in bytes) of **Arguments** passed to the function

The last column of this window has the following format:

| Symbol | Meaning                                                                                                                |
| ------ | ---------------------------------------------------------------------------------------------------------------------- |
| `R`    | Function **Returns** to the caller                                                                                     |
| `F`    | **Far** function                                                                                                       |
| `L`    | **Library** function                                                                                                   |
| `S`    | **Static** function                                                                                                    |
| `M`    | **Lumina** function                                                                                                    |
| `O`    | **Outlined** function                                                                                                  |
| `B`    | BP based frame. IDA will automatically convert all frame pointer \[BP+xxx] operands to stack variables.                |
| `T`    | function has **Type** information                                                                                      |
| `=`    | Frame Pointer is equal to the initial stack pointer. In this case, the frame pointer points to the bottom of the frame |
| `X`    | exception handling code; `c` stands for "catch" block, `u` means that the corresponding function is an unwind handler. |

### Colors and style indicators

Some functions in the list may appear with colored backgrounds. In most cases, these colors correspond to the legend used in the [navigation band](https://hex-rays.com/blog/igors-tip-of-the-week-49-navigation-band). Additional colors may be manually assigned the user via **Edit function...** in the context menu.

Functions displayed in **bold** have a definitive, user-specified prototype. Some plugins may also mark functions this way. The decompiler takes such prototypes as they are, while other prototypes are considered only as a starting point during decompilation.

### Synchronize Functions view

You can automatically synchronize the function list with the active Disassembly, Pseudocode, or Hex view. To enable this, right-click in the function list and select **Turn on synchronization** in the context menu.

### Related topics

For a thorough overview of the Functions view, refer to [Igor’s Tip of the Week #28](https://hex-rays.com/blog/igors-tip-of-the-week-28-functions-list).

## Names window

Names view displays the list of all names existing in the database, not only function names but also instruction or data items names.

![Names view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-34b5db1c8cd5ff2f62d6263b370aad42a73792a1%2Fnames.png?alt=media)

On the left side of the **Name** column, this view displays a small icon for each name:

| Symbol | Meaning          |
| ------ | ---------------- |
| `L`    | library function |
| `𝑓`   | regular function |
| `C`    | instruction      |
| `A`    | string literal   |
| `D`    | data             |
| `I`    | imported name    |

You can use [list viewer](/ida-9.5/core/user-interface/concepts/list-viewers) commands in this window.

## Signatures window

This view displays both applied and planned signatures, and allows you to apply new ones.

For each signature, the following columns are shown:

* **Name** of the file with the signature
* **State** of the signature:
  * Planned: the signature will be applied
  * Current: the signature is being applied
  * Applied: the signature has been applied
* **#func**: number of functions found using the signature

![Signatures view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-a69d8da8527cded661c3f77454fc624ab5aac419%2Fsignatures.png?alt=media)

In this view, you can modify the list of planned signatures and add or remove library modules to be used during disassembly. Note that **applied signatures cannot be removed** from the list.

### Add signatures

To add a signature to the list, right-click in the signatures view and click **Apply new signature...** in the context menu or press <kbd>Ins</kbd>. You will see a list of signatures that can be applied to the program being disassembled.

Text version: Not all signature files will be displayed (for example, 32 bit signatures will not be shown for a 16 bit program). If you want to see the full list of signatures, select the first line of the list saying SWITCH TO FULL LIST OF SIGNATURES.

### Signature files location / SIG directory

Signature files reside in the subdirectories of the SIG directory. Each processor has its own subdirectory. The name of the subdirectory is equal to the name of the processor module file (z80 for z80.w32, for example). Note: IBM PC signatures are located in the SIG directory itself.

{% hint style="info" %}
The IDASGN environment variable can be used to specify the location of the signatures directory.
{% endhint %}

## Segments window

This view lists information about memory segments containing code and data.

![Segments view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-30be725c2e1a033935233b27d09eef06a329c972%2Fsegments.png?alt=media)

Each segment is represented by a line in the list. Please note that the end address of the segment never belongs to the segment in IDA.

The following columns (segment attributes) are displayed:

| Attribute | Meaning                                                                                                                                                |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Name      | Segment name                                                                                                                                           |
| Start     | Virtual start address                                                                                                                                  |
| End       | Virtual end address                                                                                                                                    |
| R         | `R`: readable, `.`: not readable, `?`: unknown                                                                                                         |
| W         | `W`: writable, `.`: not writable, `?`: unknown                                                                                                         |
| X         | `X`: executable, `.`: not executable, `?`: unknown                                                                                                     |
| D         | `D`: debugger only, `.`: regular                                                                                                                       |
| L         | `L`: created by loader, `.`: no                                                                                                                        |
| Align     | Segment alignment                                                                                                                                      |
| Base      | Segment base selector or address                                                                                                                       |
| Type      | Segment type                                                                                                                                           |
| Class     | Segment class — `CODE`: machine code instructions `DATA`, `CONST`: initialized data segment `BSS`, `STACK`: uninitialized data segment `XTRN`: imports |
| AD        | Segment addressing width                                                                                                                               |

The rest of the columns display the default values of the segment registers for the segment.

By default, the cursor is located on the current segment.

You can use [list viewer](/ida-9.5/core/user-interface/concepts/list-viewers) commands in this window.

In order to change the selector values, use [selectors](#selectors-window) window.

### Add new segment

To add a new segment to the list, right-click in the Segments view and click **Add new segment...** in the context menu or press <kbd>Ins</kbd>.

## Segment registers window

This view contains segment register change points list.\
Depending on the current processor type, you will see various segment registers such as DS, ES, SS, and potentially FS and GS. The **Tag** column indicates how each change point was created:

* `a` — added automatically by IDA during autoanalysis
* `u` — specified by the user or defined by a plugin

![Segment registers view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-79785d5ce599112aac329eb3d93f03921f70ed07%2Fsegment-registers.png?alt=media)

You can use [list viewer](/ida-9.5/core/user-interface/concepts/list-viewers) commands in this window.

### Change points essentials

When IDA encounters an instruction which changes a segment register, it creates a segment register change point. So, mostly change points are maintained by IDA itself. IDA assumes that the segment registers do not change their values between change points. If you find out that IDA failed to locate a segment register change, or if you want to change a register value, you can create a change point using the Change segment register value... command (action `SetSegmentRegister`). You can change the value of a segment register using the Set default segment register value... command too (action `SetSegmentRegisterDefault`).

IDA generates the appropriate 'assume' instructions for the change points if it was not disabled (Options → Assembler directives...)

### Related topics

* For additional segment management options, refer to the Edit → Segments submenu.

## Selectors window

Here you can change the "selector to base" mapping. The selector table is used to look up the selector values when [calculating](/ida-9.5/core/disassembler/concepts/segment-address-space) the addresses that are visible in the disassembly listing.

![Selectors view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-e7b54170f1e3ea296dcc9aa2940d28099cc530b3%2Fselectors.png?alt=media)

You can use [list viewer](/ida-9.5/core/user-interface/concepts/list-viewers) commands in this window:

* jump to the paragraph pointed by the selector
* add a new selector
* delete selector (if it is not used by any segment)
* change selector value (this leads to reanalysis of all program)

## Cross references window

This view contains all cross references (xrefs) to the current location. You can use [list viewer](/ida-9.5/core/user-interface/concepts/list-viewers) commands in this window.

### Cross reference attributes

The cross reference dialog displays a list of references to the various items. Each line has the following attributes:

* **Direction**: Up or Down. Meaningful for program address; denotes where the reference comes from, from the lower addresses than the reference target (down) or from higher addresses (up).
* **Type**: The following types exist:

| Type | Description                                                   |
| ---- | ------------------------------------------------------------- |
| `o`  | offset, the address of the item is taken                      |
| `r`  | read access                                                   |
| `w`  | write access                                                  |
| `t`  | textual referenced (used for manually specified operands)     |
| `i`  | informational (e.g. a derived class refers to its base class) |
| `J`  | far (intersegment) jump                                       |
| `j`  | near (intrasegment) jump                                      |
| `P`  | far (intersegment) call                                       |
| `p`  | near (intrasegment) call                                      |
| `^`  | ordinary flow                                                 |
| `s`  | xref from a structure                                         |
| `m`  | xref from a structure member                                  |
| `k`  | xref from a stack variable                                    |

* **Address**:
  * For 'xrefs to' dialogs: where the reference comes from (source)
  * For 'xrefs from' dialogs: where the reference goes to (destination)
* **Text**: Additional info about the cross reference

### Add cross reference (1)

To add a new cross reference to the list, right-click in the xrefs view and click **Add cross-reference...** in the context menu or press <kbd>Ins</kbd>.\
In the *Add Cross Reference* dialog, you should specify the *From* and *To* address, as well as the xref type.

![Add/delete xrefs](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-26185a324953cdb3cb224a9c8cb0994fd1ba10c2%2Fadd-delete-xrefs.png?alt=media)

### Delete cross reference (2)

To remove a cross reference from the list, right-click in the xrefs view and click **Delete cross-reference...** in the context menu or press <kbd>Del</kbd>. If the *Undefine if no more xrefs* is checked, then the instruction at the target address will be undefined upon the deletion of the last xref.

{% hint style="info" %}
IDA undefines instructions only if they do not start a function.
{% endhint %}

### Related topics

* For a comprehensive overview of cross-references in IDA, including both code and data xrefs, refer to [Igor’s Tip of the Week #16: Cross-References](https://hex-rays.com/blog/igor-tip-of-the-week-16-cross-references).

## Cross references tree window

The cross references tree view provides a comprehensive, textual view of inter-function code and data relationships. This non-modal widget displays both code and data references in a hierarchical tree format and is designed to complement the Xref Graph. The view shows both references *to* and *from* the current function, providing a clear overview of function call hierarchies.

![Cross references tree view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-fc2af3a0ebd367a9331f9dd8b5b916c0842dd88b%2Fcross-ref-tree.png?alt=media)

Key features:

* **Non-modal/multiple instances**: You can open several windows simultaneously, each displaying different functions
* **Real-time updates**: Nodes update as you navigate through the database
* **Search**: Type `/` to open search and `F3` to jump between matches. The search works within already expanded data.
* **Filters**: Allows you to filter out too many references (available options for regex and case sensitive filters).
* **Columns management**: You can select which columns are enabled via the context menu, resize and reorganize them.

### Options

Click **Options** above the view to expand the available settings. Key options to be aware of:

* **Sync**: synchronizes the current tree with the IDA View
* **Simplified view**: when unchecked, displays the full function names, e.g., `int main(int argc, char **argv)`
* **Allow Duplicates**: when checked, shows multiple cross-references to the same function
* **Show values**: when checked, shows known function values
* **Change focus**: when enabled, double-clicking on an item switches to the IDA View

This view replaces the Function Calls and Cross references windows.

## Pathfinder

The **Pathfinder** searches the cross-reference graph to find call paths between a set of waypoints (functions). Results are visualized as an expanded [Cross References Tree](#cross-references-tree-window) or as an [Xref Graph](/ida-9.5/core/disassembler/concepts/xref-graph).

![Pathfinder window](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-910d03c96de2900a4d61528403d194ce2a1b6dfd%2Fpathfinder_widget.png?alt=media)

### Related topics

For the complete overview, see [Pathfinder](/ida-9.5/core/disassembler/concepts/pathfinder).

## Local Types window

{% hint style="info" %}
While working in the Local Types view, the actions available under the **Edit**, **Jump** and **Search** menus may differ from those in other views. For more information, see [View-Dependent Menus](/ida-9.5/core/user-interface/reference/menu-bar-actions#view-dependent-menus).
{% endhint %}

The Local Types window serves as your central hub for managing custom data types within your IDA database. It allows you to create and edit custom types—such as structures, unions, and enumerations—and import definitions from loaded type libraries. It has two panes: a tree of the database's types, and a [listing](#listings) of their C declarations — of every type, or of just those selected in the tree when [**Show selection only**](/ida-9.5/ida-actions/localtypestoggledynsel) is on.

![Local Types view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-88f9a9863337bbeab9985b5fb1789cc6d5e0f66f%2Flocal-types.png?alt=media)

Each database has a local type library embedded into it. This type library (til) is used to store types that are local to the current database. They are usually created by parsing a header file.

{% hint style="info" %}
As of IDA 9.0, the legacy **Structure and Enums windows have been removed** and their functionality consolidated by the Local types window. This view serves as a centralized place for all type-related actions.
{% endhint %}

### Local types essentials

In the Local types view, you can directly manage custom data types:

* the existing types can be modified (the default hotkey is <kbd>Ctrl</kbd>+<kbd>E</kbd>, context menu **Edit type...**)
* the existing types can be deleted (the default hotkey is <kbd>Del</kbd>, context menu **Delete type...**)
* new types can be added (the default hotkey is <kbd>Ins</kbd>, context menu **Add type...**)
* multiple types can be added at once by parsing declarations (context menu **Parse declarations...**)

Please note that <kbd>Ins</kbd> can be used to add many types at once. For that the user just needs to enter multiple declarations, one after another in the dialog box.

However, <kbd>Ctrl</kbd> + <kbd>E</kbd> permits for editing of one type at a time. This may cause problems with complex structure types with nested types. Nested types will not be saved by <kbd>Ctrl</kbd> + <kbd>E</kbd>.

If the edited type corresponds to an idb type (struct or enum), then the corresponding type will be automatically synchronized.

Some types in this list are created automatically by IDA. They are copies of the types defined in the [Local Types](#local-types-window) views. Such types are displayed in gray, as if they are disabled.

Types displayed in black are considered as C level types. Read [more](/ida-9.5/core/types/concepts/assembler-level-and-c-level-types).

Each type in the local type library has an ordinal number and may have a name.

Be careful when deleting existing types because if there are references to them, they will be invalidated.

A local type can be mapped to another type. Such an operation deletes the existing type and redirects all its references to the destination type. Circular dependencies are forbidden. In the case of a user mistake, a mapped type can be deleted and recreated with the correct information.

### Related topics

* [Working with Types](/ida-9.5/core/types/how-tos/working-with-types)
* [Type libraries window](#type-libraries-window)
* [C++ type details](/ida-9.5/core/types/concepts/cpp-type-details)

## Type libraries window

![Type libraries view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-e199ebcf7d9226d378dc2ca7145749ba7915289a%2Ftype-libraries.png?alt=media)

This view displays the currently loaded type libraries and allows you to load or unload them as needed.

The standard type libraries contain type definitions from the standard C header supplied with compilers. Usually, IDA tries to determine the target compiler and its type libraries automatically but if it fails, this window allows you to load the appropriate type library.

### Loading/unloading additional libraries

To load new libraries, right-click in the view and click **Load type library...** in the context menu or press <kbd>Ins</kbd>. Similarly, use **Unload type library(ies)...** to remove it from the list.

### Configure compiler and memory model

Don't forget to specify the compiler and memory model in the compiler setup (Options → Compiler...) dialog box.

### Local Types bookmarks

Check [Choose marked location](/ida-9.5/core/user-interface/troubleshooting/various-dialog-help-messages#choose-marked-location) help message.

## Strings window

The Strings view contains all strings in the program. However, if a range of addresses was selected before opening the window, only the selected range will be examined for strings.

The columns display the following information:

* **Address**
* **Length** in bytes
* **Type**:
  * `C` for standard 8-bit strings, or
  * `C16` for Unicode (UTF-16)
* **String** text

![Strings view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-61c8d47fe02d6b76ffa462cfb7d465df32f0a32c%2Fstrings.png?alt=media)

### Strings view options

You can set up the list parameters by clicking **Setup** in the context menu.

The list always contains strings defined in the program, regardless of the settings in this dialog box, but the user can ask IDA to display strings not yet explicitly defined as strings.

The following parameters are available:

#### Display only defined strings

If checked, IDA will display only strings explicitly marked as string items (using the convert to string (action `MakeStrlit`) command). In this case, the other checkboxes are ignored.

#### Ignore instructions/data definitions

If checked, IDA will ignore instruction/data definitions and will try to treat them as strings. If it can build a string with the length greater than the minimal length, the string will be displayed in the list. This setting is ignored if 'only defined strings' is on.

#### Strict ASCII (7-bit) strings

If checked, only strings containing exclusively 7-bit characters (8th bit must be zero) will be added to the list. Please note that the user can specify which characters are accepted in the strings by modifying the StrlitChars parameter in the [ida.cfg](/ida-9.5/core/user-interface/concepts/configuration-files) file. This setting is ignored if 'only defined strings' is on.

#### Allowed string types

Allows the user to specify the string types included in the list. This setting is ignored if 'only defined strings' is on.

#### Minimal string length

The minimal length the string must have to be added to the list.

{% hint style="info" %}
Click **Rebuild…** from the context menu to refresh the list after changing the options.
{% endhint %}

## Stack variables window

The Stack view displays local variables and function parameters for the currently analyzed function. It allows you to view, create, edit, and rename stack variables for the current function. To open it:

* Go to **Edit → Functions → Stack variables…** or press <kbd>Ctrl</kbd> + <kbd>K</kbd>
* Double-click or press <kbd>Enter</kbd> on a stack variable (in the Pseudocode or Disassembly/IDA View).

![Stack variables view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-10dce41904d5677410c78b32d732d2de37590e4f%2Fstack-variables.png?alt=media)

## Bookmarks window

This view displays list of all bookmarks and allows you to manage them. In IDA, bookmarks can be placed on any address in the database, so you can use them to quickly find a location.

![Bookmarks view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-5d53946d55152c8a1cfc918bebdbbfbf16915422%2Fbookmarks.png?alt=media)

In the IDA View, bookmarks are shown in the arrows panel. The **active bookmark** is highlighted in celadon and marked with a star icon. Double-clicking an active bookmark will remove it.

![Active bookmarks in the IDA View](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-0013f72de5256af4bb7f4c4b8dc6e1c659ac63b4%2Factive-bookmark.png?alt=media)

### Adding bookmarks

You can add a bookmark to the selected location from **Jump → Mark position** to every address-based view (IDA View, Hex View and Pseudocode), as well to the Local types view. In the opened dialog, enter the bookmark description and click **OK**.

### Creating folders

To organize your bookmarks into folders, select the chosen bookmarks, right-click in the view and click **Create folder with items...** in the context menu or press <kbd>Ins</kbd>.

## Notepad window

The Notepad window is a convenient place to store general notes related to the current database. All notes entered here are automatically saved within the database itself.

![Notepad view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-648a4045640f7c45c0417e50e4ea8f89f978a5ae%2Fnotepad.png?alt=media)

### Common shortcuts

* <kbd>Alt</kbd> + <kbd>T</kbd> search for text
* <kbd>Ctrl</kbd> + <kbd>T</kbd> repeat the last search

## Problems window

The Problems window contains the [list](/ida-9.5/core/user-interface/troubleshooting/problems-list) of all problems encountered by IDA during disassembling the program. You can jump to a problem by pressing <kbd>Enter</kbd>. The selected problem will be deleted from the list.

![Problems view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-740545755fff663bc8ce31ddc58340836dcdfd83%2Fproblems.png?alt=media)

## Patched bytes window

The Patched bytes view shows the list of the patched locations in the database. It also allows you to revert modifications selectively.

![Patched bytes view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-ac63acfce41a8c4d83b8b337fabd64524d759a96%2Fpatched-bytes.png?alt=media)

### Reverting changes

Select location(s) and click **Revert…** from the context menu to revert this modification.

### Patching bytes

You can change individual bytes via **Edit → Patch program → Change byte…**.

## Navigation history window

This view displays the saved navigation history. When **history sharing is enabled** (default setting, that can be changed under **Options → General → Browser**), it shows a shared history stack across multiple views (Disassembly, Pseudocode, Local Types, and Stack). Otherwise, it displays the navigation history for the currently active widget only. The **bolded** entry indicates the current cursor position.

### Enable/disable history sharing

History sharing is enabled by default. You can enable or disable this behavior in **Options → General → Browser**.

## Undo history window

This view shows the history of all undo actions.

Double clicking on a line reverts the database to the state **before** the corresponding action.

![Undo history view](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9991b18fa3c71a83690232ad4730266a7c563afc%2Fundo-history.png?alt=media)

### Truncate history

It is possible to truncate the undo history by using the corresponding context menu command **Truncate history**. The undo information for the selected action will be removed together with the information about all preceding actions.

### Style indicators

The redoable user actions are displayed in *italics*. The current position in the undo buffers is displayed in **bold**; it usually denotes the first redoable user action.

## Format-specific subviews

These subviews are only available for specific file types.

### Class tree window

The Class tree, titled **Dalvik classes**, lists the packages, classes, methods and fields of a Dalvik database as folders. Double-click a class or member to open it in the [Classes](#classes-window) view. When you open a new Dalvik database, the Class tree takes the place of the Functions window. See [Class tree](/ida-9.5/core/decompiler/concepts/dalvik-decompiler#class-tree).

### Classes window

The Classes view shows decompiled Java classes as source text, with their fields, methods and nested classes. Each window is titled **Classes-A**, **Classes-B**, and so on. You can navigate between the disassembly and the Classes view with <kbd>Tab</kbd>. See [Class view](/ida-9.5/core/decompiler/concepts/dalvik-decompiler#class-view).

### DSC Index window

Represents the layout/state of the [Apple Dyld Shared Caches](/ida-9.5/core/disassembler/concepts/dsc-workflow) the reverser is working with.

### KC Index window

Represents the layout/state of the [Apple Kernelcaches](/ida-9.5/core/disassembler/concepts/kc-workflow) the reverser is working with: the collections, their KEXTs, and what is mapped so far.


# Desktops

In IDA, desktops are **saved layouts of the user interface** — your workspace configuratio&#x6E;**.** You can create different desktops for different workflows. Switching desktops instantly rearranges all the windows.

### How to Use Desktops

Desktop-related actions are available from the [Windows](/ida-9.5/core/user-interface/reference/menu-bar-actions/common-actions-4) menu in the top menu bar.

To switch to a different desktop, select **Windows → Load desktop...** and choose the desired layout.\
To save the current window layout as a new desktop, select **Windows → Save desktop...**.

### Available Desktop Types

Different desktops are available:

* **\<Database>**\
  This desktop configuration is stored in the database itself, and is automatically loaded each time you open this database. IDA also automatically saves the current desktop configuration to this desktop if you close and save the database.
* **\<Database debugger>**\
  This desktop configuration is also stored in the database, and is loaded each time you start the debugger. As for the \<Database> desktop, IDA automatically saves the current desktop configuration to this desktop once the debugger stops.
* **\<Default>**\
  This desktop configuration is stored in the registry, and is loaded each time you start IDA without opening a database, or the first time you create a new database.
* **\<Default debugger>**\
  This desktop configuration is stored in the registry, and is loaded the first time you start the debugger.
* **Named desktops**\
  These desktop configurations are stored in the registry, and can be loaded manually by the user during the disassembly or the debugging.

Notice IDA will use a default configuration for main windows and toolbars if the screen resolution changes.


# Jump Anywhere

Jump Anywhere is IDA's unified navigation dialog — a single entry point for jumping to any location in the IDB. It accepts a broader range of inputs: names, addresses, expressions, tokens, and identifiers from multiple namespaces.

![Jump! dialog](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-27eecab1b720375f6988ae4a691eac4b4069eb17%2Fjumpanywhere_search.png?alt=media)

## Invocation

* Press <kbd>G</kbd> to open [Jump Anywhere](/ida-9.5/ida-actions/jumpanywhere) from any view, or navigate to **Jump → Jump anywhere...**.
* Press <kbd>G</kbd> <kbd>↓</kbd> <kbd>↵</kbd> to jump back to the last address visited via Jump Anywhere.
* If you prefer the legacy <kbd>G</kbd> shortcut behavior bound with [Jump to address](/ida-9.5/ida-actions/jumpask), you can enable it under **Options → Feature Flags**.

The dialog opens in history mode — your previous jumps, with their results, one keystroke away (entries from other databases collapse to grey query-only rows).

![Jump anywhere - history mode](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-c088369c24e1675df1653cb69c6d21d8e6e6f478%2Fjumpanywhere_history.png?alt=media)

![Jump anywhere - cross-binary history mode](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-dd020316bbe930612aba023a2a5540122994334b%2Fjumpanywhere_history_cross_binary.png?alt=media)

## What You Can Type

### Numbers

| Format                            | Example    |
| --------------------------------- | ---------- |
| Hex with `0x` prefix              | `0x401000` |
| Hex without prefix (default base) | `401000`   |
| Decimal                           | `4198400`  |
| Octal                             | `0777`     |
| Binary                            | `0b101010` |

### Named Symbols

* Regular names: `main`, `printf`, etc.
* Dummy names: `sub_401000`, `loc_4010A0`, `byte_402000`, …
* `seg+offset`

### Current-IP Tokens

| Token         | Meaning                              |
| ------------- | ------------------------------------ |
| `$`           | Current address                      |
| `.`           | Current address (alias)              |
| `_`           | Current address (alias)              |
| `ash.a_curip` | Processor-dependent current-IP token |

### Address Interpretation

When the input parses to a number, Jump Anywhere presents it as up to three candidates:

* **VA** — virtual address
* **RVA** — relative to image base
* **File offset**

### Segment-Relative Addresses

`seg:off` form — for example, `fs:30` during debugging.

### Arithmetic

You can combine any of the above with arithmetic:

```
main + 0x10
loc_4010A0 - loc_401000
$ + 4
```

### Frame / Function-Local Identifiers

* Stack-frame variables of the current function
* Local labels of the current function

### Type-System Identifiers

* Enum symbolic constants
* Local-type names — UDM members are resolvable when Jump Anywhere is invoked from a type listing. Local types are found by either their prettified or their raw name.

### Expression-Language Identifiers

* IDC / current extlang expressions: `cpu.EIP`, etc.
* User-defined extlang globals — IDC `extern` variables, Python globals, etc. Usable inside arithmetic: `main + kq` where `kq` is a user-defined symbol

Use the **Evaluate expressions with** dropdown in Jump Anywhere [options](#options) to select the expression-evaluation language. Python globals are only visible when Python is selected.

## Result List

* Use <kbd>↑</kbd> / <kbd>↓</kbd> / <kbd>PageUp</kbd> / <kbd>PageDown</kbd> / <kbd>Home</kbd> / <kbd>End</kbd> to navigate the list.

Results are syntax-colored, and function results show their parameter names. Uncheck **Show function signatures** in [Options](#options) to turn this off.

History rows preview their recorded destination, in the view they were jumped to; entries from other databases show a blank pane.

### Preview pane

Every navigable row previews live as you move through the list — **Disassembly**, **Pseudocode** (already-decompiled functions only), or **Hex**.

![Preview pane - Pseudocode](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-ef87e8471bcef0196d09b090bfad2ed1acdab3f8%2Fjumpanywhere_pseudocode_preview.png?alt=media) ![Preview pane - Hex](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-589aec45ce139c13e408ee7d17c42459593cb028%2Fjumpanywhere_hex_preview.png?alt=media)

The segmented buttons next to the input pick the view and remember your preference. Local-type results preview as a type listing; expression results preview their resolved target.

The preview pane is always shown.

## Options

Open the Jump Anywhere options dialog from within the Jump! dialog to configure its behavior. Click the options button in the top-right corner.

![Jump! dialog - options](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-fde49fffb3befcadbe89e83f8006c55e30ce1a81%2Fjump_dialog_options.png?alt=media) ![Jump anywhere options](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-82df92b7d669cc22f8f998a23718674ace7ea64f%2Fjumpanywhere_options.png?alt=media)

**When reopening:**

| Option                         | Effect                                                      |
| ------------------------------ | ----------------------------------------------------------- |
| **Show recent navigations**    | Opens the dialog in history mode (default).                 |
| **Restore last query results** | Reopens with the previous query and its results pre-loaded. |

**Evaluate expressions with:**

Controls the [expression-evaluation language](#expression-language-identifiers) used to resolve extlang expressions and globals. Set to **None** to disable extlang evaluation.

**Show function signatures:**

Shows function parameter names in results (types are omitted to keep rows short; unnamed parameters show as `arg1`, `arg2`, …). Enabled by default.

## Configuration

| Setting                     | File         | Effect                                                                    |
| --------------------------- | ------------ | ------------------------------------------------------------------------- |
| `JUMP_ANYWHERE_MAX_RESULTS` | `idagui.cfg` | Maximum number of result rows shown                                       |
| `JUMP_ANYWHERE_MAX_HISTORY` | `idagui.cfg` | Maximum number of past queries kept in history                            |
| `ENABLE_INDEXER`            | `ida.cfg`    | Enables the indexer subsystem that powers the search. Enabled by default. |

## Limitations

* Search relies on the indexer. With `ENABLE_INDEXER=NO`, the dialog still parses literal inputs (addresses, names) but doesn't perform similarity search.
* Names defined after the index was built may not appear in results until the index catches up. The indexer runs asynchronously after the database changes.


# Scripts window

The Scripts window is IDA's home for running and managing scripts. It is a dockable window organized into four vertical tabs — **Snippets** (stored in the IDB), **Recent scripts** (external files), **Examples** and **Search** — each backed by its own tree of scripts and a shared editor pane.

![The Scripts window, showing the Snippets tab](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-74a17f30f9bcfbceea47b5d8806a206e89e87a1d%2Fscripts-window-overview.png?alt=media)

## Overview

The window is split into three areas:

* the **vertical tab strip** on the left, selecting the active source (Snippets, Recent scripts, Examples, Search);
* the **source tree**, listing the scripts of the active tab — with a **Last run** column showing when each entry was last executed (hover for the absolute timestamp);
* the **editor pane**, showing the selected script, together with a language indicator and run controls.

The dock title reflects the active tab (for example `Scripts - Snippets`), and the active tab is remembered across desktop save/restore.

## Invocation

* Open it from the **View** menu, or press <kbd>Alt</kbd>+<kbd>F9</kbd> ([Recent scripts](/ida-9.5/ida-actions/recentscripts)) to open it directly on the **Recent scripts** tab.
* The window is dockable; it can be tabbed or floated like any other IDA widget.

## Tabs

### Snippets

Snippets are short scripts stored inside the IDB, so they travel with the database. They are editable in place, and the tab remembers the last-selected snippet and a per-IDB tab size.

When no database is loaded, the tab works in **scratch** mode, backed by an implicit default snippet, so snippets can still be edited and run.

#### Managing snippets

The snippet toolbar / context menu provides:

* [Clone](/ida-9.5/ida-actions/snippetsclonecurrent) — duplicate the selected snippet;
* [Import from file...](/ida-9.5/ida-actions/snippetsimportcurrent) / [Export to file...](/ida-9.5/ida-actions/snippetsexportcurrent) — move snippets to and from disk;
* [Run current...](/ida-9.5/ida-actions/snippetsruncurrent) — execute the selected snippet;
* [Change tab size...](/ida-9.5/ida-actions/snippetschangetabsize) — set the editor's tab width.

![The Snippets context menu](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-6bb10f345d4762e4017d9b39e0a059360cb1707a%2Fsnippets-context-menu.png?alt=media)

### Recent scripts

The external script files you have run, tracked by their path on disk. Each row carries a language icon (Python or IDC), and single-child folder chains are coalesced so the tree stays shallow. Entries are shown read-only in the editor; from here you can run them or [import them as snippets](#import-as-snippet).

![The Recent scripts tab](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-d4624e40b301454c926ed27b17acc7648f75622a%2Frecent-scripts-tab.png?alt=media)

### Examples

The IDAPython examples shipped with IDA, browsable directly inside the window. Like Recent scripts, entries are read-only and can be run or imported as snippets.

![The Examples tab](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-75d957997a02af9c96b187d40583e21e5e09489e%2Fexamples-tab.png?alt=media)

### Search

Searches across all three sources — Snippets, Recent scripts and Examples — at once. Selecting a hit previews it, with the matching line highlighted in the editor.

![The Search tab, with a hit selected and its matching line highlighted](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-22f5bce2e4078e07d6477e52c0b7aa92f490cf7c%2Fsearch-tab.png?alt=media)

Double-clicking a hit (or pressing <kbd>Enter</kbd>) jumps to its native tab, scrolled to the matched line.

![Activating a hit jumps to its source tab](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-456d21d58fd4dd3ece81cc88e120452ecb1d65b8%2Fsearch-jump-highlight.png?alt=media)

## Running scripts

A selected entry can be run by pressing <kbd>Enter</kbd>, double-clicking it, or using the **Run** control. The **Last run** column records when each entry was last executed. Snippets run with or without a database (see scratch mode above).

## The editor

The editor shows the selected script. Snippets are editable; Recent scripts and Examples are shown read-only. A language indicator shows the script's interpreter (Python or IDC) — editable for snippets, fixed for the other sources. Press <kbd>Ctrl</kbd>+<kbd>Space</kbd> for auto-completion while editing; the completion list is dismissed with <kbd>Esc</kbd>, and pressing <kbd>Ctrl</kbd>+<kbd>Space</kbd> again brings it back.

![Auto-completion in the editor](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-23ce390c7c24249bf96006b74519e9daa3d43b7c%2Feditor-autocompletion.png?alt=media)

## Import as snippet

From the **Recent scripts** or **Examples** tab, [Import as snippet](/ida-9.5/ida-actions/scriptsimportassnippet) copies the selected script into a new snippet and selects it on the **Snippets** tab, so it can be edited and kept with the database.

![Import as snippet in the Recent scripts context menu](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-d71d9aec08fd12b17d1f7e040e6dfdab23aadec8%2Fimport-as-snippet-menu.png?alt=media)

![The imported script, now an editable snippet on the Snippets tab](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-013c8abc6ca9973c9bddc1c54f1d33791048a9be%2Fimport-as-snippet-result.png?alt=media)

## Export for headless use

From the **Snippets** tab, **Export Headless...** saves the selected snippet to a file on disk, in a headless form. Then, the exported script can be run directly with [idalib](/ida-9.5/core/idalib/getting-started), no IDA GUI required.

To do so, it prepends an auto-generated prologue that opens the current database via idalib.

```python
# Auto-generated 'headless' prologue
import idapro
idapro.open_database(r"/path/to/file.i64", run_auto_analysis=True)
```

## Configuration

## Related topics

* [IDAPython examples](/ida-9.5/developer/idapython/idapython-examples)
* [IDC examples](/ida-9.5/developer/idc/idc-examples)
* [Script command...](/ida-9.5/ida-actions/executeline) — the command-line input line at the bottom of the IDA window.


# List Viewers

Some views, known as *choosers*, are a specific type of view called **list viewers**. They have interactive content that you can modify and manipulate.

## List Viewer Commands and Navigation

The following commands work in the list viewers:

1\. All usual movement keys: <kbd>PgUp</kbd>, <kbd>PgDn</kbd>, <kbd>Home</kbd>, <kbd>End</kbd> and arrows (<kbd>↑</kbd> <kbd>↓</kbd> <kbd>→</kbd> <kbd>←</kbd>).

2\. Typing filters the list. See [Typing in a list](#typing-in-a-list) below.

3\. <kbd>Alt</kbd>+<kbd>T</kbd> search for a substring (case-insensitive). <kbd>Ctrl</kbd>+<kbd>T</kbd> repeat last search. The search moves the selection and does not filter the list.

4\. If the list is not in dialog mode, you can use the following keys:

* <kbd>Enter</kbd>: jump to the selected item in the last IDA View window
* <kbd>Ctrl</kbd>+<kbd>E</kbd>: edit the current item
* <kbd>Del</kbd> delete the current item
* <kbd>Ins</kbd> insert a new item
* <kbd>Ctrl</kbd>+<kbd>U</kbd> refresh information in the window

5\. <kbd>Ctrl</kbd>+<kbd>F</kbd> puts the focus in the filter bar. More complex filters can be defined with a right click (only the GUI mode).

6\. The list can be sorted by any column by clicking on it. Please note that maintaining a frequently modified list sorted can be very time consuming, so try not to sort non-modal lists during the initial analysis. (sorting is available only in the GUI mode).

7\. Right-click may show additional functionality for the list viewer.

<kbd>Esc</kbd> or <kbd>Enter</kbd> close modal list viewers.

## Typing in a list

Typing in a list viewer (Functions, Names, Imports, Local Types, ...) filters it. The filter bar at the bottom of the list is always visible, so it is clear where your typing goes.

* The first key you type goes into the filter bar, and the filter bar keeps the focus for the keys after it. The list shows only the rows that match.
* A key that is bound to an action does that action and does not go into the filter. When the filter bar has the focus, the same key is typed as text.
* <kbd>Space</kbd> toggles check boxes in lists that have them.
* When the filter bar has the focus, <kbd>↑</kbd> / <kbd>↓</kbd> / <kbd>PgUp</kbd> / <kbd>PgDn</kbd> move the selection in the list, and <kbd>Enter</kbd> acts on the selected row. <kbd>Esc</kbd> puts the focus back in the list and keeps the filter.
* To remove the filter, delete its text.
* Right-click the filter bar to select how the text matches: match case, whole words, regular expression or fuzzy.
* Characters that need <kbd>AltGr</kbd>, and the numpad digits, go into the filter too.

Lists that cannot be filtered do not show a filter bar, and typing does not filter them.

### Feature flags

Two [feature flags](/ida-9.5/ida-actions/showfeatureflags) control this behavior:

* **Typing in a list filters it**: untick it to search the list incrementally instead of filtering it. See [Incremental search](#incremental-search).
* **Always show the filter bar**: untick it to show the filter bar only when you type or press <kbd>Ctrl</kbd>+<kbd>F</kbd>. The filter bar then has a close button. This flag is available only while **Typing in a list filters it** is ticked.

### Incremental search

When **Typing in a list filters it** is unticked, typing moves the selection instead of filtering the list:

* Type a line number to go to that line.
* Type the beginning of a line to go to it. <kbd>Backspace</kbd> erases the last character typed, <kbd>Ctrl</kbd>+<kbd>Enter</kbd> finds the next line with the same beginning, and <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Enter</kbd> finds the previous one. The search ignores the beginning of a line up to the last backslash (\\\\) or slash (/), if the line has one.

While a search is in progress, it takes the keys that you type, including keys that are bound to actions.


# Helper Tools

Helper tools, also known as utilities, are small programs designed to enhance your IDA functionality. Most of these utilities are shipped alongside IDA and included with the IDA installation.

## Built-in tools

These utilities handle specialized tasks, such as generating signature files or type libraries. Most of them live in the `tools` folder inside the main IDA installation directory; idapyswitch lives directly in the main installation directory itself.

Some examples:

* **Flair**: allows you to add your own compiler libraries to the FLIRT engine
* **idsutils**: helps create/maintain IDS files from DLLs
* **loadint**: creates your own disassembler comment databases
* [**TILIB**](/ida-9.5/core/types/how-tos/creating-type-libraries/tilib): creates type libraries (til files) for IDA
* [**git-ida**](/ida-9.5/add-ons/teams/how-tos/git_ida_cli): lets Git store, transfer, and reconstruct packed IDA databases efficiently, for use with the Teams add-on
* [**idapyswitch**](/ida-9.5/getting-started/idapython-environment#idapyswitch): selects which Python shared library IDA loads at startup

## Additional tools in the Download Center

The **IDA PIN tool** is available for download in the [My Hex-Rays Portal](https://my.hex-rays.com/dashboard/download-center).

Additionally, the Download Center provides utilities for older IDA versions (prior to 9.1).

## How to use these tools?

For detailed usage instructions and tips, including on tools not listed above, refer to the README file located in each tool's folder, where available.


# Command line switches

IDA recognizes the following command line switches:

| Switch        | Effect                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-a`          | disable [auto analysis](/ida-9.5/core/disassembler/overview#background-analysis). (`-a-` enables it)                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `-A`          | autonomous mode. IDA will not display dialog boxes. Designed to be used together with `-S` switch.                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `-b####`      | loading address, a hexadecimal number, in paragraphs (a paragraph is 16 bytes)                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `-B`          | batch mode. IDA will generate .IDB and .ASM files automatically                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `-c`          | disassemble a new file (delete the old database)                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `-C####`      | set [compiler](/ida-9.5/ida-actions/setupcompiler) in format name:abi                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `-ddirective` | A configuration directive which must be processed at the first pass. Example: `-dVPAGESIZE=8192`                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `-Ddirective` | A configuration directive which must be processed at the second pass.                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `-f`          | disable FPP instructions (IBM PC only)                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `-h`          | help screen -i#### program entry point (hex)                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `-I#`         | set IDA as just-in-time debugger (0 to disable and 1 to enable)                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `-L####`      | name of the log file                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `-M`          | disable mouse (text only)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `-O####`      | [options](/ida-9.5/add-ons/plugins/concepts/plugin-options) to pass to plugins. This switch is not available in the IDA Home edition.                                                                                                                                                                                                                                                                                                                                                                                |
| `-o####`      | specify the output database (implies `-c`)                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `-p####`      | [processor type](/ida-9.5/ida-actions/options#processor-type)                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `-P+`         | compress database (create zipped idb)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `-P`          | pack database (create unzipped idb)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `-P-`         | do not pack database (not recommended, see the Abort command)                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `-r###`       | immediately run the built-in debugger format of this switch is explained [here](/ida-9.5/add-ons/plugins/concepts/plugin-options)                                                                                                                                                                                                                                                                                                                                                                                    |
| `-R`          | load MS Windows exe file resources                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `-S###`       | [Execute a script file](#executing-a-script) when the database is opened                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `-T###`       | interpret the input file as the specified file type. The file type is specified as a prefix of a file type visible in the 'load file' dialog box. To specify archive member, put it after the colon char, for example: `-TZIP:classes.dex` You can specify any nested paths: `-T<ftype>[:<member>{:<ftype>:<member>}[:<ftype>]]` IDA does not display the "Load file" dialog in this case. Find additional information [here](/ida-9.5/core/user-interface/concepts/command-line-switches/t-switch-loader-selection) |
| `-t`          | create an empty database.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `-W###`       | specify MS Windows directory                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `-x`          | do not create segmentation (used in pair with [Dump database](/ida-9.5/ida-actions/dumpdatabase) command) this switch affects EXE and COM format files only.                                                                                                                                                                                                                                                                                                                                                         |
| `-z`          | turn on [debugging](#debugging-flags)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `-i`          | specify the address of an entry point (useful for binary files)                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `-v`          | verbose (enables console messages for the text version) or viewer mode (database is not saved for the GUI version)                                                                                                                                                                                                                                                                                                                                                                                                   |
| `-O`          | plugin options (e.g. `-Odwarf:off`), see also [-Ohexrays](/ida-9.5/core/decompiler/how-tos/running-in-batch-mode)                                                                                                                                                                                                                                                                                                                                                                                                    |
| `-?`          | this screen (works for the text version)                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `?`           | this screen (works for the text version)                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `-h`          | this screen (works for the text version)                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `-H`          | this screen (works for the text version)                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `--help`      | this screen (works for the text version)                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |

## Debugging flags

The following bitfield can be used with the `-z` directive:

```
00000001 drefs
00000002 offsets
00000004 flirt
00000008 idp module
00000010 ldr module
00000020 plugin module
00000040 ids files
00000080 config file
00000100 check heap
00000200 licensing
00000400 demangler
00000800 queue
00001000 rollback
00002000 already data or code
00004000 type system
00008000 show all notifications
00010000 debugger
00020000 [dbg\_appcall](https://idc.docs.hex-rays.com/dbg_appcall.html)
00040000 source-level debugger
00080000 accessibility
00100000 network
00200000 full stack analysis (simplex method)
00400000 handling of debug info (e.g. pdb, dwarf)
00800000 lumina
```

## Batch mode

It is possible to run IDA in so-called "batch mode", using the following the `-B` switch:

```
    ida -B input-file
```

which is equivalent to:

```
    ida -c -A -Sanalysis.idc input-file
```

(For more information, please see the analysis.idc file in the IDC subdirectory.)

A couple notes:

* regular plugins are not automatically loaded in batch mode because the `analysis.idc` file quits and the kernel has no chance to load them.
* Although the GUI version of IDA is perfectly of running batch scripts, we recommend using [the "idalib" Python module](/ida-9.5/core/idalib/overview) for this task as it uses fewer system resources.

## Executing a script

The script file extension (`.idc`, `.py`) is used to determine which interpreter will be used to run the script.

It is possible to pass command line arguments after the script name. For example: `-S"myscript.py argument1 \\"argument 2\\" argument3"`

The passed parameters are stored in the "ARGV" global IDC variable, which means:

* For IDC scripts:
  * Use `ARGV.count` to determine the number of arguments.
  * The first argument, `ARGV[0]`, contains the script name.
* For Python scripts:
  * you can import the `idc` compatibility layer (`import idc`), and then
  * access the `idc.ARGV` array

{% hint style="info" %}
The `-S` switch is not available in the IDA Home edition.
{% endhint %}


# -T switch loader selection

The `-T` switch allows the user to specify the loader to be used by IDA.

## Command line syntax

```
ida -T<prefix> <filename>
```

`<prefix>` is a unique prefix of the loader description as shown in the Load file dialog. For example, when loading a .NET executable, IDA proposes the following options:

![](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-3acd51259b36c8c5365485721334c07e8d472321%2Fload_new_file_diag.png?alt=media)

For each of them, the corresponding `T` option could be:

* `-TMicrosoft`
* `-TPortable`
* `-TMS`
* `-TBinary`

If the prefix contains spaces, quotes should be used:

`ida -T"Apple DYLD shared cache for arm64e" dyld_shared_cache_arm64e`

In case of an archive format like ZIP, you can specify the archive member to load after a colon (and additional loader names nested as needed).

For instance, to load `ObjDir.exe` contained in `AllTools.zip`:

`ida -TZIP:ObjDir.exe C:\Temp\AllTools.zip`

To load the main dex file from an `.apk` (which is also a zip file):

`ida -TZIP:classes.dex:Android file.apk`

However, it is usually better to pick the APK loader at the top level (especially in the case of multi-dex files):

`ida -TAPK file.apk`

When `-T` is specified, the initial load dialog is skipped and IDA proceeds directly to loading the file using the specified loader (but any additional prompts may still be shown).


# Configuration files

The configuration files are searched first in %IDADIR%\cfg, then in %IDAUSR%\cfg.

See documentation about the [IDAUSR](/ida-9.5/core/disassembler/concepts/environment-variables) environment variable.

In the configuration files, you can use C,C++ style comments and include files. If no file is found, IDA uses default values. IDA uses the following configuration files:

* IDA.CFG - general config file
* IDAGUI.CFG - graphics mode interface config file
* IDAPYTHON.CFG - configuration file for IDAPython. Controls settings such as the Python interpreter path and startup behavior. See the comments inside the file for available options.

{% hint style="info" %}
The IDA text UI and its configuration file (`IDATUI.CFG`) were removed starting with IDA 9.2.
{% endhint %}

In addition, the file `idapythonrc.py` in your IDA user directory (`$IDAUSR`) runs after IDAPython initializes. It can contain any Python code — for example, importing commonly used modules or configuring logging. See [IDAPython Environment](/ida-9.5/getting-started/idapython-environment) and the [IDAPython examples](/ida-9.5/developer/idapython/idapython-examples#idapythonrc) for details.


# Restricting name characters (legacy)

{% hint style="info" %}
This is a legacy behavior. By default IDA keeps names as they come from symbols, demanglers and debug information. You only need this page if you deliberately want to restore the old behavior, where names were forced into a restricted character set.
{% endhint %}

Historically, IDA replaced any character that was not part of a configured character set with `_` before storing or displaying a name. This is governed by settings in the [configuration file](/ida-9.5/core/user-interface/concepts/configuration-files) `IDA.CFG`:

* `GarbleNames` — a bitmask selecting which names are restricted (bit `0x1`: symbol names in storage; bit `0x2`: symbol names when displayed). The default `0` keeps names verbatim. This is a property of the database: it is frozen when the database is created and the configuration only seeds newly created databases.
* `NameChars` — the characters allowed in user-defined (symbol) names.
* `MangleChars` — the characters allowed in mangled names.
* `TypeNameChars` — the characters allowed in type names.

See the comment next to each setting in `IDA.CFG` for the exact syntax.


# Deep Links

Deep links are URLs that point to a specific location inside an IDA database. They use the custom `ida://` scheme and can be:

* **copied to the clipboard** from any list or code view in IDA,
* **pasted into chat, tickets, mail, or browser** so a teammate can click through and land at the exact same place,
* **followed from anywhere on your system** — clicking an `ida://` link in a browser launches IDA (or jumps to an already-running instance) on the right database, at the right address, in the right view,
* **generated and consumed programmatically** from IDAPython or C/C++ plugins.

A deep link identifies:

* the **source** the database lives in (a named directory of IDBs, optional),
* the **database** the link refers to (by file name, optional),
* the **resource** to navigate to (a function, an address, a string, a type, …),
* the exact **target** within that resource (typically an RVA or an EA, or a name for types),
* and, optionally, the **view** in which to display it (disassembly, pseudocode, hex dump, graph, …).

## How it fits together

There are two halves to the system. They are useful independently, but they combine to make `ida://` links a first-class navigation mechanism across IDA, the operating system, and your team.

### Inside IDA

The IDA Pro GUI generates and consumes `ida://` URLs natively:

* [**Copy link**](/ida-9.5/ida-actions/copylink) (action from contextual menu) on any list or code view produces a deep link to the current selection.
* **Jump →** [**Jump to link…**](/ida-9.5/ida-actions/jumpidalink) asks for an `ida://` URL and navigates to it.
* The `open_ida_link()` API (C/C++ and IDAPython) lets plugins and scripts perform the same navigation programmatically.

Inside one IDA instance, this works without any extra setup.

### Across processes — HCLI

When you click an `ida://` link in a *different* application (a browser, a chat client, a ticket), the OS needs to know who handles the `ida` scheme. That role is filled by **HCLI**, the Hex-Rays command-line companion tool ([Learn more about HCLI](https://hcli.docs.hex-rays.com/)).

Once `hcli ida protocol register` has been run, every `ida://` link clicked anywhere on the system goes through `hcli`, which then:

1. Connects to a small **IPC server** that runs in every IDA 9.4+ instance (over Unix sockets on Linux/macOS and named pipes on Windows). Each instance advertises which IDB it has open.
2. **Discovers running instances** and finds one whose IDB matches the link. If it does, the link is forwarded into that instance via IPC and the navigation happens in place — no new window.
3. If no instance has the IDB, **launches IDA** with the right IDB file, then waits for auto-analysis and forwards the link.

This is the part that makes deep links shareable across machines, teams, and external tools — not just inside one IDA window.

## URL format

```
ida://<source>/<idb-name>/<resource>?<params>
```

| Component  | Meaning                                                                                   |
| ---------- | ----------------------------------------------------------------------------------------- |
| `source`   | Optional. A named source registered with `hcli` (see below). Empty for the local machine. |
| `idb-name` | The basename of the database file (e.g. `myfile.i64`). Optional in some forms.            |
| `resource` | One of the resource names from the table below.                                           |
| `params`   | A standard URL query string (`?key=value&key=value`).                                     |

The accepted forms are:

| Form                                                       | Meaning                                                                               |
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `ida:///<resource>?…`                                      | "Whichever IDA is open." Routed to the only running instance with an IDB loaded.      |
| `ida:///<idb-name>/<resource>?…`                           | Specific IDB by name. `hcli` searches all configured sources (and running instances). |
| `ida://<source>/<idb-name>/<resource>?…`                   | Specific IDB inside a named source. `hcli` resolves the source to a directory.        |
| `ida://<host[:port]>/api/v1/buckets/<bucket>/assets/<key>` | A Knowledge Exchange link. `hcli` downloads the asset and opens it.                   |

`hcli` accepts the special source name **`localhost`** to mean "search the local machine, but write the URL in the absolute (non-relative) form" — useful when an embedding context dislikes the `ida:///` triple-slash.

When an `ida://` link is *handled inside a running IDA instance* and an `idb-name` is present that does not match the open database, IDA prints a warning to the *Output* window but still attempts the navigation.

## Query parameters

| Parameter | Used by                      | Description                                                       |
| --------- | ---------------------------- | ----------------------------------------------------------------- |
| `rva`     | All resources except `types` | Target address as relative virtual address (image-base relative). |
| `ea`      | All resources except `types` | Target address as absolute effective address.                     |
| `name`    | `types`                      | Type name.                                                        |
| `view`    | All resources                | Selects which view to open (see [Views](#views)).                 |

`ea` and `rva` are mutually exclusive. **`rva` is the recommended form for shareable links** because it is independent of ASLR and rebasing — the same RVA resolves correctly on a teammate's machine even if the binary loaded at a different base address.

Numbers may be written in decimal or hexadecimal (`0x` prefix).

## Resources

| Resource    | Refers to                                 | Required key |
| ----------- | ----------------------------------------- | ------------ |
| `functions` | A function (resolved by start address).   | `rva`/`ea`   |
| `addresses` | Any mapped address.                       | `rva`/`ea`   |
| `strings`   | A string literal at the given address.    | `rva`/`ea`   |
| `segments`  | The segment containing the given address. | `rva`/`ea`   |
| `names`     | A named location.                         | `rva`/`ea`   |
| `imports`   | An import entry.                          | `rva`/`ea`   |
| `exports`   | An export entry point.                    | `rva`/`ea`   |
| `types`     | A local type by name.                     | `name`       |
| `bookmarks` | A bookmarked address.                     | `rva`/`ea`   |

If the resource cannot be resolved (e.g. `functions?rva=…` pointing outside any function, or `types?name=…` referring to an unknown type), the link is reported as invalid in the *Output* window and no navigation happens.

## Views

The optional `view` parameter chooses which window IDA should open or focus when navigating. Each resource has a default view, listed below.

| View name    | Target window               |
| ------------ | --------------------------- |
| `disasm`     | Disassembly (flat listing). |
| `graph`      | Disassembly (graph mode).   |
| `pseudocode` | Decompiler pseudocode.      |
| `hexdump`    | Hex dump.                   |
| `functions`  | Functions list.             |
| `segments`   | Segments list.              |
| `names`      | Names list.                 |
| `imports`    | Imports list.               |
| `exports`    | Exports list.               |
| `strings`    | Strings list.               |
| `types`      | Local Types.                |
| `bookmarks`  | Bookmarks list.             |

Not every view is meaningful for every resource. The compatibility table below reflects the validation IDA performs:

| Resource    | Default view | Allowed views                                           |
| ----------- | ------------ | ------------------------------------------------------- |
| `functions` | `functions`  | `disasm`, `graph`, `hexdump`, `pseudocode`, `functions` |
| `addresses` | `disasm`     | `disasm`, `hexdump`                                     |
| `strings`   | `strings`    | `disasm`, `hexdump`, `strings`                          |
| `segments`  | `segments`   | `disasm`, `hexdump`, `segments`                         |
| `names`     | `names`      | `disasm`, `hexdump`, `names`                            |
| `imports`   | `imports`    | `disasm`, `hexdump`, `imports`                          |
| `exports`   | `exports`    | `disasm`, `hexdump`, `exports`                          |
| `types`     | `types`      | `types`                                                 |
| `bookmarks` | `disasm`     | `disasm`, `graph`, `hexdump`, `pseudocode`, `bookmarks` |

If `view` is omitted, IDA uses the default view for the resource. If `view` is incompatible with the resource, the link is rejected with an error message that lists the allowed views.

## Examples

```
# Inside one IDA instance: jump from script or "Jump to link…"
ida:///functions?rva=0x1240
ida:///functions?rva=0x1240&view=pseudocode
ida:///addresses?ea=0x401000
ida:///myfile.i64/strings?rva=0x21a0
ida:///types?name=MyStruct
ida:///bookmarks?rva=0x1240&view=graph

# Routed through hcli — uses a named source registered on the recipient's machine
ida://malware-samples/trojan1.i64/functions?rva=0x1000
ida://malware-samples/trojan1.i64/functions?rva=0x1000&view=pseudocode

# Knowledge Exchange — hcli downloads the asset before opening it
ida://ke.example.com/api/v1/buckets/mybucket/assets/mykey
```

## What's next?

For a practical tutorial covering typical use cases, such as copying your links, configuring HCLI for system-wide handling, or generating links from a script — see [Using Deep Links](/ida-9.5/core/user-interface/how-tos/using-deep-links).


# How-tos


# Exporting and copying listings

Every [listing](/ida-9.5/core/user-interface/concepts/subviews#listings) — the flat disassembly, the hex view, the decompiler's pseudocode and microcode, and the type listing — can be copied to the clipboard or exported to an HTML file. Both operations share the same idea: you point at what you want (or select it), and IDA renders it faithfully, in your current colors.

This page covers the two flows:

* [Copying to the clipboard](#copying-to-the-clipboard): the **Copy** submenu of every listing's context menu, and <kbd>Ctrl</kbd>+<kbd>C</kbd>.
* [Exporting to an HTML file](#exporting-to-an-html-file): **File → Produce file → Export to HTML...**, template-driven, up to the whole database.

## What gets copied or exported

The scope is decided the same way everywhere, in this order:

1. **The selection**, if there is one. Selections are column-precise: the copy starts and ends exactly where the painted selection does: the first line from the selection's start column, the last line up to its end column (a selection ending before a line's first glyph contributes nothing of that line).
2. **The highlighted identifier**, if any: click a name to highlight it, and a copy takes just that word.
3. Otherwise, **the item under the cursor**: the whole function in a disassembly or pseudocode listing (including its [tail chunks](https://hex-rays.com/blog/igors-tip-of-the-week-86-function-chunks), wherever in the address space they live), the whole type in a type listing, or the current item elsewhere.

When you want whole lines rather than column precision, hold <kbd>Ctrl</kbd> *before starting* the mouse selection: this enters **full-lines mode**, where every line the selection touches is selected in full: painted, copied and exported as whole lines. (On macOS this is the <kbd>⌃ Control</kbd> key, not <kbd>⌘ Command</kbd>.) Here is the same drag, without and with <kbd>Ctrl</kbd>:

![A regular selection is column-precise: it starts and ends exactly where you drag](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-39b32121a4cfd586a949c00f82051ed8230202c0%2Fselection-regular.png?alt=media)

![The same drag started with Ctrl held selects full lines](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-27e0efe7483e53f5d612cdca14505a1259e4a0b0%2Fselection-full-lines.png?alt=media)

You never have to guess: the submenu's caption names what a copy will grab: **Copy selection**, **Copy highlight**, **Copy function**, **Copy type**, or **Copy item**.

## Copying to the clipboard

Right-click any listing: the **Copy ...** submenu is the first entry. It offers the flavors that apply to that listing:

* [**As text**](/ida-9.5/ida-actions/copylistingastext): plain text, exactly as the listing shows it. This is the plain copy, bound to <kbd>Ctrl</kbd>+<kbd>C</kbd> (or your platform's Copy key).

![The As text flavor in the Copy submenu](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-1f96e68310b240295248ec1f3a6fb98d5a14ad2c%2Fcopy-as-plain.png?alt=media)

For example, with the cursor inside `main` of a small program, **As text** puts the whole function on the clipboard:

```
.text:08048492
.text:08048492 ; =============== S U B R O U T I N E =======================================
.text:08048492
.text:08048492 ; Attributes: bp-based frame
.text:08048492
.text:08048492 ; int __cdecl main(int argc, const char **argv, const char **envp)
.text:08048492                 public main
.text:08048492 main            proc near               ; DATA XREF: _start+17↑o
.text:08048492
.text:08048492 char_in_main    = byte ptr -5
.text:08048492 foo             = dword ptr -4
.text:08048492 argc            = dword ptr  8
.text:08048492 argv            = dword ptr  0Ch
.text:08048492 envp            = dword ptr  10h
.text:08048492
.text:08048492 ; __unwind { // .__gxx_personality_v0
.text:08048492                 push    ebp
.text:08048493                 mov     ebp, esp
.text:08048495                 sub     esp, 18h
.text:08048498                 mov     [ebp+char_in_main], 62h ; 'b'
.text:0804849C                 lea     eax, [ebp+char_in_main]
.text:0804849F                 mov     [esp+4], eax    ; in_char_ptr
.text:080484A3                 mov     dword ptr [esp], 7Ah ; 'z' ; in_char
.text:080484AA                 call    return_int(char,char *)
.text:080484AF                 mov     [ebp+foo], eax
.text:080484B2                 mov     eax, [ebp+foo]
.text:080484B5                 leave
.text:080484B6                 retn
.text:080484B6 ; } // starts at 8048492
.text:080484B6 main            endp
.text:080484B6
.text:080484B6 ; ---------------------------------------------------------------------------
```

* [**As HTML**](/ida-9.5/ida-actions/copylistingashtml): the same text carrying the listing's syntax colors, so it pastes styled into rich-text editors, chats and documents. The HTML source is also placed on the plain-text clipboard flavor, so pasting into a plain-text editor yields the markup itself, ready to embed.

![The As HTML flavor in the Copy submenu](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-e07aa63c1b7f97aa9ea7808319275bbd36c90438%2Fcopy-as-html.png?alt=media)

Here is the same `main`, copied **As HTML**. A whole function's markup is a wall of `<span>`s, so this sample is a selection of its first fifteen lines: the function header in full, stopping just short of the first instruction.

```html
<pre style="white-space: pre; color: blue; background-color: white;">
<span style="color: #000000;">.text:08048492</span>
<span style="color: #000000;">.text:08048492</span> <span style="color: #808080;">; =============== S U B R O U T I N E =======================================</span>
<span style="color: #000000;">.text:08048492</span>
<span style="color: #000000;">.text:08048492</span> <span style="color: #808080;">; Attributes: bp-based frame</span>
<span style="color: #000000;">.text:08048492</span>
<span style="color: #000000;">.text:08048492</span> <span style="color: #0000ff;">; int __cdecl main(int argc, const char **argv, const char **envp)</span>
<span style="color: #000000;">.text:08048492</span>                 <span style="color: #0000ff;">public </span><span style="color: #0000ff;">main</span>
<span style="color: #000000;">.text:08048492</span> <span style="color: #0000ff;">main</span><span style="color: #0000ff;">            proc near</span>               <span style="color: #8080ff;">; DATA XREF: _start+17↑o</span>
<span style="color: #000000;">.text:08048492</span>
<span style="color: #000000;">.text:08048492</span> <span style="color: #008000;">char_in_main</span>    <span style="color: #000080;">=</span> <span style="color: #000080;">byte</span> <span style="color: #000080;">ptr</span> <span style="color: #008040;">-5</span>
<span style="color: #000000;">.text:08048492</span> <span style="color: #008000;">foo</span>             <span style="color: #000080;">=</span> <span style="color: #000080;">dword</span> <span style="color: #000080;">ptr</span> <span style="color: #008040;">-4</span>
<span style="color: #000000;">.text:08048492</span> <span style="color: #008000;">argc</span>            <span style="color: #000080;">=</span> <span style="color: #000080;">dword</span> <span style="color: #000080;">ptr</span> <span style="color: #008040;"> 8</span>
<span style="color: #000000;">.text:08048492</span> <span style="color: #008000;">argv</span>            <span style="color: #000080;">=</span> <span style="color: #000080;">dword</span> <span style="color: #000080;">ptr</span> <span style="color: #008040;"> 0Ch</span>
<span style="color: #000000;">.text:08048492</span> <span style="color: #008000;">envp</span>            <span style="color: #000080;">=</span> <span style="color: #000080;">dword</span> <span style="color: #000080;">ptr</span> <span style="color: #008040;"> 10h</span>
<span style="color: #000000;">.text:08048492</span></pre>
```

{% hint style="info" %}
Every HTML flavor (the clipboard's, and the exported files' below) inlines the colors of your *current* IDA color theme, read live from the view. Switch theme, and the next copy or export follows it; nothing hard-codes a fixed palette.
{% endhint %}

* **As deeplink**: an `ida://` URL to the current location, for sharing an exact spot in the database with your team. See [Using Deep Links](/ida-9.5/core/user-interface/how-tos/using-deep-links).

![The As deeplink flavor in the Copy submenu](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-2ece51dd27586c0452b4ee6124e8c0239f1792b9%2Fcopy-as-deeplink.png?alt=media)

* **Copy with dependencies**: in type listings only: the C-style declarations of the type(s), together with every type they depend on, so the result compiles on its own.

![Copy with dependencies on a type listing](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-efad5b3c74c3ee677cda6179f4284a96f5379c18%2Fcopy-with-dependencies.png?alt=media)

In the **Local Types** side tree, the same submenu appears as **Copy type** (or **Copy types**, following your selection), offering the deeplink and with-dependencies flavors for the selected types. The plain <kbd>Ctrl</kbd>+<kbd>C</kbd> in the tree copies the item names, as in every tree.

![The Copy types submenu in the Local Types side tree](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-3b7b11885191d89785955e0617117cf8ee54e3b8%2Fcopy-types-side-tree.png?alt=media)

Every copy is confirmed in the *Output* window ("Copied ... to clipboard").

{% hint style="info" %}
In the hex view, copies currently cover whole lines; a block (column) selection is copied with its full lines.
{% endhint %}

## Exporting to an HTML file

Choose **File → Produce file → Export to HTML...** (the label follows the context: *Export selection to HTML...*, *Export "IDA View-A" to HTML...*). With an active selection, the action is also offered at the end of the listing's context menu.

![The Export to HTML dialog](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-d589808aee1a394d0363d01aea4ea93170fb7fbc%2Fexport-html-dialog.png?alt=media)

The dialog offers:

* **Output file**: where the page is written. The suggested name follows the export scope: the subject's name for a current-function/type export, the input file's name for a whole-listing one.
* **Template**: how the page is rendered (see [the templates](#the-templates) below). The frame underneath describes the selected template; its tooltip shows the template file that will run.
* **Export**: what to export: the **current function/type** under the cursor, or the **entire listing**. These radios appear only when there is no selection; a selection *is* the scope, and is exported as-is.
* **Expand collapsed functions**, for disassembly exports: collapsed functions and hidden ranges are rendered in full (the view's fold state is restored afterwards).
* **Open in browser**: open the result when done.

The template choice and the options are remembered across sessions. Generation shows a progress dialog and can be cancelled at any point; a cancelled export leaves no partial file behind.

### The templates

Three templates ship with IDA:

* **Plain static export**: a standalone HTML page of the listing, with IDA's colors, and no interactivity.

![A plain static export rendered in a browser](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-c78b3bad1f33c89c16be0ba273161bfaef9ecf91%2Fexport-html-static.png?alt=media)

* **Interactive with sidebar**: a standalone page featuring a sidebar listing the exported functions, a live jump-arrow gutter, in-document links for names and cross-references (offset-aware, pseudocode call targets included), and toggles for prefixes, cross-references, comments and arrows.

![An interactive export rendered in a browser](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-d7851950e16a35b70f07bd83919ac9f5a6161a0b%2Fexport-html-interactive.png?alt=media)

* **Snippet**: a paste-ready HTML fragment: an inline-styled block with per-span colors and no stylesheet, to drop into a document.

The templates are IDAPython scripts, shipped with the IDAPython examples and installed under `idadir/python/examples/templates` — the `README.md` there documents the contract. Picking **Custom...** in the template combo lets you run your own: any `.py` file exposing a `title`, a `description`, and a `run()` entry point. The shipped templates are the reference to start from.

{% hint style="info" %}
Without IDAPython, the export falls back to a built-in generator producing a plain static page; the template picker is not shown.
{% endhint %}

### Scripting the export

The engine behind both flows is scriptable. From IDAPython:

```python
import ida_lines

cfg = ida_lines.export_listing_t()
cfg.add_function(here())          # or cfg.add_whole_disassembly()
cfg.title = "my function"
errbuf, nlines = ida_lines.export_listing_to_file("out.html", cfg)
```

A complete headless example (exporting a database's listing without opening the UI) ships as the `export_listing.py` example of [idalib](/ida-9.5/core/idalib).

## See also

* [Using Deep Links](/ida-9.5/core/user-interface/how-tos/using-deep-links): sharing and following `ida://` links.
* [Working with types](/ida-9.5/core/types/how-tos/working-with-types): the type listing and Local Types view.
* The **File → Produce file** menu: the other output formats (ASM, LST, MAP, ...).


# Using Deep Links

Deep links let you share an exact location in a database — a function, an address, a type — as a URL that anyone on your team can click to land in the right place.

This page walks through the three main usage scenarios: copying and following links inside IDA UI, setting up system-wide `ida://` handling with HCLI for cross-application use, and generating links programmatically from scripts and plugins.

For the URL format, supported parameters and other low-level details, see the [Deep Links](/ida-9.5/core/user-interface/concepts/deep-links) concepts page.

## Using deep links from the IDA UI

### Copy link

Right-click any supported view (Disassembly, Pseudocode, Hex View, Functions, Names, Imports, Exports, Segments, Strings, Local Types, Bookmarks) and choose **Copy link** (in listing views, it is the **As deeplink** entry of the [Copy submenu](/ida-9.5/core/user-interface/how-tos/exporting-and-copying-listings#copying-to-the-clipboard)). IDA generates a deep link for the current cursor position or selected row and copies it to the system clipboard. The link is also echoed to the *Output* window.

The action is enabled whenever a database is open and a valid link can be generated for the current cursor location.

Links produced by **Copy link** are written in the **relative form** — `ida:///<idb-name>/<resource>?...`, with no source. IDA does not know about the sources you may have configured in `hcli`, so it cannot pick one for you; the empty source also happens to be the most portable choice — the link works inside IDA without any extra setup, and when followed via `hcli` on another machine it is resolved against *all* configured sources. If you want a link bound to a specific named source, edit the URL by hand to `ida://<source>/<idb-name>/<resource>?...`.

### Jump to link…

In the **Jump** menu, choose **Jump to link…** to open a prompt that accepts any `ida://` URL. This is the easiest way to follow a link that arrived in chat, an issue tracker, or a document — paste, press OK, and IDA navigates to the target inside the current instance. (For cross-process navigation — i.e., clicking a link in a browser — see the [next section](#using-deep-links-across-applications--hcli).)

## Using deep links across applications — HCLI

This approach is intended for teams working on the same binaries.

1. To make `ida://` links clickable system-wide, install [HCLI](https://hcli.docs.hex-rays.com/getting-started/installation/) and run:

```
hcli ida protocol register
```

This registers `hcli` as the system handler for the `ida` scheme.

2. After registration, clicking an `ida://` link in any application invokes `hcli ida open <uri>`, which then takes the steps described in [*How it fits together*](/ida-9.5/core/user-interface/concepts/deep-links#how-it-fits-together).

You can run the same dispatch manually:

```
hcli ida open ida:///myfile.i64/functions?rva=0x1240&view=pseudocode
hcli ida open --list                # show running IDA instances (IPC)
hcli ida open --no-launch <uri>     # only navigate if an instance is already running
hcli ida protocol unregister        # remove the OS-level handler
```

### Named sources

A *source* is a name registered with `hcli` that maps to a directory on disk containing IDB files. Sources let you write portable URLs — the same `ida://malware-samples/trojan1.i64/...` link works on every teammate's machine, even when their files live in different directories.

```
hcli ida source add malware-samples /home/alice/idbs/malware
hcli ida source add reversing       ~/work/idbs
hcli ida source list
hcli ida source remove malware-samples
```

Source names are lowercase alphanumeric plus hyphens. The name `localhost` is reserved.

When a link without a source is followed (`ida:///<idb>/<resource>?...`), `hcli` searches *all* configured sources for the named IDB.

### IPC and IDA versions

In-place navigation into a *running* IDA depends on the IPC server that runs inside **IDA 9.4 and later**. On older versions, `hcli` can still launch IDA on the right IDB, but it cannot reach into a running instance to navigate; URLs against an already-open IDB will print a notice to that effect.

{% hint style="info" %}
The IPC Server can be disabled via `DisableIpcServer` registry setting but is enabled by default and is required for communicating with `hcli`.
{% endhint %}

## Using deep links from IDAPython

```python
import ida_kernwin

ida_kernwin.open_ida_link("ida:///functions?rva=0x1240&view=pseudocode")
```

`open_ida_link(uri)` returns `True` on success and `False` on any failure (invalid URL, unknown resource, address not in the database, view incompatible with resource, etc.). On failure a description is written to the *Output* window.

## Using deep links from C/C++ plugins

The SDK exposes the same call as a single inline function in `kernwin.hpp`:

```cpp
#include <kernwin.hpp>

bool ok = open_ida_link("ida:///functions?rva=0x1240&view=pseudocode");
```

## Notes and limitations

* Inside IDA, `open_ida_link` must be invoked on the UI thread. From a worker thread, marshal the call onto the main thread (e.g. `execute_sync` in C++ or `ida_kernwin.execute_sync` in Python).
* `open_ida_link` works in the IDA Pro GUI. It is not meaningful in headless / `idalib` contexts and returns `False` there.
* Cross-process navigation requires HCLI to be installed and the protocol handler to be registered (`hcli ida protocol register`).
* In-place navigation into a running instance requires IDA 9.4 or later (which ships the IPC server). Older IDA versions can still be launched on a specific IDB but cannot be steered after the fact.
* Because `idb-name` is matched against the basename of the open database, links remain valid if you move the database to a different directory, but not if you rename it. With `hcli` named sources, the source name is the stable handle even when paths differ across machines.
* If the same IDB filename exists in more than one configured source, a link written without a source — `ida:///<idb-name>/...` — resolves to the **first match** `hcli` finds. Sources are searched in the order they were registered, recursively, and `hcli` stops at the first hit; there is no warning about the collision. To disambiguate, pin the link to a specific source: `ida://<source>/<idb-name>/...`.


# CSS-based styling

### Before IDA 7.3

IDA used to store colors in the registry:

* `HKEY_CURRENT_USER\Software\Hex-Rays\IDA` on Windows,
* `~/.idapro/ida.reg` on Linux & Mac OSX.

This was somewhat inconvenient because color values were stored in binary format, and hard to move from computer to computer.

In addition, this only lets users style a small subset of the widgets that compose IDA, which can be insufficient.

### IDA 7.3: CSS-based styling

Since we had to introduce yet another set of new colors in 7.3, we took the opportunity to moved away from the registry-stored, binary-only approach, to a CSS-based approach.

This gives us the following advantages:

* CSS is a well-known format
* CSS is human-readable
* Qt understands CSS out-of-the-box (parts of it, at least)
* Using CSS will therefore let us style not only the custom IDA widgets, but all widgets

This last point is important, because many users have been asking for the ability to style IDA more thoroughly, rather than just styling a few custom widgets (such as the disassembly views, navigation band, …)

### How IDA 7.3 CSS-based styling works

IDA 7.3 ships with 2 themes by default:

* default
* dark

Those themes are located in `$IDA_INSTALL/themes/`:

```
aundro@flatiron:~/IDA-7.3$ tree themes/
themes/
├── _base
│   └── theme.css
├── dark
│   ├── icons
│   │   ├── expand.png
│   │   └── spacer.png
│   └── theme.css
└── default
    └── theme.css

4 directories, 5 files
aundro@flatiron:~/IDA-7.3$
```

Notice that, in addition to `dark` and `default` directories, you can also spot an additional `_base` directory.

The `_base` theme holds all the CSS directives that are required for IDA to work correctly, and therefore it must be “imported” by other themes (using the IDA-specific `@importtheme` directive) before any other styling directives are declared.

For example, here are the first 3 lines of `$IDA_RELEASE/themes/dark/theme.css`:

```
aundro@flatiron:~/IDA-7.3$ head -n 3 themes/default/theme.css

@importtheme "_base";

aundro@flatiron:~/IDA-7.3$
```

### What happens when colors are modified through the “Colors” dialog?

When you change colors in the ‘Colors’ dialog, IDA will *not* modify the files that are present in `$IDA_INSTALL/themes/`.

Instead, IDA will create a file in IDA’s user directory, holding what we will refer to as “user overrides”.

Let’s assume the user:

* switched to the `dark` theme,
* modified the `Instruction` text color to red.
* clicked ‘OK’

IDA will then have created the file:

* `~/.idapro/themes/dark/user.css`
* `%APPDATA%\Hex-Rays\IDA Pro\themes\dark\user.css` on Windows

with the following contents:

```
aundro@flatiron:~/.idapro$ tree themes
themes
└── dark
    └── user.css

1 directory, 1 file
aundro@flatiron:~/.idapro$
aundro@flatiron:~/.idapro$ cat themes/dark/user.css
/* NOTE: This is an autogenerated file; please do not edit. */

CustomIDAMemo
{
    qproperty-line-fg-insn: red;
}
aundro@flatiron:~/.idapro$
```

In other words, the themes that are shipped with IDA are never modified, but instead a “user override” file is created, that will contain whatever customization the user made to the theme.

### Importing/Exporting themes customization

IDA 7.3 removed the Import/Export feature from its `Colors` dialog, because an equivalent is already automatically present in the form of those “user overrides” files, which can be found in:

* `%APPDATA%\Hex-Rays\IDA Pro\themes\*\user.css` on Windows,
* `~/.idapro/themes/*/user.css` on Linux and Mac OSX.

In order to re-use customizations across different computers, it is enough to just copy those `user.css` file(s).

### Debugging style sheets lookup

In case IDA misbehaves, and appears to ignore some styling directives, it’s possible to launch IDA with the following command-line flag to debug themes loading: `ida -z1000000`

In IDA’s `Output window`, you should spot something along the lines of this:

```
Themes: Trying file "/home/aundro/IDA-7.3/themes/dark/theme.css" ... found.
Themes: Trying file "/home/aundro/.idapro/themes/dark/theme.css" ... not found.
Themes: Found @importtheme (/home/aundro/IDA-7.3/themes/dark/theme.css:6)
Themes: Trying file "/home/aundro/IDA-7.3/themes/_base/theme.css" ... found.
Themes: Trying file "/home/aundro/.idapro/themes/_base/theme.css" ... not found.
Themes: Trying file "/home/aundro/IDA-7.3/themes/dark/user.css" ... not found.
Themes: Trying file "/home/aundro/.idapro/themes/dark/user.css" ... found.
```

First of all, IDA tries to load the desired (`dark`) theme contents (that corresponds to the first 5 lines):

* IDA looked for `$IDA_INSTALL/themes/dark/theme.css`, and found it
* IDA also looked for `~/.idapro/themes/dark/theme.css`! (we’ll discuss this in the following chapter)
* IDA spotted that the `dark` theme imports the `_base` theme, and loaded contents from that one as well.

Then, IDA tries to load user overrides for the `dark` theme (corresponds to the 2 final lines):

* IDA looked for `$IDA_INSTALL/themes/dark/user.css`, but didn’t find it (this is, in fact, pretty much unnecessary, since user overrides should never be in IDA’s installation directory. We’ll eventually get rid of this.)
* IDA looked for in `~/.idapro/themes/dark/user.css`, and found it.

### Adding themes

As was mentioned in the previous chapter, IDA also looks for themes contents in IDA’s user directory:

* `%APPDATA%\Hex-Rays\IDA Pro\themes` on Windows,
* `~/.idapro/themes` on Linux & Mac OSX

That means it’s possible to add your own themes there, without having to modify the (possibly read-only) `$IDA_INSTALL` directory.

In addition, putting additional themes in IDA’s user directory means that new version of IDA will be able to pick them up automatically.

### Example new theme

Let’s say you want to create a new theme, called `blue`.

You should therefore create the following CSS file:

* `~/.idapro/themes/blue/theme.css`

…in which you can override anything you want, after importing the `_base` theme.

For example:

```
aundro@flatiron:~/.idapro$ cat themes/blue/theme.css

@importtheme "_base";

QWidget
{
    background-color: lightblue;
}

CustomIDAMemo
{
    qproperty-line-fg-regular-comment: red;
    [...snipped...]
}
aundro@flatiron:~/.idapro$
```

You can then ship that `~/.idapro/themes/blue/theme.css` file to other users, and any personal modifications they make to it, will be stored in `~/.idapro/themes/blue/user.css`, leaving your original `blue` theme untouched.

### What can be styled, and how?

Conceptually, IDA’s CSS styling can be “split” into 2 categories:

1. Core Qt widgets styling
2. IDA custom widgets styling

#### 1) Core Qt widgets styling

In order to know what, and how to style Qt widgets, the best is to have a look at the references:

* [Qt Style Sheets](https://doc.qt.io/qt-5/stylesheet.html), and
* [Qt Style Sheets Reference](https://doc.qt.io/qt-5/stylesheet-reference.html)

#### 2) IDA custom widgets styling

IDA’s main stylable custom widgets have the following class names:

* CustomIDAMemo
* TextArrows
* MainMsgList
* TCpuRegs
* navband\_t

You can find the entire set of properties supported by those, by looking at the contents of:

* `$IDA_INSTALL/themes/_base/theme.css`
* `$IDA_INSTALL/themes/default/theme.css`

## A note about the “.clr” file format

In order to re-use color schemes with IDA < 7.3, users had to export, and then import them using `.clr` files.

It’s worth pointing out that colors in those files, are in the form `"BBGGRR"`, while CSS expects `"#RRGGBB"`, so you will need to pay attention to that when porting colors from a `.clr` file.

Alternatively, you can use the following script, which might help get most of the job done.

### A note about the dark theme

Note that even though IDA ships with a ‘dark’ theme, the version of Qt we use still doesn’t support OS-induced theme switches, and therefore IDA won’t automatically switch to it; the user will still have to change it manually.

### Restrictions

Qt is mostly stylable using CSS, but it has a few restrictions:

* Styling of URLs in `QLabel` instances is not supported (see [this question](https://stackoverflow.com/questions/5497799/how-do-i-customise-the-appearance-of-links-in-qlabels-using-style-sheets))
* In tabular views (e.g., the `Functions window` widget), we added the ability to highlight the portions of text that match the “quick filter” query (which can be opened using `Ctrl+F`). Unfortunately, the code we added to do that, will simply not be called for items in those views to which CSS directives apply. This is the case for e.g., “selected” items, in the `dark` mode. We will try and solve this in the future, but currently don’t have a fix.


# Reference

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Menu Bar Actions</strong></td><td>Reference of actions accessible via the IDA top menu bar</td><td></td><td><a href="/ida-9.5/core/user-interface/reference/menu-bar-actions">Menu Bar Actions</a></td></tr><tr><td><strong>Input Reference</strong></td><td>Accepted formats and syntax for entering addresses, identifiers, numbers and more across IDA input fields</td><td></td><td><a href="/ida-9.5/core/user-interface/reference/input-reference">Input Reference</a></td></tr><tr><td><strong>Shortcuts</strong></td><td>Common default shortcuts</td><td></td><td><a href="/ida-9.5/core/user-interface/reference/shortcuts">Shortcuts</a></td></tr><tr><td><strong>All IDA Actions</strong></td><td>Complete reference of all IDA actions</td><td></td><td><a href="/ida-9.5/ida-actions">IDA Actions</a></td></tr></tbody></table>


# Menu Bar Actions

{% hint style="info" %}
The menu bar in IDA gives you access to whole range of commands. **All menus are always available, but some adapt their content based on your current view and your cursor position**.
{% endhint %}

## Context-Independent Menus

These menus provide the same options regardless of which view you're working in:

* [File](/ida-9.5/core/user-interface/reference/menu-bar-actions/common-actions): Handles opening and loading binaries, importing/exporting data, and producing output files.
* [View](/ida-9.5/core/user-interface/reference/menu-bar-actions/common-actions-1): Provides fast access and options to show and organize views, graphs, and toolbars.
* [Debugger](/ida-9.5/core/user-interface/reference/menu-bar-actions/common-actions-2): Provides controls for running, stepping through, and analyzing programs in real-time.
* [Lumina](/ida-9.5/core/user-interface/reference/menu-bar-actions/extensions/common-actions-2): Connects to Private or Public Lumina service to share and retrieve function metadata across different binaries.
* [Options](/ida-9.5/core/user-interface/reference/menu-bar-actions/common-actions-3): Configures IDA's appearance, fonts, colors, disassembly preferences, and more.
* [Windows](/ida-9.5/core/user-interface/reference/menu-bar-actions/common-actions-4): Opens various tool windows and manages desktops.
* [Help](/ida-9.5/core/user-interface/reference/menu-bar-actions/common-actions-5): Your gateway to various help resources and license manager.

## View-Dependent Menus

The following top-level menus (1) **dynamically change their content based on your active view** (2) and cursor location.

* **Edit** - Provides context-sensitive editing operations like patching bytes, modifying instructions, renaming symbols, and changing data types.
* **Jump** - Navigates to addresses, functions, cross-references, and other locations within the binary.
* **Search** - Search for strings, patterns, instructions, constants, and references in the disassembly.

![View-Dependent Menus](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-2c60c1caf6ba207ff96a25e82540a7246a22c7e6%2Fmenu-bar-views.png?alt=media)

| Icon                                                                                                                                                                                                             | Current View         | Context-Sensitive Menu Actions                                                                                                                                                                                                                                                                                                     |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9c4479501527093c8d38e69e2a739dbf77dd0ed3%2FGraphFlatView.svg?alt=media)  | Disassembly/IDA View | <p>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/ida-view-actions">Edit</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/jump/ida-view-actions">Jump</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/search/ida-view-actions">Search</a></p>          |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-dde690787528bea678f8e0a5306552e2221bc1fe%2FToggleDump.svg?alt=media)     | Hex View             | <p>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/hex-view-actions">Edit</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/jump/hex-view-actions">Jump</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/search/hex-view-actions">Search</a></p>          |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9c4479501527093c8d38e69e2a739dbf77dd0ed3%2FGraphFlatView.svg?alt=media)  | Pseudocode           | <p>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/pseudocode-actions">Edit</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/jump/pseudocode-actions">Jump</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/search/pseudocode-actions">Search</a></p>    |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9c4479501527093c8d38e69e2a739dbf77dd0ed3%2FGraphFlatView.svg?alt=media)  | Microcode            | <p>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/microcode-actions">Edit</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/jump/microcode-actions">Jump</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/search/microcode-actions">Search</a></p>       |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9d9b80b050217e69054ea096a1b6bae238be7aa5%2FOpenLocalTypes.svg?alt=media) | Local Types          | <p>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/local-types-actions">Edit</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/jump/local-types-actions">Jump</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/search/local-types-actions">Search</a></p> |
| ![Icon](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-eaa1faa117f5d101a74178d599480f16d0ff50ab%2FOpenFunctions.svg?alt=media)  | Functions            | <p>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/functions-actions">Edit</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/jump/functions-actions">Jump</a><br>• <a href="/ida-9.5/core/user-interface/reference/menu-bar-actions/search/functions-actions">Search</a></p>       |


# File

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                    | Action Name                | Description                                                                                                                                                                                                                                                                |
| ----------------------------------------------------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [New instance](/ida-9.5/ida-actions/newinstance)                  | `NewInstance`              | Open a new IDA instance                                                                                                                                                                                                                                                    |
| [Open...](/ida-9.5/ida-actions/loadnewfile)                       | `LoadNewFile`              | Load a new file or database.                                                                                                                                                                                                                                               |
| [Reload the input file](/ida-9.5/ida-actions/reloadfile)          | `ReloadFile`               | Reload the input file.                                                                                                                                                                                                                                                     |
| [Additional binary file...](/ida-9.5/ida-actions/loadfile)        | `LoadFile`                 | Load additional binary file.                                                                                                                                                                                                                                               |
| [IDS/IDT file...](/ida-9.5/ida-actions/loadidsfile)               | `LoadIdsFile`              | Load a symbol file (IDS).                                                                                                                                                                                                                                                  |
| [PDB file...](/ida-9.5/ida-actions/loadpdbfile)                   | `LoadPdbFile`              | Load a debug information file (PDB).                                                                                                                                                                                                                                       |
| [DBG file...](/ida-9.5/ida-actions/loaddbgfile)                   | `LoadDbgFile`              | Load a debug information file (DBG).                                                                                                                                                                                                                                       |
| [TDS file...](/ida-9.5/ida-actions/loadtdsfile)                   | `LoadTdsFile`              | Load a debug information file (TDS).                                                                                                                                                                                                                                       |
| [FLIRT signature file...](/ida-9.5/ida-actions/loadsigfile)       | `LoadSigFile`              | Load a FLIRT signature file.                                                                                                                                                                                                                                               |
| [Parse C header file...](/ida-9.5/ida-actions/loadheaderfile)     | `LoadHeaderFile`           | This command allows you to apply type declarations from a C header file to the program.                                                                                                                                                                                    |
| [Create MAP file...](/ida-9.5/ida-actions/producemap)             | `ProduceMap`               | Create a map information file.                                                                                                                                                                                                                                             |
| [Create ASM file...](/ida-9.5/ida-actions/produceasm)             | `ProduceAsm`               | Create an assembler file.                                                                                                                                                                                                                                                  |
| [Create INC file...](/ida-9.5/ida-actions/produceinc)             | `ProduceInc`               | Create an include file.                                                                                                                                                                                                                                                    |
| [Create LST file...](/ida-9.5/ida-actions/producelst)             | `ProduceLst`               | Create a listing file.                                                                                                                                                                                                                                                     |
| [Create EXE file...](/ida-9.5/ida-actions/produceexe)             | `ProduceExe`               | Create an executable file.                                                                                                                                                                                                                                                 |
| [Create DIF file...](/ida-9.5/ida-actions/producediff)            | `ProduceDiff`              | Create a difference file.                                                                                                                                                                                                                                                  |
| Create C file...                                                  | `hx:CreateCFile`           |                                                                                                                                                                                                                                                                            |
| [Export to HTML...](/ida-9.5/ida-actions/producehtml)             | `ProduceHtml`              | Export a listing to an HTML file.                                                                                                                                                                                                                                          |
| Create SIG file...                                                | `makesig:create_signature` |                                                                                                                                                                                                                                                                            |
| [Create flow chart GDL...](/ida-9.5/ida-actions/producefuncgdl)   | `ProduceFuncGdl`           | Create flow chart GDL.                                                                                                                                                                                                                                                     |
| [Create call graph GDL...](/ida-9.5/ida-actions/producecallgdl)   | `ProduceCallGdl`           | Create call graph GDL.                                                                                                                                                                                                                                                     |
| [Create C header file...](/ida-9.5/ida-actions/produceheader)     | `ProduceHeader`            | Creates a header file from local types.                                                                                                                                                                                                                                    |
| [Dump database to IDC file...](/ida-9.5/ida-actions/dumpdatabase) | `DumpDatabase`             | Dump database to IDC file. This command saves current IDA database into a text file.                                                                                                                                                                                       |
| [Dump typeinfo to IDC file...](/ida-9.5/ida-actions/dumptypes)    | `DumpTypes`                | Dump type information to IDC file. This command saves information about the user-defined types from the IDA database into a text file.                                                                                                                                     |
| [Script file...](/ida-9.5/ida-actions/execute)                    | `Execute`                  | Prompts for a script file on disk and executes it. Executed files are tracked in the **Recent scripts** tab of the [Scripts window](https://github.com/HexRaysSA/ida-docs/tree/9.5/core/user-interface/reference/menu-bar/core/user-interface/concepts/scripts-window.md). |
| [Script command...](/ida-9.5/ida-actions/executeline)             | `ExecuteLine`              | Executes a one-off script command through the command-line input line at the bottom of the IDA window.                                                                                                                                                                     |
| [Save](/ida-9.5/ida-actions/savebase)                             | `SaveBase`                 | Save the database                                                                                                                                                                                                                                                          |
| [Save as...](/ida-9.5/ida-actions/savebaseas)                     | `SaveBaseAs`               | Save the database as...                                                                                                                                                                                                                                                    |
| [Take database snapshot...](/ida-9.5/ida-actions/savebasesnap)    | `SaveBaseSnap`             | Take database snapshot.                                                                                                                                                                                                                                                    |
| [Close](/ida-9.5/ida-actions/closebase)                           | `CloseBase`                | Close                                                                                                                                                                                                                                                                      |
| [Quick start](/ida-9.5/ida-actions/quickstart)                    | `QuickStart`               | Display the quick start window                                                                                                                                                                                                                                             |
| [Exit](/ida-9.5/ida-actions/quitida)                              | `QuitIDA`                  | Save everything and exit IDA                                                                                                                                                                                                                                               |


# Edit


# IDA View

{% hint style="info" %}
The options below appear when the **Edit menu is opened from the** [**IDA View**](/ida-9.5/core/user-interface/concepts/subviews#ida-view). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                                          | Action Name                     | Description                                                                                                                                                                                                                                                                                                                              |
| --------------------------------------------------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Begin selection](/ida-9.5/ida-actions/anchor)                                          | `Anchor`                        | Begin selection. Some IDA commands such as selecting a portion of file to output or specifying a segment to move need an anchor.                                                                                                                                                                                                         |
| [Select all](/ida-9.5/ida-actions/selectall)                                            | `SelectAll`                     | Select all                                                                                                                                                                                                                                                                                                                               |
| [Select identifier](/ida-9.5/ida-actions/selectidentifier)                              | `SelectIdentifier`              | Select identifier                                                                                                                                                                                                                                                                                                                        |
| [Undo Process options...](/ida-9.5/ida-actions/undoaction)                              | `UndoAction`                    | This command reverts the database to the state before executing the last user action.                                                                                                                                                                                                                                                    |
| [Redo](/ida-9.5/ida-actions/redoaction)                                                 | `RedoAction`                    | This command reverts the previously issued Undo command.                                                                                                                                                                                                                                                                                 |
| [Export data](/ida-9.5/ida-actions/exportdata)                                          | `ExportData`                    | Export data                                                                                                                                                                                                                                                                                                                              |
| [Code](/ida-9.5/ida-actions/makecode)                                                   | `MakeCode`                      | Convert to instruction.                                                                                                                                                                                                                                                                                                                  |
| [Data](/ida-9.5/ida-actions/makedata)                                                   | `MakeData`                      | Convert to data.                                                                                                                                                                                                                                                                                                                         |
| [Struct var...](/ida-9.5/ida-actions/declarestructvar)                                  | `DeclareStructVar`              | Declare a structure variable.                                                                                                                                                                                                                                                                                                            |
| [String](/ida-9.5/ida-actions/makestrlit)                                               | `MakeStrlit`                    | Convert to string.                                                                                                                                                                                                                                                                                                                       |
| [C-style (0 terminated)](/ida-9.5/ida-actions/stringc)                                  | `StringC`                       | C-style (0 terminated)                                                                                                                                                                                                                                                                                                                   |
| [DOS style ($ terminated)](/ida-9.5/ida-actions/stringdos)                              | `StringDOS`                     | DOS style ($ terminated)                                                                                                                                                                                                                                                                                                                 |
| [Pascal style (1 byte length)](/ida-9.5/ida-actions/stringpascal1)                      | `StringPascal1`                 | Pascal style (1 byte length)                                                                                                                                                                                                                                                                                                             |
| [Wide pascal (2 byte length)](/ida-9.5/ida-actions/stringpascal2)                       | `StringPascal2`                 | Wide pascal (2 byte length)                                                                                                                                                                                                                                                                                                              |
| [Delphi (4 byte length)](/ida-9.5/ida-actions/stringdelphi)                             | `StringDelphi`                  | Delphi (4 byte length)                                                                                                                                                                                                                                                                                                                   |
| [Unicode](/ida-9.5/ida-actions/stringunicode)                                           | `StringUnicode`                 | Unicode                                                                                                                                                                                                                                                                                                                                  |
| [Unicode pascal (2 byte length)](/ida-9.5/ida-actions/stringunicodepascal2)             | `StringUnicodePascal2`          | Unicode pascal (2 byte length)                                                                                                                                                                                                                                                                                                           |
| [Unicode wide pascal (4 byte length)](/ida-9.5/ida-actions/stringunicodepascal4)        | `StringUnicodePascal4`          | Unicode wide pascal (4 byte length)                                                                                                                                                                                                                                                                                                      |
| [Array...](/ida-9.5/ida-actions/makearray)                                              | `MakeArray`                     | Convert to array.                                                                                                                                                                                                                                                                                                                        |
| [Undefine](/ida-9.5/ida-actions/makeunknown)                                            | `MakeUnknown`                   | Convert to undefined.                                                                                                                                                                                                                                                                                                                    |
| [Rename](/ida-9.5/ida-actions/makename)                                                 | `MakeName`                      | Rename the current location.                                                                                                                                                                                                                                                                                                             |
| [Offset (data segment)](/ida-9.5/ida-actions/opoffset)                                  | `OpOffset`                      | Convert the current operand to an offset in the data segment.                                                                                                                                                                                                                                                                            |
| [Offset (current segment)](/ida-9.5/ida-actions/opoffsetcs)                             | `OpOffsetCs`                    | Convert the current operand to an offset in the current segment.                                                                                                                                                                                                                                                                         |
| [Offset by (any segment)...](/ida-9.5/ida-actions/opanyoffset)                          | `OpAnyOffset`                   | Convert the current operand to an offset in any segment.                                                                                                                                                                                                                                                                                 |
| [Offset (user-defined)...](/ida-9.5/ida-actions/opuseroffset)                           | `OpUserOffset`                  | Convert the current operand to an offset with any base.                                                                                                                                                                                                                                                                                  |
| [Offset (struct)...](/ida-9.5/ida-actions/opstructoffset)                               | `OpStructOffset`                | Convert the current operand to a structure offset.                                                                                                                                                                                                                                                                                       |
| [Number (default)](/ida-9.5/ida-actions/opnumber)                                       | `OpNumber`                      | Convert the current operand to a number.                                                                                                                                                                                                                                                                                                 |
| [Hexadecimal](/ida-9.5/ida-actions/ophex)                                               | `OpHex`                         | Convert the current operand to a hexadecimal number.                                                                                                                                                                                                                                                                                     |
| [Decimal](/ida-9.5/ida-actions/opdecimal)                                               | `OpDecimal`                     | Convert the current operand to a decimal number.                                                                                                                                                                                                                                                                                         |
| [Octal](/ida-9.5/ida-actions/opoctal)                                                   | `OpOctal`                       | Convert the current operand to a octal number.                                                                                                                                                                                                                                                                                           |
| [Binary](/ida-9.5/ida-actions/opbinary)                                                 | `OpBinary`                      | Convert the current operand to a binary number.                                                                                                                                                                                                                                                                                          |
| [Floating point](/ida-9.5/ida-actions/opfloat)                                          | `OpFloat`                       | Convert to floating point.                                                                                                                                                                                                                                                                                                               |
| [Toggle leading zeroes](/ida-9.5/ida-actions/toggleleadingzeroes)                       | `ToggleLeadingZeroes`           | Toggle leading zeroes.                                                                                                                                                                                                                                                                                                                   |
| [Character](/ida-9.5/ida-actions/opchar)                                                | `OpChar`                        | Convert the current operand to a character constant                                                                                                                                                                                                                                                                                      |
| [Segment](/ida-9.5/ida-actions/opsegment)                                               | `OpSegment`                     | Convert the current operand to a segment base                                                                                                                                                                                                                                                                                            |
| [Enum member...](/ida-9.5/ida-actions/openum)                                           | `OpEnum`                        | Convert the current operand to a symbolic constant                                                                                                                                                                                                                                                                                       |
| [Stack variable](/ida-9.5/ida-actions/opstackvariable)                                  | `OpStackVariable`               | Convert the current operand to a stack variable                                                                                                                                                                                                                                                                                          |
| [Change sign](/ida-9.5/ida-actions/changesign)                                          | `ChangeSign`                    | Change the sign of the current operand                                                                                                                                                                                                                                                                                                   |
| [Bitwise negate](/ida-9.5/ida-actions/bitwisenegate)                                    | `BitwiseNegate`                 | Perform bitwise negation of the current operand                                                                                                                                                                                                                                                                                          |
| [Manual...](/ida-9.5/ida-actions/manualoperand)                                         | `ManualOperand`                 | Enter the current operand manually.                                                                                                                                                                                                                                                                                                      |
| [Set operand type...](/ida-9.5/ida-actions/setoptype)                                   | `SetOpType`                     | Set the current operand's type                                                                                                                                                                                                                                                                                                           |
| Copy pseudocode to disassembly                                                          | `hx:EditCmt`                    |                                                                                                                                                                                                                                                                                                                                          |
| Add pseudocode comments...                                                              | `hx:AddPseudoCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| Delete pseudocode comments...                                                           | `hx:DelPseudoCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| [Enter comment...](/ida-9.5/ida-actions/makecomment)                                    | `MakeComment`                   | Enter a regular comment.                                                                                                                                                                                                                                                                                                                 |
| [Enter repeatable comment...](/ida-9.5/ida-actions/makerptcmt)                          | `MakeRptCmt`                    | Enter repeatable comment.                                                                                                                                                                                                                                                                                                                |
| [Enter anterior lines...](/ida-9.5/ida-actions/makeextralinea)                          | `MakeExtraLineA`                | Enter lines preceding the generated lines.                                                                                                                                                                                                                                                                                               |
| [Enter posterior lines...](/ida-9.5/ida-actions/makeextralineb)                         | `MakeExtraLineB`                | Enter lines following the generated lines                                                                                                                                                                                                                                                                                                |
| Edit block comment...                                                                   | `mv:EditBlockCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| Edit comment...                                                                         | `mv:EditCmt`                    |                                                                                                                                                                                                                                                                                                                                          |
| [Create segment...](/ida-9.5/ida-actions/createsegment)                                 | `CreateSegment`                 | This command allows you to create a new segment.                                                                                                                                                                                                                                                                                         |
| [Edit segment...](/ida-9.5/ida-actions/editsegment)                                     | `EditSegment`                   | Edit segment attributes. This command opens the Change segment attributes dialog.                                                                                                                                                                                                                                                        |
| [Delete segment...](/ida-9.5/ida-actions/killsegment)                                   | `KillSegment`                   | Delete segment.                                                                                                                                                                                                                                                                                                                          |
| [Move current segment...](/ida-9.5/ida-actions/movesegment)                             | `MoveSegment`                   | Change the current segment boundaries.                                                                                                                                                                                                                                                                                                   |
| [Rebase program...](/ida-9.5/ida-actions/rebaseprogram)                                 | `RebaseProgram`                 | Rebase program.                                                                                                                                                                                                                                                                                                                          |
| [Change segment translation...](/ida-9.5/ida-actions/segmenttranslation)                | `SegmentTranslation`            | Change the current segment translation table                                                                                                                                                                                                                                                                                             |
| [Change segment register value...](/ida-9.5/ida-actions/setsegmentregister)             | `SetSegmentRegister`            | Change segment register value.                                                                                                                                                                                                                                                                                                           |
| [Set default segment register value...](/ida-9.5/ida-actions/setsegmentregisterdefault) | `SetSegmentRegisterDefault`     | Set default segment register value.                                                                                                                                                                                                                                                                                                      |
| [Struct var...](/ida-9.5/ida-actions/declarestructvar)                                  | `DeclareStructVar`              | Declare a structure variable.                                                                                                                                                                                                                                                                                                            |
| [Force zero offset field](/ida-9.5/ida-actions/zerostructoffset)                        | `ZeroStructOffset`              | Toggle display of the first field of a structure in an offset expression.                                                                                                                                                                                                                                                                |
| [Select union member...](/ida-9.5/ida-actions/selectunionmember)                        | `SelectUnionMember`             | Choose the representation of a union member.                                                                                                                                                                                                                                                                                             |
| [Create struct from selection](/ida-9.5/ida-actions/createstructfromdata)               | `CreateStructFromData`          | This command defines a new structure from data already defined. The new structure is created with adequate data types, and each member uses the current data name if it is available.                                                                                                                                                    |
| [Copy field info to pointers](/ida-9.5/ida-actions/copyfieldstopointers)                | `CopyFieldsToPointers`          | Copy field info to pointed addresses. This command scans the current struct variable and renames the locations pointed by offset expressions unless they already have a non-dummy name.                                                                                                                                                  |
| [Create function...](/ida-9.5/ida-actions/makefunction)                                 | `MakeFunction`                  | Create a new function in the disassembly.                                                                                                                                                                                                                                                                                                |
| [Edit function...](/ida-9.5/ida-actions/editfunction)                                   | `EditFunction`                  | Edit function attributes - change function properties, including bounds, name, flags, and stack frame parameters. This command opens an Edit Function dialog, and allows you to modify function characteristics and stack frame structure. If the current address does not belong to any function, IDA will beep.                        |
| [Append function tail...](/ida-9.5/ida-actions/appendfunctiontail)                      | `AppendFunctionTail`            | This command appends an arbitrary range of the program to a function definition. A range must be selected before applying this command. This range must not intersect with other function chunks (however, an existing tail can be added to multiple functions).                                                                         |
| [Remove function tail...](/ida-9.5/ida-actions/removefunctiontail)                      | `RemoveFunctionTail`            | Remove function tail.                                                                                                                                                                                                                                                                                                                    |
| [Delete function](/ida-9.5/ida-actions/delfunction)                                     | `DelFunction`                   | Delete function. Deleting a function deletes only information about a function, such as information about stack variables, comments, function type, etc. The instructions composing the function will remain intact.                                                                                                                     |
| [Move to folder...](/ida-9.5/ida-actions/movefunctiontofolder)                          | `MoveFunctionToFolder`          | This is the listing-specific version of [the tree view's similar operation](/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/functions-actions), and lets you conveniently organize your database directly from `IDA View-*`, `Pseudocode-*` and `Microcode-*` widgets, without having to go through the "Functions" widget. |
| [Set function end](/ida-9.5/ida-actions/functionend)                                    | `FunctionEnd`                   | Change the function end address. This command changes the current or previous function bounds so that its end will be set at the cursor. If it is not possible, IDA beeps.                                                                                                                                                               |
| [Stack variables...](/ida-9.5/ida-actions/openstackvariables)                           | `OpenStackVariables`            | Open the stack variables window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                                                                                                |
| [Change stack pointer...](/ida-9.5/ida-actions/changestackpointer)                      | `ChangeStackPointer`            | Change stack pointer. This command allows you to specify how the stack pointer (SP) is modified by the current instruction.                                                                                                                                                                                                              |
| [Rename register...](/ida-9.5/ida-actions/renameregister)                               | `RenameRegister`                | Rename a general processor register.                                                                                                                                                                                                                                                                                                     |
| [Set type...](/ida-9.5/ida-actions/settype)                                             | `SetType`                       | Set type information for an item or current function.                                                                                                                                                                                                                                                                                    |
| [Change byte...](/ida-9.5/ida-actions/patchbyte)                                        | `PatchByte`                     | Change program bytes.                                                                                                                                                                                                                                                                                                                    |
| [Change word...](/ida-9.5/ida-actions/patchword)                                        | `PatchWord`                     | Change program words                                                                                                                                                                                                                                                                                                                     |
| [Assemble...](/ida-9.5/ida-actions/assemble)                                            | `Assemble`                      | This command allows you to assemble instructions. Currently, only the IBM PC processors provide an assembler, nonetheless, plugin writers can extend or totally replace the built-in assembler by writing their own.                                                                                                                     |
| [Patched bytes](/ida-9.5/ida-actions/patchedbytes)                                      | `PatchedBytes`                  | Open the Patched bytes window. The Patched bytes view shows the list of the patched locations in the database. It also allows you to revert modifications selectively.                                                                                                                                                                   |
| [Apply patches to input file...](/ida-9.5/ida-actions/applypatches)                     | `ApplyPatches`                  | Apply previously patched bytes back to the input file. If the "Restore" option is selected, then the original bytes will be applied to the input file.                                                                                                                                                                                   |
| Specify switch idiom...                                                                 | `uiswitch:SpecSwitchIdiom`      |                                                                                                                                                                                                                                                                                                                                          |
| [Create alignment directive...](/ida-9.5/ida-actions/makealignment)                     | `MakeAlignment`                 | Create alignment directive.                                                                                                                                                                                                                                                                                                              |
| [Manual instruction...](/ida-9.5/ida-actions/manualinstruction)                         | `ManualInstruction`             | Specify alternate representation of the current instruction.                                                                                                                                                                                                                                                                             |
| [Color instruction...](/ida-9.5/ida-actions/colorinstruction)                           | `ColorInstruction`              | This command allows you to specify the background color for the current instruction or data item.                                                                                                                                                                                                                                        |
| Reset decompiler information...                                                         | `hx:ResTypeInfo`                |                                                                                                                                                                                                                                                                                                                                          |
| Toggle skippable instructions...                                                        | `hx:ToggleSkippableInsn`        |                                                                                                                                                                                                                                                                                                                                          |
| Decompile as call...                                                                    | `hx:UserDefinedCall`            |                                                                                                                                                                                                                                                                                                                                          |
| [Toggle border](/ida-9.5/ida-actions/toggleborder)                                      | `ToggleBorder`                  | Toggle the display of a border between code and data.                                                                                                                                                                                                                                                                                    |
| detect and parse golang metadata                                                        | `golang:detect_and_parse`       |                                                                                                                                                                                                                                                                                                                                          |
| Open picture in default viewer                                                          | `picture_search:open_in_viewer` |                                                                                                                                                                                                                                                                                                                                          |
| Save picture                                                                            | `picture_search:save_picture`   |                                                                                                                                                                                                                                                                                                                                          |
| [Quick run plugins](/ida-9.5/ida-actions/quickrunplugins)                               | `QuickRunPlugins`               | Quickly run a plugin                                                                                                                                                                                                                                                                                                                     |


# Pseudocode

{% hint style="info" %}
The options below appear when the **Edit menu is opened from the** [**Pseudocode View**](/ida-9.5/core/user-interface/concepts/subviews#pseudocode-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                                          | Action Name                     | Description                                                                                                                                                                                                                                                                                                                              |
| --------------------------------------------------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Begin selection](/ida-9.5/ida-actions/anchor)                                          | `Anchor`                        | Begin selection. Some IDA commands such as selecting a portion of file to output or specifying a segment to move need an anchor.                                                                                                                                                                                                         |
| [Select all](/ida-9.5/ida-actions/selectall)                                            | `SelectAll`                     | Select all                                                                                                                                                                                                                                                                                                                               |
| [Select identifier](/ida-9.5/ida-actions/selectidentifier)                              | `SelectIdentifier`              | Select identifier                                                                                                                                                                                                                                                                                                                        |
| [Undo Process options...](/ida-9.5/ida-actions/undoaction)                              | `UndoAction`                    | This command reverts the database to the state before executing the last user action.                                                                                                                                                                                                                                                    |
| [Redo](/ida-9.5/ida-actions/redoaction)                                                 | `RedoAction`                    | This command reverts the previously issued Undo command.                                                                                                                                                                                                                                                                                 |
| [Export data](/ida-9.5/ida-actions/exportdata)                                          | `ExportData`                    | Export data                                                                                                                                                                                                                                                                                                                              |
| [Code](/ida-9.5/ida-actions/makecode)                                                   | `MakeCode`                      | Convert to instruction.                                                                                                                                                                                                                                                                                                                  |
| [Data](/ida-9.5/ida-actions/makedata)                                                   | `MakeData`                      | Convert to data.                                                                                                                                                                                                                                                                                                                         |
| [Struct var...](/ida-9.5/ida-actions/declarestructvar)                                  | `DeclareStructVar`              | Declare a structure variable.                                                                                                                                                                                                                                                                                                            |
| [String](/ida-9.5/ida-actions/makestrlit)                                               | `MakeStrlit`                    | Convert to string.                                                                                                                                                                                                                                                                                                                       |
| [C-style (0 terminated)](/ida-9.5/ida-actions/stringc)                                  | `StringC`                       | C-style (0 terminated)                                                                                                                                                                                                                                                                                                                   |
| [DOS style ($ terminated)](/ida-9.5/ida-actions/stringdos)                              | `StringDOS`                     | DOS style ($ terminated)                                                                                                                                                                                                                                                                                                                 |
| [Pascal style (1 byte length)](/ida-9.5/ida-actions/stringpascal1)                      | `StringPascal1`                 | Pascal style (1 byte length)                                                                                                                                                                                                                                                                                                             |
| [Wide pascal (2 byte length)](/ida-9.5/ida-actions/stringpascal2)                       | `StringPascal2`                 | Wide pascal (2 byte length)                                                                                                                                                                                                                                                                                                              |
| [Delphi (4 byte length)](/ida-9.5/ida-actions/stringdelphi)                             | `StringDelphi`                  | Delphi (4 byte length)                                                                                                                                                                                                                                                                                                                   |
| [Unicode](/ida-9.5/ida-actions/stringunicode)                                           | `StringUnicode`                 | Unicode                                                                                                                                                                                                                                                                                                                                  |
| [Unicode pascal (2 byte length)](/ida-9.5/ida-actions/stringunicodepascal2)             | `StringUnicodePascal2`          | Unicode pascal (2 byte length)                                                                                                                                                                                                                                                                                                           |
| [Unicode wide pascal (4 byte length)](/ida-9.5/ida-actions/stringunicodepascal4)        | `StringUnicodePascal4`          | Unicode wide pascal (4 byte length)                                                                                                                                                                                                                                                                                                      |
| [Array...](/ida-9.5/ida-actions/makearray)                                              | `MakeArray`                     | Convert to array.                                                                                                                                                                                                                                                                                                                        |
| [Undefine](/ida-9.5/ida-actions/makeunknown)                                            | `MakeUnknown`                   | Convert to undefined.                                                                                                                                                                                                                                                                                                                    |
| [Rename](/ida-9.5/ida-actions/makename)                                                 | `MakeName`                      | Rename the current location.                                                                                                                                                                                                                                                                                                             |
| [Offset (data segment)](/ida-9.5/ida-actions/opoffset)                                  | `OpOffset`                      | Convert the current operand to an offset in the data segment.                                                                                                                                                                                                                                                                            |
| [Offset (current segment)](/ida-9.5/ida-actions/opoffsetcs)                             | `OpOffsetCs`                    | Convert the current operand to an offset in the current segment.                                                                                                                                                                                                                                                                         |
| [Offset by (any segment)...](/ida-9.5/ida-actions/opanyoffset)                          | `OpAnyOffset`                   | Convert the current operand to an offset in any segment.                                                                                                                                                                                                                                                                                 |
| [Offset (user-defined)...](/ida-9.5/ida-actions/opuseroffset)                           | `OpUserOffset`                  | Convert the current operand to an offset with any base.                                                                                                                                                                                                                                                                                  |
| [Offset (struct)...](/ida-9.5/ida-actions/opstructoffset)                               | `OpStructOffset`                | Convert the current operand to a structure offset.                                                                                                                                                                                                                                                                                       |
| [Number (default)](/ida-9.5/ida-actions/opnumber)                                       | `OpNumber`                      | Convert the current operand to a number.                                                                                                                                                                                                                                                                                                 |
| [Hexadecimal](/ida-9.5/ida-actions/ophex)                                               | `OpHex`                         | Convert the current operand to a hexadecimal number.                                                                                                                                                                                                                                                                                     |
| [Decimal](/ida-9.5/ida-actions/opdecimal)                                               | `OpDecimal`                     | Convert the current operand to a decimal number.                                                                                                                                                                                                                                                                                         |
| [Octal](/ida-9.5/ida-actions/opoctal)                                                   | `OpOctal`                       | Convert the current operand to a octal number.                                                                                                                                                                                                                                                                                           |
| [Binary](/ida-9.5/ida-actions/opbinary)                                                 | `OpBinary`                      | Convert the current operand to a binary number.                                                                                                                                                                                                                                                                                          |
| [Floating point](/ida-9.5/ida-actions/opfloat)                                          | `OpFloat`                       | Convert to floating point.                                                                                                                                                                                                                                                                                                               |
| [Toggle leading zeroes](/ida-9.5/ida-actions/toggleleadingzeroes)                       | `ToggleLeadingZeroes`           | Toggle leading zeroes.                                                                                                                                                                                                                                                                                                                   |
| [Character](/ida-9.5/ida-actions/opchar)                                                | `OpChar`                        | Convert the current operand to a character constant                                                                                                                                                                                                                                                                                      |
| [Segment](/ida-9.5/ida-actions/opsegment)                                               | `OpSegment`                     | Convert the current operand to a segment base                                                                                                                                                                                                                                                                                            |
| [Enum member...](/ida-9.5/ida-actions/openum)                                           | `OpEnum`                        | Convert the current operand to a symbolic constant                                                                                                                                                                                                                                                                                       |
| [Stack variable](/ida-9.5/ida-actions/opstackvariable)                                  | `OpStackVariable`               | Convert the current operand to a stack variable                                                                                                                                                                                                                                                                                          |
| [Change sign](/ida-9.5/ida-actions/changesign)                                          | `ChangeSign`                    | Change the sign of the current operand                                                                                                                                                                                                                                                                                                   |
| [Bitwise negate](/ida-9.5/ida-actions/bitwisenegate)                                    | `BitwiseNegate`                 | Perform bitwise negation of the current operand                                                                                                                                                                                                                                                                                          |
| [Manual...](/ida-9.5/ida-actions/manualoperand)                                         | `ManualOperand`                 | Enter the current operand manually.                                                                                                                                                                                                                                                                                                      |
| [Set operand type...](/ida-9.5/ida-actions/setoptype)                                   | `SetOpType`                     | Set the current operand's type                                                                                                                                                                                                                                                                                                           |
| Edit func comment...                                                                    | `hx:EditCmt`                    |                                                                                                                                                                                                                                                                                                                                          |
| Add pseudocode comments...                                                              | `hx:AddPseudoCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| Delete pseudocode comments...                                                           | `hx:DelPseudoCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| [Enter comment...](/ida-9.5/ida-actions/makecomment)                                    | `MakeComment`                   | Enter a regular comment.                                                                                                                                                                                                                                                                                                                 |
| [Enter repeatable comment...](/ida-9.5/ida-actions/makerptcmt)                          | `MakeRptCmt`                    | Enter repeatable comment.                                                                                                                                                                                                                                                                                                                |
| [Enter anterior lines...](/ida-9.5/ida-actions/makeextralinea)                          | `MakeExtraLineA`                | Enter lines preceding the generated lines.                                                                                                                                                                                                                                                                                               |
| [Enter posterior lines...](/ida-9.5/ida-actions/makeextralineb)                         | `MakeExtraLineB`                | Enter lines following the generated lines                                                                                                                                                                                                                                                                                                |
| Edit block comment...                                                                   | `mv:EditBlockCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| Edit comment...                                                                         | `mv:EditCmt`                    |                                                                                                                                                                                                                                                                                                                                          |
| [Create segment...](/ida-9.5/ida-actions/createsegment)                                 | `CreateSegment`                 | This command allows you to create a new segment.                                                                                                                                                                                                                                                                                         |
| [Edit segment...](/ida-9.5/ida-actions/editsegment)                                     | `EditSegment`                   | Edit segment attributes. This command opens the Change segment attributes dialog.                                                                                                                                                                                                                                                        |
| [Delete segment...](/ida-9.5/ida-actions/killsegment)                                   | `KillSegment`                   | Delete segment.                                                                                                                                                                                                                                                                                                                          |
| [Move current segment...](/ida-9.5/ida-actions/movesegment)                             | `MoveSegment`                   | Change the current segment boundaries.                                                                                                                                                                                                                                                                                                   |
| [Rebase program...](/ida-9.5/ida-actions/rebaseprogram)                                 | `RebaseProgram`                 | Rebase program.                                                                                                                                                                                                                                                                                                                          |
| [Change segment translation...](/ida-9.5/ida-actions/segmenttranslation)                | `SegmentTranslation`            | Change the current segment translation table                                                                                                                                                                                                                                                                                             |
| [Change segment register value...](/ida-9.5/ida-actions/setsegmentregister)             | `SetSegmentRegister`            | Change segment register value.                                                                                                                                                                                                                                                                                                           |
| [Set default segment register value...](/ida-9.5/ida-actions/setsegmentregisterdefault) | `SetSegmentRegisterDefault`     | Set default segment register value.                                                                                                                                                                                                                                                                                                      |
| [Struct var...](/ida-9.5/ida-actions/declarestructvar)                                  | `DeclareStructVar`              | Declare a structure variable.                                                                                                                                                                                                                                                                                                            |
| [Force zero offset field](/ida-9.5/ida-actions/zerostructoffset)                        | `ZeroStructOffset`              | Toggle display of the first field of a structure in an offset expression.                                                                                                                                                                                                                                                                |
| [Select union member...](/ida-9.5/ida-actions/selectunionmember)                        | `SelectUnionMember`             | Choose the representation of a union member.                                                                                                                                                                                                                                                                                             |
| [Create struct from selection](/ida-9.5/ida-actions/createstructfromdata)               | `CreateStructFromData`          | This command defines a new structure from data already defined. The new structure is created with adequate data types, and each member uses the current data name if it is available.                                                                                                                                                    |
| [Copy field info to pointers](/ida-9.5/ida-actions/copyfieldstopointers)                | `CopyFieldsToPointers`          | Copy field info to pointed addresses. This command scans the current struct variable and renames the locations pointed by offset expressions unless they already have a non-dummy name.                                                                                                                                                  |
| [Create function...](/ida-9.5/ida-actions/makefunction)                                 | `MakeFunction`                  | Create a new function in the disassembly.                                                                                                                                                                                                                                                                                                |
| [Edit function...](/ida-9.5/ida-actions/editfunction)                                   | `EditFunction`                  | Edit function attributes - change function properties, including bounds, name, flags, and stack frame parameters. This command opens an Edit Function dialog, and allows you to modify function characteristics and stack frame structure. If the current address does not belong to any function, IDA will beep.                        |
| [Append function tail...](/ida-9.5/ida-actions/appendfunctiontail)                      | `AppendFunctionTail`            | This command appends an arbitrary range of the program to a function definition. A range must be selected before applying this command. This range must not intersect with other function chunks (however, an existing tail can be added to multiple functions).                                                                         |
| [Remove function tail...](/ida-9.5/ida-actions/removefunctiontail)                      | `RemoveFunctionTail`            | Remove function tail.                                                                                                                                                                                                                                                                                                                    |
| [Delete function](/ida-9.5/ida-actions/delfunction)                                     | `DelFunction`                   | Delete function. Deleting a function deletes only information about a function, such as information about stack variables, comments, function type, etc. The instructions composing the function will remain intact.                                                                                                                     |
| [Move to folder...](/ida-9.5/ida-actions/movefunctiontofolder)                          | `MoveFunctionToFolder`          | This is the listing-specific version of [the tree view's similar operation](/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/functions-actions), and lets you conveniently organize your database directly from `IDA View-*`, `Pseudocode-*` and `Microcode-*` widgets, without having to go through the "Functions" widget. |
| [Set function end](/ida-9.5/ida-actions/functionend)                                    | `FunctionEnd`                   | Change the function end address. This command changes the current or previous function bounds so that its end will be set at the cursor. If it is not possible, IDA beeps.                                                                                                                                                               |
| [Stack variables...](/ida-9.5/ida-actions/openstackvariables)                           | `OpenStackVariables`            | Open the stack variables window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                                                                                                |
| [Change stack pointer...](/ida-9.5/ida-actions/changestackpointer)                      | `ChangeStackPointer`            | Change stack pointer. This command allows you to specify how the stack pointer (SP) is modified by the current instruction.                                                                                                                                                                                                              |
| [Rename register...](/ida-9.5/ida-actions/renameregister)                               | `RenameRegister`                | Rename a general processor register.                                                                                                                                                                                                                                                                                                     |
| [Set type...](/ida-9.5/ida-actions/settype)                                             | `SetType`                       | Set type information for an item or current function.                                                                                                                                                                                                                                                                                    |
| [Change byte...](/ida-9.5/ida-actions/patchbyte)                                        | `PatchByte`                     | Change program bytes.                                                                                                                                                                                                                                                                                                                    |
| [Change word...](/ida-9.5/ida-actions/patchword)                                        | `PatchWord`                     | Change program words                                                                                                                                                                                                                                                                                                                     |
| [Assemble...](/ida-9.5/ida-actions/assemble)                                            | `Assemble`                      | This command allows you to assemble instructions. Currently, only the IBM PC processors provide an assembler, nonetheless, plugin writers can extend or totally replace the built-in assembler by writing their own.                                                                                                                     |
| [Patched bytes](/ida-9.5/ida-actions/patchedbytes)                                      | `PatchedBytes`                  | Open the Patched bytes window. The Patched bytes view shows the list of the patched locations in the database. It also allows you to revert modifications selectively.                                                                                                                                                                   |
| [Apply patches to input file...](/ida-9.5/ida-actions/applypatches)                     | `ApplyPatches`                  | Apply previously patched bytes back to the input file. If the "Restore" option is selected, then the original bytes will be applied to the input file.                                                                                                                                                                                   |
| Specify switch idiom...                                                                 | `uiswitch:SpecSwitchIdiom`      |                                                                                                                                                                                                                                                                                                                                          |
| [Create alignment directive...](/ida-9.5/ida-actions/makealignment)                     | `MakeAlignment`                 | Create alignment directive.                                                                                                                                                                                                                                                                                                              |
| [Manual instruction...](/ida-9.5/ida-actions/manualinstruction)                         | `ManualInstruction`             | Specify alternate representation of the current instruction.                                                                                                                                                                                                                                                                             |
| [Color instruction...](/ida-9.5/ida-actions/colorinstruction)                           | `ColorInstruction`              | This command allows you to specify the background color for the current instruction or data item.                                                                                                                                                                                                                                        |
| Reset decompiler information...                                                         | `hx:ResTypeInfo`                |                                                                                                                                                                                                                                                                                                                                          |
| Toggle skippable instructions...                                                        | `hx:ToggleSkippableInsn`        |                                                                                                                                                                                                                                                                                                                                          |
| Decompile as call...                                                                    | `hx:UserDefinedCall`            |                                                                                                                                                                                                                                                                                                                                          |
| [Toggle border](/ida-9.5/ida-actions/toggleborder)                                      | `ToggleBorder`                  | Toggle the display of a border between code and data.                                                                                                                                                                                                                                                                                    |
| detect and parse golang metadata                                                        | `golang:detect_and_parse`       |                                                                                                                                                                                                                                                                                                                                          |
| Open picture in default viewer                                                          | `picture_search:open_in_viewer` |                                                                                                                                                                                                                                                                                                                                          |
| Save picture                                                                            | `picture_search:save_picture`   |                                                                                                                                                                                                                                                                                                                                          |
| [Quick run plugins](/ida-9.5/ida-actions/quickrunplugins)                               | `QuickRunPlugins`               | Quickly run a plugin                                                                                                                                                                                                                                                                                                                     |


# Microcode

{% hint style="info" %}
The options below appear when the **Edit menu is opened from the** [**Microcode View**](/ida-9.5/core/user-interface/concepts/subviews#microcode-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                                          | Action Name                     | Description                                                                                                                                                                                                                                                                                                                              |
| --------------------------------------------------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Begin selection](/ida-9.5/ida-actions/anchor)                                          | `Anchor`                        | Begin selection. Some IDA commands such as selecting a portion of file to output or specifying a segment to move need an anchor.                                                                                                                                                                                                         |
| [Select all](/ida-9.5/ida-actions/selectall)                                            | `SelectAll`                     | Select all                                                                                                                                                                                                                                                                                                                               |
| [Select identifier](/ida-9.5/ida-actions/selectidentifier)                              | `SelectIdentifier`              | Select identifier                                                                                                                                                                                                                                                                                                                        |
| [Undo Process options...](/ida-9.5/ida-actions/undoaction)                              | `UndoAction`                    | This command reverts the database to the state before executing the last user action.                                                                                                                                                                                                                                                    |
| [Redo](/ida-9.5/ida-actions/redoaction)                                                 | `RedoAction`                    | This command reverts the previously issued Undo command.                                                                                                                                                                                                                                                                                 |
| [Export data](/ida-9.5/ida-actions/exportdata)                                          | `ExportData`                    | Export data                                                                                                                                                                                                                                                                                                                              |
| [Code](/ida-9.5/ida-actions/makecode)                                                   | `MakeCode`                      | Convert to instruction.                                                                                                                                                                                                                                                                                                                  |
| [Data](/ida-9.5/ida-actions/makedata)                                                   | `MakeData`                      | Convert to data.                                                                                                                                                                                                                                                                                                                         |
| [Struct var...](/ida-9.5/ida-actions/declarestructvar)                                  | `DeclareStructVar`              | Declare a structure variable.                                                                                                                                                                                                                                                                                                            |
| [String](/ida-9.5/ida-actions/makestrlit)                                               | `MakeStrlit`                    | Convert to string.                                                                                                                                                                                                                                                                                                                       |
| [C-style (0 terminated)](/ida-9.5/ida-actions/stringc)                                  | `StringC`                       | C-style (0 terminated)                                                                                                                                                                                                                                                                                                                   |
| [DOS style ($ terminated)](/ida-9.5/ida-actions/stringdos)                              | `StringDOS`                     | DOS style ($ terminated)                                                                                                                                                                                                                                                                                                                 |
| [Pascal style (1 byte length)](/ida-9.5/ida-actions/stringpascal1)                      | `StringPascal1`                 | Pascal style (1 byte length)                                                                                                                                                                                                                                                                                                             |
| [Wide pascal (2 byte length)](/ida-9.5/ida-actions/stringpascal2)                       | `StringPascal2`                 | Wide pascal (2 byte length)                                                                                                                                                                                                                                                                                                              |
| [Delphi (4 byte length)](/ida-9.5/ida-actions/stringdelphi)                             | `StringDelphi`                  | Delphi (4 byte length)                                                                                                                                                                                                                                                                                                                   |
| [Unicode](/ida-9.5/ida-actions/stringunicode)                                           | `StringUnicode`                 | Unicode                                                                                                                                                                                                                                                                                                                                  |
| [Unicode pascal (2 byte length)](/ida-9.5/ida-actions/stringunicodepascal2)             | `StringUnicodePascal2`          | Unicode pascal (2 byte length)                                                                                                                                                                                                                                                                                                           |
| [Unicode wide pascal (4 byte length)](/ida-9.5/ida-actions/stringunicodepascal4)        | `StringUnicodePascal4`          | Unicode wide pascal (4 byte length)                                                                                                                                                                                                                                                                                                      |
| [Array...](/ida-9.5/ida-actions/makearray)                                              | `MakeArray`                     | Convert to array.                                                                                                                                                                                                                                                                                                                        |
| [Undefine](/ida-9.5/ida-actions/makeunknown)                                            | `MakeUnknown`                   | Convert to undefined.                                                                                                                                                                                                                                                                                                                    |
| [Rename](/ida-9.5/ida-actions/makename)                                                 | `MakeName`                      | Rename the current location.                                                                                                                                                                                                                                                                                                             |
| [Offset (data segment)](/ida-9.5/ida-actions/opoffset)                                  | `OpOffset`                      | Convert the current operand to an offset in the data segment.                                                                                                                                                                                                                                                                            |
| [Offset (current segment)](/ida-9.5/ida-actions/opoffsetcs)                             | `OpOffsetCs`                    | Convert the current operand to an offset in the current segment.                                                                                                                                                                                                                                                                         |
| [Offset by (any segment)...](/ida-9.5/ida-actions/opanyoffset)                          | `OpAnyOffset`                   | Convert the current operand to an offset in any segment.                                                                                                                                                                                                                                                                                 |
| [Offset (user-defined)...](/ida-9.5/ida-actions/opuseroffset)                           | `OpUserOffset`                  | Convert the current operand to an offset with any base.                                                                                                                                                                                                                                                                                  |
| [Offset (struct)...](/ida-9.5/ida-actions/opstructoffset)                               | `OpStructOffset`                | Convert the current operand to a structure offset.                                                                                                                                                                                                                                                                                       |
| [Number (default)](/ida-9.5/ida-actions/opnumber)                                       | `OpNumber`                      | Convert the current operand to a number.                                                                                                                                                                                                                                                                                                 |
| [Hexadecimal](/ida-9.5/ida-actions/ophex)                                               | `OpHex`                         | Convert the current operand to a hexadecimal number.                                                                                                                                                                                                                                                                                     |
| [Decimal](/ida-9.5/ida-actions/opdecimal)                                               | `OpDecimal`                     | Convert the current operand to a decimal number.                                                                                                                                                                                                                                                                                         |
| [Octal](/ida-9.5/ida-actions/opoctal)                                                   | `OpOctal`                       | Convert the current operand to a octal number.                                                                                                                                                                                                                                                                                           |
| [Binary](/ida-9.5/ida-actions/opbinary)                                                 | `OpBinary`                      | Convert the current operand to a binary number.                                                                                                                                                                                                                                                                                          |
| [Floating point](/ida-9.5/ida-actions/opfloat)                                          | `OpFloat`                       | Convert to floating point.                                                                                                                                                                                                                                                                                                               |
| [Toggle leading zeroes](/ida-9.5/ida-actions/toggleleadingzeroes)                       | `ToggleLeadingZeroes`           | Toggle leading zeroes.                                                                                                                                                                                                                                                                                                                   |
| [Character](/ida-9.5/ida-actions/opchar)                                                | `OpChar`                        | Convert the current operand to a character constant                                                                                                                                                                                                                                                                                      |
| [Segment](/ida-9.5/ida-actions/opsegment)                                               | `OpSegment`                     | Convert the current operand to a segment base                                                                                                                                                                                                                                                                                            |
| [Enum member...](/ida-9.5/ida-actions/openum)                                           | `OpEnum`                        | Convert the current operand to a symbolic constant                                                                                                                                                                                                                                                                                       |
| [Stack variable](/ida-9.5/ida-actions/opstackvariable)                                  | `OpStackVariable`               | Convert the current operand to a stack variable                                                                                                                                                                                                                                                                                          |
| [Change sign](/ida-9.5/ida-actions/changesign)                                          | `ChangeSign`                    | Change the sign of the current operand                                                                                                                                                                                                                                                                                                   |
| [Bitwise negate](/ida-9.5/ida-actions/bitwisenegate)                                    | `BitwiseNegate`                 | Perform bitwise negation of the current operand                                                                                                                                                                                                                                                                                          |
| [Manual...](/ida-9.5/ida-actions/manualoperand)                                         | `ManualOperand`                 | Enter the current operand manually.                                                                                                                                                                                                                                                                                                      |
| [Set operand type...](/ida-9.5/ida-actions/setoptype)                                   | `SetOpType`                     | Set the current operand's type                                                                                                                                                                                                                                                                                                           |
| Copy pseudocode to disassembly                                                          | `hx:EditCmt`                    |                                                                                                                                                                                                                                                                                                                                          |
| Add pseudocode comments...                                                              | `hx:AddPseudoCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| Delete pseudocode comments...                                                           | `hx:DelPseudoCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| [Enter comment...](/ida-9.5/ida-actions/makecomment)                                    | `MakeComment`                   | Enter a regular comment.                                                                                                                                                                                                                                                                                                                 |
| [Enter repeatable comment...](/ida-9.5/ida-actions/makerptcmt)                          | `MakeRptCmt`                    | Enter repeatable comment.                                                                                                                                                                                                                                                                                                                |
| [Enter anterior lines...](/ida-9.5/ida-actions/makeextralinea)                          | `MakeExtraLineA`                | Enter lines preceding the generated lines.                                                                                                                                                                                                                                                                                               |
| [Enter posterior lines...](/ida-9.5/ida-actions/makeextralineb)                         | `MakeExtraLineB`                | Enter lines following the generated lines                                                                                                                                                                                                                                                                                                |
| Edit block comment...                                                                   | `mv:EditBlockCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| Edit comment...                                                                         | `mv:EditCmt`                    |                                                                                                                                                                                                                                                                                                                                          |
| [Create segment...](/ida-9.5/ida-actions/createsegment)                                 | `CreateSegment`                 | This command allows you to create a new segment.                                                                                                                                                                                                                                                                                         |
| [Edit segment...](/ida-9.5/ida-actions/editsegment)                                     | `EditSegment`                   | Edit segment attributes. This command opens the Change segment attributes dialog.                                                                                                                                                                                                                                                        |
| [Delete segment...](/ida-9.5/ida-actions/killsegment)                                   | `KillSegment`                   | Delete segment.                                                                                                                                                                                                                                                                                                                          |
| [Move current segment...](/ida-9.5/ida-actions/movesegment)                             | `MoveSegment`                   | Change the current segment boundaries.                                                                                                                                                                                                                                                                                                   |
| [Rebase program...](/ida-9.5/ida-actions/rebaseprogram)                                 | `RebaseProgram`                 | Rebase program.                                                                                                                                                                                                                                                                                                                          |
| [Change segment translation...](/ida-9.5/ida-actions/segmenttranslation)                | `SegmentTranslation`            | Change the current segment translation table                                                                                                                                                                                                                                                                                             |
| [Change segment register value...](/ida-9.5/ida-actions/setsegmentregister)             | `SetSegmentRegister`            | Change segment register value.                                                                                                                                                                                                                                                                                                           |
| [Set default segment register value...](/ida-9.5/ida-actions/setsegmentregisterdefault) | `SetSegmentRegisterDefault`     | Set default segment register value.                                                                                                                                                                                                                                                                                                      |
| [Struct var...](/ida-9.5/ida-actions/declarestructvar)                                  | `DeclareStructVar`              | Declare a structure variable.                                                                                                                                                                                                                                                                                                            |
| [Force zero offset field](/ida-9.5/ida-actions/zerostructoffset)                        | `ZeroStructOffset`              | Toggle display of the first field of a structure in an offset expression.                                                                                                                                                                                                                                                                |
| [Select union member...](/ida-9.5/ida-actions/selectunionmember)                        | `SelectUnionMember`             | Choose the representation of a union member.                                                                                                                                                                                                                                                                                             |
| [Create struct from selection](/ida-9.5/ida-actions/createstructfromdata)               | `CreateStructFromData`          | This command defines a new structure from data already defined. The new structure is created with adequate data types, and each member uses the current data name if it is available.                                                                                                                                                    |
| [Copy field info to pointers](/ida-9.5/ida-actions/copyfieldstopointers)                | `CopyFieldsToPointers`          | Copy field info to pointed addresses. This command scans the current struct variable and renames the locations pointed by offset expressions unless they already have a non-dummy name.                                                                                                                                                  |
| [Create function...](/ida-9.5/ida-actions/makefunction)                                 | `MakeFunction`                  | Create a new function in the disassembly.                                                                                                                                                                                                                                                                                                |
| [Edit function...](/ida-9.5/ida-actions/editfunction)                                   | `EditFunction`                  | Edit function attributes - change function properties, including bounds, name, flags, and stack frame parameters. This command opens an Edit Function dialog, and allows you to modify function characteristics and stack frame structure. If the current address does not belong to any function, IDA will beep.                        |
| [Append function tail...](/ida-9.5/ida-actions/appendfunctiontail)                      | `AppendFunctionTail`            | This command appends an arbitrary range of the program to a function definition. A range must be selected before applying this command. This range must not intersect with other function chunks (however, an existing tail can be added to multiple functions).                                                                         |
| [Remove function tail...](/ida-9.5/ida-actions/removefunctiontail)                      | `RemoveFunctionTail`            | Remove function tail.                                                                                                                                                                                                                                                                                                                    |
| [Delete function](/ida-9.5/ida-actions/delfunction)                                     | `DelFunction`                   | Delete function. Deleting a function deletes only information about a function, such as information about stack variables, comments, function type, etc. The instructions composing the function will remain intact.                                                                                                                     |
| [Move to folder...](/ida-9.5/ida-actions/movefunctiontofolder)                          | `MoveFunctionToFolder`          | This is the listing-specific version of [the tree view's similar operation](/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/functions-actions), and lets you conveniently organize your database directly from `IDA View-*`, `Pseudocode-*` and `Microcode-*` widgets, without having to go through the "Functions" widget. |
| [Set function end](/ida-9.5/ida-actions/functionend)                                    | `FunctionEnd`                   | Change the function end address. This command changes the current or previous function bounds so that its end will be set at the cursor. If it is not possible, IDA beeps.                                                                                                                                                               |
| [Stack variables...](/ida-9.5/ida-actions/openstackvariables)                           | `OpenStackVariables`            | Open the stack variables window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                                                                                                |
| [Change stack pointer...](/ida-9.5/ida-actions/changestackpointer)                      | `ChangeStackPointer`            | Change stack pointer. This command allows you to specify how the stack pointer (SP) is modified by the current instruction.                                                                                                                                                                                                              |
| [Rename register...](/ida-9.5/ida-actions/renameregister)                               | `RenameRegister`                | Rename a general processor register.                                                                                                                                                                                                                                                                                                     |
| [Set type...](/ida-9.5/ida-actions/settype)                                             | `SetType`                       | Set type information for an item or current function.                                                                                                                                                                                                                                                                                    |
| [Change byte...](/ida-9.5/ida-actions/patchbyte)                                        | `PatchByte`                     | Change program bytes.                                                                                                                                                                                                                                                                                                                    |
| [Change word...](/ida-9.5/ida-actions/patchword)                                        | `PatchWord`                     | Change program words                                                                                                                                                                                                                                                                                                                     |
| [Assemble...](/ida-9.5/ida-actions/assemble)                                            | `Assemble`                      | This command allows you to assemble instructions. Currently, only the IBM PC processors provide an assembler, nonetheless, plugin writers can extend or totally replace the built-in assembler by writing their own.                                                                                                                     |
| [Patched bytes](/ida-9.5/ida-actions/patchedbytes)                                      | `PatchedBytes`                  | Open the Patched bytes window. The Patched bytes view shows the list of the patched locations in the database. It also allows you to revert modifications selectively.                                                                                                                                                                   |
| [Apply patches to input file...](/ida-9.5/ida-actions/applypatches)                     | `ApplyPatches`                  | Apply previously patched bytes back to the input file. If the "Restore" option is selected, then the original bytes will be applied to the input file.                                                                                                                                                                                   |
| Specify switch idiom...                                                                 | `uiswitch:SpecSwitchIdiom`      |                                                                                                                                                                                                                                                                                                                                          |
| [Create alignment directive...](/ida-9.5/ida-actions/makealignment)                     | `MakeAlignment`                 | Create alignment directive.                                                                                                                                                                                                                                                                                                              |
| [Manual instruction...](/ida-9.5/ida-actions/manualinstruction)                         | `ManualInstruction`             | Specify alternate representation of the current instruction.                                                                                                                                                                                                                                                                             |
| [Color instruction...](/ida-9.5/ida-actions/colorinstruction)                           | `ColorInstruction`              | This command allows you to specify the background color for the current instruction or data item.                                                                                                                                                                                                                                        |
| Reset decompiler information...                                                         | `hx:ResTypeInfo`                |                                                                                                                                                                                                                                                                                                                                          |
| Toggle skippable instructions...                                                        | `hx:ToggleSkippableInsn`        |                                                                                                                                                                                                                                                                                                                                          |
| Decompile as call...                                                                    | `hx:UserDefinedCall`            |                                                                                                                                                                                                                                                                                                                                          |
| [Toggle border](/ida-9.5/ida-actions/toggleborder)                                      | `ToggleBorder`                  | Toggle the display of a border between code and data.                                                                                                                                                                                                                                                                                    |
| detect and parse golang metadata                                                        | `golang:detect_and_parse`       |                                                                                                                                                                                                                                                                                                                                          |
| Open picture in default viewer                                                          | `picture_search:open_in_viewer` |                                                                                                                                                                                                                                                                                                                                          |
| Save picture                                                                            | `picture_search:save_picture`   |                                                                                                                                                                                                                                                                                                                                          |
| [Quick run plugins](/ida-9.5/ida-actions/quickrunplugins)                               | `QuickRunPlugins`               | Quickly run a plugin                                                                                                                                                                                                                                                                                                                     |


# Hex View

{% hint style="info" %}
The options below appear when the **Edit menu is opened from the** [**Hex View**](/ida-9.5/core/user-interface/concepts/subviews#hex-view). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                                          | Action Name                     | Description                                                                                                                                                                                                                                                                                                                              |
| --------------------------------------------------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Begin selection](/ida-9.5/ida-actions/anchor)                                          | `Anchor`                        | Begin selection. Some IDA commands such as selecting a portion of file to output or specifying a segment to move need an anchor.                                                                                                                                                                                                         |
| [Select all](/ida-9.5/ida-actions/selectall)                                            | `SelectAll`                     | Select all                                                                                                                                                                                                                                                                                                                               |
| [Select identifier](/ida-9.5/ida-actions/selectidentifier)                              | `SelectIdentifier`              | Select identifier                                                                                                                                                                                                                                                                                                                        |
| [Undo Process options...](/ida-9.5/ida-actions/undoaction)                              | `UndoAction`                    | This command reverts the database to the state before executing the last user action.                                                                                                                                                                                                                                                    |
| [Redo](/ida-9.5/ida-actions/redoaction)                                                 | `RedoAction`                    | This command reverts the previously issued Undo command.                                                                                                                                                                                                                                                                                 |
| [Export data](/ida-9.5/ida-actions/exportdata)                                          | `ExportData`                    | Export data                                                                                                                                                                                                                                                                                                                              |
| [Code](/ida-9.5/ida-actions/makecode)                                                   | `MakeCode`                      | Convert to instruction.                                                                                                                                                                                                                                                                                                                  |
| [Data](/ida-9.5/ida-actions/makedata)                                                   | `MakeData`                      | Convert to data.                                                                                                                                                                                                                                                                                                                         |
| [Struct var...](/ida-9.5/ida-actions/declarestructvar)                                  | `DeclareStructVar`              | Declare a structure variable.                                                                                                                                                                                                                                                                                                            |
| [String](/ida-9.5/ida-actions/makestrlit)                                               | `MakeStrlit`                    | Convert to string.                                                                                                                                                                                                                                                                                                                       |
| [C-style (0 terminated)](/ida-9.5/ida-actions/stringc)                                  | `StringC`                       | C-style (0 terminated)                                                                                                                                                                                                                                                                                                                   |
| [DOS style ($ terminated)](/ida-9.5/ida-actions/stringdos)                              | `StringDOS`                     | DOS style ($ terminated)                                                                                                                                                                                                                                                                                                                 |
| [Pascal style (1 byte length)](/ida-9.5/ida-actions/stringpascal1)                      | `StringPascal1`                 | Pascal style (1 byte length)                                                                                                                                                                                                                                                                                                             |
| [Wide pascal (2 byte length)](/ida-9.5/ida-actions/stringpascal2)                       | `StringPascal2`                 | Wide pascal (2 byte length)                                                                                                                                                                                                                                                                                                              |
| [Delphi (4 byte length)](/ida-9.5/ida-actions/stringdelphi)                             | `StringDelphi`                  | Delphi (4 byte length)                                                                                                                                                                                                                                                                                                                   |
| [Unicode](/ida-9.5/ida-actions/stringunicode)                                           | `StringUnicode`                 | Unicode                                                                                                                                                                                                                                                                                                                                  |
| [Unicode pascal (2 byte length)](/ida-9.5/ida-actions/stringunicodepascal2)             | `StringUnicodePascal2`          | Unicode pascal (2 byte length)                                                                                                                                                                                                                                                                                                           |
| [Unicode wide pascal (4 byte length)](/ida-9.5/ida-actions/stringunicodepascal4)        | `StringUnicodePascal4`          | Unicode wide pascal (4 byte length)                                                                                                                                                                                                                                                                                                      |
| [Array...](/ida-9.5/ida-actions/makearray)                                              | `MakeArray`                     | Convert to array.                                                                                                                                                                                                                                                                                                                        |
| [Undefine](/ida-9.5/ida-actions/makeunknown)                                            | `MakeUnknown`                   | Convert to undefined.                                                                                                                                                                                                                                                                                                                    |
| [Rename](/ida-9.5/ida-actions/makename)                                                 | `MakeName`                      | Rename the current location.                                                                                                                                                                                                                                                                                                             |
| [Offset (data segment)](/ida-9.5/ida-actions/opoffset)                                  | `OpOffset`                      | Convert the current operand to an offset in the data segment.                                                                                                                                                                                                                                                                            |
| [Offset (current segment)](/ida-9.5/ida-actions/opoffsetcs)                             | `OpOffsetCs`                    | Convert the current operand to an offset in the current segment.                                                                                                                                                                                                                                                                         |
| [Offset by (any segment)...](/ida-9.5/ida-actions/opanyoffset)                          | `OpAnyOffset`                   | Convert the current operand to an offset in any segment.                                                                                                                                                                                                                                                                                 |
| [Offset (user-defined)...](/ida-9.5/ida-actions/opuseroffset)                           | `OpUserOffset`                  | Convert the current operand to an offset with any base.                                                                                                                                                                                                                                                                                  |
| [Offset (struct)...](/ida-9.5/ida-actions/opstructoffset)                               | `OpStructOffset`                | Convert the current operand to a structure offset.                                                                                                                                                                                                                                                                                       |
| [Number (default)](/ida-9.5/ida-actions/opnumber)                                       | `OpNumber`                      | Convert the current operand to a number.                                                                                                                                                                                                                                                                                                 |
| [Hexadecimal](/ida-9.5/ida-actions/ophex)                                               | `OpHex`                         | Convert the current operand to a hexadecimal number.                                                                                                                                                                                                                                                                                     |
| [Decimal](/ida-9.5/ida-actions/opdecimal)                                               | `OpDecimal`                     | Convert the current operand to a decimal number.                                                                                                                                                                                                                                                                                         |
| [Octal](/ida-9.5/ida-actions/opoctal)                                                   | `OpOctal`                       | Convert the current operand to a octal number.                                                                                                                                                                                                                                                                                           |
| [Binary](/ida-9.5/ida-actions/opbinary)                                                 | `OpBinary`                      | Convert the current operand to a binary number.                                                                                                                                                                                                                                                                                          |
| [Floating point](/ida-9.5/ida-actions/opfloat)                                          | `OpFloat`                       | Convert to floating point.                                                                                                                                                                                                                                                                                                               |
| [Toggle leading zeroes](/ida-9.5/ida-actions/toggleleadingzeroes)                       | `ToggleLeadingZeroes`           | Toggle leading zeroes.                                                                                                                                                                                                                                                                                                                   |
| [Character](/ida-9.5/ida-actions/opchar)                                                | `OpChar`                        | Convert the current operand to a character constant                                                                                                                                                                                                                                                                                      |
| [Segment](/ida-9.5/ida-actions/opsegment)                                               | `OpSegment`                     | Convert the current operand to a segment base                                                                                                                                                                                                                                                                                            |
| [Enum member...](/ida-9.5/ida-actions/openum)                                           | `OpEnum`                        | Convert the current operand to a symbolic constant                                                                                                                                                                                                                                                                                       |
| [Stack variable](/ida-9.5/ida-actions/opstackvariable)                                  | `OpStackVariable`               | Convert the current operand to a stack variable                                                                                                                                                                                                                                                                                          |
| [Change sign](/ida-9.5/ida-actions/changesign)                                          | `ChangeSign`                    | Change the sign of the current operand                                                                                                                                                                                                                                                                                                   |
| [Bitwise negate](/ida-9.5/ida-actions/bitwisenegate)                                    | `BitwiseNegate`                 | Perform bitwise negation of the current operand                                                                                                                                                                                                                                                                                          |
| [Manual...](/ida-9.5/ida-actions/manualoperand)                                         | `ManualOperand`                 | Enter the current operand manually.                                                                                                                                                                                                                                                                                                      |
| [Set operand type...](/ida-9.5/ida-actions/setoptype)                                   | `SetOpType`                     | Set the current operand's type                                                                                                                                                                                                                                                                                                           |
| Copy pseudocode to disassembly                                                          | `hx:EditCmt`                    |                                                                                                                                                                                                                                                                                                                                          |
| Add pseudocode comments...                                                              | `hx:AddPseudoCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| Delete pseudocode comments...                                                           | `hx:DelPseudoCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| [Enter comment...](/ida-9.5/ida-actions/makecomment)                                    | `MakeComment`                   | Enter a regular comment.                                                                                                                                                                                                                                                                                                                 |
| [Enter repeatable comment...](/ida-9.5/ida-actions/makerptcmt)                          | `MakeRptCmt`                    | Enter repeatable comment.                                                                                                                                                                                                                                                                                                                |
| [Enter anterior lines...](/ida-9.5/ida-actions/makeextralinea)                          | `MakeExtraLineA`                | Enter lines preceding the generated lines.                                                                                                                                                                                                                                                                                               |
| [Enter posterior lines...](/ida-9.5/ida-actions/makeextralineb)                         | `MakeExtraLineB`                | Enter lines following the generated lines                                                                                                                                                                                                                                                                                                |
| Edit block comment...                                                                   | `mv:EditBlockCmt`               |                                                                                                                                                                                                                                                                                                                                          |
| Edit comment...                                                                         | `mv:EditCmt`                    |                                                                                                                                                                                                                                                                                                                                          |
| [Create segment...](/ida-9.5/ida-actions/createsegment)                                 | `CreateSegment`                 | This command allows you to create a new segment.                                                                                                                                                                                                                                                                                         |
| [Edit segment...](/ida-9.5/ida-actions/editsegment)                                     | `EditSegment`                   | Edit segment attributes. This command opens the Change segment attributes dialog.                                                                                                                                                                                                                                                        |
| [Delete segment...](/ida-9.5/ida-actions/killsegment)                                   | `KillSegment`                   | Delete segment.                                                                                                                                                                                                                                                                                                                          |
| [Move current segment...](/ida-9.5/ida-actions/movesegment)                             | `MoveSegment`                   | Change the current segment boundaries.                                                                                                                                                                                                                                                                                                   |
| [Rebase program...](/ida-9.5/ida-actions/rebaseprogram)                                 | `RebaseProgram`                 | Rebase program.                                                                                                                                                                                                                                                                                                                          |
| [Change segment translation...](/ida-9.5/ida-actions/segmenttranslation)                | `SegmentTranslation`            | Change the current segment translation table                                                                                                                                                                                                                                                                                             |
| [Change segment register value...](/ida-9.5/ida-actions/setsegmentregister)             | `SetSegmentRegister`            | Change segment register value.                                                                                                                                                                                                                                                                                                           |
| [Set default segment register value...](/ida-9.5/ida-actions/setsegmentregisterdefault) | `SetSegmentRegisterDefault`     | Set default segment register value.                                                                                                                                                                                                                                                                                                      |
| [Struct var...](/ida-9.5/ida-actions/declarestructvar)                                  | `DeclareStructVar`              | Declare a structure variable.                                                                                                                                                                                                                                                                                                            |
| [Force zero offset field](/ida-9.5/ida-actions/zerostructoffset)                        | `ZeroStructOffset`              | Toggle display of the first field of a structure in an offset expression.                                                                                                                                                                                                                                                                |
| [Select union member...](/ida-9.5/ida-actions/selectunionmember)                        | `SelectUnionMember`             | Choose the representation of a union member.                                                                                                                                                                                                                                                                                             |
| [Create struct from selection](/ida-9.5/ida-actions/createstructfromdata)               | `CreateStructFromData`          | This command defines a new structure from data already defined. The new structure is created with adequate data types, and each member uses the current data name if it is available.                                                                                                                                                    |
| [Copy field info to pointers](/ida-9.5/ida-actions/copyfieldstopointers)                | `CopyFieldsToPointers`          | Copy field info to pointed addresses. This command scans the current struct variable and renames the locations pointed by offset expressions unless they already have a non-dummy name.                                                                                                                                                  |
| [Create function...](/ida-9.5/ida-actions/makefunction)                                 | `MakeFunction`                  | Create a new function in the disassembly.                                                                                                                                                                                                                                                                                                |
| [Edit function...](/ida-9.5/ida-actions/editfunction)                                   | `EditFunction`                  | Edit function attributes - change function properties, including bounds, name, flags, and stack frame parameters. This command opens an Edit Function dialog, and allows you to modify function characteristics and stack frame structure. If the current address does not belong to any function, IDA will beep.                        |
| [Append function tail...](/ida-9.5/ida-actions/appendfunctiontail)                      | `AppendFunctionTail`            | This command appends an arbitrary range of the program to a function definition. A range must be selected before applying this command. This range must not intersect with other function chunks (however, an existing tail can be added to multiple functions).                                                                         |
| [Remove function tail...](/ida-9.5/ida-actions/removefunctiontail)                      | `RemoveFunctionTail`            | Remove function tail.                                                                                                                                                                                                                                                                                                                    |
| [Delete function](/ida-9.5/ida-actions/delfunction)                                     | `DelFunction`                   | Delete function. Deleting a function deletes only information about a function, such as information about stack variables, comments, function type, etc. The instructions composing the function will remain intact.                                                                                                                     |
| [Move to folder...](/ida-9.5/ida-actions/movefunctiontofolder)                          | `MoveFunctionToFolder`          | This is the listing-specific version of [the tree view's similar operation](/ida-9.5/core/user-interface/reference/menu-bar-actions/edit/functions-actions), and lets you conveniently organize your database directly from `IDA View-*`, `Pseudocode-*` and `Microcode-*` widgets, without having to go through the "Functions" widget. |
| [Set function end](/ida-9.5/ida-actions/functionend)                                    | `FunctionEnd`                   | Change the function end address. This command changes the current or previous function bounds so that its end will be set at the cursor. If it is not possible, IDA beeps.                                                                                                                                                               |
| [Stack variables...](/ida-9.5/ida-actions/openstackvariables)                           | `OpenStackVariables`            | Open the stack variables window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                                                                                                |
| [Change stack pointer...](/ida-9.5/ida-actions/changestackpointer)                      | `ChangeStackPointer`            | Change stack pointer. This command allows you to specify how the stack pointer (SP) is modified by the current instruction.                                                                                                                                                                                                              |
| [Rename register...](/ida-9.5/ida-actions/renameregister)                               | `RenameRegister`                | Rename a general processor register.                                                                                                                                                                                                                                                                                                     |
| [Set type...](/ida-9.5/ida-actions/settype)                                             | `SetType`                       | Set type information for an item or current function.                                                                                                                                                                                                                                                                                    |
| [Change byte...](/ida-9.5/ida-actions/patchbyte)                                        | `PatchByte`                     | Change program bytes.                                                                                                                                                                                                                                                                                                                    |
| [Change word...](/ida-9.5/ida-actions/patchword)                                        | `PatchWord`                     | Change program words                                                                                                                                                                                                                                                                                                                     |
| [Assemble...](/ida-9.5/ida-actions/assemble)                                            | `Assemble`                      | This command allows you to assemble instructions. Currently, only the IBM PC processors provide an assembler, nonetheless, plugin writers can extend or totally replace the built-in assembler by writing their own.                                                                                                                     |
| [Patched bytes](/ida-9.5/ida-actions/patchedbytes)                                      | `PatchedBytes`                  | Open the Patched bytes window. The Patched bytes view shows the list of the patched locations in the database. It also allows you to revert modifications selectively.                                                                                                                                                                   |
| [Apply patches to input file...](/ida-9.5/ida-actions/applypatches)                     | `ApplyPatches`                  | Apply previously patched bytes back to the input file. If the "Restore" option is selected, then the original bytes will be applied to the input file.                                                                                                                                                                                   |
| Specify switch idiom...                                                                 | `uiswitch:SpecSwitchIdiom`      |                                                                                                                                                                                                                                                                                                                                          |
| [Create alignment directive...](/ida-9.5/ida-actions/makealignment)                     | `MakeAlignment`                 | Create alignment directive.                                                                                                                                                                                                                                                                                                              |
| [Manual instruction...](/ida-9.5/ida-actions/manualinstruction)                         | `ManualInstruction`             | Specify alternate representation of the current instruction.                                                                                                                                                                                                                                                                             |
| [Color instruction...](/ida-9.5/ida-actions/colorinstruction)                           | `ColorInstruction`              | This command allows you to specify the background color for the current instruction or data item.                                                                                                                                                                                                                                        |
| Reset decompiler information...                                                         | `hx:ResTypeInfo`                |                                                                                                                                                                                                                                                                                                                                          |
| Toggle skippable instructions...                                                        | `hx:ToggleSkippableInsn`        |                                                                                                                                                                                                                                                                                                                                          |
| Decompile as call...                                                                    | `hx:UserDefinedCall`            |                                                                                                                                                                                                                                                                                                                                          |
| [Toggle border](/ida-9.5/ida-actions/toggleborder)                                      | `ToggleBorder`                  | Toggle the display of a border between code and data.                                                                                                                                                                                                                                                                                    |
| detect and parse golang metadata                                                        | `golang:detect_and_parse`       |                                                                                                                                                                                                                                                                                                                                          |
| Open picture in default viewer                                                          | `picture_search:open_in_viewer` |                                                                                                                                                                                                                                                                                                                                          |
| Save picture                                                                            | `picture_search:save_picture`   |                                                                                                                                                                                                                                                                                                                                          |
| [Quick run plugins](/ida-9.5/ida-actions/quickrunplugins)                               | `QuickRunPlugins`               | Quickly run a plugin                                                                                                                                                                                                                                                                                                                     |


# Functions

{% hint style="info" %}
The options below appear when the **Edit menu is opened from the** [**Functions View**](/ida-9.5/core/user-interface/concepts/subviews#functions-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                 | Action Name            | Description                                                                           |
| -------------------------------------------------------------- | ---------------------- | ------------------------------------------------------------------------------------- |
| [Create folder...](/ida-9.5/ida-actions/dirtreecreatefolder)   | `DirTreeCreateFolder`  | Create folder with items                                                              |
| [Move to folder...](/ida-9.5/ida-actions/dirtreemovetofolder)  | `DirTreeMoveToFolder`  | Move the current selection to a folder.                                               |
| [Insert...](/ida-9.5/ida-actions/dirtreeinsert)                | `DirTreeInsert`        | Create a structure, union, or enumeration                                             |
| [Delete function(s)...](/ida-9.5/ida-actions/dirtreedelete)    | `DirTreeDelete`        | Delete a type                                                                         |
| [Edit function...](/ida-9.5/ida-actions/dirtreeedit)           | `DirTreeEdit`          | Open type editor for type                                                             |
| [Undo Process options...](/ida-9.5/ida-actions/undoaction)     | `UndoAction`           | This command reverts the database to the state before executing the last user action. |
| [Redo](/ida-9.5/ida-actions/redoaction)                        | `RedoAction`           | This command reverts the previously issued Undo command.                              |
| [Copy](/ida-9.5/ida-actions/dirtreecopy)                       | `DirTreeCopy`          | Copy                                                                                  |
| [Copy all](/ida-9.5/ida-actions/dirtreecopyall)                | `DirTreeCopyAll`       | Copy all                                                                              |
| [Unsort](/ida-9.5/ida-actions/dirtreeunsort)                   | `DirTreeUnsort`        | Unsort                                                                                |
| [Quick filter](/ida-9.5/ida-actions/dirtreequickfilter)        | `DirTreeQuickFilter`   | Quick filter                                                                          |
| [Modify filters...](/ida-9.5/ida-actions/dirtreemodifyfilters) | `DirTreeModifyFilters` | Modify filters                                                                        |
| [Reset filters](/ida-9.5/ida-actions/dirtreeresetfilters)      | `DirTreeResetFilters`  | Reset filters                                                                         |


# Local Types

{% hint style="info" %}
The options below appear when the **Edit menu is opened from the** [**Local Types View**](/ida-9.5/core/user-interface/concepts/subviews#local-types-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                    | Action Name           | Applies to               | Description                                                                                                                                         |
| ----------------------------------------------------------------- | --------------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Copy with dependencies](/ida-9.5/ida-actions/copyfulltype)       | `CopyFullType`        | Enum, Structure, Typedef | Copy the C-style declarations of the selected type(s) to the clipboard, together with every type they depend on, so the result compiles on its own. |
| [Undo Process options...](/ida-9.5/ida-actions/undoaction)        | `UndoAction`          | Enum, Structure, Typedef | This command reverts the database to the state before executing the last user action.                                                               |
| [Redo](/ida-9.5/ida-actions/redoaction)                           | `RedoAction`          | Enum, Structure, Typedef | This command reverts the previously issued Undo command.                                                                                            |
| [Add type...](/ida-9.5/ida-actions/tiladdtype)                    | `TilAddType`          | Enum, Structure, Typedef | Create a structure, union, or enumeration                                                                                                           |
| [Delete type...](/ida-9.5/ida-actions/tildeltype)                 | `TilDelType`          | Enum, Structure, Typedef | Delete a type                                                                                                                                       |
| [Edit type...](/ida-9.5/ida-actions/tiledittype)                  | `TilEditType`         | Enum, Structure, Typedef | Open type editor for type                                                                                                                           |
| [Add enum member...](/ida-9.5/ida-actions/makedata)               | `MakeData`            | Enum, Structure          | Convert to data.                                                                                                                                    |
| [Delete type member](/ida-9.5/ida-actions/tildeltypemember)       | `TilDelTypeMember`    | Enum, Structure          | Delete a type member                                                                                                                                |
| [Change calling convention...](/ida-9.5/ida-actions/funcchangecc) | `FuncChangeCC`        | Enum                     | Change calling convention                                                                                                                           |
| [Rename](/ida-9.5/ida-actions/makename)                           | `MakeName`            | Enum, Structure, Typedef | Rename the current location.                                                                                                                        |
| [Edit enum member...](/ida-9.5/ida-actions/tileditconst)          | `TilEditConst`        | Enum                     | Edit a symbolic constant                                                                                                                            |
| [Edit location...](/ida-9.5/ida-actions/editargloc)               | `EditArgloc`          | Enum                     | Edit argument location                                                                                                                              |
| [Show arguments location](/ida-9.5/ida-actions/toggleargloc)      | `ToggleArgloc`        | Enum                     | Show arguments location                                                                                                                             |
| [Enter comment...](/ida-9.5/ida-actions/tilmakecomment)           | `TilMakeComment`      | Enum, Structure, Typedef | Enter a comment                                                                                                                                     |
| [Toggle leading zeroes](/ida-9.5/ida-actions/toggleleadingzeroes) | `ToggleLeadingZeroes` | Enum, Structure          | Toggle leading zeroes.                                                                                                                              |
| [C-like format](/ida-9.5/ida-actions/tilcsyntax)                  | `TilCSyntax`          | Enum, Structure, Typedef | Toggle between assembly & C-like representation                                                                                                     |


# Jump


# IDA View

{% hint style="info" %}
The options below appear when the **Jump menu is opened from the** [**IDA View**](/ida-9.5/core/user-interface/concepts/subviews#ida-view). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                          | Action Name           | Description                                                                                                                                                                                                                                                                                                 |
| ----------------------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Jump to operand](/ida-9.5/ida-actions/jumpenter)                       | `JumpEnter`           | Jump to the specified address.                                                                                                                                                                                                                                                                              |
| [Jump in a new window](/ida-9.5/ida-actions/jumpenternew)               | `JumpEnterNew`        | Jump in a new window                                                                                                                                                                                                                                                                                        |
| [Jump to previous position](/ida-9.5/ida-actions/return)                | `Return`              | Return to the previous saved position.                                                                                                                                                                                                                                                                      |
| [Jump to next position](/ida-9.5/ida-actions/undoreturn)                | `UndoReturn`          | Go to the next saved position.                                                                                                                                                                                                                                                                              |
| [Empty navigation stack](/ida-9.5/ida-actions/emptystack)               | `EmptyStack`          | Remove everything from the jumps stack                                                                                                                                                                                                                                                                      |
| Jump to pseudocode                                                      | `hx:JumpPseudo`       |                                                                                                                                                                                                                                                                                                             |
| [Jump to address...](/ida-9.5/ida-actions/jumpask)                      | `JumpAsk`             | Jump to the specified address.                                                                                                                                                                                                                                                                              |
| [Jump anywhere...](/ida-9.5/ida-actions/jumpanywhere)                   | `JumpAnywhere`        | Jump to any location in the database. Jump Anywhere simplifies navigating and quick jumps to any location within the IDB. The Jump Anywhere is designed as a fast, unified entry point to navigate "everywhere" - the dialog accept names, expressions, segment-relative addresses, and script identifiers. |
| [Jump by name...](/ida-9.5/ida-actions/jumpname)                        | `JumpName`            | Jump to the selected name. This command allows you to jump to a name definition by selecting it from the list of the names.                                                                                                                                                                                 |
| [Jump to function...](/ida-9.5/ida-actions/jumpfunction)                | `JumpFunction`        | Jump to the selected function. This command shows you a list of functions: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                                                                   |
| [Jump to segment...](/ida-9.5/ida-actions/jumpsegment)                  | `JumpSegment`         | Jump to the selected segment.                                                                                                                                                                                                                                                                               |
| [Jump to segment register...](/ida-9.5/ida-actions/jumpsegmentregister) | `JumpSegmentRegister` | Jump to the selected segment register change point.                                                                                                                                                                                                                                                         |
| [Jump to problem...](/ida-9.5/ida-actions/jumpq)                        | `JumpQ`               | Jump to the selected problematic location.                                                                                                                                                                                                                                                                  |
| [List cross references to...](/ida-9.5/ida-actions/jumpxref)            | `JumpXref`            | Jump to the selected cross reference                                                                                                                                                                                                                                                                        |
| [List cross references from...](/ida-9.5/ida-actions/jumpxreffrom)      | `JumpXrefFrom`        | Jump to a cross reference from current location                                                                                                                                                                                                                                                             |
| [Jump to xref to operand...](/ida-9.5/ida-actions/jumpopxref)           | `JumpOpXref`          | Jump to the selected cross reference to operand. This command shows you a list of cross-references to the current operand: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                   |
| [Jump to entry point...](/ida-9.5/ida-actions/jumpentrypoint)           | `JumpEntryPoint`      | This command shows you a list of entry points: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                                                                                               |
| [Jump to file offset...](/ida-9.5/ida-actions/jumpfileoffset)           | `JumpFileOffset`      | Jump to file offset. IDA will ask you for a target file offset. This command jumps to the address corresponding to this specified file offset. If this file offset corresponds to a valid address then:                                                                                                     |
| [Jump to link...](/ida-9.5/ida-actions/jumpidalink)                     | `JumpIdaLink`         | Opens a dialog that accepts any `ida://` URL and navigates to the target inside the current IDA instance.                                                                                                                                                                                                   |
| [Mark position...](/ida-9.5/ida-actions/markposition)                   | `MarkPosition`        | Remember the current position in the disassembly.                                                                                                                                                                                                                                                           |
| [Jump to marked position...](/ida-9.5/ida-actions/jumpposition)         | `JumpPosition`        | Jump to the selected marked position.                                                                                                                                                                                                                                                                       |
| [Clear mark...](/ida-9.5/ida-actions/clearmark)                         | `ClearMark`           | Clear mark                                                                                                                                                                                                                                                                                                  |


# Pseudocode

{% hint style="info" %}
The options below appear when the **Jump menu is opened from the** [**Pseudocode View**](/ida-9.5/core/user-interface/concepts/subviews#pseudocode-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                          | Action Name           | Description                                                                                                                                                                                                                                                                                                 |
| ----------------------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Jump to operand](/ida-9.5/ida-actions/jumpenter)                       | `JumpEnter`           | Jump to the specified address.                                                                                                                                                                                                                                                                              |
| [Jump in a new window](/ida-9.5/ida-actions/jumpenternew)               | `JumpEnterNew`        | Jump in a new window                                                                                                                                                                                                                                                                                        |
| [Jump to previous position](/ida-9.5/ida-actions/return)                | `Return`              | Return to the previous saved position.                                                                                                                                                                                                                                                                      |
| [Jump to next position](/ida-9.5/ida-actions/undoreturn)                | `UndoReturn`          | Go to the next saved position.                                                                                                                                                                                                                                                                              |
| [Empty navigation stack](/ida-9.5/ida-actions/emptystack)               | `EmptyStack`          | Remove everything from the jumps stack                                                                                                                                                                                                                                                                      |
| Jump to pseudocode                                                      | `hx:JumpPseudo`       |                                                                                                                                                                                                                                                                                                             |
| [Jump to address...](/ida-9.5/ida-actions/jumpask)                      | `JumpAsk`             | Jump to the specified address.                                                                                                                                                                                                                                                                              |
| [Jump anywhere...](/ida-9.5/ida-actions/jumpanywhere)                   | `JumpAnywhere`        | Jump to any location in the database. Jump Anywhere simplifies navigating and quick jumps to any location within the IDB. The Jump Anywhere is designed as a fast, unified entry point to navigate "everywhere" - the dialog accept names, expressions, segment-relative addresses, and script identifiers. |
| [Jump by name...](/ida-9.5/ida-actions/jumpname)                        | `JumpName`            | Jump to the selected name. This command allows you to jump to a name definition by selecting it from the list of the names.                                                                                                                                                                                 |
| [Jump to function...](/ida-9.5/ida-actions/jumpfunction)                | `JumpFunction`        | Jump to the selected function. This command shows you a list of functions: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                                                                   |
| [Jump to segment...](/ida-9.5/ida-actions/jumpsegment)                  | `JumpSegment`         | Jump to the selected segment.                                                                                                                                                                                                                                                                               |
| [Jump to segment register...](/ida-9.5/ida-actions/jumpsegmentregister) | `JumpSegmentRegister` | Jump to the selected segment register change point.                                                                                                                                                                                                                                                         |
| [Jump to problem...](/ida-9.5/ida-actions/jumpq)                        | `JumpQ`               | Jump to the selected problematic location.                                                                                                                                                                                                                                                                  |
| [List cross references to...](/ida-9.5/ida-actions/jumpxref)            | `JumpXref`            | Jump to the selected cross reference                                                                                                                                                                                                                                                                        |
| [List cross references from...](/ida-9.5/ida-actions/jumpxreffrom)      | `JumpXrefFrom`        | Jump to a cross reference from current location                                                                                                                                                                                                                                                             |
| [Jump to xref to operand...](/ida-9.5/ida-actions/jumpopxref)           | `JumpOpXref`          | Jump to the selected cross reference to operand. This command shows you a list of cross-references to the current operand: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                   |
| [Jump to entry point...](/ida-9.5/ida-actions/jumpentrypoint)           | `JumpEntryPoint`      | This command shows you a list of entry points: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                                                                                               |
| [Jump to file offset...](/ida-9.5/ida-actions/jumpfileoffset)           | `JumpFileOffset`      | Jump to file offset. IDA will ask you for a target file offset. This command jumps to the address corresponding to this specified file offset. If this file offset corresponds to a valid address then:                                                                                                     |
| [Jump to link...](/ida-9.5/ida-actions/jumpidalink)                     | `JumpIdaLink`         | Opens a dialog that accepts any `ida://` URL and navigates to the target inside the current IDA instance.                                                                                                                                                                                                   |
| [Mark position...](/ida-9.5/ida-actions/markposition)                   | `MarkPosition`        | Remember the current position in the disassembly.                                                                                                                                                                                                                                                           |
| [Jump to marked position...](/ida-9.5/ida-actions/jumpposition)         | `JumpPosition`        | Jump to the selected marked position.                                                                                                                                                                                                                                                                       |
| [Clear mark...](/ida-9.5/ida-actions/clearmark)                         | `ClearMark`           | Clear mark                                                                                                                                                                                                                                                                                                  |


# Microcode

{% hint style="info" %}
The options below appear when the **Jump menu is opened from the** [**Microcode View**](/ida-9.5/core/user-interface/concepts/subviews#microcode-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                          | Action Name           | Description                                                                                                                                                                                                                                                                                                 |
| ----------------------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Jump to operand](/ida-9.5/ida-actions/jumpenter)                       | `JumpEnter`           | Jump to the specified address.                                                                                                                                                                                                                                                                              |
| [Jump in a new window](/ida-9.5/ida-actions/jumpenternew)               | `JumpEnterNew`        | Jump in a new window                                                                                                                                                                                                                                                                                        |
| [Jump to previous position](/ida-9.5/ida-actions/return)                | `Return`              | Return to the previous saved position.                                                                                                                                                                                                                                                                      |
| [Jump to next position](/ida-9.5/ida-actions/undoreturn)                | `UndoReturn`          | Go to the next saved position.                                                                                                                                                                                                                                                                              |
| [Empty navigation stack](/ida-9.5/ida-actions/emptystack)               | `EmptyStack`          | Remove everything from the jumps stack                                                                                                                                                                                                                                                                      |
| Jump to pseudocode                                                      | `hx:JumpPseudo`       |                                                                                                                                                                                                                                                                                                             |
| [Jump to address...](/ida-9.5/ida-actions/jumpask)                      | `JumpAsk`             | Jump to the specified address.                                                                                                                                                                                                                                                                              |
| [Jump anywhere...](/ida-9.5/ida-actions/jumpanywhere)                   | `JumpAnywhere`        | Jump to any location in the database. Jump Anywhere simplifies navigating and quick jumps to any location within the IDB. The Jump Anywhere is designed as a fast, unified entry point to navigate "everywhere" - the dialog accept names, expressions, segment-relative addresses, and script identifiers. |
| [Jump by name...](/ida-9.5/ida-actions/jumpname)                        | `JumpName`            | Jump to the selected name. This command allows you to jump to a name definition by selecting it from the list of the names.                                                                                                                                                                                 |
| [Jump to function...](/ida-9.5/ida-actions/jumpfunction)                | `JumpFunction`        | Jump to the selected function. This command shows you a list of functions: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                                                                   |
| [Jump to segment...](/ida-9.5/ida-actions/jumpsegment)                  | `JumpSegment`         | Jump to the selected segment.                                                                                                                                                                                                                                                                               |
| [Jump to segment register...](/ida-9.5/ida-actions/jumpsegmentregister) | `JumpSegmentRegister` | Jump to the selected segment register change point.                                                                                                                                                                                                                                                         |
| [Jump to problem...](/ida-9.5/ida-actions/jumpq)                        | `JumpQ`               | Jump to the selected problematic location.                                                                                                                                                                                                                                                                  |
| [List cross references to...](/ida-9.5/ida-actions/jumpxref)            | `JumpXref`            | Jump to the selected cross reference                                                                                                                                                                                                                                                                        |
| [List cross references from...](/ida-9.5/ida-actions/jumpxreffrom)      | `JumpXrefFrom`        | Jump to a cross reference from current location                                                                                                                                                                                                                                                             |
| [Jump to xref to operand...](/ida-9.5/ida-actions/jumpopxref)           | `JumpOpXref`          | Jump to the selected cross reference to operand. This command shows you a list of cross-references to the current operand: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                   |
| [Jump to entry point...](/ida-9.5/ida-actions/jumpentrypoint)           | `JumpEntryPoint`      | This command shows you a list of entry points: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                                                                                               |
| [Jump to file offset...](/ida-9.5/ida-actions/jumpfileoffset)           | `JumpFileOffset`      | Jump to file offset. IDA will ask you for a target file offset. This command jumps to the address corresponding to this specified file offset. If this file offset corresponds to a valid address then:                                                                                                     |
| [Jump to link...](/ida-9.5/ida-actions/jumpidalink)                     | `JumpIdaLink`         | Opens a dialog that accepts any `ida://` URL and navigates to the target inside the current IDA instance.                                                                                                                                                                                                   |
| [Mark position...](/ida-9.5/ida-actions/markposition)                   | `MarkPosition`        | Remember the current position in the disassembly.                                                                                                                                                                                                                                                           |
| [Jump to marked position...](/ida-9.5/ida-actions/jumpposition)         | `JumpPosition`        | Jump to the selected marked position.                                                                                                                                                                                                                                                                       |
| [Clear mark...](/ida-9.5/ida-actions/clearmark)                         | `ClearMark`           | Clear mark                                                                                                                                                                                                                                                                                                  |


# Hex View

{% hint style="info" %}
The options below appear when the **Jump menu is opened from the** [**Hex View**](/ida-9.5/core/user-interface/concepts/subviews#hex-view). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                          | Action Name           | Description                                                                                                                                                                                                                                                                                                 |
| ----------------------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Jump to operand](/ida-9.5/ida-actions/jumpenter)                       | `JumpEnter`           | Jump to the specified address.                                                                                                                                                                                                                                                                              |
| [Jump in a new window](/ida-9.5/ida-actions/jumpenternew)               | `JumpEnterNew`        | Jump in a new window                                                                                                                                                                                                                                                                                        |
| [Jump to previous position](/ida-9.5/ida-actions/return)                | `Return`              | Return to the previous saved position.                                                                                                                                                                                                                                                                      |
| [Jump to next position](/ida-9.5/ida-actions/undoreturn)                | `UndoReturn`          | Go to the next saved position.                                                                                                                                                                                                                                                                              |
| [Empty navigation stack](/ida-9.5/ida-actions/emptystack)               | `EmptyStack`          | Remove everything from the jumps stack                                                                                                                                                                                                                                                                      |
| Jump to pseudocode                                                      | `hx:JumpPseudo`       |                                                                                                                                                                                                                                                                                                             |
| [Jump to address...](/ida-9.5/ida-actions/jumpask)                      | `JumpAsk`             | Jump to the specified address.                                                                                                                                                                                                                                                                              |
| [Jump anywhere...](/ida-9.5/ida-actions/jumpanywhere)                   | `JumpAnywhere`        | Jump to any location in the database. Jump Anywhere simplifies navigating and quick jumps to any location within the IDB. The Jump Anywhere is designed as a fast, unified entry point to navigate "everywhere" - the dialog accept names, expressions, segment-relative addresses, and script identifiers. |
| [Jump by name...](/ida-9.5/ida-actions/jumpname)                        | `JumpName`            | Jump to the selected name. This command allows you to jump to a name definition by selecting it from the list of the names.                                                                                                                                                                                 |
| [Jump to function...](/ida-9.5/ida-actions/jumpfunction)                | `JumpFunction`        | Jump to the selected function. This command shows you a list of functions: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                                                                   |
| [Jump to segment...](/ida-9.5/ida-actions/jumpsegment)                  | `JumpSegment`         | Jump to the selected segment.                                                                                                                                                                                                                                                                               |
| [Jump to segment register...](/ida-9.5/ida-actions/jumpsegmentregister) | `JumpSegmentRegister` | Jump to the selected segment register change point.                                                                                                                                                                                                                                                         |
| [Jump to problem...](/ida-9.5/ida-actions/jumpq)                        | `JumpQ`               | Jump to the selected problematic location.                                                                                                                                                                                                                                                                  |
| [List cross references to...](/ida-9.5/ida-actions/jumpxref)            | `JumpXref`            | Jump to the selected cross reference                                                                                                                                                                                                                                                                        |
| [List cross references from...](/ida-9.5/ida-actions/jumpxreffrom)      | `JumpXrefFrom`        | Jump to a cross reference from current location                                                                                                                                                                                                                                                             |
| [Jump to xref to operand...](/ida-9.5/ida-actions/jumpopxref)           | `JumpOpXref`          | Jump to the selected cross reference to operand. This command shows you a list of cross-references to the current operand: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                   |
| [Jump to entry point...](/ida-9.5/ida-actions/jumpentrypoint)           | `JumpEntryPoint`      | This command shows you a list of entry points: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                                                                                               |
| [Jump to file offset...](/ida-9.5/ida-actions/jumpfileoffset)           | `JumpFileOffset`      | Jump to file offset. IDA will ask you for a target file offset. This command jumps to the address corresponding to this specified file offset. If this file offset corresponds to a valid address then:                                                                                                     |
| [Jump to link...](/ida-9.5/ida-actions/jumpidalink)                     | `JumpIdaLink`         | Opens a dialog that accepts any `ida://` URL and navigates to the target inside the current IDA instance.                                                                                                                                                                                                   |
| [Mark position...](/ida-9.5/ida-actions/markposition)                   | `MarkPosition`        | Remember the current position in the disassembly.                                                                                                                                                                                                                                                           |
| [Jump to marked position...](/ida-9.5/ida-actions/jumpposition)         | `JumpPosition`        | Jump to the selected marked position.                                                                                                                                                                                                                                                                       |
| [Clear mark...](/ida-9.5/ida-actions/clearmark)                         | `ClearMark`           | Clear mark                                                                                                                                                                                                                                                                                                  |


# Functions

{% hint style="info" %}
The options below appear when the **Jump menu is opened from the** [**Functions View**](/ida-9.5/core/user-interface/concepts/subviews#functions-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                          | Action Name           | Description                                                                                                                                                                                                                                                                                                 |
| ----------------------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Jump to operand](/ida-9.5/ida-actions/jumpenter)                       | `JumpEnter`           | Jump to the specified address.                                                                                                                                                                                                                                                                              |
| [Jump in a new window](/ida-9.5/ida-actions/jumpenternew)               | `JumpEnterNew`        | Jump in a new window                                                                                                                                                                                                                                                                                        |
| [Jump to previous position](/ida-9.5/ida-actions/return)                | `Return`              | Return to the previous saved position.                                                                                                                                                                                                                                                                      |
| [Jump to next position](/ida-9.5/ida-actions/undoreturn)                | `UndoReturn`          | Go to the next saved position.                                                                                                                                                                                                                                                                              |
| [Empty navigation stack](/ida-9.5/ida-actions/emptystack)               | `EmptyStack`          | Remove everything from the jumps stack                                                                                                                                                                                                                                                                      |
| Jump to pseudocode                                                      | `hx:JumpPseudo`       |                                                                                                                                                                                                                                                                                                             |
| [Jump to address...](/ida-9.5/ida-actions/jumpask)                      | `JumpAsk`             | Jump to the specified address.                                                                                                                                                                                                                                                                              |
| [Jump anywhere...](/ida-9.5/ida-actions/jumpanywhere)                   | `JumpAnywhere`        | Jump to any location in the database. Jump Anywhere simplifies navigating and quick jumps to any location within the IDB. The Jump Anywhere is designed as a fast, unified entry point to navigate "everywhere" - the dialog accept names, expressions, segment-relative addresses, and script identifiers. |
| [Jump by name...](/ida-9.5/ida-actions/jumpname)                        | `JumpName`            | Jump to the selected name. This command allows you to jump to a name definition by selecting it from the list of the names.                                                                                                                                                                                 |
| [Jump to function...](/ida-9.5/ida-actions/jumpfunction)                | `JumpFunction`        | Jump to the selected function. This command shows you a list of functions: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                                                                   |
| [Jump to segment...](/ida-9.5/ida-actions/jumpsegment)                  | `JumpSegment`         | Jump to the selected segment.                                                                                                                                                                                                                                                                               |
| [Jump to segment register...](/ida-9.5/ida-actions/jumpsegmentregister) | `JumpSegmentRegister` | Jump to the selected segment register change point.                                                                                                                                                                                                                                                         |
| [Jump to problem...](/ida-9.5/ida-actions/jumpq)                        | `JumpQ`               | Jump to the selected problematic location.                                                                                                                                                                                                                                                                  |
| [List cross references to...](/ida-9.5/ida-actions/jumpxref)            | `JumpXref`            | Jump to the selected cross reference                                                                                                                                                                                                                                                                        |
| [List cross references from...](/ida-9.5/ida-actions/jumpxreffrom)      | `JumpXrefFrom`        | Jump to a cross reference from current location                                                                                                                                                                                                                                                             |
| [Jump to xref to operand...](/ida-9.5/ida-actions/jumpopxref)           | `JumpOpXref`          | Jump to the selected cross reference to operand. This command shows you a list of cross-references to the current operand: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                   |
| [Jump to entry point...](/ida-9.5/ida-actions/jumpentrypoint)           | `JumpEntryPoint`      | This command shows you a list of entry points: you can jump to the selected one by pressing <kbd>Enter</kbd>.                                                                                                                                                                                               |
| [Jump to file offset...](/ida-9.5/ida-actions/jumpfileoffset)           | `JumpFileOffset`      | Jump to file offset. IDA will ask you for a target file offset. This command jumps to the address corresponding to this specified file offset. If this file offset corresponds to a valid address then:                                                                                                     |
| [Jump to link...](/ida-9.5/ida-actions/jumpidalink)                     | `JumpIdaLink`         | Opens a dialog that accepts any `ida://` URL and navigates to the target inside the current IDA instance.                                                                                                                                                                                                   |
| [Mark position...](/ida-9.5/ida-actions/markposition)                   | `MarkPosition`        | Remember the current position in the disassembly.                                                                                                                                                                                                                                                           |
| [Jump to marked position...](/ida-9.5/ida-actions/jumpposition)         | `JumpPosition`        | Jump to the selected marked position.                                                                                                                                                                                                                                                                       |
| [Clear mark...](/ida-9.5/ida-actions/clearmark)                         | `ClearMark`           | Clear mark                                                                                                                                                                                                                                                                                                  |


# Local Types

{% hint style="info" %}
The options below appear when the **Jump menu is opened from the** [**Local Types View**](/ida-9.5/core/user-interface/concepts/subviews#local-types-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                  | Action Name    | Applies to               | Description                                                                                                                                                                                                                                                                                                 |
| --------------------------------------------------------------- | -------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Jump by name...](/ida-9.5/ida-actions/jumpname)                | `JumpName`     | Enum, Structure          | Jump to the selected name. This command allows you to jump to a name definition by selecting it from the list of the names.                                                                                                                                                                                 |
| [Jump anywhere...](/ida-9.5/ida-actions/jumpanywhere)           | `JumpAnywhere` | Enum, Structure          | Jump to any location in the database. Jump Anywhere simplifies navigating and quick jumps to any location within the IDB. The Jump Anywhere is designed as a fast, unified entry point to navigate "everywhere" - the dialog accept names, expressions, segment-relative addresses, and script identifiers. |
| [Mark position...](/ida-9.5/ida-actions/markposition)           | `MarkPosition` | Enum, Structure, Typedef | Remember the current position in the disassembly.                                                                                                                                                                                                                                                           |
| [Jump to marked position...](/ida-9.5/ida-actions/jumpposition) | `JumpPosition` | Enum, Structure, Typedef | Jump to the selected marked position.                                                                                                                                                                                                                                                                       |
| [Clear mark...](/ida-9.5/ida-actions/clearmark)                 | `ClearMark`    | Enum, Structure, Typedef | Clear mark                                                                                                                                                                                                                                                                                                  |


# Search


# IDA View

{% hint style="info" %}
The options below appear when the **Search menu is opened from the** [**IDA View**](/ida-9.5/core/user-interface/concepts/subviews#ida-view). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                          | Action Name                          | Description                                                                                                                                                                     |
| ----------------------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Next code](/ida-9.5/ida-actions/jumpcode)                              | `JumpCode`                           | Search for the next instruction in the current direction                                                                                                                        |
| [Next data](/ida-9.5/ida-actions/jumpdata)                              | `JumpData`                           | Search for the next defined data item in the current direction                                                                                                                  |
| [Next explored](/ida-9.5/ida-actions/jumpexplored)                      | `JumpExplored`                       | Search for the next instruction or data (first defined byte) in the current direction                                                                                           |
| [Next unexplored](/ida-9.5/ida-actions/jumpunknown)                     | `JumpUnknown`                        | Search for the next unexplored byte                                                                                                                                             |
| [Immediate value...](/ida-9.5/ida-actions/asknextimmediate)             | `AskNextImmediate`                   | This command searches for the first instruction or data byte that contains the specified immediate value.                                                                       |
| [Next immediate value](/ida-9.5/ida-actions/jumpimmediate)              | `JumpImmediate`                      | Repeat search for immediate value                                                                                                                                               |
| [Text...](/ida-9.5/ida-actions/asknexttext)                             | `AskNextText`                        | This command searches for the specified substring in the text representation of the disassembly.                                                                                |
| [Next text](/ida-9.5/ida-actions/jumptext)                              | `JumpText`                           | Repeat search for text                                                                                                                                                          |
| [Sequence of bytes...](/ida-9.5/ida-actions/askbinarytext)              | `AskBinaryText`                      | This command searches for the specified substring in the file being disassembled.                                                                                               |
| [Next sequence of bytes](/ida-9.5/ida-actions/jumpbinarytext)           | `JumpBinaryText`                     | Repeat search for sequence of bytes. This command repeats search for text in core command.                                                                                      |
| [Not function](/ida-9.5/ida-actions/jumpnotfunction)                    | `JumpNotFunction`                    | Search for instruction not belonging to any function                                                                                                                            |
| [Next void](/ida-9.5/ida-actions/jumpsuspicious)                        | `JumpSuspicious`                     | Search for the next instruction with void operand.                                                                                                                              |
| [Error operand](/ida-9.5/ida-actions/jumperror)                         | `JumpError`                          | This command searches for the 'error' operands. Usually, these operands are displayed with a red color.                                                                         |
| [All void operands](/ida-9.5/ida-actions/findallsuspicious)             | `FindAllSuspicious`                  | All void operands. This command searches for all suspicious operands and presents a list of them. You may use this list to examine the operands and modify them as needed.      |
| [All error operands](/ida-9.5/ida-actions/findallerrors)                | `FindAllErrors`                      | All error operands. This command searches for all strings containing any error and presents a list of them. You may use this list to examine errors and correct them as needed. |
| Search for pictures                                                     | `picture_search:search_for_pictures` |                                                                                                                                                                                 |
| [Search direction](/ida-9.5/ida-actions/setdirection)                   | `SetDirection`                       | Change the search direction.                                                                                                                                                    |
| [Search highlight up](/ida-9.5/ida-actions/searchhighlightup)           | `SearchHighlightUp`                  | Search highlight up                                                                                                                                                             |
| [Search highlight down](/ida-9.5/ida-actions/searchhighlightdown)       | `SearchHighlightDown`                | Search highlight down                                                                                                                                                           |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_0)                | `LockHighlight_0`                    | Lock/unlock highlight color 1                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_1)                | `LockHighlight_1`                    | Lock/unlock highlight color 2                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_2)                | `LockHighlight_2`                    | Lock/unlock highlight color 3                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_3)                | `LockHighlight_3`                    | Lock/unlock highlight color 4                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_4)                | `LockHighlight_4`                    | Lock/unlock highlight color 5                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_5)                | `LockHighlight_5`                    | Lock/unlock highlight color 6                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_6)                | `LockHighlight_6`                    | Lock/unlock highlight color 7                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_7)                | `LockHighlight_7`                    | Lock highlight color 8                                                                                                                                                          |
| [Find register definition](/ida-9.5/ida-actions/findregisterdefinition) | `FindRegisterDefinition`             | Find register definition                                                                                                                                                        |
| [Find register use](/ida-9.5/ida-actions/findregisteruse)               | `FindRegisterUse`                    | Find register use                                                                                                                                                               |


# Pseudocode

{% hint style="info" %}
The options below appear when the **Search menu is opened from the** [**Pseudocode View**](/ida-9.5/core/user-interface/concepts/subviews#pseudocode-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                          | Action Name                          | Description                                                                                                                                                                     |
| ----------------------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Next code](/ida-9.5/ida-actions/jumpcode)                              | `JumpCode`                           | Search for the next instruction in the current direction                                                                                                                        |
| [Next data](/ida-9.5/ida-actions/jumpdata)                              | `JumpData`                           | Search for the next defined data item in the current direction                                                                                                                  |
| [Next explored](/ida-9.5/ida-actions/jumpexplored)                      | `JumpExplored`                       | Search for the next instruction or data (first defined byte) in the current direction                                                                                           |
| [Next unexplored](/ida-9.5/ida-actions/jumpunknown)                     | `JumpUnknown`                        | Search for the next unexplored byte                                                                                                                                             |
| [Immediate value...](/ida-9.5/ida-actions/asknextimmediate)             | `AskNextImmediate`                   | This command searches for the first instruction or data byte that contains the specified immediate value.                                                                       |
| [Next immediate value](/ida-9.5/ida-actions/jumpimmediate)              | `JumpImmediate`                      | Repeat search for immediate value                                                                                                                                               |
| [Text...](/ida-9.5/ida-actions/asknexttext)                             | `AskNextText`                        | This command searches for the specified substring in the text representation of the disassembly.                                                                                |
| [Next text](/ida-9.5/ida-actions/jumptext)                              | `JumpText`                           | Repeat search for text                                                                                                                                                          |
| [Sequence of bytes...](/ida-9.5/ida-actions/askbinarytext)              | `AskBinaryText`                      | This command searches for the specified substring in the file being disassembled.                                                                                               |
| [Next sequence of bytes](/ida-9.5/ida-actions/jumpbinarytext)           | `JumpBinaryText`                     | Repeat search for sequence of bytes. This command repeats search for text in core command.                                                                                      |
| [Not function](/ida-9.5/ida-actions/jumpnotfunction)                    | `JumpNotFunction`                    | Search for instruction not belonging to any function                                                                                                                            |
| [Next void](/ida-9.5/ida-actions/jumpsuspicious)                        | `JumpSuspicious`                     | Search for the next instruction with void operand.                                                                                                                              |
| [Error operand](/ida-9.5/ida-actions/jumperror)                         | `JumpError`                          | This command searches for the 'error' operands. Usually, these operands are displayed with a red color.                                                                         |
| [All void operands](/ida-9.5/ida-actions/findallsuspicious)             | `FindAllSuspicious`                  | All void operands. This command searches for all suspicious operands and presents a list of them. You may use this list to examine the operands and modify them as needed.      |
| [All error operands](/ida-9.5/ida-actions/findallerrors)                | `FindAllErrors`                      | All error operands. This command searches for all strings containing any error and presents a list of them. You may use this list to examine errors and correct them as needed. |
| Search for pictures                                                     | `picture_search:search_for_pictures` |                                                                                                                                                                                 |
| [Search direction](/ida-9.5/ida-actions/setdirection)                   | `SetDirection`                       | Change the search direction.                                                                                                                                                    |
| [Search highlight up](/ida-9.5/ida-actions/searchhighlightup)           | `SearchHighlightUp`                  | Search highlight up                                                                                                                                                             |
| [Search highlight down](/ida-9.5/ida-actions/searchhighlightdown)       | `SearchHighlightDown`                | Search highlight down                                                                                                                                                           |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_0)                | `LockHighlight_0`                    | Lock/unlock highlight color 1                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_1)                | `LockHighlight_1`                    | Lock/unlock highlight color 2                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_2)                | `LockHighlight_2`                    | Lock/unlock highlight color 3                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_3)                | `LockHighlight_3`                    | Lock/unlock highlight color 4                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_4)                | `LockHighlight_4`                    | Lock/unlock highlight color 5                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_5)                | `LockHighlight_5`                    | Lock/unlock highlight color 6                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_6)                | `LockHighlight_6`                    | Lock/unlock highlight color 7                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_7)                | `LockHighlight_7`                    | Lock highlight color 8                                                                                                                                                          |
| [Find register definition](/ida-9.5/ida-actions/findregisterdefinition) | `FindRegisterDefinition`             | Find register definition                                                                                                                                                        |
| [Find register use](/ida-9.5/ida-actions/findregisteruse)               | `FindRegisterUse`                    | Find register use                                                                                                                                                               |


# Microcode

{% hint style="info" %}
The options below appear when the **Search menu is opened from the** [**Microcode View**](/ida-9.5/core/user-interface/concepts/subviews#microcode-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                          | Action Name                          | Description                                                                                                                                                                     |
| ----------------------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Next code](/ida-9.5/ida-actions/jumpcode)                              | `JumpCode`                           | Search for the next instruction in the current direction                                                                                                                        |
| [Next data](/ida-9.5/ida-actions/jumpdata)                              | `JumpData`                           | Search for the next defined data item in the current direction                                                                                                                  |
| [Next explored](/ida-9.5/ida-actions/jumpexplored)                      | `JumpExplored`                       | Search for the next instruction or data (first defined byte) in the current direction                                                                                           |
| [Next unexplored](/ida-9.5/ida-actions/jumpunknown)                     | `JumpUnknown`                        | Search for the next unexplored byte                                                                                                                                             |
| [Immediate value...](/ida-9.5/ida-actions/asknextimmediate)             | `AskNextImmediate`                   | This command searches for the first instruction or data byte that contains the specified immediate value.                                                                       |
| [Next immediate value](/ida-9.5/ida-actions/jumpimmediate)              | `JumpImmediate`                      | Repeat search for immediate value                                                                                                                                               |
| [Text...](/ida-9.5/ida-actions/asknexttext)                             | `AskNextText`                        | This command searches for the specified substring in the text representation of the disassembly.                                                                                |
| [Next text](/ida-9.5/ida-actions/jumptext)                              | `JumpText`                           | Repeat search for text                                                                                                                                                          |
| [Sequence of bytes...](/ida-9.5/ida-actions/askbinarytext)              | `AskBinaryText`                      | This command searches for the specified substring in the file being disassembled.                                                                                               |
| [Next sequence of bytes](/ida-9.5/ida-actions/jumpbinarytext)           | `JumpBinaryText`                     | Repeat search for sequence of bytes. This command repeats search for text in core command.                                                                                      |
| [Not function](/ida-9.5/ida-actions/jumpnotfunction)                    | `JumpNotFunction`                    | Search for instruction not belonging to any function                                                                                                                            |
| [Next void](/ida-9.5/ida-actions/jumpsuspicious)                        | `JumpSuspicious`                     | Search for the next instruction with void operand.                                                                                                                              |
| [Error operand](/ida-9.5/ida-actions/jumperror)                         | `JumpError`                          | This command searches for the 'error' operands. Usually, these operands are displayed with a red color.                                                                         |
| [All void operands](/ida-9.5/ida-actions/findallsuspicious)             | `FindAllSuspicious`                  | All void operands. This command searches for all suspicious operands and presents a list of them. You may use this list to examine the operands and modify them as needed.      |
| [All error operands](/ida-9.5/ida-actions/findallerrors)                | `FindAllErrors`                      | All error operands. This command searches for all strings containing any error and presents a list of them. You may use this list to examine errors and correct them as needed. |
| Search for pictures                                                     | `picture_search:search_for_pictures` |                                                                                                                                                                                 |
| [Search direction](/ida-9.5/ida-actions/setdirection)                   | `SetDirection`                       | Change the search direction.                                                                                                                                                    |
| [Search highlight up](/ida-9.5/ida-actions/searchhighlightup)           | `SearchHighlightUp`                  | Search highlight up                                                                                                                                                             |
| [Search highlight down](/ida-9.5/ida-actions/searchhighlightdown)       | `SearchHighlightDown`                | Search highlight down                                                                                                                                                           |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_0)                | `LockHighlight_0`                    | Lock/unlock highlight color 1                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_1)                | `LockHighlight_1`                    | Lock/unlock highlight color 2                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_2)                | `LockHighlight_2`                    | Lock/unlock highlight color 3                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_3)                | `LockHighlight_3`                    | Lock/unlock highlight color 4                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_4)                | `LockHighlight_4`                    | Lock/unlock highlight color 5                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_5)                | `LockHighlight_5`                    | Lock/unlock highlight color 6                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_6)                | `LockHighlight_6`                    | Lock/unlock highlight color 7                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_7)                | `LockHighlight_7`                    | Lock highlight color 8                                                                                                                                                          |
| [Find register definition](/ida-9.5/ida-actions/findregisterdefinition) | `FindRegisterDefinition`             | Find register definition                                                                                                                                                        |
| [Find register use](/ida-9.5/ida-actions/findregisteruse)               | `FindRegisterUse`                    | Find register use                                                                                                                                                               |


# Hex View

{% hint style="info" %}
The options below appear when the **Search menu is opened from the** [**Hex View**](/ida-9.5/core/user-interface/concepts/subviews#hex-view). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                          | Action Name                          | Description                                                                                                                                                                     |
| ----------------------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Next code](/ida-9.5/ida-actions/jumpcode)                              | `JumpCode`                           | Search for the next instruction in the current direction                                                                                                                        |
| [Next data](/ida-9.5/ida-actions/jumpdata)                              | `JumpData`                           | Search for the next defined data item in the current direction                                                                                                                  |
| [Next explored](/ida-9.5/ida-actions/jumpexplored)                      | `JumpExplored`                       | Search for the next instruction or data (first defined byte) in the current direction                                                                                           |
| [Next unexplored](/ida-9.5/ida-actions/jumpunknown)                     | `JumpUnknown`                        | Search for the next unexplored byte                                                                                                                                             |
| [Immediate value...](/ida-9.5/ida-actions/asknextimmediate)             | `AskNextImmediate`                   | This command searches for the first instruction or data byte that contains the specified immediate value.                                                                       |
| [Next immediate value](/ida-9.5/ida-actions/jumpimmediate)              | `JumpImmediate`                      | Repeat search for immediate value                                                                                                                                               |
| [Text...](/ida-9.5/ida-actions/asknexttext)                             | `AskNextText`                        | This command searches for the specified substring in the text representation of the disassembly.                                                                                |
| [Next text](/ida-9.5/ida-actions/jumptext)                              | `JumpText`                           | Repeat search for text                                                                                                                                                          |
| [Sequence of bytes...](/ida-9.5/ida-actions/askbinarytext)              | `AskBinaryText`                      | This command searches for the specified substring in the file being disassembled.                                                                                               |
| [Next sequence of bytes](/ida-9.5/ida-actions/jumpbinarytext)           | `JumpBinaryText`                     | Repeat search for sequence of bytes. This command repeats search for text in core command.                                                                                      |
| [Not function](/ida-9.5/ida-actions/jumpnotfunction)                    | `JumpNotFunction`                    | Search for instruction not belonging to any function                                                                                                                            |
| [Next void](/ida-9.5/ida-actions/jumpsuspicious)                        | `JumpSuspicious`                     | Search for the next instruction with void operand.                                                                                                                              |
| [Error operand](/ida-9.5/ida-actions/jumperror)                         | `JumpError`                          | This command searches for the 'error' operands. Usually, these operands are displayed with a red color.                                                                         |
| [All void operands](/ida-9.5/ida-actions/findallsuspicious)             | `FindAllSuspicious`                  | All void operands. This command searches for all suspicious operands and presents a list of them. You may use this list to examine the operands and modify them as needed.      |
| [All error operands](/ida-9.5/ida-actions/findallerrors)                | `FindAllErrors`                      | All error operands. This command searches for all strings containing any error and presents a list of them. You may use this list to examine errors and correct them as needed. |
| Search for pictures                                                     | `picture_search:search_for_pictures` |                                                                                                                                                                                 |
| [Search direction](/ida-9.5/ida-actions/setdirection)                   | `SetDirection`                       | Change the search direction.                                                                                                                                                    |
| [Search highlight up](/ida-9.5/ida-actions/searchhighlightup)           | `SearchHighlightUp`                  | Search highlight up                                                                                                                                                             |
| [Search highlight down](/ida-9.5/ida-actions/searchhighlightdown)       | `SearchHighlightDown`                | Search highlight down                                                                                                                                                           |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_0)                | `LockHighlight_0`                    | Lock/unlock highlight color 1                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_1)                | `LockHighlight_1`                    | Lock/unlock highlight color 2                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_2)                | `LockHighlight_2`                    | Lock/unlock highlight color 3                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_3)                | `LockHighlight_3`                    | Lock/unlock highlight color 4                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_4)                | `LockHighlight_4`                    | Lock/unlock highlight color 5                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_5)                | `LockHighlight_5`                    | Lock/unlock highlight color 6                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_6)                | `LockHighlight_6`                    | Lock/unlock highlight color 7                                                                                                                                                   |
| [... (unassigned)](/ida-9.5/ida-actions/lockhighlight_7)                | `LockHighlight_7`                    | Lock highlight color 8                                                                                                                                                          |
| [Find register definition](/ida-9.5/ida-actions/findregisterdefinition) | `FindRegisterDefinition`             | Find register definition                                                                                                                                                        |
| [Find register use](/ida-9.5/ida-actions/findregisteruse)               | `FindRegisterUse`                    | Find register use                                                                                                                                                               |


# Functions

{% hint style="info" %}
The options below appear when the **Search menu is opened from the** [**Functions View**](/ida-9.5/core/user-interface/concepts/subviews#functions-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                          | Action Name          | Description  |
| ------------------------------------------------------- | -------------------- | ------------ |
| [Search...](/ida-9.5/ida-actions/dirtreesearch)         | `DirTreeSearch`      | Search       |
| [Search again](/ida-9.5/ida-actions/dirtreesearchagain) | `DirTreeSearchAgain` | Search again |


# Local Types

{% hint style="info" %}
The options below appear when the **Search menu is opened from the** [**Local Types View**](/ida-9.5/core/user-interface/concepts/subviews#local-types-window). In other views, the menu adapts dynamically and may show a different set of options.
{% endhint %}

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                        | Action Name    | Applies to               | Description                                                                                      |
| ----------------------------------------------------- | -------------- | ------------------------ | ------------------------------------------------------------------------------------------------ |
| [Text...](/ida-9.5/ida-actions/asknexttext)           | `AskNextText`  | Enum, Structure, Typedef | This command searches for the specified substring in the text representation of the disassembly. |
| [Next text](/ida-9.5/ida-actions/jumptext)            | `JumpText`     | Enum, Structure, Typedef | Repeat search for text                                                                           |
| [Search direction](/ida-9.5/ida-actions/setdirection) | `SetDirection` | Enum, Structure, Typedef | Change the search direction.                                                                     |


# View

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                       | Action Name                    | Description                                                                                                                                                                                                                                              |
| -------------------------------------------------------------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Quick view](/ida-9.5/ida-actions/quickview)                         | `QuickView`                    | Quickly open a view                                                                                                                                                                                                                                      |
| [Disassembly](/ida-9.5/ida-actions/windowopen)                       | `WindowOpen`                   | Open disassembly view                                                                                                                                                                                                                                    |
| [Proximity browser](/ida-9.5/ida-actions/graphnewproximityview)      | `GraphNewProximityView`        | Open new proximity browser                                                                                                                                                                                                                               |
| Generate microcode                                                   | `mv:GenMicro`                  |                                                                                                                                                                                                                                                          |
| Generate pseudocode                                                  | `hx:GenPseudo`                 |                                                                                                                                                                                                                                                          |
| [Hex dump](/ida-9.5/ida-actions/toggledump)                          | `ToggleDump`                   | Open hexadecimal view                                                                                                                                                                                                                                    |
| [Address details](/ida-9.5/ida-actions/addressdetails)               | `AddressDetails`               | Address details                                                                                                                                                                                                                                          |
| [Exports](/ida-9.5/ida-actions/openexports)                          | `OpenExports`                  | Open exports window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                            |
| [Imports](/ida-9.5/ida-actions/openimports)                          | `OpenImports`                  | Open imports window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                            |
| [Names](/ida-9.5/ida-actions/opennames)                              | `OpenNames`                    | Open names window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                              |
| [Functions](/ida-9.5/ida-actions/openfunctions)                      | `OpenFunctions`                | Open functions window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                          |
| [Strings](/ida-9.5/ida-actions/openstrings)                          | `OpenStrings`                  | Open string window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                             |
| [Segments](/ida-9.5/ida-actions/opensegments)                        | `OpenSegments`                 | Open segments window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                           |
| [Segment registers](/ida-9.5/ida-actions/opensegmentregisters)       | `OpenSegmentRegisters`         | Open segment registers window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                  |
| [Selectors](/ida-9.5/ida-actions/openselectors)                      | `OpenSelectors`                | Open selectors window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                          |
| [Signatures](/ida-9.5/ida-actions/opensignatures)                    | `OpenSignatures`               | Open signatures window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                         |
| [Type libraries](/ida-9.5/ida-actions/opentypelibraries)             | `OpenTypeLibraries`            | Open types window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                              |
| [Local types](/ida-9.5/ida-actions/openlocaltypes)                   | `OpenLocalTypes`               | Open local type definitions window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                             |
| [Cross references](/ida-9.5/ida-actions/openxrefs)                   | `OpenXrefs`                    | Open cross references window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                   |
| [Cross references tree](/ida-9.5/ida-actions/openxrefstree)          | `OpenXrefsTree`                | Open cross references tree. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                     |
| [Bookmarks](/ida-9.5/ida-actions/openbookmarks)                      | `OpenBookmarks`                | Open bookmarks window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                          |
| Open picture                                                         | `picture_search:open_picture`  |                                                                                                                                                                                                                                                          |
| [Notepad](/ida-9.5/ida-actions/opennotepad)                          | `OpenNotepad`                  | Open notepad window to create general notes about the current database. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                         |
| [Problems](/ida-9.5/ida-actions/openproblems)                        | `OpenProblems`                 | Open problems window. See [subviews](/ida-9.5/core/user-interface/concepts/subviews) for more.                                                                                                                                                           |
| [Patched bytes](/ida-9.5/ida-actions/patchedbytes)                   | `PatchedBytes`                 | Open the Patched bytes window. The Patched bytes view shows the list of the patched locations in the database. It also allows you to revert modifications selectively.                                                                                   |
| [Navigation history](/ida-9.5/ida-actions/showviewnavigationhistory) | `ShowViewNavigationHistory`    | Navigation history                                                                                                                                                                                                                                       |
| [Undo history](/ida-9.5/ida-actions/showundohistory)                 | `ShowUndoHistory`              | Undo history                                                                                                                                                                                                                                             |
| Xrefs graph to                                                       | `xref_graph:ShowXrefGraphTo`   |                                                                                                                                                                                                                                                          |
| Xrefs graph from                                                     | `xref_graph:ShowXrefGraphFrom` |                                                                                                                                                                                                                                                          |
| Function calls                                                       | `xref_graph:FuncCallXrefGraph` |                                                                                                                                                                                                                                                          |
| Manage...                                                            | `xref_graph:ShowGraphsDialog`  |                                                                                                                                                                                                                                                          |
| [Calculator...](/ida-9.5/ida-actions/calculate)                      | `Calculate`                    | Open calculator.                                                                                                                                                                                                                                         |
| [Full screen](/ida-9.5/ida-actions/fullscreen)                       | `FullScreen`                   | Display the current view in full screen                                                                                                                                                                                                                  |
| [Graph Overview](/ida-9.5/ida-actions/graphoverview)                 | `GraphOverview`                | Display the graph overview if hidden                                                                                                                                                                                                                     |
| [Recent scripts](/ida-9.5/ida-actions/recentscripts)                 | `RecentScripts`                | Opens the [Scripts window](https://github.com/HexRaysSA/ida-docs/tree/9.5/core/user-interface/reference/menu-bar/core/user-interface/concepts/scripts-window.md) on its **Recent scripts** tab, listing the external script files you have run recently. |
| [Database snapshot manager...](/ida-9.5/ida-actions/showsnapman)     | `ShowSnapMan`                  | Show the database snapshot manager. This command shows the database snapshot manager. In this dialog, it is possible to restore previously saved snapshots, rename or delete them.                                                                       |
| [Increase Font Size](/ida-9.5/ida-actions/fontsizeincrease)          | `FontSizeIncrease`             | Increase Font Size                                                                                                                                                                                                                                       |
| [Decrease Font Size](/ida-9.5/ida-actions/fontsizedecrease)          | `FontSizeDecrease`             | Decrease Font Size                                                                                                                                                                                                                                       |
| [Reset Font Size](/ida-9.5/ida-actions/fontsizereset)                | `FontSizeReset`                | Reset Font Size                                                                                                                                                                                                                                          |
| [Print segment registers](/ida-9.5/ida-actions/showregisters)        | `ShowRegisters`                | Print segment registers in the messages window.                                                                                                                                                                                                          |
| [Print internal flags](/ida-9.5/ida-actions/showflags)               | `ShowFlags`                    | Print internal flags in the messages window                                                                                                                                                                                                              |
| [Print register value](/ida-9.5/ida-actions/findregistervalue)       | `FindRegisterValue`            | Print register value                                                                                                                                                                                                                                     |
| [Hide](/ida-9.5/ida-actions/hide)                                    | `Hide`                         | Hide the current function, segment, structure, enumeration or create a hidden range.                                                                                                                                                                     |
| [Unhide](/ida-9.5/ida-actions/unhide)                                | `UnHide`                       | Unhide the current function, segment, structure, enumeration or hidden range.                                                                                                                                                                            |
| [Hide all](/ida-9.5/ida-actions/hideall)                             | `HideAll`                      | Hide all functions, structs or enums.                                                                                                                                                                                                                    |
| [Unhide all](/ida-9.5/ida-actions/unhideall)                         | `UnHideAll`                    | Unhide all functions, structs or enums                                                                                                                                                                                                                   |
| [Delete hidden range](/ida-9.5/ida-actions/delhiddenrange)           | `DelHiddenRange`               | Delete the current hidden range, or all hidden ranges in a range.                                                                                                                                                                                        |
| [Setup hidden items...](/ida-9.5/ida-actions/setuphidden)            | `SetupHidden`                  | Setup hidden items                                                                                                                                                                                                                                       |


# Extensions

The **Extensions** menu is the unified place for IDA's add-ons, such as Teams and Lumina, and for plugins. Each extension gets its own submenu here. If your license doesn't cover an add-on, or it isn't installed, the submenu holds a single action, **Learn about \<extension>**, which gives you more details about it.

| Extension                                                                                            | Description                                                                                                     |
| ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| [Teams (Git)](/ida-9.5/core/user-interface/reference/menu-bar-actions/extensions/common-actions)     | Collaborate on the same binary using the Git backend.                                                           |
| [Teams (Vault)](/ida-9.5/core/user-interface/reference/menu-bar-actions/extensions/common-actions-1) | Collaborate on the same binary using the legacy Vault backend.                                                  |
| [Lumina](/ida-9.5/core/user-interface/reference/menu-bar-actions/extensions/common-actions-2)        | Connects to Private or Public Lumina service to share and retrieve function metadata across different binaries. |


# Teams (Git)

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                | Action Name        | Description                                                                                                                                                                                                                                                                                                                             |
| ------------------------------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Create Repository](/ida-9.5/ida-actions/gitnewproject)       | `GitNewProject`    | Creates a new Git repository from the directory containing the current IDB. You can link it to an empty remote URL.                                                                                                                                                                                                                     |
| [Clone Repository](/ida-9.5/ida-actions/gitgetproject)        | `GitGetProject`    | Clones an existing Git repository to a local folder. Enter the remote URL shared with you and select a destination folder. Once cloned, you can open existing databases from the repository or add new ones.                                                                                                                            |
| [Reconfigure Repository](/ida-9.5/ida-actions/gitinitproject) | `GitInitProject`   | Sets up IDA Teams (`git-ida`) in an existing Git repository. IDA registers the `git-ida` filter, adds the required `.gitattributes` and `.gitignore` entries, and commits them.                                                                                                                                                         |
| [Local Changes](/ida-9.5/ida-actions/gitlocalchanges)         | `GitLocalChanges`  | Opens an IDA diff comparing the current working database copy against the last committed version                                                                                                                                                                                                                                        |
| [Revert Local Changes](/ida-9.5/ida-actions/gitrevert)        | `GitRevert`        | Discard all local changes and restore the database to the last commit.                                                                                                                                                                                                                                                                  |
| [Pull](/ida-9.5/ida-actions/gitpull)                          | `GitPull`          | Pull database updates from the remote repository.                                                                                                                                                                                                                                                                                       |
| [Commit](/ida-9.5/ida-actions/gitsaveandcommit)               | `GitSaveAndCommit` | Opens a dialog to commit local changes. Enter a commit message and choose whether to **Commit** only or **Commit and Push** to the remote in one step. Changes can also be pushed separately using the [Push](https://github.com/HexRaysSA/ida-docs/tree/9.5/core/user-interface/reference/menu-bar/teams%20\(git\)/GitPush.md) action. |
| [Push](/ida-9.5/ida-actions/gitpush)                          | `GitPush`          | Push database commits to the remote repository.                                                                                                                                                                                                                                                                                         |
| [History](/ida-9.5/ida-actions/githistory)                    | `GitHistory`       | Opens the Git History dialog, listing all commits and allowing you to compare database versions.                                                                                                                                                                                                                                        |
| [Repository Settings](/ida-9.5/ida-actions/gitaccount)        | `GitAccount`       | Open a dialog for configuring your Git identity and remote repository URL.                                                                                                                                                                                                                                                              |
| [Manage Repositories](/ida-9.5/ida-actions/gitmanagerepos)    | `GitManageRepos`   | Opens a chooser listing all repositories known to IDA (including path, branch, and remote), allowing you to manage multiple repositories.                                                                                                                                                                                               |
| Learn About Teams                                             | `LearnAboutTeams`  |                                                                                                                                                                                                                                                                                                                                         |


# Teams (Vault)

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                              | Action Name               | Description                                                                                                                                                                                                  |
| ----------------------------------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Connect](/ida-9.5/ida-actions/logon)                       | `logon`                   | Open the "Connect to server" dialog.                                                                                                                                                                         |
| [Disconnect](/ida-9.5/ida-actions/logoff)                   | `logoff`                  | Disconnect from the Teams server.                                                                                                                                                                            |
| [Vault files](/ida-9.5/ida-actions/open_vault_files_widget) | `open_vault_files_widget` | Open the Vault files widget, which displays the data available on the server.                                                                                                                                |
| [Local files](/ida-9.5/ida-actions/open_local_files_widget) | `open_local_files_widget` | Open the Local files widget, which displays the data available on the local disk.                                                                                                                            |
| [Worklists](/ida-9.5/ida-actions/open_worklists_widget)     | `open_worklists_widget`   | Open the Worklist widget, which displays all pending modifications that are not yet visible to other users. A typical worklist contains related files and becomes visible to all users once it is committed. |
| [Commits](/ida-9.5/ida-actions/open_commits_widget)         | `open_commits_widget`     | Open the Commits widget, which shows a list of previous commits made to the server.                                                                                                                          |
| [Sites](/ida-9.5/ida-actions/open_sites_widget)             | `open_sites_widget`       | Open the Sites widget, which allows you to manage user sites. Non-admin users are limited to their own sites.                                                                                                |
| [Users](/ida-9.5/ida-actions/open_users_widget)             | `open_users_widget`       | Open the Users widget, which lists all known users on the Teams server. Non-admin users can change their passwords here.                                                                                     |
| [Teams Options](/ida-9.5/ida-actions/teams_options)         | `teams_options`           |                                                                                                                                                                                                              |


# Lumina

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                   | Action Name                 | Description                                      |
| ---------------------------------------------------------------- | --------------------------- | ------------------------------------------------ |
| [Pull all](/ida-9.5/ida-actions/luminapullallmds)                | `LuminaPullAllMds`          | Pull all metadata from the primary server.       |
| [Push all](/ida-9.5/ida-actions/luminapushallmds)                | `LuminaPushAllMds`          | Push all metadata to the primary server.         |
| [View all](/ida-9.5/ida-actions/luminaviewallmds)                | `LuminaViewAllMds`          | View all metadata from the primary server.       |
| [Pull function main](/ida-9.5/ida-actions/luminapullmd)          | `LuminaPullMd`              | Pull function metadata from the primary server   |
| [Push function main](/ida-9.5/ida-actions/luminapushmd)          | `LuminaPushMd`              | Push function metadata to the primary server     |
| [Pull all](/ida-9.5/ida-actions/luminasecondarypullallmds)       | `LuminaSecondaryPullAllMds` | Pull all metadata from the secondary server      |
| [Push all](/ida-9.5/ida-actions/luminasecondarypushallmds)       | `LuminaSecondaryPushAllMds` | Push all metadata to the secondary server        |
| [View all](/ida-9.5/ida-actions/luminasecondaryviewallmds)       | `LuminaSecondaryViewAllMds` | View all metadata from the secondary server      |
| [Pull function main](/ida-9.5/ida-actions/luminasecondarypullmd) | `LuminaSecondaryPullMd`     | Pull function metadata from the secondary server |
| [Push function main](/ida-9.5/ida-actions/luminasecondarypushmd) | `LuminaSecondaryPushMd`     | Push function metadata to the secondary server   |
| [Revert function main](/ida-9.5/ida-actions/luminarevertmd)      | `LuminaRevertMd`            | Revert function metadata                         |


# Debugger

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                               | Action Name                  | Description                                                                                                                                                                                                                    |
| ---------------------------------------------------------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Quick debug view](/ida-9.5/ida-actions/quickdbgview)                        | `QuickDbgView`               | Quickly open a debug view                                                                                                                                                                                                      |
| [Debugger window](/ida-9.5/ida-actions/debugger)                             | `Debugger`                   | Open debugging window.                                                                                                                                                                                                         |
| [Thread list](/ida-9.5/ida-actions/threads)                                  | `Threads`                    | Open threads window.                                                                                                                                                                                                           |
| [Module list](/ida-9.5/ida-actions/modules)                                  | `Modules`                    | Open modules window.                                                                                                                                                                                                           |
| [Locals](/ida-9.5/ida-actions/locals)                                        | `Locals`                     | Open local variables window                                                                                                                                                                                                    |
| [Stack view](/ida-9.5/ida-actions/stackview)                                 | `StackView`                  | Stack view                                                                                                                                                                                                                     |
| [Stack trace](/ida-9.5/ida-actions/stacktrace)                               | `StackTrace`                 | Open the stack trace window.                                                                                                                                                                                                   |
| [Watch view](/ida-9.5/ida-actions/watchview)                                 | `WatchView`                  | Open a new watch window                                                                                                                                                                                                        |
| [Breakpoint list](/ida-9.5/ida-actions/breakpoints)                          | `Breakpoints`                | Open breakpoints window. In this window, you can view information related to existing breakpoints. Breakpoints are saved in the database, and restored as soon as possible (once the memory becomes writeable).                |
| [Add breakpoint](/ida-9.5/ida-actions/breakpointadd)                         | `BreakpointAdd`              | Add a breakpoint to the current address.                                                                                                                                                                                       |
| [Delete breakpoint](/ida-9.5/ida-actions/breakpointdel)                      | `BreakpointDel`              | Delete the breakpoint at the current address                                                                                                                                                                                   |
| [Watch list](/ida-9.5/ida-actions/watchlist)                                 | `WatchList`                  | Open the watch list window.                                                                                                                                                                                                    |
| [Add watch](/ida-9.5/ida-actions/addwatch)                                   | `AddWatch`                   | Add a variable to watch. This command adds a watch at the current address. The watch is visible in the Watch list window (accessible via the `WatchList` action).                                                              |
| [Delete watch](/ida-9.5/ida-actions/delwatch)                                | `DelWatch`                   | Delete an existing watch.                                                                                                                                                                                                      |
| [Tracing window](/ida-9.5/ida-actions/tracingwindow)                         | `TracingWindow`              | Open tracing window. In this window, you can view some information related to all traced events. The tracing events are the information saved during the execution of a program. Different type of trace events are available: |
| [Clear trace](/ida-9.5/ida-actions/cleartrace)                               | `ClearTrace`                 | This command removes all trace events from the Tracing window. It also removes any loaded trace file used for diffing against the currently loaded trace.                                                                      |
| [Instruction tracing](/ida-9.5/ida-actions/toggletraceinstructions)          | `ToggleTraceInstructions`    | Toggle instruction tracing.                                                                                                                                                                                                    |
| [Basic block tracing](/ida-9.5/ida-actions/toggletracebasicblocks)           | `ToggleTraceBasicBlocks`     | Toggle basic block tracing.                                                                                                                                                                                                    |
| [Function tracing](/ida-9.5/ida-actions/toggletracefunctions)                | `ToggleTraceFunctions`       | Toggle function tracing.                                                                                                                                                                                                       |
| [Add write trace](/ida-9.5/ida-actions/writetraceadd)                        | `WriteTraceAdd`              | Add a write trace to the current address.                                                                                                                                                                                      |
| [Add read/write trace](/ida-9.5/ida-actions/readwritetraceadd)               | `ReadWriteTraceAdd`          | Add a read/write trace to the current address.                                                                                                                                                                                 |
| [Add execution trace](/ida-9.5/ida-actions/exectraceadd)                     | `ExecTraceAdd`               | Add an execution trace to the current address.                                                                                                                                                                                 |
| [Tracing options...](/ida-9.5/ida-actions/setuptracing)                      | `SetupTracing`               | This command opens a dialog box that allows you to specify different settings related to the tracing features.                                                                                                                 |
| [Start process](/ida-9.5/ida-actions/processstart)                           | `ProcessStart`               | Start a new process in the debugger or continue a debugged process.                                                                                                                                                            |
| [Attach to process...](/ida-9.5/ida-actions/processattach)                   | `ProcessAttach`              | Attach the debugger to a running process                                                                                                                                                                                       |
| [Process options...](/ida-9.5/ida-actions/setupprocess)                      | `SetupProcess`               | Open the Process options dialog. It allows to specify different settings related to the process being debugged.                                                                                                                |
| [Pause process](/ida-9.5/ida-actions/processpause)                           | `ProcessPause`               | Pause or continue the debugged process                                                                                                                                                                                         |
| [Terminate process](/ida-9.5/ida-actions/processexit)                        | `ProcessExit`                | Terminate the debugged process                                                                                                                                                                                                 |
| [Detach from process](/ida-9.5/ida-actions/processdetach)                    | `ProcessDetach`              | Detach the debugger from the debugged process                                                                                                                                                                                  |
| [Refresh memory](/ida-9.5/ida-actions/refreshmemcfg)                         | `RefreshMemcfg`              | Refresh memory.                                                                                                                                                                                                                |
| [Take memory snapshot](/ida-9.5/ida-actions/takesnapshot)                    | `TakeSnapshot`               | Take memory snapshot.                                                                                                                                                                                                          |
| [Step into](/ida-9.5/ida-actions/threadstepinto)                             | `ThreadStepInto`             | Execute each instruction                                                                                                                                                                                                       |
| [Step over](/ida-9.5/ida-actions/threadstepover)                             | `ThreadStepOver`             | Execute instructions without entering into functions                                                                                                                                                                           |
| [Run until return](/ida-9.5/ida-actions/threadrununtilreturn)                | `ThreadRunUntilReturn`       | Run until execution returns from the current function.                                                                                                                                                                         |
| [Run to cursor](/ida-9.5/ida-actions/threadruntocursor)                      | `ThreadRunToCursor`          | Execute instructions until instruction under the cursor is reached                                                                                                                                                             |
| [Continue backwards](/ida-9.5/ida-actions/processgobackwards)                | `ProcessGoBackwards`         | Continue execution backwards in a trace (with supported debuggers)                                                                                                                                                             |
| [Step into (backwards)](/ida-9.5/ida-actions/threadstepintobackwards)        | `ThreadStepIntoBackwards`    | Execute each instruction backwards                                                                                                                                                                                             |
| [Step over (backwards)](/ida-9.5/ida-actions/threadstepoverbackwards)        | `ThreadStepOverBackwards`    | Execute instructions backwards without entering into functions.                                                                                                                                                                |
| [Run to cursor (backwards)](/ida-9.5/ida-actions/threadruntocursorbackwards) | `ThreadRunToCursorBackwards` | Execute instructions backwards until instruction under the cursor is reached                                                                                                                                                   |
| [Switch to source](/ida-9.5/ida-actions/switchtosource)                      | `SwitchToSource`             | Switch from disassembly to source view                                                                                                                                                                                         |
| [Use source-level debugging](/ida-9.5/ida-actions/togglesourcedebug)         | `ToggleSourceDebug`          | Use source-level debugging                                                                                                                                                                                                     |
| [Open source file...](/ida-9.5/ida-actions/opensourcefile)                   | `OpenSourceFile`             | Open a source file                                                                                                                                                                                                             |
| [Debugger options...](/ida-9.5/ida-actions/setupdebugger)                    | `SetupDebugger`              | Open Debugger setup dialog.                                                                                                                                                                                                    |
| [Switch debugger...](/ida-9.5/ida-actions/switchdebugger)                    | `SwitchDebugger`             | Select debugger.                                                                                                                                                                                                               |


# Options

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                               | Action Name                | Description                                                                                                                                                                                                                                                                                                                                                                         |
| ---------------------------------------------------------------------------- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [General...](/ida-9.5/ida-actions/options)                                   | `Options`                  | Open the General IDA Options dialog, where settings are organized thematically across multiple tabs.                                                                                                                                                                                                                                                                                |
| [Colors...](/ida-9.5/ida-actions/setcolors)                                  | `SetColors`                | Setup colors. The IDA Colors dialog lets you change the active theme or fine-tune the one currently in use. Each tab lets you customize specific parts of the UI.                                                                                                                                                                                                                   |
| [Font...](/ida-9.5/ida-actions/setfont)                                      | `SetFont`                  | Setup font. This dialog allows you to customize the font used in listings.                                                                                                                                                                                                                                                                                                          |
| [Feature Flags...](/ida-9.5/ida-actions/showfeatureflags)                    | `ShowFeatureFlags`         | Configure feature flags. This dialog lists optional features that can be enabled or disabled.                                                                                                                                                                                                                                                                                       |
| [Shortcuts...](/ida-9.5/ida-actions/shortcuteditor)                          | `ShortcutEditor`           | Edit shortcuts. This dialog allows you to view and customize all keyboard shortcuts used in IDA. You can use <kbd>Ctrl</kbd> + <kbd>F</kbd> to search by command name or keyboard shortcut.                                                                                                                                                                                         |
| [Show command palette...](/ida-9.5/ida-actions/commandpalette)               | `CommandPalette`           | Show command palette. This command opens a dialog, that provides quick access to all available IDA actions with shortcuts and descriptions.                                                                                                                                                                                                                                         |
| [Repeat last palette command](/ida-9.5/ida-actions/repeatlastpalettecommand) | `RepeatLastPaletteCommand` | Repeat last palette command                                                                                                                                                                                                                                                                                                                                                         |
| [Disable undo](/ida-9.5/ida-actions/undotoggle)                              | `UndoToggle`               | Disable undo                                                                                                                                                                                                                                                                                                                                                                        |
| [Reset undo history](/ida-9.5/ida-actions/resetundohistory)                  | `ResetUndoHistory`         | Reset undo history.                                                                                                                                                                                                                                                                                                                                                                 |
| [Assembler directives...](/ida-9.5/ida-actions/setdirectives)                | `SetDirectives`            | Setup assembler directive generation.                                                                                                                                                                                                                                                                                                                                               |
| [Name representation...](/ida-9.5/ida-actions/setnametype)                   | `SetNameType`              | Setup name representation.                                                                                                                                                                                                                                                                                                                                                          |
| [Demangled names...](/ida-9.5/ida-actions/setdemanglednames)                 | `SetDemangledNames`        | Setup C++ demangled name representation.                                                                                                                                                                                                                                                                                                                                            |
| [Compiler...](/ida-9.5/ida-actions/setupcompiler)                            | `SetupCompiler`            | Setup target compiler and its parameters. This dialog allows the user to specify the compiler used to create the program along with the memory model, default calling convention, ABI and other parameters. Please note that while some combinations of the parameters are meaningless, IDA doesn't check them for validity. It is up to the user to specify a correct combination. |
| [String literals...](/ida-9.5/ida-actions/setstrlitstyle)                    | `SetStrlitStyle`           | Setup string literal style.                                                                                                                                                                                                                                                                                                                                                         |
| [Setup data types...](/ida-9.5/ida-actions/setupdata)                        | `SetupData`                | Setup data types.                                                                                                                                                                                                                                                                                                                                                                   |
| [Source paths...](/ida-9.5/ida-actions/setupsrcpaths)                        | `SetupSrcPaths`            | Setup source paths.                                                                                                                                                                                                                                                                                                                                                                 |


# Windows

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                       | Action Name           | Description                                                                                                                                                            |
| -------------------------------------------------------------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Load desktop...](/ida-9.5/ida-actions/loaddesktop)                  | `LoadDesktop`         | This commands show all available desktops (stored in the database or in the registry).                                                                                 |
| [Save desktop...](/ida-9.5/ida-actions/savedesktop)                  | `SaveDesktop`         | This command saves the current desktop configuration to a desktop.                                                                                                     |
| [Delete desktop...](/ida-9.5/ida-actions/deletedesktop)              | `DeleteDesktop`       | This command deletes a desktop containing a desktop configuration.                                                                                                     |
| [Reset desktop](/ida-9.5/ida-actions/resetdesktop)                   | `ResetDesktop`        | This command resets all windows (IDA main window and database windows) by loading the original IDA disassembly desktop or debugger desktop(if the debugger is active). |
| [Reset hidden messages...](/ida-9.5/ida-actions/resethiddenmessages) | `ResetHiddenMessages` | Reset hidden messages                                                                                                                                                  |
| [Windows list](/ida-9.5/ida-actions/windowslist)                     | `WindowsList`         | Display list of the currently open windows                                                                                                                             |
| [Next window](/ida-9.5/ida-actions/nextwindow)                       | `NextWindow`          | Switch to the next window                                                                                                                                              |
| [Previous window](/ida-9.5/ida-actions/prevwindow)                   | `PrevWindow`          | Switch to the previous window                                                                                                                                          |
| [Close window](/ida-9.5/ida-actions/closewindow)                     | `CloseWindow`         | Close the current window                                                                                                                                               |
| [Focus command line](/ida-9.5/ida-actions/focuscli2)                 | `FocusCLI2`           | Focus command line                                                                                                                                                     |
| [Output window](/ida-9.5/ida-actions/outputwindow)                   | `OutputWindow`        | Display the output window if hidden. The **Output window** appears at the bottom of IDA's interface by default and serves two key purposes:                            |
| [Functions](/ida-9.5/ida-actions/windowactivate1)                    | `WindowActivate1`     | Functions                                                                                                                                                              |
| [IDA View-A](/ida-9.5/ida-actions/windowactivate2)                   | `WindowActivate2`     | IDA View-A                                                                                                                                                             |
| [xrefs: main](/ida-9.5/ida-actions/windowactivate3)                  | `WindowActivate3`     | Pseudocode-A                                                                                                                                                           |
| [Microcode-A](/ida-9.5/ida-actions/windowactivate4)                  | `WindowActivate4`     | Hex View-1                                                                                                                                                             |
| [Pseudocode-A](/ida-9.5/ida-actions/windowactivate5)                 | `WindowActivate5`     | Local Types                                                                                                                                                            |
| [Hex View-1](/ida-9.5/ida-actions/windowactivate6)                   | `WindowActivate6`     | Imports                                                                                                                                                                |
| [Local Types](/ida-9.5/ida-actions/windowactivate7)                  | `WindowActivate7`     | Exports                                                                                                                                                                |
| [Imports](/ida-9.5/ida-actions/windowactivate8)                      | `WindowActivate8`     | Switch to window #8                                                                                                                                                    |
| [Exports](/ida-9.5/ida-actions/windowactivate9)                      | `WindowActivate9`     | Switch to window #9                                                                                                                                                    |


# Help

Below is an overview of all actions that can be accessed from this menu.

| UI Action Name                                                   | Action Name          | Description                                                                                                                |
| ---------------------------------------------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| [Online help](/ida-9.5/ida-actions/toggleonlinemanual)           | `ToggleOnlineManual` | Use either the online, or bundled IDA manual                                                                               |
| [Help](/ida-9.5/ida-actions/showhelp)                            | `ShowHelp`           | Help                                                                                                                       |
| [IDC SDK](/ida-9.5/ida-actions/helpidcsdk)                       | `HelpIdcSDK`         | IDC SDK                                                                                                                    |
| [C++ SDK](/ida-9.5/ida-actions/helpcppsdk)                       | `HelpCppSDK`         | C++ SDK                                                                                                                    |
| [Python SDK](/ida-9.5/ida-actions/helppythonsdk)                 | `HelpPythonSDK`      | Python SDK                                                                                                                 |
| [Domain API](/ida-9.5/ida-actions/helpdomainapi)                 | `HelpDomainAPI`      | Domain API                                                                                                                 |
| [About program...](/ida-9.5/ida-actions/about)                   | `About`              | About program                                                                                                              |
| [License manager...](/ida-9.5/ida-actions/licensemanager)        | `LicenseManager`     | Open license manager. The license manager dialog (**Help -> License manager...**) lets you pick a license to use IDA with. |
| [How to buy IDA](/ida-9.5/ida-actions/buyida)                    | `BuyIDA`             | How to buy IDA                                                                                                             |
| [IDA home page](/ida-9.5/ida-actions/homepage)                   | `Homepage`           | IDA home page                                                                                                              |
| [IDA support forum](/ida-9.5/ida-actions/supportforum)           | `SupportForum`       | IDA support forum                                                                                                          |
| Send database...                                                 | `hx:SendIDB`         |                                                                                                                            |
| Extract function...                                              | `hx:ExtractFunc`     |                                                                                                                            |
| [Check for free update...](/ida-9.5/ida-actions/checkfreeupdate) | `CheckFreeUpdate`    | Check for free update                                                                                                      |
| [Report a bug or an issue...](/ida-9.5/ida-actions/bugreport)    | `BugReport`          | Report a bug or an issue                                                                                                   |


# Input Reference

Throughout IDA, you will frequently be prompted to enter values in dialog boxes and input fields: an address to jump to, a name for a new label, or a segment to inspect. Each type of input follows specific rules about what formats are accepted and what shortcuts are available.

This reference covers standard input types used across general IDA dialogs.

{% hint style="info" %}
Looking for navigation-specific input? [Jump Anywhere](/ida-9.5/core/user-interface/concepts/jump-anywhere) is IDA's unified navigation dialog — it accepts names, addresses, expressions, segment-relative values, and more, all in one place.
{% endhint %}

### How to Enter a Number

You can enter any 'C' expression with constants. Long arithmetic will be used for calculations.

In these expressions, you can use all the names that you have created in your program.

### How to Enter an Address

You should enter an address as a hexadecimal number or a location name. When you enter the address in the hexadecimal format, you can omit the segment part of the address and the current segment will be used. Addresses beyond the program limits are invalid.

Also, you can enter a location name with a displacement:

```
        name+5
```

And finally you can specify a relative address:

```
        +10             0x10 bytes further
        -5              5 bytes backwards
```

If the entered string cannot be recognized as a hexadecimal number or location name, IDA will try to interpret it as an expression using the current script interpreter. The default interpreter is [IDC](/ida-9.5/developer/idc/core-concepts).

Special addresses: $ - current location (depends on the current [assembler](/ida-9.5/core/user-interface/reference/menu-bar-actions/common-actions-3#specify-target-assembler)) Examples:

`456` current segment, offset 0x456

`5E` current segment, offset 0x5E

`3000:34` segment 0x3000, offset 0x34

`ds:67` segment pointed by ds, offset 0x67

`0:4000000` [linear address](/ida-9.5/core/user-interface/reference/menu-bar-actions/edit)

`0x4000000` start a location with the name 'start'

### How to Enter a Segment Value

You must enter a segment base value as a hexadecimal number or a segment name. IDA will warn you if you enter an invalid segment.

You may enter a segment register name too.

### How to Enter an Identifier

Names are case-sensitive. Where IDA asks for an address, you can type a name with the backticks the listing shows around it, such as `` `fmt.(*ss).skipSpace` `` (see [Names in backticks](/ida-9.5/ida-actions/setnametype#names-in-backticks)).

The maximum length of a name is configured in the config file [IDA.CFG](/ida-9.5/core/user-interface/concepts/configuration-files):

```
        MAX_NAME_LENGTH=120     // Maximal length of new names
```

The default is 120.

{% hint style="warning" %}
Some assemblers have a shorter name length limit.
{% endhint %}

IDA will warn you if you enter an illegal name.

### How to Enter Text

In the text version of IDA, the following keys are available:

| Key                        | Action                   |
| -------------------------- | ------------------------ |
| `Enter`                    | Start a new line         |
| `Ctrl-Enter`               | Finish input             |
| `Esc`                      | Cancel input             |
| `F1`                       | Help                     |
| `Ctrl-U`                   | Undo                     |
| `Ctrl-Y`                   | Delete line              |
| `Ctrl-T`                   | Delete word              |
| `Ctrl-Left` / `Ctrl-Right` | Word left / right        |
| `Ctrl-PgUp` / `Ctrl-PgDn`  | Jump to text start / end |
| `Ctrl-L`                   | Search again             |
| `Ctrl-O`                   | Toggle indent mode       |
| `Ctrl-Q F`                 | Search                   |
| `Ctrl-Q A`                 | Replace                  |
| `Ctrl-Q H`                 | Delete to line start     |
| `Ctrl-Q Y`                 | Delete to line end       |
| `Shift-Arrow`              | Select                   |
| `Shift-Ins`                | Paste                    |
| `Shift-Del`                | Cut                      |
| `Ctrl-Ins`                 | Copy                     |
| `Ctrl-Del`                 | Clear                    |
| `Ctrl-K B`                 | Start selection          |
| `Ctrl-K H`                 | Hide selection           |

Input containing only whitespace is treated as empty input. The system clipboard is also available.


# Shortcuts

This doc provides a quick reference to common default shortcuts to streamline your workflow in IDA. You can configure and customize shortcuts via Options → [Shortcuts...](/ida-9.5/ida-actions/shortcuteditor).

***

## Navigation

| Action                       | Shortcut     |
| ---------------------------- | ------------ |
| Jump to Operand              | `Enter`      |
| Jump in a New Window         | `Alt+Enter`  |
| Jump to Previous Position    | `Esc`        |
| Jump to Next Position        | `Ctrl+Enter` |
| Jump to Address              | `G`          |
| Jump by Name                 | `Ctrl+L`     |
| Jump to Function             | `Ctrl+P`     |
| Open Cross-References Window | `X`          |
| View Pseudocode              | `Tab`        |
| Jump to Segment              | `Ctrl+S`     |
| Jump to Segment Register     | `Ctrl+G`     |
| Jump to Problem              | `Q`          |
| Jump to Entry Point          | `Ctrl+E`     |

***

## Bookmarks

| Action                | Shortcut       |
| --------------------- | -------------- |
| Mark Position         | `Alt+M`        |
| Jump to Bookmark      | `Ctrl+M`       |
| Open Bookmarks Window | `Ctrl+Shift+M` |

***

## Search

| Action                      | Shortcut |
| --------------------------- | -------- |
| Search Text                 | `Alt+T`  |
| Search Next Text            | `Ctrl+T` |
| Search Sequence of Bytes    | `Alt+B`  |
| Search Immediate Value      | `Alt+I`  |
| Search Next Immediate Value | `Ctrl+I` |
| Search Next Code            | `Alt+C`  |
| Search Next Data            | `Ctrl+D` |

***

## Debugging

| Action            | Shortcut     |
| ----------------- | ------------ |
| Add Breakpoint    | `F2`         |
| Start Process     | `F9`         |
| Terminate Process | `Ctrl+F2`    |
| Step Into         | `F7`         |
| Step Over         | `F8`         |
| Run Until Return  | `Ctrl+F7`    |
| Breakpoint List   | `Ctrl+Alt+B` |
| View Stack Trace  | `Ctrl+Alt+S` |

***

## Operands

| Action                            | Shortcut |
| --------------------------------- | -------- |
| Change to Hexadecimal             | `Q`      |
| Change to Decimal                 | `H`      |
| Change to Binary                  | `B`      |
| Change to Character               | `R`      |
| Change Enum Member                | `Ctrl+O` |
| Change to Offset (data segment)   | `O`      |
| Change to Offset (in any segment) | `Alt+R`  |
| Change to Offset (user-defined)   | `Ctrl+R` |
| Select Union Member               | `T`      |
| Change to Stack Variable          | `K`      |
| Bitwise Negate                    | `~`      |
| Change Sign                       | `_`      |

***

## Function Management

| Action                      | Shortcut |
| --------------------------- | -------- |
| Create Function             | `P`      |
| Edit Function               | `Alt+P`  |
| Set Function End            | `E`      |
| Edit Stack Variables        | `Ctrl+K` |
| Set Type                    | `Y`      |
| Open Stack Variables Window | `Ctrl+K` |

***

## Annotate

| Action                   | Shortcut    |
| ------------------------ | ----------- |
| Annotate (Rename)        | `N`         |
| Enter Repeatable Comment | `;`         |
| Enter Comment            | `:`         |
| Insert Line Before       | `Ins`       |
| Insert Line After        | `Shift+Ins` |
| Enter Anterior Lines     | `Alt+Q`     |
| Enter Posterior Lines    | `Alt+A`     |

## Open Subviews

| Subview           | Shortcut    |
| ----------------- | ----------- |
| Local Types       | `Shift+F1`  |
| Functions         | `Shift+F3`  |
| Names             | `Shift+F4`  |
| Signatures        | `Shift+F5`  |
| Segments          | `Shift+F7`  |
| Segment Registers | `Shift+F8`  |
| Type Libraries    | `Shift+F11` |
| Strings           | `Shift+F12` |

***

## Miscellaneous

| Action               | Shortcut       |
| -------------------- | -------------- |
| Copy listing as text | `Ctrl+C`       |
| Undo                 | `Ctrl+Z`       |
| Redo                 | `Ctrl+Shift+Z` |
| Begin Selection      | `Alt+L`        |
| Select Full Lines    | `Ctrl`+drag    |
| Open Calculator      | `?`            |
| Save                 | `Ctrl+S`       |
| Exit                 | `Alt+X`        |

***

## Get the handy shortcuts cheatsheet

You can download the cheatsheet here:

{% file src="/files/AXZ5uFmuNOWv5gJP7QqV" %}


# Troubleshooting

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Help Messages</strong></td><td>Various warning, error, and informational dialog messages shown by IDA</td><td><a href="/ida-9.5/core/user-interface/troubleshooting/various-dialog-help-messages">Help Messages</a></td></tr><tr><td><strong>Problems</strong></td><td>Analysis issues in the Problems window, with recommended steps to fix them</td><td><a href="/ida-9.5/core/user-interface/troubleshooting/problems-list">Problems</a></td></tr></tbody></table>


# Help Messages

* [Packed Files](#packed-files)
* [Bad Relocation Table](#bad-relocation-table)
* [Additional information at the end of file](#additional-information-at-the-end-of-file)
* [Overlayed files](#overlayed-files)
* [Error loading overlays](#error-loading-overlays)
* [Maximal number of segments is reached](#maximal-number-of-segments-is-reached)
* [Cannot generate executable file](#cannot-generate-executable-file)
* [Bad input file format](#bad-input-file-format)
* [Choose mark number](#choose-mark-number)
* [Enter mark description](#enter-mark-description)
* [Choose marked location](#choose-marked-location)
* [IDA View bookmarks](#ida-view-bookmarks)
* [Structs bookmarks](#structs-bookmarks)
* [Enums bookmarks](#enums-bookmarks)
* [Cannot Rename a Byte](#cannot-rename-a-location)
* [Cannot find file segmentation](#cannot-find-file-segmentation)
* [Negative Offsets](#negative-offsets)
* [DataBase is not closed](#database-is-not-closed)
* [Obsolete Database Format](#obsolete-database-format)
* [The Name List is Empty](#the-name-list-is-empty)
* [Upgrading IDA database](#upgrading-ida-database)
* [Unexpected Database Format](#unexpected-database-format)
* [Imported module is not found](#imported-module-is-not-found)
* [Load file dialog](#load-file-dialog)
* [PE .idata section has additional data](#pe-.idata-section-has-additional-data)
* Repeat search for instruction/data with the specified operand (see Next immediate value command; action `JumpImmediate`)
* Repeat search for substring in the disassembly (see Next text command; action `JumpText`)
* Repeat search for substring in the file (see Sequence of bytes... command; action `AskBinaryText`)
* [Moving Segment](#moving-the-segment-start)
* [Deleting a Segment](#deleting-a-segment-1)
* [Auto analysis is not completed](#auto-analysis-is-not-completed)
* [Silent mode of IDA](#silent-mode-of-ida)
* [Rename a structure/member](#rename-a-structuremember)
* [Delete a structure member](#delete-a-structure-member)
* [Unpacked database is dangerous](#unpacked-database-is-dangerous)
* [Database Is Empty](#database-is-empty)
* [Illegal Usage of the Switch](#illegal-usage-of-the-switch)
* [Cannot Find Input File](#cannot-find-input-file)
* [Patched Bytes Are Skipped](#patched-bytes-are-skipped)
* [Patched bytes have relocation information](#list-of-functions)
* [No Segment for the current byte](#no-segment-for-the-current-byte)
* [Empty Program](#empty-program)
* [Load additional binary file](#load-additional-binary-file)
* [Patching Relocation Bytes](#patched-bytes-have-relocation-information)
* [NotVaFile](#notvafile)
* [VaTooHighVersion](#vatoohighversion)
* [Desktops](/ida-9.5/core/user-interface/concepts/desktops)
* [Can't create segment registers range](#cannot-assign-to-segment-register--cannot-create-segment-registers-range)
* [Cannot assign to Segment Register](#cannot-assign-to-segment-register--cannot-create-segment-registers-range)

### Packed Files

Sometimes, executable files are shipped in a packed form. It means that to disassemble these files you need to unpack them.

IDA displays this message if the relocation table of the input MZ executable file is empty.

### Bad Relocation Table

Relocation table has references beyond program limits.

### Additional information at the end of file

The file being loaded is not completely loaded to memory by the operating system. This may be because:

* the file is overlayed; IDA does not know this type of overlays
* the file has debugging information attached to its end
* the file has other type of information at the end

Anyway, IDA will not load the additional information.

### Overlayed files

Some EXE files are built with overlays. This means that the whole file is not loaded into the memory at the start of the program, but only a part of it. Other parts are loaded by the program itself into the dynamic memory or over some subroutines of the program. This fact leads to many difficulties when you disassemble such a program.

Currently, IDA knows about overlays created by Borland and Microsoft C and Pascal compilers.

### Error loading overlays

One of the following occurred:

```
        - overlay stub is not found
        - overlay relocation data is incorrect
```

i.e. the input file structure is bad.

### Maximal number of segments is reached

When IDA tried to delete bytes outside of any segment, the maximal number of contiguous chunks is reached. This is NOT a fatal error.

Some bytes outside of any segment will be present => the output text will be incorrect because of these bytes. However, you can delete them in the output text using a text editor.

### Cannot generate executable file

IDA produces executable files only for:

* MS DOS .exe
* MS DOS .com
* MS DOS .drv
* MS DOS .sys
* general binary
* Intel Hex Object Format
* MOS Technology Hex Object Format

Furthermore, external loaders may or may not support the creation of user-defined input file formats.

### Bad input file format

```
The input file does not conform to the following definitions:
```

Intel Hex Object Format ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ This is the default format. This format is line oriented and uses only printable ASCII characters except for the carriage return/line feed at the end of each line. Each line in the file assumes the following format:

```
 :NNAAAARRHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHCCTT
```

Where:

All fields marked 'hex' consist of two or four ASCII hexadecimal digits (0-9, A-F). A maximum of 24 data bytes will be represented on each line.

```
 :      = Record Start Character
 NN     = Byte Count (hex)
 AAAA   = Address of first byte (hex)
 RR     = Record Type (hex, 00 except for last record which is 01)
 HH     = Data Bytes (hex)
 CC     = Check Sum (hex)
 TT     = Line Terminator (carriage return, line feed)
```

The last line of the file will be a record conforming to the above format with a byte count of zero (':00000001FF').

The checksum is defined as:

```
        sum      =  byte_count + address_hi + address_lo +
                        record_type + (sum of all data bytes)
        checksum =  ((-sum) & ffh)
```

MOS Technology Hex Object Format ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ This format is line oriented and uses only printable ASCII characters except for the carriage return/line feed at the end of each line. Each line in the file assumes the following format:

```
 ;NNAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHCCCCTT
```

Where:

All fields marked 'hex' consist of two or four ASCII hexadecimal digits (0-9, A-F). A maximum of 24 data bytes will be represented on each line.

```
 ;      = Record Start Character
 NN     = Byte Count (hex)
 AAAA   = Address of first byte (hex)
 HH     = Data Bytes (hex)
 CCCC   = Check Sum (hex)
 TT     = Line Terminator (carriage return, line feed)
```

The last line of the file will be a record with a byte count of zero (';00').

The checksum is defined as:

```
        sum      =  byte_count + address_hi + address_lo +
                        (sum of all data bytes)
        checksum =  (sum & ffffh)
```

### Choose mark number

This command allows you to mark a location so that afterwards you can jump to the marked location immediately. Select any line from the list. The selected line will be used for mark description. Afterwards, you will be able to jump to the marked location using \<Alt-J> key.

You can use \<Up>, \<Down>, \<PgUp>, \<PgDn>, \<Home>, \<End> keys. If you select the first line of the list, nothing will be selected.

Press \<Enter> to select line, \<Esc> to cancel.

See also: [How to jump to the marked location](#choose-marked-location)

### Enter mark description

Mark description is any text line. The description is for your information only.

### Choose marked location

This command allows you to jump to the previously marked location. Select any line. You will jump to the selected location.

You can use \<Up>, \<Down>, \<PgUp>, \<PgDn>, \<Home>, \<End> keys. If you select the first line of the list, nothing will be selected.

Press \<Enter> to select line, \<Esc> to cancel.

See also: [How to mark a location](#choose-mark-number)

### IDA View bookmarks

See: [Choose marked location](#choose-marked-location)

### Structs bookmarks

See: [Choose marked location](#choose-marked-location)

### Enums bookmarks

See: [Choose marked location](#choose-marked-location)

### Cannot rename a location

It might be because of one of the following reasons:

1\. The name is ill-formed:

* it is a reserved word

{% hint style="info" %}
IDA does not allow the use of register names as byte names.
{% endhint %}

* it contains non-printable characters
* it starts with a reserved prefix. Some prefixes are used by IDA to generate names. See [Names Representation](https://github.com/HexRaysSA/ida-docs/blob/9.4/ida-actions/setnametype.md) dialog for the list of prefixes.

2. The name is already used in the program. Try to use another [name](/ida-9.5/core/user-interface/reference/input-reference#how-to-enter-an-identifier). In order to know where the name is used, you can try to jump to it using [Jump to the Named Location](https://github.com/HexRaysSA/ida-docs/blob/9.4/ida-actions/jumpname.md)

3\. The address cannot have a name:

```
     - IDA refuses to rename tail bytes (i.e. the second, third...
       bytes of instruction/data).
     - the address does not belong to the program
```

### Cannot find file segmentation

The database is empty or corrupt. Unfortunately, all information has been lost.

Please use a backup copy of the database if there is any.

If you have previously saved your database into a text file, you can load it. See the [Dump database](/ida-9.5/ida-actions/dumpdatabase) command for explanations.

### Negative Offsets

A segment cannot have bytes with negative offset from the segment base. Example: if a segment base is 0x3000, this segment can have a start address above or equal to 0x30000, but it cannot have a start address 0x2FFFF.

### Obsolete Database Format

Please use an old version of IDA. The current version of IDA does not support this database.

### Database is not closed

The database was not closed after the last IDA session. Most probably this happened due to a power fault, unexpected reboot of the computer, or another abnormal session termination.

You may try to repair the database but the best solution would be to use the intact packed database or use a backup.

The repairing may fail to recover the database.

See also the [Dump database ](/ida-9.5/ida-actions/dumpdatabase)command.

### The Name List is Empty

is command allows you to select a name from the user defined names. It means that no such names are defined now, or that all user-defined names are hidden. To give a name to the location, use *Rename* or *Rename any* commands.

### Upgrading IDA database

If IDA finds out that your database has an old format, it will try to upgrade the database to a new format. The upgrade process is completely automatic, no user intervention is needed. However, after upgrading your database, you will not be able to work with it using old versions of IDA. That is why IDA asks your confirmation before upgrading the database.

This feature works only for databases starting from IDA version 2.05.

### Unexpected Database Format

Database format is newer than expected. That is because you are using an old version of IDA. The only thing you can do is to get a new version of IDA.

### Imported module is not found

IDA did not find the specified module in:

* the current directory
* the operating system directory (see switch [-W](/ida-9.5/core/user-interface/concepts/command-line-switches) and configuration file parameters [WINDIR,OS2DIR](/ida-9.5/core/user-interface/concepts/configuration-files))

  ```
  OR
        - the module cannot be accepted because:
        - the module name (recorded in the file) doesn't match
          the expected name
        - the module does not contains any exported names (all exported functions
          are exported by ordinal numbers)
  ```

Entries imported by ordinal entries will not be commented. If IDA finds a module, all entries that are imported by ordinal will be commented like this:

```
  KERNEL_91:
                retf            ; INITTASK
                                  ^^^^^^^^^
                                  comment
```

This comment will be propagated (repeated - see the Enter repeatable comment... command) to all locations which call this entry:

```
                call    far ptr KERNEL_91 ; INITTASK
```

IDA searches all files named "modulename.\*" for the module. If you know that the imported module resides in another directory, copy it to your current directory. If the module file name is different from "modulename.\*", rename it. After the database is loaded, you can delete the copied module.

IDA also looks for file "modulename.ids" in the current directory in the IDS subdirectory of the directory where IDA.EXE resides in the PATHed directories

You can create such a file yourself. For an example, look at DOSCALLS.IDS in the IDS subdirectory.

### Load file dialog

Below is the description of dialog box fields:

```
 Load address - the paragraph where the file will be loaded.
                Meaningful only for EXE and binary files. For new exe
                files, please use 'manual load' feature.
 Load offset  - relevant only for binary files.
                specifies offset of the first byte from the start of
                the first segment. For example, if load offset=0x2700 and
                load address=0x1000, the first byte of the file will
                be at 1000:2700.
 DLL directory - path where IDA will look up referenced DLL files.
                Note that if IDA finds .IDS file, it does not look for
                .DLL file.
 Create segments        - relevant for binary files.
                          If not checked, IDA does not create segments.
 Load resources         - If not checked, IDA does not load resources from
                          NE files.
 Rename DLL entries     - If not checked, IDA makes repeatable comments
                          for entries imported by ordinals. Otherwise,
                          IDA renames the entries to meaningful names.
 Manual load            - relevant only for NE,LE,LX,ELF files.
                          If checked, IDA will ask loading addresses
                          and selectors for each object of the file.
                          For experienced users only!
 Fill segment gaps      - relevant only for COFF & OMF files.
                          If checked, IDA will fill gaps between
                          segments, creating one big chunk.
                          This option facilitates loading of big
                          object files.
 Make imports section   - relevant only for PE files.
                          If checked, IDA will convert .idata section
                          definitions to "extrn" directives and truncate it.
                          Unfortunately, sometimes there are some additional
                          data in .idata section so you'll need to disable
                          this feature if some information is not loaded
                          into the database.
 Create FLAT group      - relevant only for IBM PC PE files.
                          If checked, IDA will automatically create FLAT
                          group and use its selector as the default value
                          for the segment registers.
 Code segment           - If checked, IDA creates a code but not a data
                          segment. Relevant for processors with different
                          code/data segment addressing schemes (for
                          example, Atmel AVR).
 Loading options        - relevant only ELF,JAVA files.
                          If checked, IDA will ask additional loader
                          options. For experienced users only!
```

### PE .idata section has additional data

If "create imports section" in the file loading dialog is checked, IDA will convert .idata section definitions to "extrn" directives and truncate it so it will not contain empty lines.

Unfortunately, sometimes there is some additional data in .idata section so you'll need to disable this feature if some information is not loaded into the database.

IDA tries to detect additional data in .idata section automatically.

If you disable conversion of .idata section to a segment with "extrn" directives, you will see

somename dd ?

instead of

```
        extrn   somename
```

directives.

Another impact is that the .idata segment will not be truncated in any way.

### Moving the Segment Start

When you edit the segment boundaries, you can check the "move the adjacent segments" checkbox.

IDA will try to shrink/expand the previous segment in order to move the beginning of the selected segment. Of course, you cannot move the start of the segment 'too far':

```
  - the segment must have at least 1 byte
  - the start address of the segment must be less than the end of the segment
  - no segments can be killed during moving
  - the segment cannot have bytes with negative offsets
```

You cannot shrink a segment to zero bytes. A segment must have at least one byte.

This command is mostly used when IDA does not detect the boundary between segments correctly.

Sometimes, IDA creates 2 segments where only one segment must exist. In this case, you should not use this command. Use the following sequence instead:

* \[delete]\(see the Delete segment... command) one segment. Choose the one with the bad segment base value. Do not disable addresses occupied by the segment being deleted.
* change boundaries of the other segment. Caution: moving the first segment of the program will delete all information about the bytes between the old start of the segment and the new start of the segment!

See also another command that changes segment bounds in the Edit → Segments submenu.

### Deleting a Segment

#### Deleting a Segment

If you want to delete the segment, please mark 'CONFIRM DELETION' checkbox

#### Disable addresses checkbox

```
        CAUTION: ALL INFORMATION ABOUT THE SEGMENT WILL BE LOST!
```

If you disable the addresses occupied by the segment, all information about these addresses will be lost. You will not see them on the screen anymore.

Otherwise, the segment will be deleted, but its data will remain unchanged. You can create another segment(s) for these addresses using the Create segment... command.

### Auto analysis is not completed

As long as auto analysis is not completed, the IDA database is not consistent:

* not all cross-references are found
* not all instructions are disassembled
* not all data items are explored

See also:

* [auto analysis](/ida-9.5/core/disassembler/overview#background-analysis)
* Set up auto analysis via Options → General... → Analysis

### Silent mode of IDA

In this mode, IDA will not display dialog boxes on the screen. Instead, it will assume the default answer and proceed. For example, if you press @\<Quit>, IDA will promptly exit to OS without asking for any confirmation.

To return to normal mode you will need to execute an IDC function: [batch](https://idc.docs.hex-rays.com/get_forced_operand.html)(0); i.e. disable batch "silent" mode. To execute a script command, select File → Script command... menu item or press @\<ExecuteLine> hotkey.

### Rename a structure/member

IDA maintains separate namespaces for each structure. For example, you can define something like this:

```
 xxx    struc
 xxx    db ?
 xxx    struc
```

Beware, usually assemblers have one common namespace and do not allow the mentioned above example.

An empty name cannot be specified.

This command is available when you open a [Local Types window](/ida-9.5/core/user-interface/concepts/subviews#local-types-window).

If the cursor is on the structure name at the beginning of the structure definition, IDA proposes to rename the structure. Otherwise, IDA proposes to rename a structure field.

If a structure is being renamed, the option "Don't include in the list" means that the structure will not be included in the list of the structures which appears when the user applies the structure definition (for example, when the user creates a variable of this structure type). We recommend to mark this checkbox when you have defined all variables of this structure type and want to reduce the number of choices in the list.

See also:

* Edit → Structs submenu.
* [How to Enter an Identifier](/ida-9.5/core/user-interface/reference/input-reference#how-to-enter-an-identifier)

### Delete a structure member

```
Please remember that deleting a member deletes also all information
about this member, including comments, member name etc.
```

See also Edit → Structs submenu.

### Unpacked database is dangerous

First of all, you may lose all information because you will not have a backup copy of the database. IDA makes modifications to the unpacked database and if some unexpected condition occurs, the unpacked database is usually damaged. IDA is able to repair this database, but some information could be irreversibly lost, leading to disastrous consequences.

The only advantage of the unpacked database is that it is loaded very fast. the same way, exiting IDA is fast too.

If packing is disabled, the Abort command will not be available the next time the database is loaded.

We strongly discourage using unpacked databases.

To disable this prompt in the future, simply modify ASK\_EXIT\_UNPACKED parameter in IDATUI.CFG or IDAGUI.CFG file.

Please note that when the "File -> Save as" is used with an unpacked database, IDA will continue to use the unpacked database and not the newly created database (the saved as one). In this case, please close and re-open the newly created database to ensure that IDA will use it instead of the original database.

### Database Is Empty

Although the database exists, it is empty. Please delete it and start over.

If you have previously saved your database into a text file, you can load it. See Dump database to IDC file... command for explanations.

### Illegal Usage of the Switch

Not all switches can be used when you start IDA for the second or more time. Below are valid switches: -a disable auto analysis -d debug

See also [Command line switches](/ida-9.5/core/user-interface/concepts/command-line-switches)

### Cannot Find Input File

IDA has tried to find a file with the extensions mentioned in the [IDA.CFG](/ida-9.5/core/user-interface/concepts/configuration-files) file, but could not find anything.

The default extension table looks like this:

```
 Extension    Processor

  "com" :       ""
  "exe" :       ""
  "dll" :       ""
  "drv" :       ""
  "sys" :       ""
  "bin" :       ""
  "ovl" :       ""
  "ovr" :       ""
  "ov?" :       ""
  "nlm" :       ""
  "lan" :       ""
  "dsk" :       ""
  "obj" :       ""
  "prc" :       "68000"
  "axf" :       "arm710a"
  "h68" :       "68000"
  "i51" :       "8051"
  "sav" :       "pdp11"
  "rom" :       "z80"
  "cla*":       "java"
  "s19":        "6811"
  "epoc":       "arm"
  "o":          ""
```

See also [IDA usage help](/ida-9.5/core/user-interface/concepts/command-line-switches)

### Patched Bytes Are Skipped

Some bytes in program memory have no corresponding byte in the executable file. For example, uninitialized data is not kept in the file. OS/2 Warp and Window support compressed pages.

In this case, IDA cannot create a full difference file. It shows the skipped byte addresses along with their values in the message window.

### Patched bytes have relocation information

#### List of Functions

You can use [list viewer](/ida-9.5/core/user-interface/concepts/list-viewers) commands in this window. Here is the [format](/ida-9.5/core/user-interface/concepts/subviews#functions-window) of this window.

### No Segment for the current byte

Some commands cannot be applied to the addresses without a segment.

Create a segment first. You can do this using the Create segment... command.

### Empty Program

The input file doesn't contain any instructions or data, i.e. there is nothing to disassemble.

Some file formats allow the situation when the file is not empty but it doesn't contain anything to disassemble. For example, COFF/OMF/EXE formats could contain a file header which just declares that there are no executable sections in the file.

There could be type information, compiler options and other auxiliary information in the file. This is the reason why the file doesn't look empty but IDA doesn't find anything to disassemble.

### Load additional binary file

Below is the description of dialog box fields:

```
 Load segment    - The paragraph where the file will be loaded.
 Load offset     - Specifies offset of the first byte from the start of
                   the first segment. For example, if load offset=0x2700
                   and load segment=0x1000, the first byte of the file will
                   be at 1000:2700, or in linear addressing, 0x12700.
 File offset     - Offset in the input file to load bytes from.
 Number of bytes - Number of bytes to load from the file.
                   0 means load as many as possible.
 Create segments        - If not checked, IDA does not create segments.
 Code segment           - If checked, IDA creates a code segment.
                          relevant for processors which have different
                          code/data segment addressing schemes (for
                          example, Atmel AVR).
```

### Patching Relocation Bytes

If a byte has relocation information attached to it, then the value of this byte is changed when the file is loaded into the memory by the system loader or linker. Therefore, it doesn't make much sense (and sometimes it is simply illegal) to modify the byte.

We recommend to return the original value of the byte(s).

You can see the relocation information attached to an item by using the Print internal flags command.

### NotVaFile

#### Not a virtual array file

The most probable error is that you tried to use an incompatible version of IDA. Starting from IDA 2.0 beta2 the format of virtual files was changed.

### VaTooHighVersion

#### Virtual Array: Too high VA version

The most probable error is that you tried to open database with old version of IDA. Please use newer version of IDA to open this database.

### Cannot assign to Segment Register | Cannot create segment registers range

This error happens because of the database corruption. Try to finish your work as soon as possible and generate the text source file.

The best choice would be to restore from a backup because the database is corrupted.

##


# Problems

These problems appear in the Problems window (View → Open subviews → Problems). IDA automatically detects and lists potential issues during analysis, helping you identify areas that may need manual review or correction.

The following problems may occur:

* NOOFFSET [Cannot find offset base](#problem-cannot-find-offset-base)
* NONAME [Cannot find name](#problem-cannot-find-name)
* NOFORCED [Cannot find alternative string for an operand](#problem-cannot-find-alternative-string-for-an-operand)
* NOCMT [Cannot find comment](#problem-cannot-find-comment)
* NOREF [Cannot find references](#problem-cannot-find-references)
* INDIRJMP [Indirect execution flow](#problem-indirect-execution-flow)
* NODISASM [Cannot disassemble](#problem-cannot-disassemble)
* ALREADY [Already data or code](#problem-already-data-or-code)
* BOUNDS [Execution flows beyond limits](#problem-execution-flows-beyond-limits)
* OVERFLOW [Too many lines](#problem-too-many-lines)
* BADSTACK [Failed to trace the value of the stack pointer](#problem-failed-to-trace-the-value-of-the-stack-pointer)
* LOOKHERE [Attention! Probably erroneous situation](#problem-attention-probably-erroneous-situation)
* DECISION [Decision to convert to instruction/data is made by IDA](#problem-decision-to-convert-to-instructiondata-is-made-by-ida)
* ROLLBACK [The decision made by IDA was wrong and rolled back](#problem-the-decision-made-by-ida-was-wrong-and-rolled-back)
* COLISION [FLIRT collision: the function with the given name already exists](#flirt-collision-the-function-with-the-given-name-already-exists)
* SIGFNREF [FLIRT match indecision: reference to function expected](#flirt-match-indecision-reference-to-function-expected)\\

## Problem: Cannot find offset base

**Description**: The current item has an operand marked as an offset, but IDA cannot find the offset base in the database.

**Possible reason(s)**: The database is probably corrupted. This may occur if the database was corrupted and repaired.

**What to do**: Mark the operand again as an offset. Use one of the following commands:

* Offset (data segment) (action `OpOffset`)
* Offset (current segment) (action `OpOffsetCs`)
* Offset by (any segment)... (action `OpAnyOffset`)
* Offset (user-defined)... (action `OpUserOffset`)

## Problem: Cannot find name

**Description**: Two reasons can cause this problem:

1. Reference to an illegal address is made in the program being disassembled;
2. IDA couldn't find a name for the address but it must exist.

**What to do**:

1. If this problem is caused by a reference to an illegal address:

* Try to enter the operand manually (The Manual... command; action `ManualOperand`), or
* Make the illegal address legal by creating a new segment (Create segment... command; action `CreateSegment`)

2. Otherwise, the database is corrupt.

## Problem: Cannot find alternative string for an operand

**Description**: The current item has an operand marked as entered manually, but IDA cannot find the manually entered string in the database.

**Possible reason(s)**: The database is corrupt.

**What to do**: Enter the operand manually again. Use the Manual... command (action `ManualOperand`).

## Problem: Cannot find comment

**Description**: Should not happen. Please inform the author if you encounter this problem.

## Problem: Cannot find references

**Description**: The current item is marked as referenced from other place(s) in the program, but IDA cannot find any reference to it.

**Possible reason(s)**: The database is corrupt.

**What to do**: Database is corrupt, the best thing to do is to reload the database.

## Problem: Indirect execution flow

**Description**: Actually, this is not a problem. IDA warns you that here it encountered an indirect jump and couldn't follow the execution.

**What to do**: Nothing, this entry is just for your information

## Problem: Cannot disassemble

**Description**: IDA cannot represent the specified bytes as an instruction.

**Possible reason(s)**:

1. The specified bytes do not form an instruction.
2. The current processor type (Options → General... → Analysis) is incorrect.

**What to do**: If you are sure that the specified bytes contain an instruction, you can try to change processor type (Options → General... → Analysis) and mark these bytes as an instruction using the following command: Code (action `MakeCode`)

## Problem: Already data or code

**Description**: IDA cannot convert this byte(s) to an instruction or data because it would overlap another instruction.

**What to do**: Make the following overlapping instruction or data 'unexplored' using the Undefine command (action `MakeUnknown`).

## Problem: Execution flows beyond limits

**Description**: IDA encountered a jump or call instruction to an illegal address. Namely:

* jump/call beyond program segments
* near jump/call beyond the current segment

**What to do**:

1. Enter the operand manually (The Manual... command; action `ManualOperand`), or
2. Create a new segment making the illegal address legal (Create segment... command; action `CreateSegment`), or
3. Change the current segment bounds using one of the following:

* change segment attributes (Edit → Segments → Edit segment…)
* move a segment (Edit → Segments → move current segment…)

## Problem: Too many lines

**Description**: The current item (instruction or data) occupies more lines on the screen than it is allowed by the current configuration.

**What to do**:

1. If the current item is an array or string literal, try to divide it, or
2. Delete additional comment lines (added via Edit → Comments → Enter anterior/posterior lines...), or
3. Disable cross-references display (Options → General... → Cross-references), or
4. Increase the limit in IDA.CFG; the parameter name is MAX\_ITEM\_LINES.

## Problem: Failed to trace the value of the stack pointer

**Description**: The value of the stack pointer at the end of the function is different from its value at the start of the function. IDA checks for the difference only if the function is ended by a "return" instruction. The most probable cause is that stack tracing has failed. This problem is displayed in the disassembly listing with the "sp-analysis failed" comment.

**What to do**:

1. Examine the value of stack pointer (Edit → Functions → Change stack pointer…) at various locations of the function and try to find out why the stack tracing has failed. Usually, it fails because some called function changed the stack pointer (by purging the input parameters, for example)
2. If you have found the offending function, change (Edit → Functions → Edit function…) its attributes (namely, number of bytes purged upon return).
3. Another way is to specify manually how the stack pointer is modified. See the Edit → Functions → Change stack pointer… command.

## Problem: Attention! Probably erroneous situation

**Description**: This is a generic problem message. IDA uses it when no more detailed information is available or the problem is processor-specific.

## Problem: Decision to convert to instruction/data is made by IDA

**Description**: In fact, this is not exactly a problem: IDA collects all the locations where it has decided to convert undefined bytes to instructions or data even if they don't have any references to them. We consider this decision as dangerous and therefore we provide you with a way to examine all such places.

**What to do**: Examine the result of conversion and modify the instructions or data if IDA has made a wrong conversion.

## Problem: The decision made by IDA was wrong and rolled back

**Description**: This problem occurs when IDA has converted unexplored bytes to instruction(s) and later found that the decision was wrong. For example:

```
            mov     ax, bx
            db 0FFh, 0FFh
```

`0FFh`, `0FFh` cannot be converted to an instruction, therefore the `mov` instruction cannot be here.

In this case, IDA automatically destroys the instruction(s) and enlists the address as problematic.

**What to do**: Examine the end result and modify it accordingly.

## FLIRT collision: the function with the given name already exists

**Description**: It means that IDA recognized the function as coming from a standard library but there already was another function with the same name in the program.

**What to do**: Examine the function and rename it as you wish.

## FLIRT match indecision: reference to function expected

**Description**: IDA matched code bytes against at least one signature entry, but failed finding expected cross-references at certain offsets in the code.

Consider the following .pat file contents:

```
            5589E583EC18A1........890424E8........C9C3...................... 00 0000 0015 :0000 _test ^000F _my_fun0
            5589E583EC18A1........890424E8........C9C3...................... 00 0000 0015 :0000 _smuk ^000F _my_fun1
```

Now, turn that .pat file into a signature (.sig) file, telling sigmake to include function references into signature (using the -r switch).Then, apply that .sig file to a binary that you are examining.

If IDA recognizes the 0x15-bytes long pattern in the binary, it will check that, at offset 0xF from the start of the match, a call to either "\_my\_fun0" or "\_my\_fun1" is performed. If either one of the two is found, then that code will be named "test", or "smuk", respectively. Otherwise, a SIGFNREF problem will be signalled.

**What to do**: Examine the code pointed to by the address at the given offset (i.e., 0xF) and try and determine whether that function could be "\_my\_fun0", or "\_my\_fun1". If so, name it accordingly and re-apply the signature.

An alternative is to generate the signature (.sig) file without the cross-references to functions (i.e., dropping the '-r' switch). But beware of collisions: a pattern like the one above will inevitably create a collision, since the pattern bytes are similar for the two entries.


# Disassembler

Everything you need to understand and get the most out of IDA disassembler.

### Basic Resources

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Overview</td><td><a href="https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-9d437ebe8c47da1d1a9e41813c977c61215e2a3e%2Foverview.jpg?alt=media">overview.jpg</a></td><td><a href="/ida-9.5/core/disassembler/overview">Overview</a></td></tr><tr><td>Supported Processors</td><td><a href="https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-3ce2dfbc1019185b6461619128f5989645de6f52%2FSupported%20processors.jpg?alt=media">Supported processors.jpg</a></td><td><a href="/ida-9.5/core/disassembler/specification/supported-processors">Supported processors</a></td></tr><tr><td>Supported File Formats</td><td><a href="https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-8266090d1397f58f7813eb7846dbc94a63263a59%2Fsupported%20file%20formats.jpg?alt=media">supported file formats.jpg</a></td><td><a href="/ida-9.5/core/disassembler/specification/supported-file-formats">Supported file formats</a></td></tr><tr><td>Disassembly Gallery with Examples</td><td><a href="https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-fec3744661c717e13f801637e1ba7aa19d8f1b23%2FDisassembly%20gallery.jpg?alt=media">Disassembly gallery.jpg</a></td><td><a href="/ida-9.5/core/disassembler/disassembly-gallery">Examples</a></td></tr></tbody></table>

### Going deeper

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Learn how IDA handles segment address space</td><td><a href="/ida-9.5/core/disassembler/concepts/segment-address-space">Segment Address Space</a></td></tr><tr><td>Understand bitfields and how to work with them</td><td><a href="/ida-9.5/core/disassembler/concepts/bitfields">Bitfields</a></td></tr><tr><td>Load Windows dump files with the Windmp loader</td><td><a href="/ida-9.5/core/disassembler/concepts/windmp-file-loader">Windmp file loader</a></td></tr><tr><td>Analyse Apple Dyld Shared Caches</td><td><a href="/ida-9.5/core/disassembler/concepts/dsc-workflow">Dyld Shared Cache</a></td></tr><tr><td>Learn how IDA uses environment variables</td><td><a href="/ida-9.5/core/disassembler/concepts/environment-variables">Environment Variables</a></td></tr><tr><td>Analyse Apple Kernelcache binaries and KEXTs</td><td><a href="/ida-9.5/core/disassembler/concepts/kc-workflow">Apple Kernelcache</a></td></tr><tr><td>Find call paths between functions with Pathfinder</td><td><a href="/ida-9.5/core/disassembler/concepts/pathfinder">Pathfinder</a></td></tr></tbody></table>

View all [Concepts](/ida-9.5/core/disassembler/concepts)

### Try it yourself

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Work with bitfields</td><td><a href="/ida-9.5/core/disassembler/how-tos/bitfields-tutorial">Bitfields tutorial</a></td></tr><tr><td>Work with structures</td><td><a href="/ida-9.5/core/disassembler/how-tos/structures-tutorial">Structures tutorial</a></td></tr><tr><td>Define data types, operands and constructs</td><td><a href="/ida-9.5/archive/data-structure">Data types, operands and constructs</a></td></tr><tr><td>Unpack hostile PE executables</td><td><a href="/ida-9.5/archive/using-ida-debugger-to-unpack-an-hostile-pe-executable">Unpack hostile PE executable</a></td></tr></tbody></table>

View all [How-tos](/ida-9.5/core/disassembler/how-tos)


# Overview

## What is IDA Disassembler?

IDA Disassembler translates compiled binary programs back into human-readable assembly code. Whether you're analyzing malware or mobile apps, IDA reconstructs the program's logic so you can understand what it actually does.

Its versatility makes it ideal for analyzing various embedded systems and software (see [supported processors](/ida-9.5/core/disassembler/specification/supported-processors) and [file formats](/ida-9.5/core/disassembler/specification/supported-file-formats)).

The key feature of IDA disassembler is its *interactivity*. IDA involves you in the analysis process: it flags suspicious instructions, highlights unresolved references, and lets you guide the disassembly. This makes it especially powerful for complex binaries where fully automatic analysis would miss important context.

### IDA View / Disassembly Window

The main Disassembler workspace is the [**IDA View**](/ida-9.5/core/user-interface/concepts/subviews#ida-view-disassembly-window) (also called the Disassembly window), which opens automatically when you load a binary, and its autoanalysis completes. Depending on the current location, it displays either Graph mode or Text (linear) mode, switchable between them by using Space. You can customize how items are displayed from **Options → Disassembly**.

From this tab, you can adjust address representation, line prefixes, comments, indentation, opcode byte display, and other formatting options that control how the disassembly appears in both Graph and Text modes.

**See also**

* Learn more about IDA View in [Subviews](/ida-9.5/core/user-interface/concepts/subviews#ida-view-disassembly-window)
* Dive deeper into [Graph View](/ida-9.5/core/disassembler/concepts/graph-view) or [Proximity View](/ida-9.5/core/disassembler/concepts/proximity-view)

### Background Analysis

IDA performs **background analysis** continuously, processing the binary whenever you're not actively issuing a command. You disassemble a program together with IDA, but your requests have priority.

The state of background analysis is shown on the upper right-hand corner of the screen.

It's recommended to let autoanalysis complete before making manual changes, as disabling it can cause incomplete or unexpected results in features that depend on full control-flow tracing (e.g., if you try to convert data into instructions, IDA will not trace all the threads of control flow and the data will be converted into instructions only on the screen).

**See also**

* [analysis options](/ida-9.5/core/user-interface/reference/menu-bar-actions/common-actions-3#analysis-options), where you can fine-tune the analysis process, i.e., by disabling auto-analysis or configuring processor-specific analysis settings.


# Specification

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Supported processors</td><td><a href="/ida-9.5/core/disassembler/specification/supported-processors">Supported processors</a></td></tr><tr><td>Supported file formats</td><td><a href="/ida-9.5/core/disassembler/specification/supported-file-formats">Supported file formats</a></td></tr></tbody></table>


# Supported processors

The list of supported processor/OS/file format combinations is so large that it is not easy to enumerate it. Please look at [our gallery](/ida-9.5/core/disassembler/disassembly-gallery) which contains disassembly samples across a wide number of processors.

## IDA Pro supported processors

IDA Pro supports the processors listed below. The source code of some processor modules is available in our free SDK.

<details>

<summary>IDA Pro supported processors</summary>

* web assembly (WASM)
* AMD K6-2 3D-Now! extensions
* 32-bit ARM Architecture versions from v3 to v8 including Thumb, Thumb-2, DSP instructions and NEON Advanced SIMD instructions.
  * ARMv4 / ARMv4T: ARM7 cores (ARM7TDMI / ARM710T / ARM720T / ARM740T), ARM9 cores (ARM9TDMI / ARM920T / ARM922T / ARM940T)
  * ARMv5 / ARMv5TE / ARMv5TEJ: ARM9 cores (ARM946E-S/ ARM966E-S/ ARM968E-S/ ARM926EJ-S/ ARM996HS), ARM10E (ARM1020E / ARM1022E / ARM1026EJ-S)
  * ARMv6 / ARMv6T2 / ARMv6Z / ARMv6K: ARM11 cores (ARM1136J(F)-S / ARM1156T2(F)-S / ARM1176JZ(F)-S / ARM11 MPCore)
  * ARMv6-M: Cortex-M0 / Cortex-M0+ / Cortex-M1 (e.g. NXP LPC800/LPC1xxx, Freescale Kinetis L and M series, STM32 F0 series etc.)
  * ARMv7-M: Cortex-M3 (e.g. NXP LPC17xx/18xx/13xx, STM32 F1/F2/L1 series, TI Stellaris, Toshiba TX03 / TMPM3xx etc.)
  * ARMv7E-M: Cortex-M4 (e.g. NXP LPC43xx, STM32 F3/F4 series, TI Stellaris LM4F, Freescale Kinetis K series and W series, Atmel AT91SAM4 etc.)
  * ARMv7-R: Cortex-R4(F)/Cortex-R5/Cortex-R7 (e.g. TI TMS570LS etc.)
  * ARMv7-A: Cortex-A5 / Cortex-A7 / Cortex-A8 / Cortex-A9 / Cortex-A12 / Cortex-A15 (e.g. TI Sitara, TI OMAP series, Samsung S5PC100 and Exynos, Nvidia Tegra, Freescale i.MX, Allwinner A-Series and many others)
  * ARMv7 (custom): Apple A4/A5/A5X/A6/A6X (Swift microarchitecture, used in Apple’s iPhone/iPod/iPad/AppleTV), Qualcomm Snapdragon \[*Note*: this list is incomplete; code for any ARM-compliant core can be disassembled]
* ARM64 Architecture (aka AArch64): \*
  * ARMv8-A: Cortex-A50/Cortex-A53/Cortex-A57 etc.
  * ARMv8 (custom): Apple A7, A8 etc. (iPhone 5s and newer devices)
  * SVE2 (Scalable Vector Extension 2) and SME (Scalable Matrix Extension)
* ARC (Argonaut RISC Core), including ARCompact and ARCv2 (comes with source code)
* ATMEL AVR (comes with source code)
* DEC PDP-11(comes with source code)
* Fujitsu FR (comes with source code)
* Nintendo Entertainment System (NES) (6502)
* Nintendo Super Entertainment System (SNES) (65816, 65C816)
* Nintendo GameBoy (Z80, ARM7)
* Nintendo DS (ARM9, ARM11)
* Hitachi/Renesas H8/300, H8/300L, H8/300H, H8S/2000, H8S/2600, H8SX (comes with source code)H8/330, H8/322, H8/323, H8/325, H8/326-329, H8/336-338, H8/350, H8/3048F, H8/3202, H8/3212, H8/3214, H8/3216, H8/3217, H8/3256, H8/3257, H8/3292, H8/3294, H8/3296, H8/3297, H8/3315, H8/3318, H8/3334Y, H8/3336Y, H8/3337Y, H8/3337YF, H8/3394, H8/3396, H8/3397, H8/3534, H8/3434, H8/3434F, H8/3436, H8/3437, H8/3437F, H8/3522H8/3612, H8/3613, H8/3614, H8/3712, H8/3713, H8/3714, H8/3723, H8/3724, H8/3725, H8/3726, H8/3812, H8/3813, H8/3814, H8/3833-37, H8/3875, H8/3876, H8/3877, H8/3924, H8/3925, H8/3926, H8/3927, H8/3945-47H8/3002, H8/3040-3042, H8/3003, H8/3030-32, H8/3048, H8/3070, H8/3071, H8/3072H8S/2246, H8S/2245, H8S/2244, H8S/2243, H8S/2242, H8S/2241, H8S/2133, H8S/2144F, H8S/2357F, H8S/2143, H8S/2142F, H8S/2345F, H8S/2343, H8S/2341, H8S/2237, H8S/2235, H8S/2233, H8S/2227, H8S/2225, H8S/2223, H8S/2240, H8S/2242, H8S/2350, H8S/2352, H8S/2340, H8S/2355, H8S/2353, H8S/2351, H8S/2134F, H8S/2132FH8S/2655R, H8S/2653R, H8S/2655
* Hitachi H8/500 (comes with source code)
* Hitachi HD 6301, HD 6303, Hitachi HD 64180
* INTEL 8080
* INTEL 8085 (comes with source code)
* INTEL 80196 (comes with source code)
* INTEL 8051 (comes with source code)
* INTEL 860XR (comes with source code)
* INTEL 960 (comes with source code)
* INTEL 80×86 and 80×87 (Intel 8086/8088, 80186, 80286, 80386, 80486 and compatibles)
* INTEL Pentium/Celeron/Xeon, including SSE, SSE2, SSE3, SSE4, AVX, AVX2, AVX-512 and other extensions
* Java Virtual Machine (comes with source code)
* KR1878 (comes with source code)
* Microsoft .NET (Common Language Infrastructure bytecode)
* Mitsubishi MELPS740 or Renesas 740 (comes with source code)
* Hitachi/Renesas M16C family M16C/60, M16C/20, M16C/Tiny, R8C/Tiny, M16C/80, M32C/80, R32C/100
* MCore (aka CSky V1)
* MN102 (comes only with source code)
* MOS Technologies 6502, 65C02 (comes with source code)
* W65C816S aka 65C816 or 65816 (comes with source code)
* Motorola/Freescale 68K family: MC680xx, CPU32 (68330), MC6301\\
* Motorola 68xx series: MC6301, MC6303, MC6800, MC6801, MC6803, MC6805, MC6808, HCS08, MC6809, MC6811, \\
* Motorola MC6812/MC68HC12/CPU12
* Freescale HCS12, HCS12X (including XGATE coprocessor)
* Motorola MC68HC16
* NSC CR16 (comes only with source code)
* NEC V850 series (including V850E1, V850E1F, V850ES, V850E2, V850E2M) (comes with source code)
* Renesas RH850 series (RH850G3K, RH850G3M, RH850G3KH, RH850G3MH) (comes with source code)
* EFI Byte Code (EBC) (comes with source code)
* SPU (Synergistic Processing Unit of the Cell BE) (comes with source code)
* MSP430, MSP430X (comes with source code)
* Microchip PIC 12XX, PIC 14XX, PIC 18XX, PIC 16XXX (comes with source code)
* Microchip 16-bit PIC series (PIC24, dsPIC: PIC24XX, PIC30XX, PIC33XX)
* Rockwell C39 (comes only with source code)
* Samsung SAM8 (comes with source code)
* SGS Thomson ST-7, and ST-20 (comes with source code)
* TLCS900 (comes only with source code)
* unSP from SunPlus
* Sony SPC700
* Philips XA series (51XA G3)(comes with source code)
* RISC-V
* Renesas RL78 series
* Intel xScale
* Z80, Zilog Z8, Zilog Z180, Zilog Z380 (comes with source code)
* IBM z/Architecture (S390, S390x)
* x64 architecture (aka Intel 64/IA-32e/EM64T/x86-64/AMD64)
* Analog Devices AD218x series (ADSP-2181, ADSP-2183, ADSP-2184(L/N), ADSP-2185(L/M/N), ADSP-2186(L/M/N), ADSP-2187(L/N), ADSP-2188M/N, ADSP-2189M/N)
* Dalvik (Android bytecode, DEX)
* DEC Alpha
* Motorola DSP563xx, DSP566xx, DSP561XX (comes with source code)
* TI TMS320C2X, TMS320C5X, TMS320C6X, TMS320C64X, TMS 320C54xx, TMS320C55xx, TMS320C3 (comes with source code)
* TI TMS320C27x/TMS320C28x
* Hewlett-Packard HP-PA aka PA-RISC (comes with source code)
* Hitachi/Renesas SuperH series. Unexhaustive list:
  * SH-1 core, for example SH7020,SH7021, SH7032,SH7034;
  * SH-2 core: SH7047, SH7049, SH7105, SH7107, SH7109 etc.;
  * SH-2E core: SH7055, SH7058 etc.;
  * SH-2A core: SH7201, SH7206, SH7211, SH7214
  * SH2A-FPU core: SH7450, SH7263 etc.;
  * SH3 core: SH7706, SH7709S;
  * SH4 core: SH7091(Sega Dreamcast), SH7750;
  * SH-4A core: SH7450, SH7451,SH7734, SH7785.
* Renesas RXv1, RXv2, RXv3 cores (RX100/RX200/RX600/RX700)
* IBM/Motorola PowerPC/POWER architecture, including Power ISA extensions:
  * Book E (Embedded Controller Instructions)
  * Freescale ISA extensions (isel etc.)
  * SPE (Signal Processing Engine) instructions
  * AltiVec (SIMD) instructions
  * Hypervisor and virtualization instructions
  * All instructions from the Power ISA 2.06 specification (Vector, Decimal Floating Point, Integer Multiply-Accumulate, VSX etc.)
  * Cell BE (Broadband Engine) instructions (used in PlayStation 3)
  * VLE (Variable Length Encoding) compressed instruction set
  * Xenon (Xbox 360) instructions, including VMX128 extension
  * Paired Single SIMD instructions (PowerPC 750CL/Gekko/Broadway/Espresso, used in Nintendo Wii and WiiU)
* Motorola/Freescale PowerPC-based cores and processors, including (but not limited to):
  * MPC5xx series: MPC533 / MPC535 / MPC555 / MPC556 / MPC561 / MPC562 / MPC563 / MPC564 / MPC566 *Note*: code compression features of MPC534/MPC564/MPC556/MPC566 (Burst Buffer Controller) are currently not supported
  * MPC8xx series (PowerQUICC): MPC821/MPC850/MPC860
  * MPC8xxx series (PowerQUICC II, PowerQUICC II Pro, PowerQUICC III): MPC82xx / MPC83xx / MPC85xx / MPC87xx
  * MPC5xxx series (Qorivva): MPC55xx, MPC56xx, MPC57xx
  * Power PC 4xx, 6xx, 74xx, e200 (including e200z0 with VLE), e500 (including e500v1, e500v2 and e500mc), e600, e700, e5500, e6500 cores
  * QorIQ series: P1, P2, P3, P4, P5 and T1, T2, T4 families
* Infineon Tricore: TC1xxx (AUDO, AUDO MAX), TC2xx, TC3xx, TC4x (AURIX, supported TriCore architecture up to v1.8)
* Intel IA-64 Architecture – Itanium.
* Motorola DSP 56K
* MIPS
  * MIPS Mark I (R2000)
  * MIPS Mark II (R3000)
  * MIPS Mark III: (R4000, R4200, R4300, R4400, and R4600)
  * MIPS Mark IV: R8000, R10000, R5900 (Playstation 2)
  * MIPS32, MIPS32r2, MIPS32r3 and MIPS64, MIPS64r2, MIPS64r3
  * Allegrex CPU (Playstation Portable – PSP), including VFPU instructions
  * Cavium Octeon and Octeon2 (cnMIPS) ISA extensions
  * MIPS16 (MIPS16e, MIPS16e2) Application Specific Extension
  * microMIPS Application Specific Extension
  * MIPS-MT, MIPS-3D, smartMIPS Application Specific Extensions
  * Toshiba TX19/TX19A Family Application Specific Extension (MIPS16e+ aka MIPS16e-TX)
* Mitsubishi M32R (comes with source code)
* Mitsubishi M7700 (comes with source code)
* Mitsubishi M7900 (comes with source code)
* Nec 78K0 and Nec 78K0S (comes with source code)
* STMicroelectronics ST9+, ST-10 (comes with source code)
* SPARCII, ULTRASPARC
* Siemens C166
* Tensilica Xtensa
* Fujitsu F2MC-16L, Fujitsu F2MC-LC (comes with source code)
* Qualcomm Hexagon QDSP6: scalar ISA V4 through V79, the HVX vector extension (V60 and later) and the HMX matrix extension. Hexagon ELF objects are detected automatically; Qualcomm MBN firmware containers are read by a separate loader. See [Hexagon support](/ida-9.5/core/disassembler/concepts/hexagon).

</details>

## IDA Home supported processors

<details>

<summary>IDA Home supported processors</summary>

IDA Home is available in 5 versions, each supporting one of the common processor families:

* x86/x64
* ARM/ARM64
* MIPS/MIPS64
* PowerPC/PPC64
* RISC-V/RV64

</details>

## Debugger Modules

In IDA Pro all [debugger modules](https://hex-rays.com/products/ida/debugger/) are available.

## Unsupported Processors

If your target processor is not included in the list above, you have two options:

1. Ask us to add support for the processor sometime in the future: we welcome your feedback about which processors should be added to IDA Pro.
2. Use our [SDK](https://cpp.docs.hex-rays.com) and develop your own (free to all, but unsupported).


# Supported file formats

IDA Pro can disassemble all popular file formats. The list contains some, but not all, of the file types handled by IDA Pro.

* MS DOS
* EXE File
* MS DOS COM File
* MS DOS Driver
* New Executable (NE)
* Linear Executable (LX)
* Linear Executable (LE)
* Portable Executable (PE) (x86, x64, ARM, etc)
* Windows CE PE (ARM, SH-3, SH-4, MIPS)
* Mach-O for OS X and iOS (x86, x64, ARM and PPC)
* Apple Dyld Shared Cache (DSC) — see [DSC Workflow](/ida-9.5/core/disassembler/concepts/dsc-workflow)
* Apple Kernelcache (KC) — see [Kernelcache Workflow](/ida-9.5/core/disassembler/concepts/kc-workflow)
* Apple DriverKit drivers (DEXT) — see [Apple DriverKit](/ida-9.5/core/disassembler/concepts/driverkit)
* Dalvik Executable (DEX)
* EPOC (Symbian OS executable)
* Windows Crash Dump (DMP)
* XBOX Executable (XBE)
* Intel Hex Object File
* MOS Technology Hex Object File
* Netware Loadable Module (NLM)
* Common Object File Format (COFF)
* Binary File
* Object Module Format (OMF)
* OMF library
* S-record format
* ZIP archive
* JAR archive
* Executable and Linkable Format (ELF)
* Watcom DOS32 Extender (W32RUN)
* Linux a.out (AOUT)
* PalmPilot program file
* AIX ar library (AIAFF)
* PEF (Mac OS or Be OS executable)
* QNX 16 and 32-bits
* Nintendo (N64)
* SNES ROM file (SMC)
* Motorola DSP56000 .LOD
* Sony Playstation PSX executable files,
* object (psyq) files
* library (psyq) files

Check out the list of [supported processors](/ida-9.5/core/disassembler/specification/supported-processors) and screenshots of many processor disassemblies in the [gallery](/ida-9.5/core/disassembler/disassembly-gallery).


# Examples

Disassembly output in IDA varies depending on the target architecture. Browse the disassembly gallery to see how IDA represents instructions, registers, and control flow for different processors.

## Browse by architecture

| Family                                       | Examples                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **8-bit classic CPUs** (6502/68xx)           | [6502 and 65C02](/ida-9.5/core/disassembler/disassembly-gallery/6502-and-65c02-disassembler), [6301/6303/6800/6801/6803](/ida-9.5/core/disassembler/disassembly-gallery/6301-6303-6800-6801-and-6803-disassembler), [6805](/ida-9.5/core/disassembler/disassembly-gallery/6805-disassembler), [6808](/ida-9.5/core/disassembler/disassembly-gallery/6808-disassembler), [6809 OS9 Flex](/ida-9.5/core/disassembler/disassembly-gallery/6809-os9-flex-disassembler), [6809](/ida-9.5/core/disassembler/disassembly-gallery/6809-disassembler), [6811](/ida-9.5/core/disassembler/disassembly-gallery/6811-disassembler), [68HC12](/ida-9.5/core/disassembler/disassembly-gallery/68hc12-disassembler), [68HC16](/ida-9.5/core/disassembler/disassembly-gallery/68hc16-disassembler)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| **Motorola 68k**                             | [68040, Amiga](/ida-9.5/core/disassembler/disassembly-gallery/68040-amiga), [68k Amiga](/ida-9.5/core/disassembler/disassembly-gallery/68k-amiga-disassembler), [68k Mac OS](/ida-9.5/core/disassembler/disassembly-gallery/68k-mac-os), [68k Palm Pilot](/ida-9.5/core/disassembler/disassembly-gallery/68k-palm-pilot)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **ARM**                                      | [Android ARM (.elf)](/ida-9.5/core/disassembler/disassembly-gallery/android-arm-executables-.elf), [EPOC App](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-epoc-app), [EPOC PE File](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-epoc-pe-file), [EPOC ROMFile](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-epoc-romfile), [EPOC SIS File Handler](/ida-9.5/core/disassembler/disassembly-gallery/epoc-sis-file-handler), [iOS: Unlock](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-ios-iphone-unlock), [iOS: Objective-C metadata](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-ios-iphone-objective-c-metadata), [iOS: Objective-C Instance variables](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-ios-iphone-objective-c-instance-variables), [iOS: PIT](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-ios-iphone-parameter-identification-and-tracking-pit), [iOS: Start](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-ios-iphone-start), [iOS: Switch statements](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-ios-iphone-switch-statements), [iOS: C++ signatures](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-ios-iphone-cpp-signatures), [iOS: Write](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-ios-iphone-write), [Linux ELF](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-linux-elf), [AOF SDK](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-aof-sdk), [Windows CE COFF](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-windows-ce-coff-format), [Windows CE PE](/ida-9.5/core/disassembler/disassembly-gallery/arm-processor-windows-ce-pe-format)                                                          |
| **MIPS**                                     | [Nintendo N64](/ida-9.5/core/disassembler/disassembly-gallery/mips-processor-nintendo-n64), [Sony bin (R5900)](/ida-9.5/core/disassembler/disassembly-gallery/mips-r5900-processor-sony-bin), [Sony ELF](/ida-9.5/core/disassembler/disassembly-gallery/mips-processor-sony-elf), [Sony PSX](/ida-9.5/core/disassembler/disassembly-gallery/mips-processor-sony-psx), [Sony PSX](/ida-9.5/core/disassembler/disassembly-gallery/mips-processor-sony-psx-1), [Unix COFF](/ida-9.5/core/disassembler/disassembly-gallery/mips-processor-unix-coff-file-format), [Unix ELF](/ida-9.5/core/disassembler/disassembly-gallery/mips-processor-unix-elf-file-format), [Windows CE PE](/ida-9.5/core/disassembler/disassembly-gallery/mips-processor-windows-ce-pe-file-format), [Windows CE PE2](/ida-9.5/core/disassembler/disassembly-gallery/mips-processor-windows-ce-pe2-file-format)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| **PowerPC**                                  | [AIF ECOFF](/ida-9.5/core/disassembler/disassembly-gallery/power-pc-aif-ecoff-file-format), [Linux ELF](/ida-9.5/core/disassembler/disassembly-gallery/power-pc-linux-elf)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| **SPARC**                                    | [Solaris COFF](/ida-9.5/core/disassembler/disassembly-gallery/sparc-solaris-coff), [Solaris ELF](/ida-9.5/core/disassembler/disassembly-gallery/sparc-solaris-elf), [Sun ELF](/ida-9.5/core/disassembler/disassembly-gallery/sparc-sun-elf), [Sun ELF SO](/ida-9.5/core/disassembler/disassembly-gallery/sparc-sun-elf-so)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| **Hitachi/Renesas SH**                       | [SH-1](/ida-9.5/core/disassembler/disassembly-gallery/hitachi-sh-1-processor), [SH-3: Windows CE COFF](/ida-9.5/core/disassembler/disassembly-gallery/hitachi-sh-3-processor-windows-ce-coff-format), [SH-3: Windows CE PE](/ida-9.5/core/disassembler/disassembly-gallery/hitachi-sh-3-processor-windows-ce-pe-format), [SH-4: ELF](/ida-9.5/core/disassembler/disassembly-gallery/hitachi-sh-4-processor-elf-file-format), [SH-4: Windows CE PE](/ida-9.5/core/disassembler/disassembly-gallery/hitachi-sh-4-processor-windows-ce-pe-file-format)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| **H8**                                       | [H8/300 COFF](/ida-9.5/core/disassembler/disassembly-gallery/h8-300-coff-file-format), [H8/300s COFF](/ida-9.5/core/disassembler/disassembly-gallery/h8-300s-coff-file-format), [H8/500](/ida-9.5/core/disassembler/disassembly-gallery/h8-500)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| **TMS320 DSP**                               | [TMS320C2 COFF](/ida-9.5/core/disassembler/disassembly-gallery/tms-320c2-coff), [TMS320C5](/ida-9.5/core/disassembler/disassembly-gallery/tms-320c5), [TMS320C54](/ida-9.5/core/disassembler/disassembly-gallery/tms-320c54), [TMS320C6 COFF](/ida-9.5/core/disassembler/disassembly-gallery/tms-320c6-coff-file-format)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **Z80 family**                               | [Gameboy](/ida-9.5/core/disassembler/disassembly-gallery/gameboy), [Toshiba TLCS 900](/ida-9.5/core/disassembler/disassembly-gallery/toshiba-tlcs-900), [Z180 COFF](/ida-9.5/core/disassembler/disassembly-gallery/z180-coff-file-format), [Z380 COFF](/ida-9.5/core/disassembler/disassembly-gallery/z380-coff-file-format), [Z8](/ida-9.5/core/disassembler/disassembly-gallery/z8), [Z80](/ida-9.5/core/disassembler/disassembly-gallery/z80)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| **x86 / Windows / X-Box**                    | [DOS Extender](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-dos-extender), [Watcom Runtime](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-watcom-runtime), [Geos APP](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-geos-app), [Geos DRV](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-geos-drv), [Geos LIB](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-geos-lib), [GNU COFF](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-gnu-coff-format), [OS/2 LE](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-os-2-linear-executable-format), [Netware NLM](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-netware-nlm), [QNX](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-qnx-executable), [Watcom Runtime](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-watcom-runtime-1), [Windows OMF](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-windows-omf), [Windows PE](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-windows-portable-executable-format), [Windows VxD](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-windows-virtual-device-driver), [Windows 16-bit DLL](/ida-9.5/core/disassembler/disassembly-gallery/80-86-architecture-windows-16-bits-dll), [X-Box](/ida-9.5/core/disassembler/disassembly-gallery/x-box-disassembler), [Windows NT PE File](/ida-9.5/core/disassembler/disassembly-gallery/windows-nt-pe-file)                                                                                                                                                                                                                                                     |
| **Renesas/Mitsubishi M-series**              | [M16C](/ida-9.5/core/disassembler/disassembly-gallery/renesas-hitachi-m16c), [M32R](/ida-9.5/core/disassembler/disassembly-gallery/renesas-hitachi-m32r), [M740](/ida-9.5/core/disassembler/disassembly-gallery/m740), [M7700](/ida-9.5/core/disassembler/disassembly-gallery/m7700), [M7900](/ida-9.5/core/disassembler/disassembly-gallery/m7900)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| **8/16-bit microcontrollers**                | [Philips 51XA-G3](/ida-9.5/core/disassembler/disassembly-gallery/philips-51xa-g3), [NEC 78k0/78k0s](/ida-9.5/core/disassembler/disassembly-gallery/nec-78k0-and-78k0s-processor), [80196](/ida-9.5/core/disassembler/disassembly-gallery/80196-processor), [8051](/ida-9.5/core/disassembler/disassembly-gallery/8051-disassembler), [Analog Devices 218x](/ida-9.5/core/disassembler/disassembly-gallery/analog-devices-218x.), [ARC](/ida-9.5/core/disassembler/disassembly-gallery/arc-processor), [ATMEL AVR](/ida-9.5/core/disassembler/disassembly-gallery/atmel-avr-disassembler), [C166](/ida-9.5/core/disassembler/disassembly-gallery/c166-processor), [C166 (ELF)](/ida-9.5/core/disassembler/disassembly-gallery/c166-processor-with-elf-file), [Rockwell C39](/ida-9.5/core/disassembler/disassembly-gallery/rockwell-c39), [CR16](/ida-9.5/core/disassembler/disassembly-gallery/cr16), [DSP56K](/ida-9.5/core/disassembler/disassembly-gallery/dsp56k), [Fujitsu FR (.elf)](/ida-9.5/core/disassembler/disassembly-gallery/fujitsu-fr-.elf), [i51](/ida-9.5/core/disassembler/disassembly-gallery/i51), [Angstrem KR1878](/ida-9.5/core/disassembler/disassembly-gallery/angstrem-kr-1878), [Panasonic MN102](/ida-9.5/core/disassembler/disassembly-gallery/panasonic-mn102), [Atmel OAK DSP](/ida-9.5/core/disassembler/disassembly-gallery/atmel-oak-dsp), [PIC](/ida-9.5/core/disassembler/disassembly-gallery/pic), [PIC 12xx](/ida-9.5/core/disassembler/disassembly-gallery/pic-12xx), [ST 20C4](/ida-9.5/core/disassembler/disassembly-gallery/st-20c4), [ST 7](/ida-9.5/core/disassembler/disassembly-gallery/st-7), [ST 9](/ida-9.5/core/disassembler/disassembly-gallery/st-9), [SunPlus unSP](/ida-9.5/core/disassembler/disassembly-gallery/sunplus-unsp), [NEC V850](/ida-9.5/core/disassembler/disassembly-gallery/nec-v850) |
| **Bytecode / managed runtimes**              | [.NET CLI: VisualBasic library](/ida-9.5/core/disassembler/disassembly-gallery/microsoft-.net-cli-disassembler.-visualbasic-library), [Android Dalvik (.dex)](/ida-9.5/core/disassembler/disassembly-gallery/android-dalvik-executables-.dex), [.NET CLI](/ida-9.5/core/disassembler/disassembly-gallery/microsoft-.net-cli-disassembler), [Java Bytecode](/ida-9.5/core/disassembler/disassembly-gallery/java-bytecode)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **Other RISC/CISC architectures**            | [Alpha: NT COFF](/ida-9.5/core/disassembler/disassembly-gallery/alpha-processor-nt-coff), [Alpha: Unix ELF](/ida-9.5/core/disassembler/disassembly-gallery/alpha-processor-unix-elf), [HPPA: HP-UX SOM](/ida-9.5/core/disassembler/disassembly-gallery/hppa-risc-processor-hp-ux-som), [i860](/ida-9.5/core/disassembler/disassembly-gallery/i860), [Intel i960](/ida-9.5/core/disassembler/disassembly-gallery/intel-i960), [Intel IA-64 (Itanium)](/ida-9.5/core/disassembler/disassembly-gallery/intel-ia-64-itanium), [PDP-11: SAV File](/ida-9.5/core/disassembler/disassembly-gallery/pdp-11-sav-file), [TRICORE](/ida-9.5/core/disassembler/disassembly-gallery/tricore)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| **Classic Mac / consoles / other platforms** | [Unix COFF](/ida-9.5/core/disassembler/disassembly-gallery/unix-coff), [Mac OS PEF File](/ida-9.5/core/disassembler/disassembly-gallery/mac-os-pef-file), [Mac OS X File](/ida-9.5/core/disassembler/disassembly-gallery/mac-os-x-file), [SNES](/ida-9.5/core/disassembler/disassembly-gallery/super-nintendo-entertainment-system-snes)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |


# Philips 51XA-G3

```armasm
seg000:02E4
seg000:02E4 ; =============== S U B R O U T I N E =======================================
seg000:02E4
seg000:02E4
seg000:02E4 sub_2E4:                                ; CODE XREF: seg000:0316↓p
seg000:02E4                                         ; seg000:0344↓p
seg000:02E4                 cmp.b   R1H, #0
seg000:02E7                 bge     loc_2F6
seg000:02E9                 movs.w  R4, #0
seg000:02EB                 sub.w   R4, R0
seg000:02ED                 mov.w   R0, R4
seg000:02EF                 movs.w  R4, #0
seg000:02F1                 subb.w  R4, R1
seg000:02F3                 mov.w   R1, R4
seg000:02F5                 nop
seg000:02F6
seg000:02F6 loc_2F6:                                ; CODE XREF: sub_2E4+3↑j
seg000:02F6                 cmp.b   R3H, #0
seg000:02F9                 bge     locret_308
seg000:02FB                 movs.w  R4, #0
seg000:02FD                 sub.w   R4, R2
seg000:02FF                 mov.w   R2, R4
seg000:0301                 movs.w  R4, #0
seg000:0303                 subb.w  R4, R3
seg000:0305                 mov.w   R3, R4
seg000:0307                 nop
seg000:0308
seg000:0308 locret_308:                             ; CODE XREF: sub_2E4+15↑j
seg000:0308                 ret
seg000:0308 ; End of function sub_2E4
seg000:0308
seg000:030A ; ---------------------------------------------------------------------------
seg000:030A                 push.w  R4
seg000:030C                 push.w  R5
seg000:030E                 push.w  R6
```


# 6502 and 65C02 Disassembler

IDA is the most powerful existing 6502 disassembler. Companies such as Commodore, Atari and Apple have used the 6502 and 65c02 design. If you are looking for additional information or even less powerful disassemblers, we recommend [www.6502.org](http://www.6502.org/), a very useful 6502 resource center.

Assembler code

```armasm
seg000:0065 ; ---------------------------------------------------------------------------
seg000:0065                 CMP     $3E8
seg000:0068                 CMP     $3E8,X
seg000:006B                 CMP     $3E8,Y
seg000:006E                 CMP     0,X
seg000:0071                 CMP     $FF,X
seg000:0073                 CPX     #0
seg000:0075                 CPX     #$FF
seg000:0077                 CPX     byte_64
seg000:0079                 CPX     $3E8
seg000:007C                 CPY     #0
seg000:007E                 CPY     #$FF
seg000:0080                 CPY     byte_64
seg000:0082                 CPY     $3E8
seg000:0085                 DEC     byte_64
seg000:0087                 DEC     $3E8
seg000:008A                 DEC     $3E8,X
seg000:008D                 DEC     0,X
seg000:0090                 DEC     $FF,X
seg000:0092                 DEX
seg000:0093                 DEY
seg000:0094                 EOR     #0
seg000:0096                 EOR     #$FF
seg000:0098                 EOR     ($64),Y
seg000:009A                 EOR     ($64,X)
seg000:009C                 EOR     byte_64
seg000:009E                 EOR     $3E8
seg000:00A1                 EOR     $3E8,X
seg000:00A4                 EOR     $3E8,Y
seg000:00A7                 EOR     0,X
seg000:00AA                 EOR     $FF,X
seg000:00AC                 INC     byte_64
seg000:00AE                 INC     $3E8
seg000:00B1                 INC     $3E8,X
seg000:00B4                 INC     0,X
```


# 6301, 6303, 6800, 6801 and 6803 Disassembler

IDA is the most powerful disassembler available for the 6803 microcontroller family.

Assembler code

```armasm
RAM:0098                 fcb   3
RAM:0099                 fcb $E8 ; è
RAM:009A                 fcb $C8 ; È
RAM:009B                 fcb   0
RAM:009C ; ---------------------------------------------------------------------------
RAM:009C                 eorb    #$FF
RAM:009E                 eorb    byte_64
RAM:00A1                 eorb    0,x
RAM:00A3                 eorb    $FF,x
RAM:00A5                 eorb    byte_3E8
RAM:00A8                 ldaa    #0
RAM:00AA                 ldaa    #$FF
RAM:00AC                 ldaa    byte_64
RAM:00AF                 ldaa    0,x
RAM:00B1                 ldaa    $FF,x
RAM:00B3                 ldaa    byte_3E8
RAM:00B6                 ldab    #0
RAM:00B8                 ldab    #$FF
RAM:00BA                 ldab    byte_64
RAM:00BD                 ldab    0,x
RAM:00BF                 ldab    $FF,x
RAM:00C1                 ldab    byte_3E8
RAM:00C4                 oraa    #0
RAM:00C6                 oraa    #$FF
RAM:00C8                 oraa    byte_64
RAM:00CB                 oraa    0,x
RAM:00CD                 oraa    $FF,x
RAM:00CF                 oraa    byte_3E8
RAM:00D2                 orab    #0
RAM:00D4                 orab    #$FF
RAM:00D6                 orab    byte_64
RAM:00D9                 orab    0,x
RAM:00DB                 orab    $FF,x
RAM:00DD                 orab    byte_3E8
RAM:00E0                 staa    byte_64

```


# 68040, Amiga

Assembler code

```armasm
CODE:00010390 ; ===========================================================================
CODE:00010390
CODE:00010390 ; Segment type: Pure code
CODE:00010390 ; segment "CODE"
CODE:00010390
CODE:00010390 ; =============== S U B R O U T I N E =======================================
CODE:00010390
CODE:00010390 ; Attributes: noreturn bp-based frame
CODE:00010390
CODE:00010390 _main:                                  ; CODE XREF: startup+CA↑p
CODE:00010390                                         ; startup:domain↑p
CODE:00010390
CODE:00010390 var_4           = -4
CODE:00010390
CODE:00010390                 link    a6,#-4
CODE:00010394                 jsr     _Init
CODE:0001039A                 jsr     _InitTrace
CODE:000103A0
CODE:000103A0 loc_103A0:                              ; CODE XREF: _main+182↓j
CODE:000103A0                                         ; _main+18C↓j
CODE:000103A0                 jsr     _WaitToAnimate
CODE:000103A6                 jsr     _ClearControl
CODE:000103AC                 moveq   #2,d0
CODE:000103AE                 move.l  d0,-(sp)
CODE:000103B0                 jsr     sub_1E88C
CODE:000103B6                 addq.l  #4,sp
CODE:000103B8                 moveq   #4,d0
CODE:000103BA                 move.l  d0,-(sp)
CODE:000103BC                 jsr     sub_1E88C
CODE:000103C2                 addq.l  #4,sp
CODE:000103C4                 jsr     _PollJoy
CODE:000103CA                 jsr     _UserIn
CODE:000103D0                 tst.l   (dword_2052A).l
CODE:000103D6                 bne.s   loc_103EA
CODE:000103D8                 movea.l (_aniObj).l,a0
```


# 6805 Disassembler

The 6805 microcontroller family is Motorola’s simplest and least-expensive family of microcontrollers. As usual there were many variations of the chips and the part numbers usually contain letter and digits, like 68HC05. IDA is the most powerful disassembler available for those microcontrollers.

68HC05B6, 68HC05B8, 68HC05B16, 68HC705B16, 68HC05B32, 68HC705B32, 68HC05BD5, 68HC05C8A, 68HC705C8A, 68HC05C9A, 68HC705C9A, 68HC705F32, 68HC05J1A, 68HC705J1A, ,68HC05J5A, 68HC705J5A, 68HC05JB3, 68HC705JB3, 68HC05JB4, 68HC705JB4, 68HC05JJ6, ,68HC705JJ7, 68HC05JP6, 68HC705JP7, 68HC05K3, 68HC705KJ1, 68HC05L16, 68HC705L16, ,68HC05L25, 68HC05LJ5, 68HC05P18A, 68HC05P4A, 68HC05P6, 68HC705P6A, 68HC05PV8A, ,68HC805PV8, 68HC05SR3, 68HC705SR3, 68HC05SU3A, 68HC05X4, 68HC705X4, 68HC05X16, ,68HC05X32, 68HC705X32.

Assembler code

```armasm
RESERVED:01DC                 fcb $BF ; ¿
RESERVED:01DD                 fcb $64 ; d
RESERVED:01DE                 fcb $CF ; Ï
RESERVED:01DF                 fcb   3
RESERVED:01E0 ; ---------------------------------------------------------------------------
RESERVED:01E0                 eorb    $97,x
RESERVED:01E2                 sts     <byte_9D
RESERVED:01E4                 suba    #$81
RESERVED:01E6                 subd    #$8F98
RESERVED:01E9                 oraa    <byte_9C
RESERVED:01EB                 adca    <byte_9B
RESERVED:01ED                 lds     #$200E
RESERVED:01F0                 brn     loc_1FE
RESERVED:01F2                 bhi     loc_1FE
RESERVED:01F4                 bls     loc_1FE
RESERVED:01F6                 bcc     loc_1FE
RESERVED:01F8                 bcc     loc_1FE
RESERVED:01FA                 bcs     loc_1FE
RESERVED:01FC                 bcs     *+2
RESERVED:01FE
RESERVED:01FE loc_1FE:                                ; CODE XREF: RESERVED:01F0↑j
RESERVED:01FE                                         ; RESERVED:01F2↑j ...
RESERVED:01FE                 bne     loc_1FE
RESERVED:0200                 beq     loc_1FE
RESERVED:0202                 bvc     loc_1FE
RESERVED:0204                 bvs     loc_1FE
RESERVED:0206                 bpl     loc_1FE
RESERVED:0208                 bmi     loc_1FE
RESERVED:020A                 bge     loc_1FE
RESERVED:020C                 blt     loc_1FE
RESERVED:020E                 bgt     loc_1FE
RESERVED:0210                 ble     loc_1FE
RESERVED:0212                 jsr     $EA,x
RESERVED:0212 ; ---------------------------------------------------------------------------
RESERVED:0214                 fcb   0

```


# 6808 Disassembler

IDA is the most powerful disassembler available for the 6808 family of microcontrollers. Which include the following devices:

68HC08AB16A, 68HC908AB32, 68HC08AS32, 68HC08AS32A, 68HC908AS32A, 68HC908AS60, ,68HC908AS60A, 68HC08AZ32A, 68HC908AZ32A, 68HC08AZ60A, 68HC908AZ60A, 68HC08BD24, 68HC908BD48, ,68HC908EY16, 68HC908GP32, 68HC908GR4, 68HC908GR8, 68HC908GR8A, 68HC908GR16, 68HC908GT8, ,68HC908GT16, 68HC908GZ8, 68HC908GZ16, 68HC08JB1, 68HC908JB16, 68HC908JB8, 68HC08JB8, 68HC908JK1, ,68HC908JK3, 68HC08JK3, 68HC908JK8, 68HC08JK8, 68HC908JL3, 68HC08JL3, 68HC908JL8, 68HC08JL8, 68HC08JT8, 68HC08KH12, 68HC908KX2, 68HC908KX8, 68HC908LD64, 68HC908LJ12, 68HC908MR8, 68HC908MR16, 68HC908MR32, 68HC908QT1, 68HC908QT2, 68HC908QT4, 68HC908QY1, 68HC908QY2, 68HC908QY4, 68HC908RF2, ,8HC908RK2, 68HC908SR12, MC3PHAC, MC9S08GB32, MC9S08GB60, MC9S08GT32, MC9S08GT60.

Assembler code

```armasm
EXTRA0_87:0000C1B5
EXTRA0_87:0000C1B5 ; =============== S U B R O U T I N E =======================================
EXTRA0_87:0000C1B5
EXTRA0_87:0000C1B5
EXTRA0_87:0000C1B5                 ; public App_OnReadValues
EXTRA0_87:0000C1B5 App_OnReadValues:                       ; CODE XREF: main+2A9↓P
EXTRA0_87:0000C1B5                 pshx
EXTRA0_87:0000C1B6                 pshh
EXTRA0_87:0000C1B7                 tax
EXTRA0_87:0000C1B8                 add     2, sp1
EXTRA0_87:0000C1BB                 sta     1, sp1
EXTRA0_87:0000C1BE                 cpx     #1
EXTRA0_87:0000C1C0                 txa
EXTRA0_87:0000C1C1                 bhi     loc_C1D2
EXTRA0_87:0000C1C3                 tsx
EXTRA0_87:0000C1C4                 ldx     , x
EXTRA0_87:0000C1C5                 cpx     #2
EXTRA0_87:0000C1C7                 bcs     loc_C1D2
EXTRA0_87:0000C1C9                 brset   DDRF6, _LEDC, loc_C1CE
EXTRA0_87:0000C1CC                 clrx
EXTRA0_87:0000C1CD                 skip2
EXTRA0_87:0000C1CE
EXTRA0_87:0000C1CE loc_C1CE:                               ; CODE XREF: App_OnReadValues+14↑j
EXTRA0_87:0000C1CE                 ldx     #1
EXTRA0_87:0000C1D0                 stx     byte_70
EXTRA0_87:0000C1D2
EXTRA0_87:0000C1D2 loc_C1D2:                               ; CODE XREF: App_OnReadValues+C↑j
EXTRA0_87:0000C1D2                                         ; App_OnReadValues+12↑j
EXTRA0_87:0000C1D2                 ldx     #$6F ; 'o'
EXTRA0_87:0000C1D4                 pshx
EXTRA0_87:0000C1D5                 tsx
EXTRA0_87:0000C1D6                 ldx     2, x1
EXTRA0_87:0000C1D8                 jsr     SSD_CopyParmsToAppBuffer
EXTRA0_87:0000C1DB                 ais     #3
EXTRA0_87:0000C1DD                 rts
EXTRA0_87:0000C1DD ; End of function App_OnReadValues
EXTRA0_87:0000C1DD
```


# 6809 OS9 Flex Disassembler

FLEX is the name of the Operating System for the Motorola 6800 and 6809. IDA can disassemble OS9 object and FLEX STX files and is probably the most powerful disassembler for that platform.

Assembler code

```armasm
TEXT:54A5
TEXT:54A5 * =============== S U B R O U T I N E =======================================
TEXT:54A5
TEXT:54A5
TEXT:54A5 sub_54A5                                * CODE XREF: sub_4F06+78↑P
TEXT:54A5                                         * sub_5048+1CB↑P ...
TEXT:54A5                 pshs    dpr,y,u
TEXT:54A7                 ldy     7,s
TEXT:54AA                 ldx     ,y
TEXT:54AC                 ldd     9,s
TEXT:54AE                 aslb
TEXT:54AF                 leay    b,y
TEXT:54B1                 ldd     $B,s
TEXT:54B3                 pshs    a,b,x
TEXT:54B5                 tfr     b,a
TEXT:54B7                 ldu     ,y
TEXT:54B9                 beq     loc_54BD
TEXT:54BB                 jsr     ,u
TEXT:54BD
TEXT:54BD loc_54BD                                * CODE XREF: sub_54A5+14↑j
TEXT:54BD                 tfr     a,b
TEXT:54BF                 clra
TEXT:54C0                 leas    4,s
TEXT:54C2                 puls    pcr,u,y,dpr
TEXT:54C2 * End of function sub_54A5
TEXT:54C2
TEXT:54C4
TEXT:54C4 * =============== S U B R O U T I N E =======================================
TEXT:54C4
TEXT:54C4
TEXT:54C4 sub_54C4                                * CODE XREF: sub_4C67+63↑P
TEXT:54C4                                         * sub_4C67+87↑P ...
TEXT:54C4                 pshs    dpr,y,u
TEXT:54C6                 lda     $C,s
TEXT:54C8                 ldx     7,s

```


# 6809 Disassembler

FLEX is the name of the Operating System for the Motorola 6800 and 6809. IDA can disassemble OS9 object and FLEX STX files

Assembler code\\

```armasm
TEXT:102F                 bcs     loc_1065
TEXT:1031                 leax    ,u
TEXT:1033
TEXT:1033 loc_1033                                * CODE XREF: start+25↓j
TEXT:1033                 clr     ,x+
TEXT:1035                 subd    #1
TEXT:1038                 bhi     loc_1033
TEXT:103A                 stu     $80
TEXT:103C                 ldd     ,s++
TEXT:103E                 std     $B0
TEXT:1040                 ldd     ,s++
TEXT:1042                 leax    d,u
TEXT:1044                 stx     $82
TEXT:1046                 ldd     $B0
TEXT:1048                 leax    d,x
TEXT:104A                 stx     $B0
TEXT:104C                 ldx     $88
TEXT:104E                 OS9     F$All64 * '0'   * Allocate Process/Path Descriptor
TEXT:1051                 bcs     loc_1065
TEXT:1053                 stx     $88
TEXT:1055                 OS9     F$Ret64 * '1'   * Return Process/Path Descriptor
TEXT:1058                 leax    word_16A2,pc
TEXT:105C                 stx     $26
TEXT:105E                 leay    word_1067,pc
TEXT:1061                 OS9     F$SSvc * '2'    * Service Request Table Initialization
TEXT:1064                 rts
TEXT:1065 * ---------------------------------------------------------------------------
TEXT:1065
TEXT:1065 loc_1065                                * CODE XREF: start+1C↑j
TEXT:1065                                         * start+3E↑j
TEXT:1065                 jmp     $6B
TEXT:1065 * End of function start
TEXT:1065
TEXT:1065 * ---------------------------------------------------------------------------
TEXT:1067 word_1067       fdb $7F00               * DATA XREF: start+4B↑r
```


# 6811 Disassembler

The 68HC11 is a powerful 8-bit data, 16-bit address microcontroller from Motorola. IDA is, without any doubts, the most powerful 6811 disassembler. Here are a few part numbers of that huge family: 68HC11D0, 68HC11D3, 68HC711D3, 68HC11E0, 68HC11E1, 68HC11E9, 68HC11EA9, 68HC711E9, 68HC11E20, 68HC711E20, 68HC11F1, 68HC11K0, 68HC11K1, 68HC11K4, 68HC11KS1, 68HC11KS2, 68HC711KS2, 68HC11P1, 68HC11P2.

Assembler code\\

```armasm
RAM:00B4                 asl     $B4,y
RAM:00B7                 asl     $88,y
RAM:00BA
RAM:00BA loc_BA:                                 ; DATA XREF: RAM:loc_BA↓w
RAM:00BA                 asl     loc_BA
RAM:00BD                 asl     word_8888
RAM:00C0                 asra
RAM:00C1                 asrb
RAM:00C2                 asr     word_8888
RAM:00C5                 asr     word_8888
RAM:00C8                 asr     0,x
RAM:00CA                 asr     $CA,x
RAM:00CC                 asr     $88,x
RAM:00CE                 asr     0,y
RAM:00D1                 asr     $D1,y
RAM:00D4                 asr     $88,y
RAM:00D7
RAM:00D7 loc_D7:                                 ; DATA XREF: RAM:loc_D7↓w
RAM:00D7                 asr     loc_D7
RAM:00DA                 asr     word_8888
RAM:00DD                 bclr    $DD,x 0
RAM:00E0                 bclr    $E0,x $88 ; 'ˆ'
RAM:00E3                 bclr    $88,x $88 ; 'ˆ'
RAM:00E6                 bclr    $E6,y $88 ; 'ˆ'
RAM:00EA                 bclr    $88,y $88 ; 'ˆ'
RAM:00EE                 bita    #0
RAM:00F0
RAM:00F0 loc_F0:                                 ; DATA XREF: RAM:loc_F0↓r
RAM:00F0                 bita    <loc_F0
RAM:00F2                 bita    0,x
RAM:00F4                 bita    $F4,x
RAM:00F6                 bita    $88,x
RAM:00F8                 bita    0,y
RAM:00FB                 bita    $FB,y
RAM:00FB ; ---------------------------------------------------------------------------

```


# 68HC12 Disassembler

The 68HC12 is a Motorola microcontroller that has been widely used by the automotive industry. IDA is the most powerful disassembler available for the 68HC12 family and a car tuner’s favourite. Typical parts include the 68HC812A4, 68HC912B32, 68HC912BC32, 68HC12BC32, 68HC12BE32, 68HC12D60, 68HC912D60, 68HC912D60A, 68HC912D60C, 68HC912D60P, 68HC912DG128A, 68HC912DG128C, 68HC912DG128P, 68HC912DT128A, 68HC912DT128C, 68HC912DT128P and, in its automotive versions, 68HC912B32, 68HC912BC32, 68HC12BC32, 68HC12BE32, 68HC912D60A, 68HC912D60C, 68HC912D60P, 68HC12D60, 68HC912DG128A, 68HC912DG128C, 68HC912DG128P, 68HC912DT128A, 68HC912DT128C, 68HC912DT128P.

Assembler code

```armasm
.text:00000042
.text:00000042 ; =============== S U B R O U T I N E =======================================
.text:00000042
.text:00000042
.text:00000042 L26:                                    ; CODE XREF: L26:L87↓p
.text:00000042                 addd    symbol141
.text:00000045
.text:00000045 L27:
.text:00000045                 addd    $76,x
.text:00000048
.text:00000048 L28:
.text:00000048                 anda    #$5A ; 'Z'
.text:0000004A
.text:0000004A L29:
.text:0000004A                 anda    Z46
.text:0000004C
.text:0000004C L30:
.text:0000004C                 anda    $63,x
.text:0000004F
.text:0000004F L31:
.text:0000004F                 anda    symbol51
.text:00000052
.text:00000052 L32:
.text:00000052                 anda    $9F,x
.text:00000055
.text:00000055 L33:
.text:00000055                 andb    #$C9 ; 'É'
.text:00000057
.text:00000057 L34:
.text:00000057                 andb    Z154
.text:00000059
.text:00000059 L35:
.text:00000059                 andb    $66,x
.text:0000005C
.text:0000005C L36:
.text:0000005C                 andb    symbol50
```


# 68HC16 Disassembler

The 68HC16 is a Motorola microcontroller that is used, among other things, in the automotive industry: IDA is the most powerful disassembler for the 68HC16Y1 , 68HC16Z1, 68HC16Z3 processors and is widely used by car tuners and race teams.

Assembler code

```armasm
RESERVED:01BC                 fcb  $D
RESERVED:01BD                 fcb $7F ; 
RESERVED:01BE                 fcb  $D
RESERVED:01BF                 fcb $80 ; €
RESERVED:01C0 ; ---------------------------------------------------------------------------
RESERVED:01C0                 sec
RESERVED:01C1                 stx     byte_E00
RESERVED:01C4                 cli
RESERVED:01C5                 nop
RESERVED:01C6                 cli
RESERVED:01C7                 clr     byte_E80
RESERVED:01CA                 cli
RESERVED:01CB                 stx     byte_F00
RESERVED:01CE                 sei
RESERVED:01CF                 nop
RESERVED:01D0                 sei
RESERVED:01D1                 clr     byte_F80
RESERVED:01D4                 sei
RESERVED:01D5                 stx     PORTA           ; Port A data
RESERVED:01D8                 sba
RESERVED:01D9                 nop
RESERVED:01DA                 sba
RESERVED:01DB                 clr     byte_1080
RESERVED:01DE                 sba
RESERVED:01DF                 stx     byte_1100
RESERVED:01E2                 cba
RESERVED:01E3                 nop
RESERVED:01E4                 cba
RESERVED:01E5                 clr     byte_1180
RESERVED:01E8                 cba
RESERVED:01E9                 stx     byte_1200
RESERVED:01EC                 brset   <byte_1 $12 loc_26F
RESERVED:01F0
RESERVED:01F0 loc_1F0:                                ; CODE XREF: RESERVED:loc_1F0↑j
RESERVED:01F0                 brset   <byte_80 $12 loc_1F0+3
```


# 68k Amiga Disassembler

IDA is the best disassembler for Amiga hunk files. The Motorola 68K family of processors is huge and very widely used. A few sample parts: MC68000, MC68010, MC68020, MC68030, MC68040, MC68330, MC68882, MC68851, MC68020EX, MC68302 Integrated Communication Processor, MC68306 68K/ColdFire, MC68331 68K/ColdFire, MC68332 68K/ColdFire, MC68336 68K/ColdFire, MC68340 68K/ColdFire, MC68360 Integrated Communication Processor, MC68F375 68K/ColdFire, MC68376 68K/ColdFire, etc….

Assembler code

```armasm
CODE:00010190
CODE:00010190 ; =============== S U B R O U T I N E =======================================
CODE:00010190
CODE:00010190
CODE:00010190 waitmsg:                                ; CODE XREF: startup+DE↑p
CODE:00010190                 lea     $5C(a4),a0
CODE:00010194                 jsr     -$180(a6)
CODE:00010198                 lea     $5C(a4),a0
CODE:0001019C                 jsr     -$174(a6)
CODE:000101A0                 rts
CODE:000101A0 ; End of function waitmsg
CODE:000101A0
CODE:000101A2
CODE:000101A2 ; =============== S U B R O U T I N E =======================================
CODE:000101A2
CODE:000101A2
CODE:000101A2 openDOS:                                ; CODE XREF: startup:fromCLI↑p
CODE:000101A2                                         ; startup:fromWorkbench↑p
CODE:000101A2
CODE:000101A2 ; FUNCTION CHUNK AT CODE:00010176 SIZE 0000001A BYTES
CODE:000101A2
CODE:000101A2                 clr.l   (_DOSBase).l
CODE:000101A8                 lea     (DOSName).l,a1  ; "dos.library"
CODE:000101AE                 move.l  #$1E,d0
CODE:000101B4                 jsr     -$228(a6)
CODE:000101B8                 move.l  d0,(_DOSBase).l
CODE:000101BE                 beq.s   noDOS
CODE:000101C0                 rts
CODE:000101C0 ; End of function openDOS
CODE:000101C0
CODE:000101C0 ; ---------------------------------------------------------------------------
CODE:000101C2                 align 4
CODE:000101C2 ; end of 'CODE'
CODE:000101C2
DATA:000101D0 ; ===========================================================================
DATA:000101D0
DATA:000101D0 ; Segment type: Pure data
DATA:000101D0 ; segment "DATA"
DATA:000101D0 VerRev:         dc.l startup
```


# 68k Mac OS

IDA is the most powerful disassembler for Mac OS 8 and Mac OS 9 PEF files.

The Motorola 68K family of processors is huge and very widely used. A few sample parts: MC68000, MC68010, MC68020, MC68030, MC68040, MC68330, MC68882, MC68851, MC68020EX, MC68302 Integrated Communication Processor, MC68306 68K/ColdFire, MC68331 68K/ColdFire, MC68332 68K/ColdFire, MC68336 68K/ColdFire, MC68340 68K/ColdFire, MC68360 Integrated Communication Processor, MC68F375 68K/ColdFire, MC68376 68K/ColdFire, etc.

Assembler code

```armasm
seg000:40800530
seg000:40800530 ; =============== S U B R O U T I N E =======================================
seg000:40800530
seg000:40800530
seg000:40800530 sub_0_40800530:                         ; CODE XREF: sub_0_40800194+164↑p
seg000:40800530                 pea     -4(a5)
seg000:40800534                 _InitGraf               ; f
seg000:40800536                 pea     -$200(a6)
seg000:4080053A                 _OpenCPort              ; ort
seg000:4080053C                 movea.l (a5),a2
seg000:4080053E                 pea     -$6C(a2)
seg000:40800542                 _SetCursor              ; or
seg000:40800544                 lea     -$74(a2),a0
seg000:40800548                 move.l  a0,-(sp)
seg000:4080054A                 lea     ($9FA).w,a1
seg000:4080054E                 move.l  a1,-(sp)
seg000:40800550                 move.l  a1,-(sp)
seg000:40800552                 move.l  (a0)+,(a1)+
seg000:40800554                 move.l  (a0),(a1)
seg000:40800556                 move.l  #-$20003,-(sp)
seg000:4080055C                 _InsetRect              ; ct
seg000:4080055E                 move.l  #$30003,-(sp)
seg000:40800564                 _PenSize
seg000:40800566                 move.l  #$160016,-(sp)
seg000:4080056C                 _FrameRoundRect         ; undRect
seg000:4080056E                 _PenNormal              ; al
seg000:40800570                 move.l  #$100010,-(sp)
seg000:40800576                 pea     -$18(a2)
seg000:4080057A                 _FillRoundRect          ; ndRect
seg000:4080057C                 rts
seg000:4080057C ; End of function sub_0_40800530
seg000:4080057C
seg000:4080057C ; ---------------------------------------------------------------------------
seg000:4080057E                 align $10
seg000:40800580
seg000:40800580 ; =============== S U B R O U T I N E =======================================
seg000:40800580
seg000:40800580
seg000:40800580 sub_0_40800580:                         ; CODE XREF: sub_0_40800194+80↑p
seg000:40800580                 clr.w   -(sp)
```


# 68k Palm Pilot

IDA is the best disassembler for Palm Pilot programs. It supports all Palm OS versions and will even accept partially packed programs. The Palm Pilot uses a 68K processor.

The Motorola 68K family of processors is huge and very widely used. A few sample parts: MC68000, MC68010, MC68020, MC68030, MC68040, MC68330, MC68882, MC68851, MC68020EX, MC68302 Integrated Communication Processor, MC68306 68K/ColdFire, MC68331 68K/ColdFire, MC68332 68K/ColdFire, MC68336 68K/ColdFire, MC68340 68K/ColdFire, MC68360 Integrated Communication Processor, MC68F375 68K/ColdFire, MC68376 68K/ColdFire, etc.

Assembler code

```armasm
code0001:00000204
code0001:00000204 ; =============== S U B R O U T I N E =======================================
code0001:00000204
code0001:00000204 ; Attributes: bp-based frame
code0001:00000204
code0001:00000204 proc            sub_204()               ; CODE XREF: sub_31E+A0↓p
code0001:00000204
code0001:00000204 var_68          = -$68
code0001:00000204 var_50          = -$50
code0001:00000204 arg_0           =  8
code0001:00000204 arg_8           =  $10
code0001:00000204 arg_A           =  $12
code0001:00000204
code0001:00000204                 link    a6,#-$50
code0001:00000208                 movem.l d3-d6/a2-a3,-(sp)
code0001:0000020C                 movea.l arg_0(a6),a3
code0001:00000210                 move.w  arg_8(a6),d0
code0001:00000214                 beq.s   loc_222
code0001:00000216                 addi.w  #-$8000,d0
code0001:0000021A                 clr.l   d4
code0001:0000021C                 move.w  d0,d4
code0001:0000021E                 bra     loc_224
code0001:00000222 ; ---------------------------------------------------------------------------
code0001:00000222
code0001:00000222 loc_222:                                ; CODE XREF: sub_204+10↑j
code0001:00000222                 moveq   #0,d4
code0001:00000224
code0001:00000224 loc_224:                                ; CODE XREF: sub_204+1A↑j
code0001:00000224                 move.w  d4,-(sp)
code0001:00000226                 move.l  #$636F6465,-(sp)
code0001:0000022C                 systrap DmGet1Resource()
code0001:00000230                 move.l  a0,d5
code0001:00000232                 addq.w  #6,sp
code0001:00000234                 bne.s   loc_272
code0001:00000236                 lea     aCouldNotLoadCo(pc),a1 ; "Could not load code segment #"
```


# Unix COFF

IDA is the most powerful disassembler for 68K UNIX COFF Files. The Motorola 68K family of processors is huge and very widely used. A few sample parts: MC68000, MC68010, MC68020, MC68030, MC68040, MC68330, MC68882, MC68851, MC68020EX, MC68302 Integrated Communication Processor, MC68306 68K/ColdFire, MC68331 68K/ColdFire, MC68332 68K/ColdFire, MC68336 68K/ColdFire, MC68340 68K/ColdFire, MC68360 Integrated Communication Processor, MC68F375 68K/ColdFire, MC68376 68K/ColdFire, etc.

Assembler code

```armasm
.text:000001AC
.text:000001AC ; =============== S U B R O U T I N E =======================================
.text:000001AC
.text:000001AC ; Attributes: bp-based frame
.text:000001AC
.text:000001AC                 global new_main
.text:000001AC new_main:                               ; CODE XREF: main+16↑p
.text:000001AC
.text:000001AC var_C           = -$C
.text:000001AC
.text:000001AC                 link    a6,#-$10
.text:000001B2                 movem.l 0,$10+var_C(sp)
.text:000001B8                 fmovem  0,$10+var_C.l(sp)
.text:000001C2
.text:000001C2 qwerty:                                 ; CODE XREF: new_main+96↓j
.text:000001C2                 pea     var_C+4(a6)
.text:000001C6                 pea     var_C+8(a6)
.text:000001CA                 move.l  #aLdLd,-(sp)    ; "%ld %ld"
.text:000001D0                 jsr     (scanf).l
.text:000001D6                 adda.w  #$C,sp
.text:000001DA                 tst.l   var_C+8(a6)
.text:000001DE                 bne.w   loc_200
.text:000001E2                 tst.l   var_C+4(a6)
.text:000001E6                 bne.w   loc_200
.text:000001EA                 move.l  (fignqm).l,d0
.text:000001F0                 add.l   (fignqn).l,d0
.text:000001F6                 add.l   (fignqr).l,d0
.text:000001FC                 bra.w   loc_246
.text:00000200 ; ---------------------------------------------------------------------------
.text:00000200
.text:00000200 loc_200:                                ; CODE XREF: new_main+32↑j
.text:00000200                                         ; new_main+3A↑j
.text:00000200                 move.l  var_C+4(a6),(sp)
.text:00000204                 move.l  var_C+8(a6),-(sp)
.text:00000208                 jsr     (b1).l
```


# NEC 78k0 and 78k0s Processor

These NEC microcontrollers are available under many part numbers, which are all supported by the IDA Disassembler. IDA is the most powerful disassembler available for that line.

## 78K0/KB1

uPD78075B, uPD78078, uPD78078Y, uPD78070A, uPD78070AY, uPD780058, uPD780058Y, uPD780065, uPD780078, uPD780078Y, uPD780034AS, uPD780024AS uPD780034A, uPD780024A, uPD780034AY, uPD780024AY, uPD780988, uPD780208, uPD780232, uPD78044F, uPD780354, uPD780344, uPD780354Y, uPD780344Y, uPD780338, uPD780328, uPD780318, uPD780308, uPD780308Y, uPD78064B, uPD78064, uPD78064Y, uPD78098B, uPD780702Y, uPD780833Y, uPD780958, uPD780852, uPD780828B, uPD780101, uPD780102, uPD780103, uPD78F010

## 78K0S

uPD789046, uPD789026, uPD789074, uPD789088, uPD789062, uPD789052, uPD789177Y, uPD789167Y, uPD789177, uPD789167, uPD789134A, uPD789124A, uPD789114A, uPD789104A, uPD789842, uPD789417A, uPD789407A, uPD789456, uPD789446, uPD789436, uPD789426, uPD789316, uPD789306, uPD789467, uPD789327, uPD789835, uPD789830, uPD789479, uPD789489, uPD789800, uPD789862, uPD789861, uPD789860, uPD789850, uPD789871, uPD789881, uPD78F9026, uPD78F9046, uPD78F9076, uPD78F9116, uPD78F9136, uPD78F9177, uPD78F9306, uPD78F9316, uPD78F9328, uPD78F9418, uPDF78F9436, uPD78F9456, uPD78F9468, uPD78F9478, uPD78F9488, uPD78F9801, uPD78F9842, uPD78F9850.

Assembler code

```armasm
ROM_:00B9                 set1    CY
ROM_:00BA                 set1    byte_FED3.00h
ROM_:00BC                 set1    byte_FED7.00h
ROM_:00BE                 set1    byte_FEDB.00h
ROM_:00C0                 set1    byte_FEDF.00h
ROM_:00C2                 set1    byte_FEDD.00h
ROM_:00C4                 callt   [word_54]
ROM_:00C5                 set1    CY
ROM_:00C6                 incw    AX
ROM_:00C7                 incw    DE
ROM_:00C8                 add     byte_FE8C, #90h
ROM_:00CB                 decw    DE
ROM_:00CC                 sub     byte_FE9C, #00h
ROM_:00CF                 movw    AX, #1202h
ROM_:00D2                 set1    CR00.00h        ; 16-bit timer capture/compare register 00
ROM_:00D4                 callt   [word_64]
ROM_:00D5                 set1    SIO30.00h       ; Serial I/O shift register 30
ROM_:00D7                 callt   [word_64]
ROM_:00D8                 set1    byte_FE2A.00h
ROM_:00DA                 callt   [word_64]
ROM_:00DB                 set1    byte_FE3A.00h
ROM_:00DD                 callt   [word_64]
ROM_:00DE                 set1    byte_FE4A.00h
ROM_:00E0                 callt   [word_64]
ROM_:00E1                 set1    byte_FE5A.00h
ROM_:00E3                 callt   [word_64]
ROM_:00E4                 set1    byte_FE6A.00h
ROM_:00E6                 callt   [word_64]
ROM_:00E7                 set1    byte_FE7A.00h
ROM_:00E9                 callt   [word_64]
ROM_:00EA                 set1    CR00.00h        ; 16-bit timer capture/compare register 00
ROM_:00EA ; ---------------------------------------------------------------------------
ROM_:00EC                 .db  15h
ROM_:00ED                 .db  0Ah
ROM_:00EE                 .db  1Ah
```


# 80196 Processor

IDA is probably the most powerful disassembler available for the INTEL 80196 line of micro-processors. IDA disassemble the Intel 80196, 80196NP and its variations.

Assembler code

```asmatmel
INTMEM:007C                 db 0FFh ; ÿ
INTMEM:007D                 db 0FFh ; ÿ
INTMEM:007E                 db 0FFh ; ÿ
INTMEM:007F                 db 0FFh ; ÿ
INTMEM:0080 ; ---------------------------------------------------------------------------
INTMEM:0080                 skip    INTMEM_FF
INTMEM:0082                 clr     INTMEM_20
INTMEM:0084                 not     INTMEM_20
INTMEM:0086                 neg     INTMEM_20
INTMEM:0088                 xch     INTMEM_20, INTMEM_20
INTMEM:008B                 dec     INTMEM_20
INTMEM:008D                 ext     INTMEM_22
INTMEM:008F                 inc     INTMEM_20
INTMEM:0091                 shr     INTMEM_20, #8
INTMEM:0094                 shr     INTMEM_20, INTMEM_FF
INTMEM:0097                 shl     INTMEM_20, INTMEM_FF
INTMEM:009A                 shra    INTMEM_20, INTMEM_FF
INTMEM:009D                 xch     INTMEM_20, 55h[INTMEM_20]
INTMEM:00A1                 xch     INTMEM_20, 3030h[INTMEM_20]
INTMEM:00A6                 shrl    INTMEM_22, INTMEM_FF
INTMEM:00A9                 shll    INTMEM_22, INTMEM_FF
INTMEM:00AC                 shral   INTMEM_22, INTMEM_FF
INTMEM:00AF                 norml   INTMEM_22, INTMEM_FF
INTMEM:00B2                 clrb    INTMEM_FF
INTMEM:00B4                 notb    INTMEM_FF
INTMEM:00B6                 negb    INTMEM_FF
INTMEM:00B8                 xchb    INTMEM_FF, INTMEM_FF
INTMEM:00BB                 decb    INTMEM_FF
INTMEM:00BD                 extb    INTMEM_20
INTMEM:00BF                 incb    INTMEM_FF
INTMEM:00C1                 shrb    INTMEM_FF, INTMEM_FF
INTMEM:00C4                 shlb    INTMEM_FF, INTMEM_FF
INTMEM:00C7                 shrab   INTMEM_FF, INTMEM_FF
INTMEM:00CA                 xchb    INTMEM_FF, 55h[INTMEM_20]
INTMEM:00CE                 sjmp    INTMEM_D2
INTMEM:00CE ; ---------------------------------------------------------------------------
```


# 8051 Disassembler

Assembler code

```armasm
code:0000019C                 .byte    0
code:0000019D                 .byte 0xFF ; ÿ
code:0000019E                 .byte 0xF5 ; õ
code:0000019F                 .byte 0xFF ; ÿ
code:000001A0 ; ---------------------------------------------------------------------------
code:000001A0                 mov     RESERVED00FF, R0 ; RESERVED
code:000001A2                 mov     RESERVED00FF, R1 ; RESERVED
code:000001A4                 mov     RESERVED00FF, R2 ; RESERVED
code:000001A6                 mov     RESERVED00FF, R3 ; RESERVED
code:000001A8                 mov     RESERVED00FF, R4 ; RESERVED
code:000001AA                 mov     RESERVED00FF, R5 ; RESERVED
code:000001AC                 mov     RESERVED00FF, R6 ; RESERVED
code:000001AE                 mov     RESERVED00FF, R7 ; RESERVED
code:000001B0                 mov     RESERVED00FF, RAM_0 ; RESERVED
code:000001B3                 mov     RESERVED00FF, RESERVED00FF ; RESERVED
code:000001B6                 mov     RESERVED00FF, @R0 ; RESERVED
code:000001B8                 mov     RESERVED00FF, @R1 ; RESERVED
code:000001BA                 mov     RESERVED00FF, #0 ; RESERVED
code:000001BD                 mov     RESERVED00FF, #0xFF ; RESERVED
code:000001C0                 mov     @R0, #0
code:000001C2                 mov     @R0, #0xFF
code:000001C4                 mov     @R0, RAM_0
code:000001C6                 mov     @R0, RESERVED00FF ; RESERVED
code:000001C8                 mov     @R0, A
code:000001C9                 mov     @R1, #0
code:000001CB                 mov     @R1, #0xFF
code:000001CD                 mov     @R1, RAM_0
code:000001CF                 mov     @R1, RESERVED00FF ; RESERVED
code:000001D1                 mov     @R1, A
code:000001D2                 mov     C, RAM_20.0
code:000001D4                 mov     C, P5.7         ; Port 5
code:000001D6                 mov     RAM_20.0, C
code:000001D8                 mov     P5.7, C         ; Port 5
code:000001DA                 mov     DPTR, #0xFF
code:000001DD                 mov     DPTR, #0xFF00

```


# Analog Devices 218x.

Assembler code

```asm6502
ROM:0034 ; ---------------------------------------------------------------------------
ROM:0034
ROM:0034 loc_34:                                 ; CODE XREF: TIMER+CF↓j
ROM:0034                 ar = $37
ROM:0035                 dm(byte_1003F4F) = ar
ROM:0036                 jump loc_25C3
ROM:0037 ; ---------------------------------------------------------------------------
ROM:0037                 imask = $240
ROM:0038
ROM:0038 loc_38:                                 ; CODE XREF: TIMER+12↓j
ROM:0038                 ar = dm(byte_1003E33)
ROM:0039                 ar = ar - 1
ROM:003A                 if lt jump loc_38
ROM:003B                 imask = $250
ROM:003C
ROM:003C loc_3C:                                 ; CODE XREF: TIMER+16↓j
ROM:003C                 ar = dm(byte_1003E33)
ROM:003D                 ar = ar - 2
ROM:003E                 if lt jump loc_3C
ROM:003F                 imask = $269
ROM:0040
ROM:0040 loc_40:                                 ; CODE XREF: TIMER+1A↓j
ROM:0040                 ar = dm(byte_1003F12)
ROM:0041                 ar = ar + 0
ROM:0042                 if eq jump loc_40
ROM:0043                 jump loc_6E
ROM:0044 ; ---------------------------------------------------------------------------
ROM:0044
ROM:0044 loc_44:                                 ; CODE XREF: TIMER+2F↓j
ROM:0044                                         ; TIMER+38↓j ...
ROM:0044                 ena timer
ROM:0045                 ay0 = dm(byte_1002CD2)
ROM:0046                 ax0 = dm(byte_1002CD3)
ROM:0047                 ar = ay0 - ax0
ROM:0048                 if ge jump loc_4B

```


# Alpha Processor – NT COFF

Assembler code

```armasm
.text:0000000080900A90
.text:0000000080900A90 # =============== S U B R O U T I N E =======================================
.text:0000000080900A90
.text:0000000080900A90
.text:0000000080900A90 sub_80900A90:                           # CODE XREF: start+360↑p
.text:0000000080900A90                                         # start+3A4↑p ...
.text:0000000080900A90                 beq     $17, locret_80900B2C
.text:0000000080900A94                 subq    $17, 4, $20
.text:0000000080900A98                 ldq_u   $28, 0($18)
.text:0000000080900A9C                 addq    $17, $18, $27
.text:0000000080900AA0                 andnot  $16, 3, $19
.text:0000000080900AA4                 bge     $20, loc_80900B30
.text:0000000080900AA8                 ldq_u   $27, -1($27)
.text:0000000080900AAC                 and     $16, 3, $16
.text:0000000080900AB0                 ldl     $17, 0($19)
.text:0000000080900AB4                 addq    $20, $16, $20
.text:0000000080900AB8                 extql   $28, $18, $28
.text:0000000080900ABC                 bgt     $20, loc_80900AF0
.text:0000000080900AC0                 extqh   $27, $18, $27
.text:0000000080900AC4                 addq    $20, 4, $20
.text:0000000080900AC8                 or      $27, $28, $28
.text:0000000080900ACC                 insql   $28, $16, $28
.text:0000000080900AD0                 mskql   $17, $16, $18
.text:0000000080900AD4                 mskql   $28, $20, $28
.text:0000000080900AD8                 mskqh   $17, $20, $17
.text:0000000080900ADC                 or      $18, $28, $28
.text:0000000080900AE0                 or      $17, $28, $28
.text:0000000080900AE4                 stl     $28, 0($19)
.text:0000000080900AE8                 addq    $19, $20, $16
.text:0000000080900AEC                 ret     $31, ($26), 4
.text:0000000080900AF0 # ---------------------------------------------------------------------------
.text:0000000080900AF0
.text:0000000080900AF0 loc_80900AF0:                           # CODE XREF: sub_80900A90+2C↑j
.text:0000000080900AF0                 extqh   $27, $18, $27
.text:0000000080900AF4                 ldl     $18, 4($19)
```


# Alpha Processor – Unix ELF

Assembler code

```armasm

.text:0000000120001F30                 br      loc_120001FD0
.text:0000000120001F34 # ---------------------------------------------------------------------------
.text:0000000120001F34
.text:0000000120001F34 loc_120001F34:                          # CODE XREF: main+274↑j
.text:0000000120001F34                 addq    $sp, 0xB8, $1 # '¸'
.text:0000000120001F38                 ldq     $16, 0x220+stream($sp) # stream
.text:0000000120001F3C                 ldq     $17, ((off_120103268 - 0x12010B130) and 0xFFFF)($gp)# off_120103268 # format
.text:0000000120001F40                 mov     $1, $18
.text:0000000120001F44                 ldq     $27, ((fscanf_ptr - 0x12010B130) and 0xFFFF)($gp)# fscanf_ptr
.text:0000000120001F48                 jsr     $26, ($27), 0x1620# fscanf
.text:0000000120001F4C                 ldah    $gp, 0x11($26)
.text:0000000120001F50                 lda     $gp, -0x6E1C($gp)
.text:0000000120001F54                 # gp = 000000012010B130
.text:0000000120001F54                 mov     $0, $1
.text:0000000120001F58                 subq    $1, 1, $2
.text:0000000120001F5C                 bne     $2, loc_120001FAC
.text:0000000120001F60                 addq    $sp, 0xB8, $1 # '¸'
.text:0000000120001F64                 mov     $1, $16         # s1
.text:0000000120001F68                 ldq     $17, ((s2 - 0x12010B130) and 0xFFFF)($gp)# s2 # s2
.text:0000000120001F6C                 ldq     $27, ((strcmp_ptr - 0x12010B130) and 0xFFFF)($gp)# strcmp_ptr
.text:0000000120001F70                 jsr     $26, ($27), 0x16DC# strcmp
.text:0000000120001F74                 ldah    $gp, 0x11($26)
.text:0000000120001F78                 lda     $gp, -0x6E44($gp)
.text:0000000120001F7C                 # gp = 000000012010B130
.text:0000000120001F7C                 mov     $0, $1
.text:0000000120001F80                 addq    $1, 0, $2
.text:0000000120001F84                 bne     $2, loc_120001F94
.text:0000000120001F88                 ldq     $1, ((clockport_ptr - 0x12010B130) and 0xFFFF)($gp)# clockport_ptr
.text:0000000120001F8C                 lda     $2, 0x170($31)
.text:0000000120001F90                 stl     $2, 0($1)
.text:0000000120001F94
.text:0000000120001F94 loc_120001F94:                          # CODE XREF: main+2CC↑j
.text:0000000120001F94                 ldq     $16, 0x220+stream($sp) # stream
.text:0000000120001F98                 ldq     $27, ((fclose_ptr - 0x12010B130) and 0xFFFF)($gp)# fclose_ptr
.text:0000000120001F9C                 jsr     $26, ($27), 0x1698# fclose

```


# Android ARM Executables (.elf)

Assembler code

```armasm
.text:00008270
.text:00008270 ; =============== S U B R O U T I N E =======================================
.text:00008270
.text:00008270 ; Attributes: library function noreturn bp-based frame
.text:00008270
.text:00008270                 EXPORT _start
.text:00008270 _start                                  ; DATA XREF: LOAD:00008018↑o
.text:00008270
.text:00008270 structors       = -0x14
.text:00008270 var_8           = -8
.text:00008270
.text:00008270                 LDR     R12, =(_GLOBAL_OFFSET_TABLE_ - 0x828C)
.text:00008274                 PUSH    {R11,LR}
.text:00008278                 LDR     R3, =(__PREINIT_ARRAY___ptr - 0x9FEC)
.text:0000827C                 ADD     R11, SP, #4
.text:00008280                 SUB     SP, SP, #0x10
.text:00008284                 ADD     R12, PC, R12    ; _GLOBAL_OFFSET_TABLE_
.text:00008288                 LDR     R3, [R12,R3]    ; __PREINIT_ARRAY__
.text:0000828C                 STR     R3, [R11,#structors]
.text:00008290                 LDR     R3, =(__INIT_ARRAY___ptr - 0x9FEC)
.text:00008294                 ADD     R0, R11, #4     ; raw_args
.text:00008298                 LDR     R3, [R12,R3]    ; __INIT_ARRAY__
.text:0000829C                 STR     R3, [R11,#structors.init_array]
.text:000082A0                 LDR     R3, =(__FINI_ARRAY___ptr - 0x9FEC)
.text:000082A4                 MOV     R1, #0          ; onexit
.text:000082A8                 LDR     R3, [R12,R3]    ; __FINI_ARRAY__
.text:000082AC                 STR     R3, [R11,#structors.fini_array]
.text:000082B0                 LDR     R3, =(__CTOR_LIST___ptr - 0x9FEC)
.text:000082B4                 LDR     R3, [R12,R3]    ; __CTOR_LIST__
.text:000082B8                 STR     R3, [R11,#var_8]
.text:000082BC                 LDR     R3, =(main_ptr - 0x9FEC)
.text:000082C0                 LDR     R2, [R12,R3]    ; main ; slingshot
.text:000082C4                 SUB     R3, R11, #-structors ; structors
.text:000082C8                 BL      __libc_init
.text:000082CC ; ---------------------------------------------------------------------------
.text:000082CC                 SUB     SP, R11, #4
```


# ARC Processor

Assembler code

```armasm
.text:0000109C
.text:0000109C # =============== S U B R O U T I N E =======================================
.text:0000109C
.text:0000109C # Attributes: bp-based frame
.text:0000109C
.text:0000109C                 .global ArcMain
.text:0000109C ArcMain:                                # CODE XREF: main+C↑p
.text:0000109C
.text:0000109C arg_0           =  0
.text:0000109C arg_4           =  4
.text:0000109C
.text:0000109C                 st      blink, [sp,arg_4]
.text:000010A0                 st      fp, [sp,arg_0]
.text:000010A4                 mov     fp, sp
.text:000010A8                 sub     sp, sp, 0x10
.text:000010AC                 mov     r0, state_ls
.text:000010B4                 bl.d    Core_LocalClear
.text:000010B8                 mov     r1, 0x18
.text:000010BC                 mov     r2, _stack_start
.text:000010C4                 mov     r0, 0x12345678
.text:000010CC                 sub     r1, r1, r1
.text:000010D0                 mov     lp_count, 0x20 # ' '
.text:000010D4                 lp      loc_10E4
.text:000010D8                 add     r12, r2, r1
.text:000010DC                 st      r0, [r12]
.text:000010E0                 add     r1, r1, 4
.text:000010E4
.text:000010E4 loc_10E4:                               # CODE XREF: ArcMain+38↑j
.text:000010E4                 mov     r0, 0xFFFFFFFF
.text:000010E8                 sr      r0, [0x23] # '#'
.text:000010EC                 sr      0, COUNT # '!' # Enhanced Timer 0  Timer 0 Count value
.text:000010F4                 sr      2, CONTROL # '"' # Enhanced Timer 0  Timer 0 Control value
.text:000010FC                 bl      Platform_Initialize
.text:00001100                 bl      Core_Loop
.text:00001104                 ld      blink, [fp,arg_4]
```


# ARM Processor EPOC App

Assembler code

```
.text:8012235E                 MOVS    R4, R5
.text:80122360                 ADDS    R4, #0x4C ; 'L'
.text:80122362
.text:80122362 loc_80122362                            ; CODE XREF: sub_8012234E+C4↓j
.text:80122362                 LDR     R4, [R4,#4]
.text:80122364                 CMP     R4, #0
.text:80122366                 BNE     loc_8012236C
.text:80122368                 LDR     R4, [R5,#0x3C]
.text:8012236A                 B       loc_801223FA
.text:8012236C ; ---------------------------------------------------------------------------
.text:8012236C
.text:8012236C loc_8012236C                            ; CODE XREF: sub_8012234E+18↑j
.text:8012236C                 LDR     R0, [R5,#0x3C]
.text:8012236E                 CMP     R0, R4
.text:80122370                 BLS     loc_8012237C
.text:80122372                 LDR     R0, [R4,#4]
.text:80122374                 CMP     R0, #0
.text:80122376                 BEQ     loc_8012238E
.text:80122378                 CMP     R0, R4
.text:8012237A                 BHI     loc_8012238E
.text:8012237C
.text:8012237C loc_8012237C                            ; CODE XREF: sub_8012234E+22↑j
.text:8012237C                 LDR     R0, [SP,#0x28+var_24]
.text:8012237E                 BLX     arm_euser_eka2_1417
.text:80122382                 MOVS    R2, R4
.text:80122384                 MOVS    R1, #4
.text:80122386                 LDR     R0, [SP,#0x28+var_18]
.text:80122388                 LDR     R7, [SP,#0x28+var_1C]
.text:8012238A                 MOVS    R3, #0
.text:8012238C                 B       loc_801223F2
.text:8012238E ; ---------------------------------------------------------------------------
.text:8012238E
.text:8012238E loc_8012238E                            ; CODE XREF: sub_8012234E+28↑j
.text:8012238E                                         ; sub_8012234E+2C↑j
.text:8012238E                 LDR     R7, [R4]
```


# ARM Processor EPOC PE File

Assembler code

```
.text:100097D8                 ADD     R4, R4, #0x38 ; '8'
.text:100097DC                 MOV     R2, #0x18
.text:100097E0                 MOV     R1, R4
.text:100097E4                 MOV     R0, R5
.text:100097E8                 BL      Copy__10TBufCBase8RC10TBufCBase8i ; TBufCBase8::Copy(TBufCBase8 const &,int)
.text:100097EC                 LDR     R3, [R4,#0x1C]
.text:100097F0                 STR     R3, [R5,#0x1C]
.text:100097F4                 LDR     R3, [R4,#0x20]
.text:100097F8                 STR     R3, [R5,#0x20]
.text:100097FC                 LDR     R3, [R4,#0x24]
.text:10009800                 STR     R3, [R5,#0x24]
.text:10009804                 ADD     LR, R7, #0x1540
.text:10009808                 ADD     LR, LR, #0x30 ; '0'
.text:1000980C                 ADD     R12, SP, #0x50+var_C
.text:10009810                 LDM     R12!, {R0-R3}
.text:10009814                 STM     LR!, {R0-R3}
.text:10009818                 MOV     R1, #4
.text:1000981C                 ADD     R0, R7, #0x18
.text:10009820                 BL      Connect__3RFsi  ; RFs::Connect(int)
.text:10009824                 BL      LeaveIfError__4Useri ; User::LeaveIfError(int)
.text:10009828                 BL      Static__7CCoeEnv ; CCoeEnv::Static(void)
.text:1000982C                 MOV     R1, R5
.text:10009830                 BL      CreateScreenFontL__7CCoeEnvRC9TFontSpec ; CCoeEnv::CreateScreenFontL(TFontSpec const &)
.text:10009834                 LDR     R3, =0x158C
.text:10009838                 STR     R0, [R7,R3]
.text:1000983C                 MOV     R1, #0
.text:10009840                 MOV     R0, #0x18
.text:10009844                 BL      __nw__5CBaseUi6TLeave ; CBase::__nw(uint,TLeave)
.text:10009848                 SUBS    R4, R0, #0
.text:1000984C                 BEQ     loc_1000986C
.text:10009850                 MOV     R3, #0xA
.text:10009854                 MOV     R2, #0x10
.text:10009858                 LDR     R1, =NewL__8CBufFlati ; CBufFlat::NewL(int)
.text:1000985C                 MOV     R0, R4
.text:10009860                 BL      __13CArrayFixBasePFi_P8CBufBaseii
```


# ARM Processor EPOC ROMFile

Assembler code

```
.text:50292274                 B       sub_5029254C
.text:50292274 ; ---------------------------------------------------------------------------
.text:50292278 off_50292278    DCD start               ; DATA XREF: start+3C↑r
.text:5029227C ; ---------------------------------------------------------------------------
.text:5029227C                 MOV     R1, R0
.text:50292280                 LDR     R0, =start
.text:50292284                 B       sub_50292558
.text:50292284 ; ---------------------------------------------------------------------------
.text:50292288 off_50292288    DCD start               ; DATA XREF: start+4C↑r
.text:5029228C ; ---------------------------------------------------------------------------
.text:5029228C                 LDR     R0, =start
.text:50292290                 B       sub_50292564
.text:50292290 ; ---------------------------------------------------------------------------
.text:50292294 off_50292294    DCD start               ; DATA XREF: start+58↑r
.text:50292298 ; ---------------------------------------------------------------------------
.text:50292298                 LDR     R0, =start
.text:5029229C                 B       sub_50292570
.text:5029229C ; ---------------------------------------------------------------------------
.text:502922A0 off_502922A0    DCD start               ; DATA XREF: start+64↑r
.text:502922A4 ; ---------------------------------------------------------------------------
.text:502922A4                 LDR     R0, =start
.text:502922A8                 B       sub_5029257C
.text:502922A8 ; ---------------------------------------------------------------------------
.text:502922AC off_502922AC    DCD start               ; DATA XREF: start+70↑r
.text:502922B0 ; ---------------------------------------------------------------------------
.text:502922B0                 LDR     R0, =start
.text:502922B4                 B       sub_50292588
.text:502922B4 ; ---------------------------------------------------------------------------
.text:502922B8 off_502922B8    DCD start               ; DATA XREF: start+7C↑r
.text:502922BC ; ---------------------------------------------------------------------------
.text:502922BC                 MOV     R1, R0
.text:502922C0                 LDR     R0, =start
.text:502922C4                 B       sub_50292594
.text:502922C4 ; ---------------------------------------------------------------------------
.text:502922C8 off_502922C8    DCD start               ; DATA XREF: start+8C↑r
```


# EPOC SIS File Handler

Assembler code

```
.text:100001CC                 BL      Open__5RFileR3RFsRC6TDesC8Ui ; RFile::Open(RFs &,TDesC8 const &,uint)
.text:100001D0                 CMP     R0, #0
.text:100001D4                 BEQ     loc_100001E8
.text:100001D8                 MOV     R0, R10
.text:100001DC                 BL      Close__11RHandleBase ; RHandleBase::Close(void)
.text:100001E0
.text:100001E0 loc_100001E0                            ; CODE XREF: sub_1000014C+6C↑j
.text:100001E0                                         ; sub_1000014C+F8↓j
.text:100001E0                 MOV     R0, #0xFFFFFFFF
.text:100001E4                 B       loc_100007C4
.text:100001E8 ; ---------------------------------------------------------------------------
.text:100001E8
.text:100001E8 loc_100001E8                            ; CODE XREF: sub_1000014C+88↑j
.text:100001E8                 ADD     R5, R10, #0xC
.text:100001EC                 ADD     R1, R10, #0x124
.text:100001F0                 MOV     R0, R5
.text:100001F4                 BL      Modified__C5RFileR5TTime ; RFile::Modified(TTime &)
.text:100001F8                 MOV     R3, #0x18
.text:100001FC                 STR     R3, [SP,#0x94+var_24]
.text:10000200                 ADD     R2, SP, #0x94+var_24
.text:10000204                 MOV     R1, #1
.text:10000208                 MOV     R0, R5
.text:1000020C                 BL      Seek__C5RFile5TSeekRi ; RFile::Seek(TSeek,int &)
.text:10000210                 ADD     R4, SP, #0x94+var_30
.text:10000214                 MOV     R3, #4
.text:10000218                 MOV     R2, R3
.text:1000021C                 ADD     R1, R10, #0x1C
.text:10000220                 MOV     R0, R4
.text:10000224                 BL      __5TPtr8PUcii
.text:10000228                 MOV     R1, R4
.text:1000022C                 MOV     R0, R5
.text:10000230                 BL      Read__C5RFileR5TDes8 ; RFile::Read(TDes8 &)
.text:10000234                 LDR     R0, [R10,#0x1C]
.text:10000238                 BL      __builtin_vec_new
.text:1000023C                 STR     R0, [R10,#0x20]
```


# ARM Processor iOS (iPhone): Unlock

Assembler code

```
__text:00002914                 STR     R3, [SP,#0x14+var_8]
__text:00002918                 MOV     R3, #0
__text:0000291C                 STRB    R3, [SP,#0x14+var_1]
__text:00002920                 MOV     R0, #0xE
__text:00002924                 BL      __keymgr_get_and_lock_processwide_ptr
__text:00002928                 MOV     R3, R0
__text:0000292C                 STR     R3, [SP,#0x14+var_C]
__text:00002930                 LDR     R3, [SP,#0x14+var_C]
__text:00002934                 CMP     R3, #0
__text:00002938                 BEQ     loc_296C
__text:0000293C                 LDR     R3, [SP,#0x14+var_C]
__text:00002940                 LDRB    R3, [R3,#2]
__text:00002944                 STRB    R3, [SP,#0x14+var_1]
__text:00002948                 LDR     R2, [SP,#0x14+var_C]
__text:0000294C                 MOV     R3, #1
__text:00002950                 STRB    R3, [R2,#2]
__text:00002954                 LDR     R3, [SP,#0x14+var_C]
__text:00002958                 LDR     R3, [R3,#4]
__text:0000295C                 STR     R3, [SP,#0x14+var_8]
__text:00002960                 MOV     R0, #0xE
__text:00002964                 LDR     R1, [SP,#0x14+var_C]
__text:00002968                 BL      __keymgr_set_and_unlock_processwide_ptr
__text:0000296C
__text:0000296C loc_296C                                ; CODE XREF: sub_28F8+40↑j
__text:0000296C                 LDR     R3, [SP,#0x14+var_10]
__text:00002970                 LDR     R3, [R3,#4]
__text:00002974                 CMP     R3, #0
__text:00002978                 BEQ     loc_2998
__text:0000297C                 LDR     R3, [SP,#0x14+var_10]
__text:00002980                 LDR     R2, [R3]
__text:00002984                 LDR     R3, [SP,#0x14+var_10]
__text:00002988                 LDR     R3, [R3,#8]
__text:0000298C                 MOV     R0, R3
__text:00002990                 BLX     R2
__text:00002994                 B       loc_29A4
```


# ARM Processor iOS (iPhone): Objective-C metadata

Assembler code

```
__text:0000309C
__text:0000309C ; =============== S U B R O U T I N E =======================================
__text:0000309C
__text:0000309C ; Attributes: bp-based frame
__text:0000309C
__text:0000309C ; void __cdecl -[SMSApplication showNextMessage](SMSApplication *self, SEL)
__text:0000309C __SMSApplication_showNextMessage_       ; DATA XREF: __objc_const:000101B8↓o
__text:0000309C                 PUSH            {R4-R7,LR}
__text:0000309E                 ADD             R7, SP, #0xC
__text:000030A0                 PUSH.W          {R8}
__text:000030A4                 SUB             SP, SP, #8
__text:000030A6                 MOV             R4, R0
__text:000030A8                 MOV             R0, #(selRef_sharedConversationList - 0x30BC)
__text:000030B0                 MOV             R2, #(classRef_CKConversationList - 0x30BE)
__text:000030B8                 ADD             R0, PC  ; selRef_sharedConversationList
__text:000030BA                 ADD             R2, PC  ; classRef_CKConversationList
__text:000030BC                 LDR             R1, [R0] ; "sharedConversationList"
__text:000030BE                 LDR             R0, [R2] ; _OBJC_CLASS_$_CKConversationList ; id
__text:000030C0                 BLX             _objc_msgSend
__text:000030C4                 MOV             R1, #(selRef_activeConversations - 0x30D0)
__text:000030CC                 ADD             R1, PC  ; selRef_activeConversations
__text:000030CE                 LDR             R1, [R1] ; "activeConversations"
__text:000030D0                 BLX             _objc_msgSend
__text:000030D4                 MOV             R5, #(dword_11F80 - 0x30E8)
__text:000030DC                 MOV             R1, #(selRef_objectAtIndex_ - 0x30EA)
__text:000030E4                 ADD             R5, PC  ; dword_11F80
__text:000030E6                 ADD             R1, PC  ; selRef_objectAtIndex_
__text:000030E8                 LDR             R2, [R5]
__text:000030EA                 LDR             R1, [R1] ; "objectAtIndex:"
__text:000030EC                 BLX             _objc_msgSend
__text:000030F0                 MOV             R6, R0
__text:000030F2                 MOV             R0, #(off_1011C - 0x30FE)
__text:000030FA                 ADD             R0, PC  ; off_1011C
__text:000030FC                 LDR.W           R8, [R0] ; CKMessagesController *_messagesController;
__text:00003100                 MOV             R0, #(selRef_currentConversation - 0x310C)
```


# ARM Processor iOS (iPhone): Objective-C Instance variables

Assembler code

```
__objc_const:000106C0                 __objc2_meth <sel__clearFailureBadge, aV804, \ ; -[SMSApplication _clearFailureBadge] ...
__objc_const:000106C0                               __SMSApplication__clearFailureBadge_+1>
__objc_const:000106CC                 __objc2_meth <sel__mediaDidFinishSaving, aV804, \ ; -[SMSApplication _mediaDidFinishSaving] ...
__objc_const:000106CC                               __SMSApplication__mediaDidFinishSaving_+1>
__objc_const:000106D8                 __objc2_meth <sel__mediaDidStartSaving, aV804, \ ; -[SMSApplication _mediaDidStartSaving] ...
__objc_const:000106D8                               __SMSApplication__mediaDidStartSaving_+1>
__objc_const:000106E4 _OBJC_INSTANCE_VARIABLES_SMSApplication __objc2_ivar_list <0x14, 0xF>
__objc_const:000106E4                                         ; DATA XREF: __objc_const:SMSApplication_$classData↑o
__objc_const:000106EC                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._waitToSendFinishLaunching, \ ; char _waitToSendFinishLaunching;
__objc_const:000106EC                               aWaittosendfini, aC, 0, 1>
__objc_const:00010700                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._isLocked, aIslocked_0, aC, \ ; char _isLocked;
__objc_const:00010700                               0, 1>
__objc_const:00010714                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._isSuspended, aIssuspended, \ ; char _isSuspended;
__objc_const:00010714                               aC, 0, 1>
__objc_const:00010728                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._hasEmail, aHasemail, aC, 0,\ ; char _hasEmail;
__objc_const:00010728                               1>
__objc_const:0001073C                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._window, aWindow_0, \ ; UIWindow *_window;
__objc_const:0001073C                               aUiwindow, 2, 4>
__objc_const:00010750                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._messagesController, \ ; CKMessagesController *_messagesController;
__objc_const:00010750                               aMessagescontro, aCkmessagescont_7, 2, 4>
__objc_const:00010764                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._smsService, aSmsservice, \ ; CKService *_smsService;
__objc_const:00010764                               aCkservice, 2, 4>
__objc_const:00010778                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._madridService, \ ; CKService *_madridService;
__objc_const:00010778                               aMadridservice, aCkservice, 2, 4>
__objc_const:0001078C                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._delaySuspendCount, \ ; int _delaySuspendCount;
__objc_const:0001078C                               aDelaysuspendco, aI, 2, 4>
__objc_const:000107A0                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._backgroundTask, \ ; unsigned int _backgroundTask;
__objc_const:000107A0                               aBackgroundtask, aI_0, 2, 4>
__objc_const:000107B4                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._madridRegistrationController,\ ; CNFRegWizardController *_madridRegistrationController;
__objc_const:000107B4                               aMadridregistra_2, aCnfregwizardco, 2, 4>
__objc_const:000107C8                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._defaultPng, aDefaultpng_0, \ ; NSString *_defaultPng;
__objc_const:000107C8                               aNsstring, 2, 4>
__objc_const:000107DC                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._suspendTimeStatusBarStyle, \ ; int _suspendTimeStatusBarStyle;
__objc_const:000107DC                               aSuspendtimesta, aI, 2, 4>
__objc_const:000107F0                 __objc2_ivar <_OBJC_IVAR_$_SMSApplication._deferredLoadURL, \ ; NSURL *_deferredLoadURL;
__objc_const:000107F0                               aDeferredloadur_0, aNsurl, 2, 4>
```




---

[Next Page](https://docs.hex-rays.com/llms-full.txt/1)

