Bof.

No theme, no regular posting.

© 2014-2018. Raphaël Rigo CC-BY-SA 4.0

About.

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.

Which is not exactly the same but may help if the user has no write access to the IDA directory. Maybe a future version will offer this feature :) Update : IDA 6.9 supports the IDAUSR environment variable. See doc for awesomness :)