Binary Ninja API C++: BinaryNinja::CorePlatform Class Reference
Public Member Functions | |
| CorePlatform (BNPlatform *plat) | |
| virtual std::vector< uint32_t > | GetGlobalRegisters () override |
| Get the global register list for this Platform. | |
| virtual Ref< Type > | GetGlobalRegisterType (uint32_t reg) override |
| Get the type of a global register. | |
| virtual void | AdjustTypeParserInput (Ref< class TypeParser > parser, std::vector< std::string > &arguments, std::vector< std::pair< std::string, std::string > > &sourceFiles) override |
| Modify the input passed to the Type Parser with Platform-specific features. | |
| virtual size_t | GetAddressSize () const override |
| Get the address size for this platform. | |
| Public Member Functions inherited from BinaryNinja::Platform | |
| Platform (BNPlatform *platform) | |
| Ref< Architecture > | GetArchitecture () const |
| Get the Architecture for this platform. | |
| std::string | GetName () const |
| Get the name of this platform. | |
| Ref< CallingConvention > | GetDefaultCallingConvention () const |
| Get the default calling convention for this platform. | |
| Ref< CallingConvention > | GetCdeclCallingConvention () const |
| Get the cdecl CallingConvention. | |
| Ref< CallingConvention > | GetStdcallCallingConvention () const |
| Get the stdcall CallingConvention. | |
| Ref< CallingConvention > | GetFastcallCallingConvention () const |
| Get the fastcall CallingConvention. | |
| std::vector< Ref< CallingConvention > > | GetCallingConventions () const |
| Get the list of registered calling conventions. | |
| Ref< CallingConvention > | GetSystemCallConvention () const |
| Get the syscall calling convention. | |
| void | RegisterCallingConvention (CallingConvention *cc) |
| Register a Calling Convention. | |
| void | RegisterDefaultCallingConvention (CallingConvention *cc) |
| Set the default calling convention. | |
| void | RegisterCdeclCallingConvention (CallingConvention *cc) |
| Set the cdecl calling convention. | |
| void | RegisterStdcallCallingConvention (CallingConvention *cc) |
| Set the stdcall calling convention. | |
| void | RegisterFastcallCallingConvention (CallingConvention *cc) |
| Set the fastcall calling convention. | |
| void | SetSystemCallConvention (CallingConvention *cc) |
| Set the syscall calling convention. | |
| virtual void | BinaryViewInit (BinaryView *view) |
| Callback that will be called when the platform of a binaryview is set. | |
| virtual bool | GetFallbackEnabled () |
| Provide an option for platforms to decide whether to use the fallback type library. | |
| Ref< Platform > | GetRelatedPlatform (Architecture *arch) |
| void | AddRelatedPlatform (Architecture *arch, Platform *platform) |
| std::vector< Ref< Platform > > | GetRelatedPlatforms () |
| Get the list of related platforms for this platform. | |
| Ref< Platform > | GetAssociatedPlatformByAddress (uint64_t &addr) |
| std::map< QualifiedName, Ref< Type > > | GetTypes () |
| Get the list of platform-specific types. | |
| std::map< QualifiedName, Ref< Type > > | GetVariables () |
| Get the list of platform-specific variable definitions. | |
| std::map< QualifiedName, Ref< Type > > | GetFunctions () |
| Get the list of platform-specific function definitions. | |
| std::map< uint32_t, QualifiedNameAndType > | GetSystemCalls () |
| System calls for this platform. | |
| std::vector< Ref< TypeLibrary > > | GetTypeLibraries () |
| std::vector< Ref< TypeLibrary > > | GetTypeLibrariesByName (const std::string &name) |
| TypeContainer | GetTypeContainer () |
| Type Container for all registered types in the Platform. | |
| Ref< Type > | GetTypeByName (const QualifiedName &name) |
| Ref< Type > | GetVariableByName (const QualifiedName &name) |
| Ref< Type > | GetFunctionByName (const QualifiedName &name, bool exactMatch=false) |
| std::string | GetSystemCallName (uint32_t n) |
| Ref< Type > | GetSystemCallType (uint32_t n) |
| std::string | GenerateAutoPlatformTypeId (const QualifiedName &name) |
| Ref< NamedTypeReference > | GenerateAutoPlatformTypeReference (BNNamedTypeReferenceClass cls, const QualifiedName &name) |
| std::string | GetAutoPlatformTypeIdSource () |
| bool | ParseTypesFromSource (const std::string &source, const std::string &fileName, std::map< QualifiedName, Ref< Type > > &types, std::map< QualifiedName, Ref< Type > > &variables, std::map< QualifiedName, Ref< Type > > &functions, std::string &errors, const std::vector< std::string > &includeDirs=std::vector< std::string >(), const std::string &autoTypeSource="") |
| Parses the source string and any needed headers searching for them in the optional list of directories provided in ``includeDirs``. | |
| bool | ParseTypesFromSourceFile (const std::string &fileName, std::map< QualifiedName, Ref< Type > > &types, std::map< QualifiedName, Ref< Type > > &variables, std::map< QualifiedName, Ref< Type > > &functions, std::string &errors, const std::vector< std::string > &includeDirs=std::vector< std::string >(), const std::string &autoTypeSource="") |
| Parses the source string and any needed headers searching for them in the optional list of directories provided in ``includeDirs``. | |
| Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNPlatform, BNNewPlatformReference, BNFreePlatform > | |
| CoreRefCountObject () | |
| virtual | ~CoreRefCountObject () |
| BNPlatform * | GetObject () const |
| void | AddRef () |
| void | Release () |
| void | AddRefForRegistration () |
| void | ReleaseForRegistration () |
| void | AddRefForCallback () |
| void | ReleaseForCallback () |
Additional Inherited Members | |
| Static Public Member Functions inherited from BinaryNinja::Platform | |
| static void | Register (const std::string &os, Platform *platform) |
| Register a Platform. | |
| static Ref< Platform > | GetByName (const std::string &name) |
| Get a platform by name. | |
| static std::vector< Ref< Platform > > | GetList () |
| Get the list of registered platforms. | |
| static std::vector< Ref< Platform > > | GetList (Architecture *arch) |
| Get the list of registered platforms by Architecture. | |
| static std::vector< Ref< Platform > > | GetList (const std::string &os) |
| Get the list of registered platforms by os. | |
| static std::vector< Ref< Platform > > | GetList (const std::string &os, Architecture *arch) |
| Get the list of registered platforms by OS and Architecture. | |
| static std::vector< std::string > | GetOSList () |
| Get the list of operating systems. | |
| Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNPlatform, BNNewPlatformReference, BNFreePlatform > | |
| std::atomic< int > | m_refs |
| bool | m_registeredRef |
| BNPlatform * | m_object |
| Protected Member Functions inherited from BinaryNinja::Platform | |
| Platform (Architecture *arch, const std::string &name) | |
| Platform (Architecture *arch, const std::string &name, const std::string &typeFile, const std::vector< std::string > &includeDirs=std::vector< std::string >()) | |
| Static Protected Member Functions inherited from BinaryNinja::Platform | |
| static void | InitCallback (void *ctxt, BNPlatform *) |
| static void | InitViewCallback (void *ctxt, BNBinaryView *view) |
| static uint32_t * | GetGlobalRegistersCallback (void *ctxt, size_t *count) |
| static void | FreeRegisterListCallback (void *ctxt, uint32_t *regs, size_t count) |
| static size_t | GetAddressSizeCallback (void *ctxt) |
| static BNType * | GetGlobalRegisterTypeCallback (void *ctxt, uint32_t reg) |
| static void | AdjustTypeParserInputCallback (void *ctxt, BNTypeParser *parser, const char *const *argumentsIn, size_t argumentsLenIn, const char *const *sourceFileNamesIn, const char *const *sourceFileValuesIn, size_t sourceFilesLenIn, char ***argumentsOut, size_t *argumentsLenOut, char ***sourceFileNamesOut, char ***sourceFileValuesOut, size_t *sourceFilesLenOut) |
| static void | FreeTypeParserInputCallback (void *ctxt, char **arguments, size_t argumentsLen, char **sourceFileNames, char **sourceFileValues, size_t sourceFilesLen) |
| static bool | GetFallbackEnabledCallback (void *ctxt) |
◆ GetGlobalRegisters()
|
overridevirtual |
◆ GetGlobalRegisterType()
Get the type of a global register.
Called by analysis when the incoming register value of a global register is observed.
- Parameters
-
reg The register being queried for type information.
Reimplemented from BinaryNinja::Platform.
◆ AdjustTypeParserInput()
|
overridevirtual |
Modify the input passed to the Type Parser with Platform-specific features.
- Parameters
-
[in] parser Type Parser instance [in,out] arguments Arguments to the type parser [in,out] sourceFiles Source file names and contents
Reimplemented from BinaryNinja::Platform.
◆ GetAddressSize()
|
overridevirtual |
Get the address size for this platform.
- Returns
- The address size for this platform
Reimplemented from BinaryNinja::Platform.