Skip to content

module managers.cGenerator


class CGenerator

Main class responsible for C code generation

method __init__

__init__() → None

method generate_debug

generate_debug(debug: bool) → str

Public method used to generate the SPT_DEBUG constant flag

Args:

  • debug (bool): Debug flag value

Returns:

  • str: C code for template integration

method generate_definitions

generate_definitions() → str

method generate_enum

generate_enum(name: str, definition: list) → str

Public method used to generate C enum declaration. The enum structure will be generated as a public object for external code usages. A pointer to the enum structure will always be generated in the form of: P+NAME

Args:

  • name (str): Enum structure name
  • definition (list): Enum structure entries from definitions.json

Returns:

  • str: C code for enum structure (except type keyword for definition chaining)

method generate_pointer

generate_pointer(name: str, definition: list) → str

Public method used to generate C pointer to defined var The pointer will be geneerated as a public object for external code usages.

Args:

  • name (str): Pointer name
  • definition (list): Type definition to point to from definitions.json

Returns:

  • str: C code for standard pointer declaration

method generate_seed

generate_seed(seed: int) → str

Public method used to generate the SPT_SEED constant value

Args:

  • seed (int): Seed value

Returns:

  • str: C code for template integration

method generate_standard

generate_standard(name: str, definition: list) → str

Public method used to generate C varaiable declaration. The variable will be generated as a public object for external code usages. A pointer to the variable will always be generated in the form of: P+NAME

Args:

  • name (str): Variable name
  • definition (list): Variable type from definitions.json

Returns:

  • str: C code for variable definition (except type keyword for definition chaining)

method generate_struct

generate_struct(name: str, definition: list) → str

Public method used to generate a C basic structure. The structure will be generated as a public object for external code usages. A pointer to the structure will always be generated in the form of: *P+NAME

Args:

  • name (str): Structure name
  • definition (list): Structure parameters from definitions.json

Returns:

  • str: C code for basic structure definition (except type keyword for definition chaining)

method generate_stub

generate_stub(name: str, params: dict, fhash: int) → str

Public method used to generate stub code of syscall to hook

Args:

  • name (str): NtFunction name to hook
  • params (dict): Parameters of functions defined in prototypes.json
  • fhash (int): NtFunction hash value used by ASM call

Returns:

  • str: C code for template integration

method generate_union

generate_union(name: str, definition: list) → str

Public method used to generate C union structure when a parent needs it. This structure will be generated as a private object as it won't be directly accessed by external code. A pointer to the union structure will always be generated in the form of: *P+NAME

Args:

  • name (str): Union structure name
  • definition (list): Union structure parameters from definitions.json

Returns:

  • str: C code for union structure definition (except type keyword for definition chaining)

This file was automatically generated via lazydocs.