Module index

# Module `ida_registry`

Registry related functions.

IDA uses the registry to store global configuration options that must persist after IDA has been closed.

On Windows, IDA uses the Windows registry directly. On Unix systems, the registry is stored in a file (typically ~/.idapro/ida.reg).

The root key for accessing IDA settings in the registry is defined by ROOT_KEY_NAME.

## Global variables

`var ROOT_KEY_NAME`

  Default key used to store IDA settings in registry (Windows version). @note: this name is automatically prepended to all key names passed to functions in this file.

`var reg_binary`

  binary data

`var reg_dword`

  32-bit number

`var reg_sz`

  utf8 string

`var reg_unknown`

  unknown

## Functions

`def reg_data_type(name: char const *, subkey: char const * = None)`

  reg_data_type(name, subkey=None) -> regval_type_t Get data type of a given value.

  @param name: (C++: const char ) value name @param subkey: (C++: const char ) key name @return: false if the [key+]value doesn't exist

`def reg_delete(name: char const *, subkey: char const * = None)`

  reg_delete(name, subkey=None) -> bool Delete a value from the registry.

  @param name: (C++: const char ) value name @param subkey: (C++: const char ) parent key @return: success

`def reg_delete_subkey(name: char const *)`

  reg_delete_subkey(name) -> bool Delete a key from the registry.

  @param name: (C++: const char *) char const *

`def reg_delete_tree(name: char const *)`

  reg_delete_tree(name) -> bool Delete a subtree from the registry.

  @param name: (C++: const char *) char const *

`def reg_exists(name: char const *, subkey: char const * = None)`

  reg_exists(name, subkey=None) -> bool Is there already a value with the given name?

  @param name: (C++: const char ) value name @param subkey: (C++: const char ) parent key

`def reg_read_binary(name: char const *, subkey: char const * = None)`

  reg_read_binary(name, subkey=None) -> PyObject Read binary data from the registry.

  @param name: (C++: const char ) value name @param subkey: (C++: const char ) key name @return: success

`def reg_read_bool(name: char const *, defval: bool, subkey: char const * = None)`

  reg_read_bool(name, defval, subkey=None) -> bool Read boolean value from the registry.

  @param name: (C++: const char ) value name @param defval: (C++: bool) default value @param subkey: (C++: const char ) key name @return: boolean read from registry, or 'defval' if the read failed

`def reg_read_int(name: char const *, defval: int, subkey: char const * = None)`

  reg_read_int(name, defval, subkey=None) -> int Read integer value from the registry.

  @param name: (C++: const char ) value name @param defval: (C++: int) default value @param subkey: (C++: const char ) key name @return: the value read from the registry, or 'defval' if the read failed

`def reg_read_string(name: char const *, subkey: char const * = None)`

  reg_read_string(name, subkey=None, _def=None) -> PyObject Read a string from the registry.

  @param name: (C++: const char ) value name @param subkey: (C++: const char ) key name @param def: char const * @return: success

`def reg_read_strlist(subkey: char const *)`

  reg_read_strlist(subkey) Retrieve all string values associated with the given key. Also see reg_update_strlist(), reg_write_strlist()

  @param subkey: (C++: const char *) char const *

`def reg_subkey_exists(name: char const *)`

  reg_subkey_exists(name) -> bool Is there already a key with the given name?

  @param name: (C++: const char *) char const *

`def reg_subkey_subkeys(name: char const *)`

  reg_subkey_subkeys(name) -> [str, …] Get all subkey names of given key.

  @param name: (C++: const char *) char const *

`def reg_subkey_values(name: char const *)`

  reg_subkey_values(name) -> [str, …] Get all value names under given key.

  @param name: (C++: const char *) char const *

`def reg_update_filestrlist(subkey: char const *, add: char const *, maxrecs: size_t, rem: char const * = None)`

  reg_update_filestrlist(subkey, add, maxrecs, rem=None) Update registry with a file list. Case sensitivity will vary depending on the target OS. @note: 'add' and 'rem' must be UTF-8, just like for regular string operations.

  @param subkey: (C++: const char ) char const * @param add: (C++: const char ) char const * @param maxrecs: (C++: size_t) @param rem: (C++: const char *) char const *

`def reg_update_strlist(subkey: char const *, add: char const *, maxrecs: size_t, rem: char const * = None, ignorecase: bool = False)`

  reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) Update list of strings associated with given key.

  @param subkey: (C++: const char ) key name @param add: (C++: const char ) string to be added to list, can be nullptr @param maxrecs: (C++: size_t) limit list to this size @param rem: (C++: const char *) string to be removed from list, can be nullptr @param ignorecase: (C++: bool) ignore case for 'add' and 'rem'

`def reg_write_binary(name: char const *, py_bytes: PyObject *, subkey: char const * = None)`

  reg_write_binary(name, py_bytes, subkey=None) -> PyObject Write binary data to the registry.

  @param name: (C++: const char ) value name @param py_bytes: PyObject * @param subkey: (C++: const char ) key name

`def reg_write_bool(name: char const *, value: int, subkey: char const * = None)`

  reg_write_bool(name, value, subkey=None) Write boolean value to the registry.

  @param name: (C++: const char ) value name @param value: (C++: int) boolean to write (nonzero = true) @param subkey: (C++: const char ) key name

`def reg_write_int(name: char const *, value: int, subkey: char const * = None)`

  reg_write_int(name, value, subkey=None) Write integer value to the registry.

  @param name: (C++: const char ) value name @param value: (C++: int) value to write @param subkey: (C++: const char ) key name

`def reg_write_string(name: char const *, utf8: char const *, subkey: char const * = None)`

  reg_write_string(name, utf8, subkey=None) Write a string to the registry.

  @param name: (C++: const char ) value name @param utf8: (C++: const char ) utf8-encoded string @param subkey: (C++: const char *) key name

`def reg_write_strlist(_in: qstrvec_t const &, subkey: char const *)`

  reg_write_strlist(_in, subkey) Write string values associated with the given key. Also see reg_read_strlist(), reg_update_strlist()

  @param in: (C++: const qstrvec_t &) qstrvec_t const & @param subkey: (C++: const char *) char const *

`def set_registry_name(name: char const *)`

  set_registry_name(name) -> bool

  @param name: char const *