platform module¶
|
|
- class CorePlatform(handle: BNPlatform)[source]¶
Bases:
Platform
- Parameters:
handle (BNPlatform) –
- adjust_type_parser_input(parser: TypeParser, arguments: List[str], source_files: List[Tuple[str, str]]) Tuple[List[str], List[Tuple[str, str]]] [source]¶
Modify the arguments passed to the Type Parser with Platform-specific features.
- Parameters:
- Returns:
A tuple of (modified arguments, modified source files)
- Return type:
- class Platform(arch: Architecture | None = None, handle=None)[source]¶
Bases:
object
class Platform
contains all information related to the execution environment of the binary, mainly the calling conventions used.- Parameters:
arch (Architecture | None) –
- adjust_type_parser_input(parser: TypeParser, arguments: List[str], source_files: List[Tuple[str, str]]) Tuple[List[str], List[Tuple[str, str]]] [source]¶
Modify the arguments passed to the Type Parser with Platform-specific features.
- Parameters:
- Returns:
A tuple of (modified arguments, modified source files)
- Return type:
- get_global_register_type(reg: architecture.RegisterType)[source]¶
- Parameters:
reg (architecture.RegisterType) –
get_related_platforms
returns a list of all related platforms for a given platform
- get_type_libraries_by_name(name) List[TypeLibrary] [source]¶
- Return type:
- parse_types_from_source(source, filename=None, include_dirs: List[str] | None = None, auto_type_source=None)[source]¶
parse_types_from_source
parses the source string and any needed headers searching for them in the optional list of directories provided ininclude_dirs
. Note that this API does not allow the source to rely on existing types that only exist in a specific view. UseBinaryView.parse_type_string
instead.- Parameters:
- Returns:
BasicTypeParserResult
(a SyntaxError is thrown on parse error)- Return type:
- Example:
>>> platform.parse_types_from_source('int foo;\nint bar(int x);\nstruct bas{int x,y;};\n') ({types: {'bas': <type: struct bas>}, variables: {'foo': <type: int32_t>}, functions:{'bar': <type: int32_t(int32_t x)>}}, '') >>>
- parse_types_from_source_file(filename, include_dirs: List[str] | None = None, auto_type_source=None)[source]¶
parse_types_from_source_file
parses the source filefilename
and any needed headers searching for them in the optional list of directories provided ininclude_dirs
. Note that this API does not allow the source to rely on existing types that only exist in a specific view. UseBinaryView.parse_type_string
instead.- Parameters:
- Returns:
BasicTypeParserResult
(a SyntaxError is thrown on parse error)- Return type:
- Example:
>>> file = "/Users/binja/tmp.c" >>> open(file).read() 'int foo;\nint bar(int x);\nstruct bas{int x,y;};\n' >>> platform.parse_types_from_source_file(file) ({types: {'bas': <type: struct bas>}, variables: {'foo': <type: int32_t>}, functions: {'bar': <type: int32_t(int32_t x)>}}, '') >>>
- register(os)[source]¶
register
registers the platform for given OS name.- Parameters:
os (str) – OS name to register
- Return type:
None
- register_calling_convention(cc)[source]¶
register_calling_convention
register a new calling convention.- Parameters:
cc (CallingConvention) – a CallingConvention object to register
- Return type:
None
- property arch¶
- property calling_conventions¶
List of platform CallingConvention objects (read-only)
- Getter:
returns the list of supported CallingConvention objects
- Type:
- property cdecl_calling_convention¶
CallingConvention object for the cdecl calling convention
- property default_calling_convention¶
Default calling convention.
- Getter:
returns a CallingConvention object for the default calling convention.
- Setter:
sets the default calling convention
- Type:
- property fastcall_calling_convention¶
CallingConvention object for the fastcall calling convention
- property functions¶
List of platform-specific function definitions (read-only)
- global_reg_types = {}¶
- global_regs = []¶
- class property os_list: List[str]¶
Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.
- property stdcall_calling_convention¶
CallingConvention object for the stdcall calling convention
- property system_call_convention¶
CallingConvention object for the system call convention
- property system_calls¶
List of system calls for this platform (read-only)
- property type_container: TypeContainer¶
Type Container for all registered types in the Platform. :return: Platform types Type Container
- type_file_path = None¶
- type_include_dirs = []¶
- property type_libraries: List[TypeLibrary]¶
- property types¶
List of platform-specific types (read-only)
- property variables¶
List of platform-specific variable definitions (read-only)