IDAPython 9.0
Loading...
Searching...
No Matches
ida_diskio Namespace Reference

Detailed Description

You should not use standard C file I/O functions in modules. Use functions from this header, pro.h and fpro.h instead.

This file also declares a call_system() function.

Classes

class  choose_ioport_parser_t
 Proxy of C++ choose_ioport_parser_t class. More...
 
class  file_enumerator_t
 Proxy of C++ file_enumerator_t class. More...
 
class  generic_linput_t
 Proxy of C++ generic_linput_t class. More...
 
class  ioports_fallback_t
 Proxy of C++ ioports_fallback_t class. More...
 

Functions

"char const *" idadir ("char const *" subdir)
 idadir(subdir) -> char const * Get IDA directory (if subdir==nullptr) or the specified subdirectory (see IDA subdirectories)
 
"char const *" getsysfile ("char const *" filename, "char const *" subdir)
 getsysfile(filename, subdir) -> str Search for IDA system file.
 
"char const *" get_user_idadir ()
 get_user_idadir() -> char const * Get user ida related directory.
 
"qstrvec_t *" get_ida_subdirs ("char const *" subdir, "int" flags=0)
 get_ida_subdirs(subdir, flags=0) -> int Get list of directories in which to find a specific IDA resource (see IDA subdirectories).
 
"size_t" get_special_folder ("int" csidl)
 get_special_folder(csidl) -> str Get a folder location by CSIDL (see Common CSIDLs).
 
"FILE *" fopenWT ("char const *" file)
 fopenWT(file) -> FILE * Open a new file for write in text mode, deny write.
 
"FILE *" fopenWB ("char const *" file)
 fopenWB(file) -> FILE * Open a new file for write in binary mode, deny read/write.
 
"FILE *" fopenRT ("char const *" file)
 fopenRT(file) -> FILE * Open a file for read in text mode, deny none.
 
"FILE *" fopenRB ("char const *" file)
 fopenRB(file) -> FILE * Open a file for read in binary mode, deny none.
 
"FILE *" fopenM ("char const *" file)
 fopenM(file) -> FILE * Open a file for read/write in binary mode, deny write.
 
"FILE *" fopenA ("char const *" file)
 fopenA(file) -> FILE * Open a file for append in text mode, deny none.
 
"ssize_t" read_ioports ("ioports_t *" ports, "qstring *" device, "char const *" file, "ioports_fallback_t" callback=None)
 read_ioports(ports, device, file, callback=None) -> ssize_t
 
"bool" choose_ioport_device2 ("qstring *" _device, "char const *" file, "choose_ioport_parser_t" parse_params)
 choose_ioport_device2(_device, file, parse_params) -> bool
 
"size_t" qlgetz ("linput_t *" li, "int64" fpos)
 qlgetz(li, fpos) -> str Read a zero-terminated string from the input.
 
"linput_t *" open_linput ("char const *" file, "bool" remote)
 open_linput(file, remote) -> linput_t * Open loader input.
 
"linput_t *" create_generic_linput ("generic_linput_t" gl)
 create_generic_linput(gl) -> linput_t * Create a generic linput
 
"linput_t *" create_memory_linput ("ea_t" start, "asize_t" size)
 create_memory_linput(start, size) -> linput_t * Create a linput for process memory.
 
"linput_type_t" get_linput_type ("linput_t *" li)
 get_linput_type(li) -> linput_type_t Get linput type.
 
"PyObject *" enumerate_files ("PyObject *" path, "PyObject *" fname, "PyObject *" callback)
 Enumerate files in the specified directory while the callback returns 0.
 
"linput_t *" create_bytearray_linput ("qstring const &" s)
 create_bytearray_linput(s) -> linput_t * Trivial memory linput.
 
"void" close_linput ("linput_t *" li)
 close_linput(li) Close loader input.
 

Variables

 CFG_SUBDIR = _ida_diskio.CFG_SUBDIR
 
 IDC_SUBDIR = _ida_diskio.IDC_SUBDIR
 
 IDS_SUBDIR = _ida_diskio.IDS_SUBDIR
 
 IDP_SUBDIR = _ida_diskio.IDP_SUBDIR
 
 LDR_SUBDIR = _ida_diskio.LDR_SUBDIR
 
 SIG_SUBDIR = _ida_diskio.SIG_SUBDIR
 
 TIL_SUBDIR = _ida_diskio.TIL_SUBDIR
 
 PLG_SUBDIR = _ida_diskio.PLG_SUBDIR
 
 THM_SUBDIR = _ida_diskio.THM_SUBDIR
 
 IDA_SUBDIR_IDP = _ida_diskio.IDA_SUBDIR_IDP
 
 IDA_SUBDIR_IDADIR_FIRST = _ida_diskio.IDA_SUBDIR_IDADIR_FIRST
 
 IDA_SUBDIR_ONLY_EXISTING = _ida_diskio.IDA_SUBDIR_ONLY_EXISTING
 
 CSIDL_APPDATA = _ida_diskio.CSIDL_APPDATA
 
 CSIDL_LOCAL_APPDATA = _ida_diskio.CSIDL_LOCAL_APPDATA
 
 CSIDL_PROGRAM_FILES = _ida_diskio.CSIDL_PROGRAM_FILES
 
 CSIDL_PROGRAM_FILES_COMMON = _ida_diskio.CSIDL_PROGRAM_FILES_COMMON
 
 CSIDL_PROGRAM_FILESX86 = _ida_diskio.CSIDL_PROGRAM_FILESX86
 
 LINPUT_NONE = _ida_diskio.LINPUT_NONE
 
 LINPUT_LOCAL = _ida_diskio.LINPUT_LOCAL
 
 LINPUT_RFILE = _ida_diskio.LINPUT_RFILE
 
 LINPUT_PROCMEM = _ida_diskio.LINPUT_PROCMEM
 
 LINPUT_GENERIC = _ida_diskio.LINPUT_GENERIC
 

Function Documentation

◆ choose_ioport_device2()

"bool" choose_ioport_device2 ( "qstring *" _device,
"char const *" file,
"choose_ioport_parser_t" parse_params )
Parameters
_deviceqstring *
filechar const *
parse_paramschoose_ioport_parser_t *

◆ close_linput()

"void" close_linput ( "linput_t *" li)
Parameters
li(C++: linput_t *)

◆ create_bytearray_linput()

"linput_t *" create_bytearray_linput ( "qstring const &" s)
Parameters
sqstring const &

◆ create_generic_linput()

"linput_t *" create_generic_linput ( "generic_linput_t" gl)
Parameters
gl(C++: generic_linput_t *) linput description. this object will be destroyed by close_linput() using "delete gl;"

◆ create_memory_linput()

"linput_t *" create_memory_linput ( "ea_t" start,
"asize_t" size )

This linput will use read_dbg_memory() to read data.

Parameters
start(C++: ea_t) starting address of the input
size(C++: asize_t) size of the memory area to represent as linput if unknown, may be passed as 0

◆ enumerate_files()

"PyObject *" enumerate_files ( "PyObject *" path,
"PyObject *" fname,
"PyObject *" callback )
Parameters
pathdirectory to enumerate files in
fnamemask of file names to enumerate
callbacka callable object that takes the filename as its first argument and it returns 0 to continue enumeration or non-zero to stop enumeration.
Returns
: None in case of script errors tuple(code, fname) : If the callback returns non-zero

◆ fopenA()

"FILE *" fopenA ( "char const *" file)
Parameters
file(C++: const char *) char const *
Returns
: nullptr if failure

◆ fopenM()

"FILE *" fopenM ( "char const *" file)
Parameters
file(C++: const char *) char const *
Returns
: nullptr if failure

◆ fopenRB()

"FILE *" fopenRB ( "char const *" file)
Parameters
file(C++: const char *) char const *
Returns
: nullptr if failure

◆ fopenRT()

"FILE *" fopenRT ( "char const *" file)
Parameters
file(C++: const char *) char const *
Returns
: nullptr if failure

◆ fopenWB()

"FILE *" fopenWB ( "char const *" file)

If a file exists, it will be removed.

Parameters
file(C++: const char *) char const *
Returns
: nullptr if failure

◆ fopenWT()

"FILE *" fopenWT ( "char const *" file)

If a file exists, it will be removed.

Parameters
file(C++: const char *) char const *
Returns
: nullptr if failure

◆ get_ida_subdirs()

"qstrvec_t *" get_ida_subdirs ( "char const *" subdir,
"int" flags = 0 )

The order of the resulting list is as follows:

  • [$IDAUSR/subdir (0..N entries)]
  • $IDADIR/subdir
Parameters
subdir(C++: const char *) name of the resource to list (can be nullptr)
flags(C++: int) Subdirectory modification flags bits
Returns
: number of directories appended to 'dirs'

◆ get_linput_type()

"linput_type_t" get_linput_type ( "linput_t *" li)
Parameters
li(C++: linput_t *)

◆ get_special_folder()

"size_t" get_special_folder ( "int" csidl)

Path should be of at least MAX_PATH size

Parameters
csidl(C++: int)

◆ get_user_idadir()

"char const *" get_user_idadir ( )
  • if $IDAUSR is defined:
  • the first element in $IDAUSR
  • else
  • default user directory ($HOME/.idapro or APPDATAHex-Rays/IDA Pro)

◆ getsysfile()

"char const *" getsysfile ( "char const *" filename,
"char const *" subdir )

This function searches for a file in:

  1. each directory specified by IDAUSR%
  2. ida directory [+ subdir] and returns the first match.
Parameters
filename(C++: const char *) name of file to search
subdir(C++: const char *) if specified, the file is looked for in the specified subdirectory of the ida directory first (see IDA subdirectories)
Returns
: nullptr if not found, otherwise a pointer to full file name.

◆ idadir()

"char const *" idadir ( "char const *" subdir)
Parameters
subdir(C++: const char *) char const *

◆ open_linput()

"linput_t *" open_linput ( "char const *" file,
"bool" remote )
Parameters
file(C++: const char *) char const *
remote(C++: bool)

◆ qlgetz()

"size_t" qlgetz ( "linput_t *" li,
"int64" fpos )

If fpos == -1 then no seek will be performed.

Parameters
li(C++: linput_t *)
fpos(C++: int64)

◆ read_ioports()

"ssize_t" read_ioports ( "ioports_t *" ports,
"qstring *" device,
"char const *" file,
"ioports_fallback_t" callback = None )
Parameters
portsioports_t *
deviceqstring *
filechar const *
callbackioports_fallback_t *

Variable Documentation

◆ CFG_SUBDIR

CFG_SUBDIR = _ida_diskio.CFG_SUBDIR

◆ CSIDL_APPDATA

CSIDL_APPDATA = _ida_diskio.CSIDL_APPDATA

◆ CSIDL_LOCAL_APPDATA

CSIDL_LOCAL_APPDATA = _ida_diskio.CSIDL_LOCAL_APPDATA

◆ CSIDL_PROGRAM_FILES

CSIDL_PROGRAM_FILES = _ida_diskio.CSIDL_PROGRAM_FILES

◆ CSIDL_PROGRAM_FILES_COMMON

CSIDL_PROGRAM_FILES_COMMON = _ida_diskio.CSIDL_PROGRAM_FILES_COMMON

◆ CSIDL_PROGRAM_FILESX86

CSIDL_PROGRAM_FILESX86 = _ida_diskio.CSIDL_PROGRAM_FILESX86

◆ IDA_SUBDIR_IDADIR_FIRST

IDA_SUBDIR_IDADIR_FIRST = _ida_diskio.IDA_SUBDIR_IDADIR_FIRST

◆ IDA_SUBDIR_IDP

IDA_SUBDIR_IDP = _ida_diskio.IDA_SUBDIR_IDP

◆ IDA_SUBDIR_ONLY_EXISTING

IDA_SUBDIR_ONLY_EXISTING = _ida_diskio.IDA_SUBDIR_ONLY_EXISTING

◆ IDC_SUBDIR

IDC_SUBDIR = _ida_diskio.IDC_SUBDIR

◆ IDP_SUBDIR

IDP_SUBDIR = _ida_diskio.IDP_SUBDIR

◆ IDS_SUBDIR

IDS_SUBDIR = _ida_diskio.IDS_SUBDIR

◆ LDR_SUBDIR

LDR_SUBDIR = _ida_diskio.LDR_SUBDIR

◆ LINPUT_GENERIC

LINPUT_GENERIC = _ida_diskio.LINPUT_GENERIC

◆ LINPUT_LOCAL

LINPUT_LOCAL = _ida_diskio.LINPUT_LOCAL

◆ LINPUT_NONE

LINPUT_NONE = _ida_diskio.LINPUT_NONE

◆ LINPUT_PROCMEM

LINPUT_PROCMEM = _ida_diskio.LINPUT_PROCMEM

◆ LINPUT_RFILE

LINPUT_RFILE = _ida_diskio.LINPUT_RFILE

◆ PLG_SUBDIR

PLG_SUBDIR = _ida_diskio.PLG_SUBDIR

◆ SIG_SUBDIR

SIG_SUBDIR = _ida_diskio.SIG_SUBDIR

◆ THM_SUBDIR

THM_SUBDIR = _ida_diskio.THM_SUBDIR

◆ TIL_SUBDIR

TIL_SUBDIR = _ida_diskio.TIL_SUBDIR