## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# File menu actions for Common

Below is an overview of all actions that can be accessed from this menu.

UI Action Name | Action Name | Description
--- | --- | ---
New instance | `NewInstance` | Open a new IDA instance
Open… | `LoadNewFile` | Load a new file or database
Load file | `` |
Reload the input file | `ReloadFile` | Reload the input file. More…
Additional binary file… | `LoadFile` | Load additional binary file. More…
IDS/IDT file… | `LoadIdsFile` | Load a symbol file (IDS). More…
PDB file… | `LoadPdbFile` | Load a debug information file (PDB). More…
DBG file… | `LoadDbgFile` | Load a debug information file (DBG). More…
TDS file… | `LoadTdsFile` | Load a debug information file (TDS). More…
FLIRT signature file… | `LoadSigFile` | Load a FLIRT signature file. More…
Parse C header file… | `LoadHeaderFile` | This command allows you to apply type declarations from a C header file to the program. More…
Produce file | `` |
Create MAP file… | `ProduceMap` | Create a map information file. More…
Create ASM file… | `ProduceAsm` | Create an assembler file. More…
Create INC file… | `ProduceInc` | Create an include file. More…
Create LST file… | `ProduceLst` | Create a listing file. More…
Create EXE file… | `ProduceExe` | Create an executable file. More…
Create DIF file… | `ProduceDiff` | Create a difference file. More…
Create C file… | `hx:CreateCFile` | Create C file
Create HTML file… | `ProduceHtml` | Create a HTML file. More…
Create SIG file… | `makesig:create_signature` | Create SIG file
Create flow chart GDL… | `ProduceFuncGdl` | Create flow chart GDL. More…
Create call graph GDL… | `ProduceCallGdl` | Create call graph GDL. More…
Create C header file… | `ProduceHeader` | Creates a header file from local types. More…
Dump database to IDC file… | `DumpDatabase` | Dump database to IDC file. This command saves current IDA database into a text file. More…
Dump typeinfo to IDC file… | `DumpTypes` | Dump type information to IDC file. This command saves information about the user-defined types from the IDA database into a text file. More…
Script file… | `Execute` | Execute a script file
Script command… | `ExecuteLine` | Execute a script command
Save | `SaveBase` | Save the database
Save as… | `SaveBaseAs` | Save the database as…
Take database snapshot… | `SaveBaseSnap` | Take database snapshot. More…
Close | `CloseBase` | Close
Quick start | `QuickStart` | Display the quick start window
Exit | `QuitIDA` | Save everything and exit IDA

## Reload the input file

Reload the input file. This command reloads the same input file into the database. IDA tries to retain as much information as possible in the database. All the names, comments, segmentation information and similar will be retained. Only the values of individual bytes will be changed. This command works for some input file types only: if the file was loaded into the database with special settings, this command may fail. In this case, use Dump database to IDC file command and reload the file manually.

## Additional binary file…

Load additional binary file. The new file is added to the current database and all existing information is retained. The file content will appear as unexplored bytes in the program. This command only allows you to load binary files.

## IDS/IDT file…

Load a symbol file (IDS). An IDS file contains information about well-known functions (such as functions from MS Windows API), namely:

- their names
- their ordinal number in the DLL
- an eventual informative comment
- the number of parameters passed on the stack
- the number of parameters purged when returning IDS files are automatically loaded if they are found in the IDS directory. This command allows you to load an IDS file from any directory, even after the main file has been loaded into the database.

## PDB file…

Load a debug information file (PDB). If the program being disassembled has a companion PDB file, then this command may be used to load information from the PDB file into the database. By default IDA uses in-house code to parse and load PDB files. However, our code can not parse old v2.0 PDB files. For them, IDA can fall back to using Microsoft DLLs (the default is “do not fall back”). Please read more in cfg/pdb.cfg. Command line switch `-Opdb:option1:option2` overrides for ida session the value in cfg/pdb.cfg.

## DBG file…

Load a debug information file (DBG). This command loads a DBG file. If the program being disassembled has a companion DBG file, then this command may be used to load information from a DBG file into the database. IDA loads DBG files automatically if it can find them in the directory with the input file. The built-in debug information loader cannot load NB10 format files and PDB files. To load those files, please use a special plugin, PDB.DLL, which can be run manually using Edit → Plugins submenu. This plugin uses MS Windows DLLs to load the debug information and therefore has the following limitations:

- it works only under MS Windows
- it will load only PDBs compatible with the currently installed IMAGEHLP.DLL

## TDS file…

Load a debug information file (TDS). If the program being disassembled has a companion TDS file, this command may be used to load information from the TDS file into the database. The TDS file must be placed in the same directory together with the input file. The `LoadTdsFile` command launches a special plugin TDS.DLL, which can be run manually using Edit → Plugins submenu.

## FLIRT signature file…

Load a FLIRT signature file. This command allows you to apply an additional signature file to the program. A signature file contains patterns of standard runtime functions. With their help, IDA is able to recognize the standard functions and names them accordingly. IDA attempts to detect the necessary signature files automatically but unfortunately, this is not always possible. This command adds the specified signature file into the planned signature files queue. Signature files reside in the subdirectories of the SIG directory. Each processor has its own subdirectory. The name of the subdirectory is equivalent 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. Note: the IDASGN environment variable can be used to specify the location of the signatures directory.

There is another way to load a signature file: you may insert/delete signature files in the following way:

- open the signatures window
- press `Ins` to insert a signature file to the queue
- press `Del` to delete a signature file from the queue

This is a preferred way of applying signatures because useful information, such as the number of identified functions is displayed in the signature window.

{% hint style=“info” %} FLIRT works only for the processors with normal byte size. The byte size must be equal to 8 (processors with wide bytes like AVR or DSP56K are not supported) {% endhint %}

## Parse C header file…

This command allows you to apply type declarations from a C header file to the program. IDA reads and parses the specified header file as a C compiler does. In other words, it mimics the front-end of a C compiler with some restrictions:

- Only type declarations are allowed. The function definitions in the input file are skipped.
- Not all C++ header files are not supported, only simple classes can be parsed.
- The compiler specific predefined macros are not defined, you have to define them manually in the header file.

Don’t forget to specify the compiler and memory model in the compiler setup dialog box (Options → Compiler…) before loading a header file. All type declarations found in the input file are stored in the current database in the form of a type library. These type declarations can be used to define new structure and enumeration definitions.

In the case of an error in the input file, the error messages appear in the message window. In any case, the function declarations that are already parsed are not deleted from the database. IDA stops parsing the input file when 20 errors occur. IDA 7.7 introduced an alternative header file parser based on libclang.

## Create MAP file…

Create a map information file. Please enter a file name for the map. IDA will write the following information about this file:

- current segmentation
- list of names sorted by values

You may disable the generation of the segmentation information. You may also enable or disable dummy names (Options → Name representation…) in the output file. You can use this map file for your information, and also for debugging (for example, Periscope from Periscope Company or Borland’s Turbo Debugger can read this file).

## Create ASM file…

Create an assembler file. Please enter a file name for the assembler text file. IDA will write the disassembled text to this file. If you have selected a range on the screen using the Begin selection command (action `Anchor`), IDA will write only the selected range (from the current address to the anchor). If some I/O problem (e.g., disk full) occurs during writing to the file, IDA will stop and a partial file will be created.

## Create INC file…

Create an include file. Please enter a file name for the assembler include file. IDA will write the information about the defined types (structures and enums) to this file. If some I/O problem (e.g. disk full) occurs during writing to the file, IDA will stop and a partial file will be created.

## Create LST file…

Create a listing file. Enter a file name for the assembler listing file. IDA will write the disassembled text to this file. If you’ve selected a range on the screen using the Begin selection command (action `Anchor`), IDA will write only the selected range (from the current address to the anchor). If some I/O problem (e.g. disk full) occurs during writing to the file, IDA will stop and a partial file will be created.

## Create EXE file…

Create an executable file. Enter a file name for the new executable file. Usually this command is used after patching (see actions `PatchByte`, `PatchWord`) to obtain a patched version of the 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

For other file formats please create a difference file (the Create DIFF file command; action `ProduceDiff`).

{% hint style=“info” %} Only Change byte… and Change word… commands (see actions `PatchByte`, `PatchWord`) affect the executable file contents, other commands (including the Manual… command) will not affect the content of the disassembled file. {% endhint %}

EXE files: Output files will have the same EXE-header and relocation table as the input file. IDA will fill unused ranges of the EXE file (e.g. between relocation table and loadable pages) with zeroes.

## Create DIF file…

Create a difference file. This command will prompt you for a filename and then will create a plain text difference file of the following format:

     comment
     filename
     offset: oldval  newval

## Create HTML file…

Create a HTML file. Please enter a file name for the HTML file. IDA will write the disassembled text to this file. If you’ve selected a range on the screen using the Begin selection command (action `Anchor`), IDA will write only the selected range (from the current address to the anchor). If some I/O problem (e.g. disk full) occurs during writing to the file, IDA will stop and a partial file will be created. This command is available only in the graphical version of IDA.

## Create flow chart GDL…

Create flow chart GDL. This command creates a GDL (graph description file) with the flow chart of the current function. If there is an active selection, its flow chart will be generated. IDA will ask for the output file name. Regardless of the specified extension, the .GDL extension will be used.

## Create call graph GDL…

Create call graph GDL. This command creates a GDL (graph description file) with the graph of the function calls. IDA will ask for the output file name. Regardless of the specified extension, the .GDL extension will be used.

## Create C header file…

Creates a header file from local types. This command saves all definitions in the local types window into a C header file.

## Dump database to IDC file…

Dump database to IDC file. This command saves current IDA database into a text file.

You can use it as a safety command:

- to protect your work from disasters
- to migrate information into new database formats of IDA.

This command is used when you want to switch to a new version of IDA. Usually each new version of IDA has its own database format. To create a new format database, you need:

1. to issue the ‘Dump…’ command for the old database (using old version of IDA). You will get an IDC file containing all information from your old database.
2. to reload your database using new IDA with switch -x.
3. to compile and execute the IDC file with command ‘Execute IDC file’ (usually F2)

Please note that this command does not save everything to text file. Any information about the local variables will be lost!

## Dump typeinfo to IDC file…

Dump type information to IDC file. This command saves information about the user-defined types from the IDA database into a text file.

Information about enums, structure types and other user-defined types is saved in a text form as an IDC program.

You can use this command to migrate the type definitions from one database to another.

## Take database snapshot…

Take database snapshot. The snapshot can be later restored from the database snapshot manager.

{% hint style=“info” %} Snapshots work only with regular databases. Unpacked databases do not support them. {% endhint %}