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

Command line switches

IDA recognizes the following command line switches:

SwitchEffect
-adisable auto analysis. (-a- enables it)
-Aautonomous 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)
-Bbatch mode. IDA will generate .IDB and .ASM files automatically
-cdisassemble a new file (delete the old database)
-C####set compiler in format name:abi
-ddirectiveA configuration directive which must be processed at the first pass. Example: -dVPAGESIZE=8192
-DdirectiveA configuration directive which must be processed at the second pass.
-fdisable FPP instructions (IBM PC only)
-hhelp 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
-Mdisable mouse (text only)
-O####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
-P+compress database (create zipped idb)
-Ppack 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
-Rload MS Windows exe file resources
-S###Execute a script file 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
-tcreate an empty database.
-W###specify MS Windows directory
-xdo not create segmentation (used in pair with Dump database command) this switch affects EXE and COM format files only.
-zturn on debugging
-?this screen (works for the text version)
?this screen (works for the text version)
-hthis screen (works for the text version)
-Hthis screen (works for the text version)
--helpthis 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](1572.md)
00040000 source-level debugger
00080000 accessibility
00100000 network
00200000 full stack analysis (simplex method)
00400000 handling of debug info (e.g. pdb, dwarf)
00800000 lumin

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 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

NOTE: The -S switch is not available in the IDA Home edition.