Lesser known tricks for IDA configuration

This post is mainly for reference but it can be useful.

Being tired of copy/pasting my IDA config and plugins after each update, I decided to check what I could do to centralize my config. As I’m running Linux, I expect everything to be configurable from ~/.idapro .

ida.cfg

You can override configuration options for IDA in ~/.idapro/idauser.cfg . For example, the classic :

#define DEMNAM_CMNT 0 // comments #define DEMNAM_NAME 1 // regular names #define DEMNAM_NONE 2 // don't display DemangleNames = DEMNAM_NAME // Show demangled names as comments

IDAPython

IDApython will load ~/.idapro/idapythonrc.py which can then be used to specify additionnal paths to python, for example :

import sys sys.path.append('/home/raph/.idapro/python')

You can now add Python libraries that will be available in all your IDA versions. For example :

python/ ├── miasm2 -> /home/raph/bin/python/lib/python2.7/site-packages/miasm2 └── pyparsing.py -> /usr/lib/python2.7/dist-packages/pyparsing.py

Plugins

Unfortunately there’s no easy way right now to handle a custom user directory for plugins. While discussing the issue with Ilfak, he offered the following workaround:

User plugins can be handled the following way: defined IDAPLG envvar that points to the user plugins directory. Create symlinks to all IDA plugins from this directory.