t_cmdinfo
Keeps basic information about the 80x86 command extracted by Cmdinfo().
typedef struct t_cmdinfo { // Information on command
ulong
ip;
// Address of first command byte
ulong
size;
// Full length of command, bytes
ulong
cmdtype;
// Type of command, D_xxx
ulong
prefixes;
// List of prefixes, set of PF_xxx
ulong
nprefix;
// Number of prefixes, including SSE2
ulong
memfixup;
// Offset of first 4-byte fixup or -1
ulong
immfixup;
// Offset of second 4-byte fixup or -1
int
errors;
// Set of DAE_xxx
ulong
jmpaddr;
// Jump/call destination or 0
ulong
stackinc;
// Data size in ENTER/RETN/RETF
t_opinfo op[NOPERAND]; // Operands
} t_cmdinfo;
Members:
ip
Address of the command, repeats parameter cmdip in the call to Cmdinfo()
size
Length of the command, bytes
cmdtype
Type of the command as a combination of flags D_xxx
prefixes
List of prefixes in the command as a combination of flags PF_xxx
nprefix
Number
of prefixes in the command, including SSE prefixes 0x66, 0xF2 and 0xF3.
Note that OllyDbg treats code 0x0F as part of the command
memfixup
Offset of the first possible 4-byte fixup (memory offset) within the command or 0xFFFFFFFF if none
immfixup
Offset of the second possible 4-byte fixup (immediate constant) within the command or 0xFFFFFFFF if none
errors
List of detected errors, or DAE_NOERR if no errors were detected. Several flags may be set at once:
DAE_BADCMD - unknown or unrecognized command
DAE_CROSS - command is longer than memory block passed to Disasm()
DAE_MEMORY - command specifies register where only memory is allowed
DAE_BADSEG - invalid segment register
DAE_SAMEPREF - two explicit prefixes from the same group are specified simultaneously
DAE_MANYPREF - command contains more than 4 prefixes
DAE_INTERN - internal error
Note that some errors remain unnoticed by Cmdinfo()
jmpaddr
If command is jump or call and its destination is known or can be calculated, jmpaddr
is set to the destination address. Otherwise, it's 0. It may be
necessary to supply registers and/or allow memory access by setting
flag DA_MEMORY
stackinc
Data size, bytes, specified in commands ENTER, RETN and RETF
op
Descriptions of operands, includes implicit operands (pseudooperands). See t_opinfo for details
See
also: