struct (make structures, enums, data types from symbols)

Description of the 'struct' command in HyperDbg.

Command

struct

Syntax

struct [Module!SymbolName (string)] [padding Padding (yesno)] [offset Offset (yesno)] [bitfield Bitfield (yesno)] [native Native (yesno)] [decl Declaration (yesno)] [def Definitions (yesno)] [func Functions (yesno)] [pragma Pragma (yesno)] [prefix Prefix (string)] [suffix Suffix (string)] [inline Expantion (string)] [output FileName (string)]

Description

Displays structures, enums, and data types in a C (header) format.

You can use this command to create C (header) files from all of the symbols (structures, enums, data types) in the modules by using module!*. See examples for more information.

Parameters

[Module!SymbolName (string)]

Module name combined with the symbol name (separated by a ! sign).

[padding Padding (yesno)] (optional)

Create padding members. (default: yes)

[offset Offset (yesno)] (optional)

Show offsets. (default: yes)

[bitfield Bitfield (yesno)] (optional)

Allow bitfields in the union. (default: no)

[native Native (yesno)] (optional)

Use types from stdint.h instead of native types. (default: no)

[decl Declaration (yesno)] (optional)

Print declarations. (default: yes)

[def Definitions (yesno)] (optional)

Print definitions. (default: yes)

[func Functions (yesno)] (optional)

Print functions. (default: no)

[pragma Pragma (yesno)] (optional)

Print #pragma pack directives. (default: yes)

[prefix Prefix (string)] (optional)

Prefix for all symbols.

[suffix Suffix (string)] (optional)

Suffix for all symbols.

[inline Expantion (string)] (optional)

Specifies expansion of nested structures/unions. (default: unnamed)

none: only the top-most type is printed.

unnamed: unnamed types are nested.

all: all types are nested.

[output FileName (string)] (optional)

Specifies the output file if the user wants to save the printed data.

Examples

The following command is used to convert nt!_TOKEN into a C format code.

You can aslo use this command to rebuild enums.

It's possible to dump all of the structures, enums, and data types into a header file.

The following command is used to inline each structure into the parent structure.

The following command is used to recursively dump the nt!_TOKEN structure and its sub-structures.

IOCTL

None

Remarks

For implementing this command, pdbex is integrated into HyperDbg.

This command is guaranteed to keep debuggee in a halt state (in Debugger Mode); thus, nothing will change during its execution.

Requirements

None

dt (display and map virtual memory to structures)

!dt (display and map physical memory to structures)

Mapping Data & Create Structures, and Enums From Symbols

Last updated