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(*args) ‑> regval_type_t
reg_data_type(name, subkey=None) -> regval_type_t
Get data type of a given value.
name: (C++: const char *) value name
subkey: (C++: const char *) key name
return: false if the [key+]value doesn't exist
def reg_delete(*args) ‑> bool
reg_delete(name, subkey=None) -> bool
Delete a value from the registry.
name: (C++: const char *) value name
subkey: (C++: const char *) parent key
return: success
def reg_delete_subkey(*args) ‑> bool
reg_delete_subkey(name) -> bool
Delete a key from the registry.
name: (C++: const char *) char const *
def reg_delete_tree(*args) ‑> bool
reg_delete_tree(name) -> bool
Delete a subtree from the registry.
name: (C++: const char *) char const *
def reg_exists(*args) ‑> bool
reg_exists(name, subkey=None) -> bool
Is there already a value with the given name?
name: (C++: const char *) value name
subkey: (C++: const char *) parent key
def reg_flush(*args) ‑> void
reg_flush()
def reg_load(*args) ‑> void
reg_load()
def reg_read_binary(*args) ‑> PyObject *
reg_read_binary(name, subkey=None) -> bytes or None
Read binary data from the registry.
name: (C++: const char *) value name
subkey: (C++: const char *) key name
return: success
def reg_read_bool(*args) ‑> bool
reg_read_bool(name, defval, subkey=None) -> bool
Read boolean value from the registry.
name: (C++: const char *) value name
defval: (C++: bool) default value
subkey: (C++: const char *) key name
return: boolean read from registry, or 'defval' if the read failed
def reg_read_int(*args) ‑> int
reg_read_int(name, defval, subkey=None) -> int
Read integer value from the registry.
name: (C++: const char *) value name
defval: (C++: int) default value
subkey: (C++: const char *) key name
return: the value read from the registry, or 'defval' if the read failed
def reg_read_string(*args) ‑> PyObject *
reg_read_string(name, subkey=None, _def=None) -> str
Read a string from the registry.
name: (C++: const char *) value name
subkey: (C++: const char *) key name
def: char const *
return: success
def reg_read_strlist(*args) ‑> qstrvec_t *
reg_read_strlist(subkey)
Retrieve all string values associated with the given key. Also see reg_update_strlist().
subkey: (C++: const char *) char const *
def reg_subkey_exists(*args) ‑> bool
reg_subkey_exists(name) -> bool
Is there already a key with the given name?
name: (C++: const char *) char const *
def reg_subkey_subkeys(*args) ‑> PyObject *
reg_subkey_subkeys(name) -> [str, ...]
Get all subkey names of given key.
name: (C++: const char *) char const *
def reg_subkey_values(*args) ‑> PyObject *
reg_subkey_values(name) -> [str, ...]
Get all value names under given key.
name: (C++: const char *) char const *
def reg_update_filestrlist(*args) ‑> void
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.
subkey: (C++: const char *) char const *
add: (C++: const char *) char const *
maxrecs: (C++: size_t)
rem: (C++: const char *) char const *
def reg_update_strlist(*args) ‑> void
reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False)
Update list of strings associated with given key.
subkey: (C++: const char *) key name
add: (C++: const char *) string to be added to list, can be nullptr
maxrecs: (C++: size_t) limit list to this size
rem: (C++: const char *) string to be removed from list, can be nullptr
ignorecase: (C++: bool) ignore case for 'add' and 'rem'
def reg_write_binary(*args) ‑> PyObject *
reg_write_binary(name, py_bytes, subkey=None) -> PyObject *
Write binary data to the registry.
name: (C++: const char *) value name
py_bytes: PyObject *
subkey: (C++: const char *) key name
def reg_write_bool(*args) ‑> void
reg_write_bool(name, value, subkey=None)
Write boolean value to the registry.
name: (C++: const char *) value name
value: (C++: int) boolean to write (nonzero = true)
subkey: (C++: const char *) key name
def reg_write_int(*args) ‑> void
reg_write_int(name, value, subkey=None)
Write integer value to the registry.
name: (C++: const char *) value name
value: (C++: int) value to write
subkey: (C++: const char *) key name
def reg_write_string(*args) ‑> void
reg_write_string(name, utf8, subkey=None)
Write a string to the registry.
name: (C++: const char *) value name
utf8: (C++: const char *) utf8-encoded string
subkey: (C++: const char *) key name
def set_registry_root(*args) ‑> bool
set_registry_root(name) -> bool
name: char const *