Binary Ninja API C++: Function
Public Member Functions | |
| Function (BNFunction *func) | |
| virtual | ~Function () |
| Ref< BinaryView > | GetView () const |
| Get the BinaryView this Function is defined in. | |
| Ref< Architecture > | GetArchitecture () const |
| Get the architecture this function was defined with. | |
| Ref< Platform > | GetPlatform () const |
| Get the platform this function was defined with. | |
| uint64_t | GetStart () const |
| Get the starting virtual address of this function. | |
| Ref< Symbol > | GetSymbol () const |
| Get the Symbol for this function. | |
| bool | IsExported () const |
| bool | WasAutomaticallyDiscovered () const |
| Whether this function was automatically discovered by analysis. | |
| bool | HasUserAnnotations () const |
| Whether this function has user annotations. | |
| Confidence< bool > | CanReturn () const |
| Whether this function can return. | |
| Confidence< bool > | IsPure () const |
| Whether this function is pure. | |
| bool | HasExplicitlyDefinedType () const |
| Whether this function has an explicitly defined type. | |
| bool | NeedsUpdate () const |
| Whether this function needs update. | |
| std::vector< Ref< BasicBlock > > | GetBasicBlocks () const |
| Get a list of Basic Blocks for this function. | |
| Ref< BasicBlock > | GetBasicBlockAtAddress (Architecture *arch, uint64_t addr) const |
| Get the basic block an address is located in. | |
| void | MarkRecentUse () |
| Mark this function as recently used. | |
| std::string | GetComment () const |
| Get the function comment. | |
| std::string | GetCommentForAddress (uint64_t addr) const |
| Get a comment located at an address. | |
| std::vector< uint64_t > | GetCommentedAddresses () const |
| Get a list of addresses with comments. | |
| void | SetComment (const std::string &comment) |
| Set the comment for the function. | |
| void | SetCommentForAddress (uint64_t addr, const std::string &comment) |
| Set the comment at an address. | |
| std::vector< ReferenceSource > | GetCallSites () const |
| Get a list of callsites for this function. | |
| void | AddUserCodeReference (Architecture *fromArch, uint64_t fromAddr, uint64_t toAddr) |
| Places a user-defined cross-reference from the instruction at the given address and architecture to the specified target address. | |
| void | RemoveUserCodeReference (Architecture *fromArch, uint64_t fromAddr, uint64_t toAddr) |
| Removes a user-defined cross-reference. | |
| void | AddUserTypeReference (Architecture *fromArch, uint64_t fromAddr, const QualifiedName &name) |
| Places a user-defined type cross-reference from the instruction at the given address and architecture to the specified type. | |
| void | RemoveUserTypeReference (Architecture *fromArch, uint64_t fromAddr, const QualifiedName &name) |
| Removes a user-defined type cross-reference. | |
| void | AddUserTypeFieldReference (Architecture *fromArch, uint64_t fromAddr, const QualifiedName &name, uint64_t offset, size_t size=0) |
| Places a user-defined type field cross-reference from the instruction at the given address and architecture to the specified type. | |
| void | RemoveUserTypeFieldReference (Architecture *fromArch, uint64_t fromAddr, const QualifiedName &name, uint64_t offset, size_t size=0) |
| Removes a user-defined type field cross-reference. | |
| Ref< LowLevelILFunction > | GetLowLevelIL () const |
| Get the LLIL for this function. | |
| Ref< LowLevelILFunction > | GetLowLevelILIfAvailable () const |
| Get the LLIL for this function if it is available. | |
| std::pair< DataBuffer, BNBuiltinType > | GetConstantData (BNRegisterValueType state, uint64_t value, size_t size=0) |
| RegisterValue | GetRegisterValueAtInstruction (Architecture *arch, uint64_t addr, uint32_t reg) |
| RegisterValue | GetRegisterValueAfterInstruction (Architecture *arch, uint64_t addr, uint32_t reg) |
| RegisterValue | GetStackContentsAtInstruction (Architecture *arch, uint64_t addr, int64_t offset, size_t size) |
| RegisterValue | GetStackContentsAfterInstruction (Architecture *arch, uint64_t addr, int64_t offset, size_t size) |
| RegisterValue | GetParameterValueAtInstruction (Architecture *arch, uint64_t addr, Type *functionType, size_t i) |
| RegisterValue | GetParameterValueAtLowLevelILInstruction (size_t instr, Type *functionType, size_t i) |
| std::vector< uint32_t > | GetRegistersReadByInstruction (Architecture *arch, uint64_t addr) |
| std::vector< uint32_t > | GetRegistersWrittenByInstruction (Architecture *arch, uint64_t addr) |
| std::vector< StackVariableReference > | GetStackVariablesReferencedByInstruction (Architecture *arch, uint64_t addr) |
| std::vector< StackVariableReference > | GetStackVariablesReferencedByInstructionIfAvailable (Architecture *arch, uint64_t addr) |
| std::vector< BNConstantReference > | GetConstantsReferencedByInstruction (Architecture *arch, uint64_t addr) |
| std::vector< BNConstantReference > | GetConstantsReferencedByInstructionIfAvailable (Architecture *arch, uint64_t addr) |
| std::vector< ILReferenceSource > | GetMediumLevelILVariableReferences (const Variable &var) |
| std::vector< VariableReferenceSource > | GetMediumLevelILVariableReferencesFrom (Architecture *arch, uint64_t addr) |
| std::vector< VariableReferenceSource > | GetMediumLevelILVariableReferencesInRange (Architecture *arch, uint64_t addr, uint64_t len) |
| std::vector< ILReferenceSource > | GetMediumLevelILVariableReferencesIfAvailable (const Variable &var) |
| std::vector< VariableReferenceSource > | GetMediumLevelILVariableReferencesFromIfAvailable (Architecture *arch, uint64_t addr) |
| std::vector< VariableReferenceSource > | GetMediumLevelILVariableReferencesInRangeIfAvailable (Architecture *arch, uint64_t addr, uint64_t len) |
| std::vector< ILReferenceSource > | GetHighLevelILVariableReferences (const Variable &var) |
| std::vector< VariableReferenceSource > | GetHighLevelILVariableReferencesFrom (Architecture *arch, uint64_t addr) |
| std::vector< VariableReferenceSource > | GetHighLevelILVariableReferencesInRange (Architecture *arch, uint64_t addr, uint64_t len) |
| std::vector< ILReferenceSource > | GetHighLevelILVariableReferencesIfAvailable (const Variable &var) |
| std::vector< VariableReferenceSource > | GetHighLevelILVariableReferencesFromIfAvailable (Architecture *arch, uint64_t addr) |
| std::vector< VariableReferenceSource > | GetHighLevelILVariableReferencesInRangeIfAvailable (Architecture *arch, uint64_t addr, uint64_t len) |
| Ref< LowLevelILFunction > | GetLiftedIL () const |
| Retrieves a LowLevelILFunction used to represent lifted IL. | |
| Ref< LowLevelILFunction > | GetLiftedILIfAvailable () const |
| Retrieves a LowLevelILFunction used to represent lifted IL, or None if not loaded. | |
| size_t | GetLiftedILForInstruction (Architecture *arch, uint64_t addr) |
| std::set< size_t > | GetLiftedILInstructionsForAddress (Architecture *arch, uint64_t addr) |
| std::set< size_t > | GetLiftedILFlagUsesForDefinition (size_t i, uint32_t flag) |
| std::set< size_t > | GetLiftedILFlagDefinitionsForUse (size_t i, uint32_t flag) |
| std::set< uint32_t > | GetFlagsReadByLiftedILInstruction (size_t i) |
| std::set< uint32_t > | GetFlagsWrittenByLiftedILInstruction (size_t i) |
| Ref< MediumLevelILFunction > | GetMediumLevelIL () const |
| Get the MLIL for this Function. | |
| Ref< MediumLevelILFunction > | GetMediumLevelILIfAvailable () const |
| Get the MLIL for this Function if it's available. | |
| Ref< MediumLevelILFunction > | GetMappedMediumLevelIL () const |
| Get the Mapped MLIL for this Function. | |
| Ref< MediumLevelILFunction > | GetMappedMediumLevelILIfAvailable () const |
| Get the Mapped MLIL for this Function if it's available. | |
| Ref< HighLevelILFunction > | GetHighLevelIL () const |
| Get the HLIL for this Function. | |
| Ref< HighLevelILFunction > | GetHighLevelILIfAvailable () const |
| Get the HLIL for this Function if it's available. | |
| Ref< LanguageRepresentationFunction > | GetLanguageRepresentation (const std::string &language="Pseudo C") const |
| Ref< LanguageRepresentationFunction > | GetLanguageRepresentationIfAvailable (const std::string &language="Pseudo C") const |
| Ref< Type > | GetType () const |
| Confidence< Ref< Type > > | GetReturnType () const |
| Confidence< std::vector< uint32_t > > | GetReturnRegisters () const |
| Confidence< Ref< CallingConvention > > | GetCallingConvention () const |
| Confidence< std::vector< Variable > > | GetParameterVariables () const |
| Confidence< bool > | HasVariableArguments () const |
| Confidence< int64_t > | GetStackAdjustment () const |
| std::map< uint32_t, Confidence< int32_t > > | GetRegisterStackAdjustments () const |
| Confidence< std::set< uint32_t > > | GetClobberedRegisters () const |
| void | SetAutoType (Type *type) |
| void | SetAutoReturnType (const Confidence< Ref< Type > > &type) |
| void | SetAutoReturnRegisters (const Confidence< std::vector< uint32_t > > &returnRegs) |
| void | SetAutoCallingConvention (const Confidence< Ref< CallingConvention > > &convention) |
| void | SetAutoParameterVariables (const Confidence< std::vector< Variable > > &vars) |
| void | SetAutoHasVariableArguments (const Confidence< bool > &varArgs) |
| void | SetAutoCanReturn (const Confidence< bool > &returns) |
| void | SetAutoPure (const Confidence< bool > &pure) |
| void | SetAutoStackAdjustment (const Confidence< int64_t > &stackAdjust) |
| void | SetAutoRegisterStackAdjustments (const std::map< uint32_t, Confidence< int32_t > > ®StackAdjust) |
| void | SetAutoClobberedRegisters (const Confidence< std::set< uint32_t > > &clobbered) |
| void | SetUserType (Type *type) |
| void | SetReturnType (const Confidence< Ref< Type > > &type) |
| void | SetReturnRegisters (const Confidence< std::vector< uint32_t > > &returnRegs) |
| void | SetCallingConvention (const Confidence< Ref< CallingConvention > > &convention) |
| void | SetParameterVariables (const Confidence< std::vector< Variable > > &vars) |
| void | SetHasVariableArguments (const Confidence< bool > &varArgs) |
| void | SetCanReturn (const Confidence< bool > &returns) |
| void | SetPure (const Confidence< bool > &pure) |
| void | SetStackAdjustment (const Confidence< int64_t > &stackAdjust) |
| void | SetRegisterStackAdjustments (const std::map< uint32_t, Confidence< int32_t > > ®StackAdjust) |
| void | SetClobberedRegisters (const Confidence< std::set< uint32_t > > &clobbered) |
| bool | HasUserType () const |
| void | ApplyImportedTypes (Symbol *sym, Ref< Type > type=nullptr) |
| void | ApplyAutoDiscoveredType (Type *type) |
| Ref< FlowGraph > | CreateFunctionGraph (const FunctionViewType &type, DisassemblySettings *settings=nullptr) |
| Ref< FlowGraph > | CreateFunctionGraphImmediate (const FunctionViewType &type, DisassemblySettings *settings=nullptr) |
| std::map< int64_t, std::vector< VariableNameAndType > > | GetStackLayout () |
| void | CreateAutoStackVariable (int64_t offset, const Confidence< Ref< Type > > &type, const std::string &name) |
| void | CreateUserStackVariable (int64_t offset, const Confidence< Ref< Type > > &type, const std::string &name) |
| void | DeleteAutoStackVariable (int64_t offset) |
| void | DeleteUserStackVariable (int64_t offset) |
| bool | GetStackVariableAtFrameOffset (Architecture *arch, uint64_t addr, int64_t offset, VariableNameAndType &var) |
| bool | GetStackVariableAtFrameOffsetAfterInstruction (Architecture *arch, uint64_t addr, int64_t offset, VariableNameAndType &var) |
| std::map< Variable, VariableNameAndType > | GetVariables () |
| List of Function Variables. | |
| std::set< Variable > | GetMediumLevelILVariables () |
| std::set< Variable > | GetMediumLevelILAliasedVariables () |
| std::set< SSAVariable > | GetMediumLevelILSSAVariables () |
| std::set< Variable > | GetHighLevelILVariables () |
| std::set< Variable > | GetHighLevelILAliasedVariables () |
| std::set< SSAVariable > | GetHighLevelILSSAVariables () |
| std::set< Variable > | GetMediumLevelILVariablesIfAvailable () |
| std::set< Variable > | GetMediumLevelILAliasedVariablesIfAvailable () |
| std::set< SSAVariable > | GetMediumLevelILSSAVariablesIfAvailable () |
| std::set< Variable > | GetHighLevelILVariablesIfAvailable () |
| std::set< Variable > | GetHighLevelILAliasedVariablesIfAvailable () |
| std::set< SSAVariable > | GetHighLevelILSSAVariablesIfAvailable () |
| void | CreateAutoVariable (const Variable &var, const Confidence< Ref< Type > > &type, const std::string &name, bool ignoreDisjointUses=false) |
| void | CreateUserVariable (const Variable &var, const Confidence< Ref< Type > > &type, const std::string &name, bool ignoreDisjointUses=false) |
| void | DeleteAutoVariable (const Variable &var) |
| void | DeleteUserVariable (const Variable &var) |
| bool | IsVariableUserDefinded (const Variable &var) |
| Confidence< Ref< Type > > | GetVariableType (const Variable &var) |
| std::string | GetVariableName (const Variable &var) |
| std::string | GetVariableNameOrDefault (const Variable &var) |
| std::string | GetLastSeenVariableNameOrDefault (const Variable &var) |
| void | SetAutoIndirectBranches (Architecture *sourceArch, uint64_t source, const std::vector< ArchAndAddr > &branches) |
| void | SetUserIndirectBranches (Architecture *sourceArch, uint64_t source, const std::vector< ArchAndAddr > &branches) |
| void | SetGuidedSourceBlocks (const std::vector< ArchAndAddr > &addresses) |
| void | AddGuidedSourceBlocks (const std::vector< ArchAndAddr > &addresses) |
| void | RemoveGuidedSourceBlocks (const std::vector< ArchAndAddr > &addresses) |
| bool | IsGuidedSourceBlock (Architecture *arch, uint64_t addr) const |
| std::vector< ArchAndAddr > | GetGuidedSourceBlocks () |
| bool | HasGuidedSourceBlocks () const |
| std::vector< IndirectBranchInfo > | GetIndirectBranches () |
| std::vector< IndirectBranchInfo > | GetIndirectBranchesAt (Architecture *arch, uint64_t addr) |
| Ref< Function > | GetCalleeForAnalysis (Ref< Platform > platform, uint64_t addr, bool exact) |
| std::vector< ArchAndAddr > | GetUnresolvedIndirectBranches () |
| bool | HasUnresolvedIndirectBranches () |
| void | SetAutoCallTypeAdjustment (Architecture *arch, uint64_t addr, const Confidence< Ref< Type > > &adjust) |
| Apply an automatic type adjustment to the call at `addr` in `arch`. | |
| void | SetAutoCallStackAdjustment (Architecture *arch, uint64_t addr, const Confidence< int64_t > &adjust) |
| Apply an automatic stack adjustment to the call at `addr` in `arch`. | |
| void | SetAutoCallRegisterStackAdjustment (Architecture *arch, uint64_t addr, const std::map< uint32_t, Confidence< int32_t > > &adjust) |
| Apply automatic register stack adjustments to the call at `addr` in `arch`. | |
| void | SetAutoCallRegisterStackAdjustment (Architecture *arch, uint64_t addr, uint32_t regStack, const Confidence< int32_t > &adjust) |
| Apply an automatic register stack adjustment for a specific register stack to the call at `addr` in `arch`. | |
| void | SetUserCallTypeAdjustment (Architecture *arch, uint64_t addr, const Confidence< Ref< Type > > &adjust) |
| void | SetUserCallStackAdjustment (Architecture *arch, uint64_t addr, const Confidence< int64_t > &adjust) |
| void | SetUserCallRegisterStackAdjustment (Architecture *arch, uint64_t addr, const std::map< uint32_t, Confidence< int32_t > > &adjust) |
| void | SetUserCallRegisterStackAdjustment (Architecture *arch, uint64_t addr, uint32_t regStack, const Confidence< int32_t > &adjust) |
| Confidence< Ref< Type > > | GetCallTypeAdjustment (Architecture *arch, uint64_t addr) |
| Confidence< int64_t > | GetCallStackAdjustment (Architecture *arch, uint64_t addr) |
| std::map< uint32_t, Confidence< int32_t > > | GetCallRegisterStackAdjustment (Architecture *arch, uint64_t addr) |
| Confidence< int32_t > | GetCallRegisterStackAdjustment (Architecture *arch, uint64_t addr, uint32_t regStack) |
| bool | IsCallInstruction (Architecture *arch, uint64_t addr) |
| std::vector< std::vector< InstructionTextToken > > | GetBlockAnnotations (Architecture *arch, uint64_t addr) |
| BNIntegerDisplayType | GetIntegerConstantDisplayType (Architecture *arch, uint64_t instrAddr, uint64_t value, size_t operand) |
| Ref< Type > | GetIntegerConstantDisplayTypeEnumType (Architecture *arch, uint64_t instrAddr, uint64_t value, size_t operand) |
| void | SetIntegerConstantDisplayType (Architecture *arch, uint64_t instrAddr, uint64_t value, size_t operand, BNIntegerDisplayType type, Ref< Type > enumType=nullptr) |
| std::pair< BNIntegerDisplayType, Ref< Type > > | GetIntegerConstantDisplayTypeAndEnumType (Architecture *arch, uint64_t instrAddr, uint64_t value, size_t operand) |
| BNHighlightColor | GetInstructionHighlight (Architecture *arch, uint64_t addr) |
| void | SetAutoInstructionHighlight (Architecture *arch, uint64_t addr, BNHighlightColor color) |
| void | SetAutoInstructionHighlight (Architecture *arch, uint64_t addr, BNHighlightStandardColor color, uint8_t alpha=255) |
| void | SetAutoInstructionHighlight (Architecture *arch, uint64_t addr, BNHighlightStandardColor color, BNHighlightStandardColor mixColor, uint8_t mix, uint8_t alpha=255) |
| void | SetAutoInstructionHighlight (Architecture *arch, uint64_t addr, uint8_t r, uint8_t g, uint8_t b, uint8_t alpha=255) |
| void | SetUserInstructionHighlight (Architecture *arch, uint64_t addr, BNHighlightColor color) |
| void | SetUserInstructionHighlight (Architecture *arch, uint64_t addr, BNHighlightStandardColor color, uint8_t alpha=255) |
| void | SetUserInstructionHighlight (Architecture *arch, uint64_t addr, BNHighlightStandardColor color, BNHighlightStandardColor mixColor, uint8_t mix, uint8_t alpha=255) |
| void | SetUserInstructionHighlight (Architecture *arch, uint64_t addr, uint8_t r, uint8_t g, uint8_t b, uint8_t alpha=255) |
| std::vector< TagReference > | GetAllTagReferences () |
| std::vector< TagReference > | GetTagReferencesOfType (Ref< TagType > tagType) |
| std::vector< TagReference > | GetAddressTagReferences () |
| std::vector< TagReference > | GetAutoAddressTagReferences () |
| std::vector< TagReference > | GetUserAddressTagReferences () |
| std::vector< Ref< Tag > > | GetAddressTags (Architecture *arch, uint64_t addr) |
| std::vector< Ref< Tag > > | GetAutoAddressTags (Architecture *arch, uint64_t addr) |
| std::vector< Ref< Tag > > | GetUserAddressTags (Architecture *arch, uint64_t addr) |
| std::vector< Ref< Tag > > | GetAddressTagsOfType (Architecture *arch, uint64_t addr, Ref< TagType > tagType) |
| std::vector< Ref< Tag > > | GetAutoAddressTagsOfType (Architecture *arch, uint64_t addr, Ref< TagType > tagType) |
| std::vector< Ref< Tag > > | GetUserAddressTagsOfType (Architecture *arch, uint64_t addr, Ref< TagType > tagType) |
| std::vector< TagReference > | GetAddressTagsInRange (Architecture *arch, uint64_t start, uint64_t end) |
| std::vector< TagReference > | GetAutoAddressTagsInRange (Architecture *arch, uint64_t start, uint64_t end) |
| std::vector< TagReference > | GetUserAddressTagsInRange (Architecture *arch, uint64_t start, uint64_t end) |
| void | AddAutoAddressTag (Architecture *arch, uint64_t addr, Ref< Tag > tag) |
| void | RemoveAutoAddressTag (Architecture *arch, uint64_t addr, Ref< Tag > tag) |
| void | RemoveAutoAddressTagsOfType (Architecture *arch, uint64_t addr, Ref< TagType > tagType) |
| void | AddUserAddressTag (Architecture *arch, uint64_t addr, Ref< Tag > tag) |
| void | RemoveUserAddressTag (Architecture *arch, uint64_t addr, Ref< Tag > tag) |
| void | RemoveUserAddressTagsOfType (Architecture *arch, uint64_t addr, Ref< TagType > tagType) |
| std::vector< TagReference > | GetFunctionTagReferences () |
| std::vector< TagReference > | GetAutoFunctionTagReferences () |
| std::vector< TagReference > | GetUserFunctionTagReferences () |
| std::vector< Ref< Tag > > | GetFunctionTags () |
| std::vector< Ref< Tag > > | GetAutoFunctionTags () |
| std::vector< Ref< Tag > > | GetUserFunctionTags () |
| std::vector< Ref< Tag > > | GetFunctionTagsOfType (Ref< TagType > tagType) |
| std::vector< Ref< Tag > > | GetAutoFunctionTagsOfType (Ref< TagType > tagType) |
| std::vector< Ref< Tag > > | GetUserFunctionTagsOfType (Ref< TagType > tagType) |
| void | AddAutoFunctionTag (Ref< Tag > tag) |
| void | RemoveAutoFunctionTag (Ref< Tag > tag) |
| void | RemoveAutoFunctionTagsOfType (Ref< TagType > tagType) |
| void | AddUserFunctionTag (Ref< Tag > tag) |
| void | RemoveUserFunctionTag (Ref< Tag > tag) |
| void | RemoveUserFunctionTagsOfType (Ref< TagType > tagType) |
| Ref< Tag > | CreateAutoAddressTag (Architecture *arch, uint64_t addr, const std::string &tagTypeName, const std::string &data, bool unique=false) |
| Ref< Tag > | CreateUserAddressTag (Architecture *arch, uint64_t addr, const std::string &tagTypeName, const std::string &data, bool unique=false) |
| Ref< Tag > | CreateAutoFunctionTag (const std::string &tagTypeName, const std::string &data, bool unique=false) |
| Ref< Tag > | CreateUserFunctionTag (const std::string &tagTypeName, const std::string &data, bool unique=false) |
| Ref< Tag > | CreateAutoAddressTag (Architecture *arch, uint64_t addr, Ref< TagType > tagType, const std::string &data, bool unique=false) |
| Ref< Tag > | CreateUserAddressTag (Architecture *arch, uint64_t addr, Ref< TagType > tagType, const std::string &data, bool unique=false) |
| Ref< Tag > | CreateAutoFunctionTag (Ref< TagType > tagType, const std::string &data, bool unique=false) |
| Ref< Tag > | CreateUserFunctionTag (Ref< TagType > tagType, const std::string &data, bool unique=false) |
| void | Analyze () |
| void | Reanalyze (BNFunctionUpdateType type=UserFunctionUpdate) |
| void | MarkUpdatesRequired (BNFunctionUpdateType type=UserFunctionUpdate) |
| void | MarkCallerUpdatesRequired (BNFunctionUpdateType type=UserFunctionUpdate) |
| Ref< Workflow > | GetWorkflow () |
| void | RequestAdvancedAnalysisData () |
| void | ReleaseAdvancedAnalysisData () |
| void | ReleaseAdvancedAnalysisData (size_t count) |
| std::map< std::string, double > | GetAnalysisPerformanceInfo () |
| std::vector< DisassemblyTextLine > | GetTypeTokens (DisassemblySettings *settings=nullptr) |
| Confidence< RegisterValue > | GetGlobalPointerValue () const |
| bool | UsesIncomingGlobalPointer () const |
| Confidence< RegisterValue > | GetRegisterValueAtExit (uint32_t reg) const |
| bool | IsFunctionTooLarge () |
| Whether the function is too large to automatically perform analysis. | |
| bool | IsAnalysisSkipped () |
| Whether automatic analysis was skipped for this function. | |
| BNAnalysisSkipReason | GetAnalysisSkipReason () |
| BNFunctionAnalysisSkipOverride | GetAnalysisSkipOverride () |
| void | SetAnalysisSkipOverride (BNFunctionAnalysisSkipOverride skip) |
| Ref< FlowGraph > | GetUnresolvedStackAdjustmentGraph () |
| void | SetUserVariableValue (const Variable &var, const ArchAndAddr &defAddr, PossibleValueSet &value, bool after=true) |
| void | ClearUserVariableValue (const Variable &var, const ArchAndAddr &defAddr, bool after=true) |
| std::map< Variable, std::map< std::pair< ArchAndAddr, bool >, PossibleValueSet > > | GetAllUserVariableValues () |
| void | ClearAllUserVariableValues () |
| void | CreateForcedVariableVersion (const Variable &var, const ArchAndAddr &location) |
| void | ClearForcedVariableVersion (const Variable &var, const ArchAndAddr &location) |
| void | SetFieldResolutionForVariableAt (const Variable &var, const ArchAndAddr &location, FieldResolutionInfo *info) |
| void | ClearFieldResolutionForVariableAt (const Variable &var, const ArchAndAddr &location) |
| Ref< FieldResolutionInfo > | GetFieldResolutionForVariableAt (const Variable &var, const ArchAndAddr &location) |
| std::map< Variable, std::map< ArchAndAddr, Ref< FieldResolutionInfo > > > | GetAllFieldResolutions () |
| void | RequestDebugReport (const std::string &name) |
| bool | CheckForDebugReport (const std::string &name) |
| std::string | GetGotoLabelName (uint64_t labelId) |
| Get the name for a given label ID. | |
| void | SetGotoLabelName (uint64_t labelId, const std::string &name) |
| Set the name for a given label ID. | |
| BNDeadStoreElimination | GetVariableDeadStoreElimination (const Variable &var) |
| void | SetVariableDeadStoreElimination (const Variable &var, BNDeadStoreElimination mode) |
| BNExprFolding | GetExprFolding (uint64_t addr) |
| void | SetExprFolding (uint64_t addr, BNExprFolding mode) |
| bool | IsConditionInverted (uint64_t addr) |
| void | SetConditionInverted (uint64_t addr, bool invert) |
| BNEarlyReturn | GetEarlyReturn (uint64_t addr) |
| void | SetEarlyReturn (uint64_t addr, BNEarlyReturn mode) |
| BNSwitchRecovery | GetSwitchRecovery (uint64_t addr) |
| void | SetSwitchRecovery (uint64_t addr, BNSwitchRecovery mode) |
| std::map< Variable, std::set< Variable > > | GetMergedVariables () |
| void | MergeVariables (const Variable &target, const std::set< Variable > &sources) |
| void | UnmergeVariables (const Variable &target, const std::set< Variable > &sources) |
| std::set< Variable > | GetSplitVariables () |
| void | SplitVariable (const Variable &var) |
| void | UnsplitVariable (const Variable &var) |
| uint64_t | GetHighestAddress () |
| The highest (largest) virtual address contained in a function. | |
| uint64_t | GetLowestAddress () |
| The lowest (smallest) virtual address contained in a function. | |
| std::vector< BNAddressRange > | GetAddressRanges () |
| All of the address ranges covered by a function. | |
| bool | GetInstructionContainingAddress (Architecture *arch, uint64_t addr, uint64_t *start) |
| Confidence< bool > | IsInlinedDuringAnalysis () |
| void | SetAutoInlinedDuringAnalysis (Confidence< bool > inlined) |
| Set whether the function should be inlined during analysis. | |
| void | SetUserInlinedDuringAnalysis (Confidence< bool > inlined) |
| bool | IsInstructionCollapsed (const HighLevelILInstruction &instr, uint64_t designator=0) const |
| bool | IsCollapsed () const |
| void | ToggleRegion (uint64_t hash) |
| void | CollapseRegion (uint64_t hash) |
| void | ExpandRegion (uint64_t hash) |
| void | ExpandAll () |
| void | StoreMetadata (const std::string &key, Ref< Metadata > value, bool isAuto=false) |
| Ref< Metadata > | QueryMetadata (const std::string &key) |
| Ref< Metadata > | GetMetadata () |
| Ref< Metadata > | GetAutoMetadata () |
| void | RemoveMetadata (const std::string &key) |
| Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNFunction, BNNewFunctionReference, BNFreeFunction > | |
| CoreRefCountObject () | |
| virtual | ~CoreRefCountObject () |
| BNFunction * | GetObject () const |
| void | AddRef () |
| void | Release () |
| void | AddRefForRegistration () |
| void | ReleaseForRegistration () |
| void | AddRefForCallback () |
| void | ReleaseForCallback () |
◆ ~Function()
|
virtual |
◆ GetView()
◆ GetArchitecture()
Get the architecture this function was defined with.
- Returns
- an Architecture reference
◆ GetPlatform()
Get the platform this function was defined with.
- Returns
- a Platform reference
◆ GetStart()
| uint64_t Function::GetStart | ( | ) | const |
Get the starting virtual address of this function.
- Returns
- the start address
◆ GetSymbol()
◆ IsExported()
| bool Function::IsExported | ( | ) | const |
- Returns
- Whether the function's symbol is globally or weakly bound (treated as exported)
◆ WasAutomaticallyDiscovered()
| bool Function::WasAutomaticallyDiscovered | ( | ) | const |
Whether this function was automatically discovered by analysis.
- Returns
- Whether the function was automatically discovered
◆ HasUserAnnotations()
| bool Function::HasUserAnnotations | ( | ) | const |
Whether this function has user annotations.
- Returns
- Whether this function has user annotations
◆ CanReturn()
Whether this function can return.
- Returns
- Whether this function can return
◆ IsPure()
Whether this function is pure.
- Returns
- Whether this function is pure
◆ HasExplicitlyDefinedType()
| bool Function::HasExplicitlyDefinedType | ( | ) | const |
Whether this function has an explicitly defined type.
- Returns
- Whether this function has an explicitly defined type
◆ NeedsUpdate()
| bool Function::NeedsUpdate | ( | ) | const |
Whether this function needs update.
- Returns
- Whether this function needs update
◆ GetBasicBlocks()
Get a list of Basic Blocks for this function.
- Returns
- a list of BasicBlock references for this function
◆ GetBasicBlockAtAddress()
Get the basic block an address is located in.
- Parameters
- Returns
◆ MarkRecentUse()
| void Function::MarkRecentUse | ( | ) |
Mark this function as recently used.
◆ GetComment()
| string Function::GetComment | ( | ) | const |
Get the function comment.
- Returns
- The function comment
◆ GetCommentForAddress()
| string Function::GetCommentForAddress | ( | uint64_t | addr | ) | const |
Get a comment located at an address.
- Returns
- The comment at an address
◆ GetCommentedAddresses()
| vector< uint64_t > Function::GetCommentedAddresses | ( | ) | const |
Get a list of addresses with comments.
- Returns
- A list of virtual addresses with comments
◆ SetComment()
| void Function::SetComment | ( | const std::string & | comment | ) |
Set the comment for the function.
- Parameters
-
comment The new function comment
◆ SetCommentForAddress()
| void Function::SetCommentForAddress | ( | uint64_t | addr, |
| const std::string & | comment ) |
Set the comment at an address.
- Parameters
-
addr Address for the comment comment Text of the comment
◆ GetCallSites()
Get a list of callsites for this function.
- Returns
- a list of ReferenceSource
◆ AddUserCodeReference()
| void Function::AddUserCodeReference | ( | Architecture * | fromArch, |
| uint64_t | fromAddr, | ||
| uint64_t | toAddr ) |
Places a user-defined cross-reference from the instruction at the given address and architecture to the specified target address.
If the specified source instruction is not contained within this function, no action is performed. To remove the reference, use `RemoveUserCodeReference`.
- Parameters
-
fromArch Architecture of the source instruction fromAddr Virtual address of the source instruction toAddr Virtual address of the xref's destination.
◆ RemoveUserCodeReference()
| void Function::RemoveUserCodeReference | ( | Architecture * | fromArch, |
| uint64_t | fromAddr, | ||
| uint64_t | toAddr ) |
Removes a user-defined cross-reference.
If the given address is not contained within this function, or if there is no such user-defined cross-reference, no action is performed.
- Parameters
-
fromArch Architecture of the source instruction fromAddr Virtual address of the source instruction toAddr Virtual address of the xref's destination.
◆ AddUserTypeReference()
Places a user-defined type cross-reference from the instruction at the given address and architecture to the specified type.
If the specified source instruction is not contained within this function, no action is performed. To remove the reference, use `RemoveUserTypeReference`.
- Parameters
-
fromArch Architecture of the source instruction fromAddr Virtual address of the source instruction name Name of the referenced type
◆ RemoveUserTypeReference()
Removes a user-defined type cross-reference.
If the given address is not contained within this function, or if there is no such user-defined cross-reference, no action is performed.
- Parameters
-
fromArch Architecture of the source instruction fromAddr Virtual address of the source instruction name Name of the referenced type
◆ AddUserTypeFieldReference()
| void Function::AddUserTypeFieldReference | ( | Architecture * | fromArch, |
| uint64_t | fromAddr, | ||
| const QualifiedName & | name, | ||
| uint64_t | offset, | ||
| size_t | size = 0 ) |
Places a user-defined type field cross-reference from the instruction at the given address and architecture to the specified type.
If the specified source instruction is not contained within this function, no action is performed. To remove the reference, use :func:`remove_user_type_field_ref`.
- Parameters
-
fromArch Architecture of the source instruction fromAddr Virtual address of the source instruction name Name of the referenced type offset Offset of the field, relative to the type size (Optional) size of the access
◆ RemoveUserTypeFieldReference()
| void Function::RemoveUserTypeFieldReference | ( | Architecture * | fromArch, |
| uint64_t | fromAddr, | ||
| const QualifiedName & | name, | ||
| uint64_t | offset, | ||
| size_t | size = 0 ) |
Removes a user-defined type field cross-reference.
If the given address is not contained within this function, or if there is no such user-defined cross-reference, no action is performed.
- Parameters
-
fromArch Architecture of the source instruction fromAddr Virtual address of the source instruction name Name of the referenced type offset Offset of the field, relative to the type size (Optional) size of the access
◆ GetLowLevelIL()
◆ GetLowLevelILIfAvailable()
◆ GetConstantData()
◆ GetRegisterValueAtInstruction()
◆ GetRegisterValueAfterInstruction()
◆ GetStackContentsAtInstruction()
◆ GetStackContentsAfterInstruction()
◆ GetParameterValueAtInstruction()
◆ GetParameterValueAtLowLevelILInstruction()
| RegisterValue Function::GetParameterValueAtLowLevelILInstruction | ( | size_t | instr, |
| Type * | functionType, | ||
| size_t | i ) |
◆ GetRegistersReadByInstruction()
| vector< uint32_t > Function::GetRegistersReadByInstruction | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetRegistersWrittenByInstruction()
| vector< uint32_t > Function::GetRegistersWrittenByInstruction | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetStackVariablesReferencedByInstruction()
| vector< StackVariableReference > Function::GetStackVariablesReferencedByInstruction | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetStackVariablesReferencedByInstructionIfAvailable()
| vector< StackVariableReference > Function::GetStackVariablesReferencedByInstructionIfAvailable | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetConstantsReferencedByInstruction()
◆ GetConstantsReferencedByInstructionIfAvailable()
◆ GetMediumLevelILVariableReferences()
◆ GetMediumLevelILVariableReferencesFrom()
◆ GetMediumLevelILVariableReferencesInRange()
◆ GetMediumLevelILVariableReferencesIfAvailable()
◆ GetMediumLevelILVariableReferencesFromIfAvailable()
◆ GetMediumLevelILVariableReferencesInRangeIfAvailable()
◆ GetHighLevelILVariableReferences()
◆ GetHighLevelILVariableReferencesFrom()
◆ GetHighLevelILVariableReferencesInRange()
◆ GetHighLevelILVariableReferencesIfAvailable()
◆ GetHighLevelILVariableReferencesFromIfAvailable()
◆ GetHighLevelILVariableReferencesInRangeIfAvailable()
◆ GetLiftedIL()
◆ GetLiftedILIfAvailable()
◆ GetLiftedILForInstruction()
| size_t BinaryNinja::Function::GetLiftedILForInstruction | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetLiftedILInstructionsForAddress()
| std::set< size_t > BinaryNinja::Function::GetLiftedILInstructionsForAddress | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetLiftedILFlagUsesForDefinition()
| set< size_t > Function::GetLiftedILFlagUsesForDefinition | ( | size_t | i, |
| uint32_t | flag ) |
◆ GetLiftedILFlagDefinitionsForUse()
| set< size_t > Function::GetLiftedILFlagDefinitionsForUse | ( | size_t | i, |
| uint32_t | flag ) |
◆ GetFlagsReadByLiftedILInstruction()
| set< uint32_t > Function::GetFlagsReadByLiftedILInstruction | ( | size_t | i | ) |
◆ GetFlagsWrittenByLiftedILInstruction()
| set< uint32_t > Function::GetFlagsWrittenByLiftedILInstruction | ( | size_t | i | ) |
◆ GetMediumLevelIL()
◆ GetMediumLevelILIfAvailable()
Get the MLIL for this Function if it's available.
- Returns
- The MLIL for this Function if it's available.
◆ GetMappedMediumLevelIL()
◆ GetMappedMediumLevelILIfAvailable()
Get the Mapped MLIL for this Function if it's available.
- Returns
- The Mapped MLIL for this Function if it's available.
◆ GetHighLevelIL()
◆ GetHighLevelILIfAvailable()
Get the HLIL for this Function if it's available.
- Returns
- The HLIL for this Function if it's available.
◆ GetLanguageRepresentation()
◆ GetLanguageRepresentationIfAvailable()
◆ GetType()
◆ GetReturnType()
◆ GetReturnRegisters()
| Confidence< vector< uint32_t > > Function::GetReturnRegisters | ( | ) | const |
◆ GetCallingConvention()
◆ GetParameterVariables()
◆ HasVariableArguments()
| Confidence< bool > Function::HasVariableArguments | ( | ) | const |
◆ GetStackAdjustment()
| Confidence< int64_t > Function::GetStackAdjustment | ( | ) | const |
◆ GetRegisterStackAdjustments()
| map< uint32_t, Confidence< int32_t > > Function::GetRegisterStackAdjustments | ( | ) | const |
◆ GetClobberedRegisters()
| Confidence< set< uint32_t > > Function::GetClobberedRegisters | ( | ) | const |
◆ SetAutoType()
| void Function::SetAutoType | ( | Type * | type | ) |
◆ SetAutoReturnType()
◆ SetAutoReturnRegisters()
| void Function::SetAutoReturnRegisters | ( | const Confidence< std::vector< uint32_t > > & | returnRegs | ) |
◆ SetAutoCallingConvention()
◆ SetAutoParameterVariables()
| void Function::SetAutoParameterVariables | ( | const Confidence< std::vector< Variable > > & | vars | ) |
◆ SetAutoHasVariableArguments()
| void Function::SetAutoHasVariableArguments | ( | const Confidence< bool > & | varArgs | ) |
◆ SetAutoCanReturn()
| void Function::SetAutoCanReturn | ( | const Confidence< bool > & | returns | ) |
◆ SetAutoPure()
| void Function::SetAutoPure | ( | const Confidence< bool > & | pure | ) |
◆ SetAutoStackAdjustment()
| void Function::SetAutoStackAdjustment | ( | const Confidence< int64_t > & | stackAdjust | ) |
◆ SetAutoRegisterStackAdjustments()
| void Function::SetAutoRegisterStackAdjustments | ( | const std::map< uint32_t, Confidence< int32_t > > & | regStackAdjust | ) |
◆ SetAutoClobberedRegisters()
| void Function::SetAutoClobberedRegisters | ( | const Confidence< std::set< uint32_t > > & | clobbered | ) |
◆ SetUserType()
| void Function::SetUserType | ( | Type * | type | ) |
◆ SetReturnType()
◆ SetReturnRegisters()
| void Function::SetReturnRegisters | ( | const Confidence< std::vector< uint32_t > > & | returnRegs | ) |
◆ SetCallingConvention()
◆ SetParameterVariables()
| void Function::SetParameterVariables | ( | const Confidence< std::vector< Variable > > & | vars | ) |
◆ SetHasVariableArguments()
| void Function::SetHasVariableArguments | ( | const Confidence< bool > & | varArgs | ) |
◆ SetCanReturn()
| void Function::SetCanReturn | ( | const Confidence< bool > & | returns | ) |
◆ SetPure()
| void Function::SetPure | ( | const Confidence< bool > & | pure | ) |
◆ SetStackAdjustment()
| void Function::SetStackAdjustment | ( | const Confidence< int64_t > & | stackAdjust | ) |
◆ SetRegisterStackAdjustments()
| void Function::SetRegisterStackAdjustments | ( | const std::map< uint32_t, Confidence< int32_t > > & | regStackAdjust | ) |
◆ SetClobberedRegisters()
| void Function::SetClobberedRegisters | ( | const Confidence< std::set< uint32_t > > & | clobbered | ) |
◆ HasUserType()
| bool Function::HasUserType | ( | ) | const |
◆ ApplyImportedTypes()
◆ ApplyAutoDiscoveredType()
| void Function::ApplyAutoDiscoveredType | ( | Type * | type | ) |
◆ CreateFunctionGraph()
◆ CreateFunctionGraphImmediate()
◆ GetStackLayout()
| map< int64_t, vector< VariableNameAndType > > Function::GetStackLayout | ( | ) |
◆ CreateAutoStackVariable()
| void Function::CreateAutoStackVariable | ( | int64_t | offset, |
| const Confidence< Ref< Type > > & | type, | ||
| const std::string & | name ) |
◆ CreateUserStackVariable()
| void Function::CreateUserStackVariable | ( | int64_t | offset, |
| const Confidence< Ref< Type > > & | type, | ||
| const std::string & | name ) |
◆ DeleteAutoStackVariable()
| void Function::DeleteAutoStackVariable | ( | int64_t | offset | ) |
◆ DeleteUserStackVariable()
| void Function::DeleteUserStackVariable | ( | int64_t | offset | ) |
◆ GetStackVariableAtFrameOffset()
| bool Function::GetStackVariableAtFrameOffset | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| int64_t | offset, | ||
| VariableNameAndType & | var ) |
◆ GetStackVariableAtFrameOffsetAfterInstruction()
| bool Function::GetStackVariableAtFrameOffsetAfterInstruction | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| int64_t | offset, | ||
| VariableNameAndType & | var ) |
◆ GetVariables()
◆ GetMediumLevelILVariables()
| set< Variable > Function::GetMediumLevelILVariables | ( | ) |
◆ GetMediumLevelILAliasedVariables()
| set< Variable > Function::GetMediumLevelILAliasedVariables | ( | ) |
◆ GetMediumLevelILSSAVariables()
| set< SSAVariable > Function::GetMediumLevelILSSAVariables | ( | ) |
◆ GetHighLevelILVariables()
| set< Variable > Function::GetHighLevelILVariables | ( | ) |
◆ GetHighLevelILAliasedVariables()
| set< Variable > Function::GetHighLevelILAliasedVariables | ( | ) |
◆ GetHighLevelILSSAVariables()
| set< SSAVariable > Function::GetHighLevelILSSAVariables | ( | ) |
◆ GetMediumLevelILVariablesIfAvailable()
| set< Variable > Function::GetMediumLevelILVariablesIfAvailable | ( | ) |
◆ GetMediumLevelILAliasedVariablesIfAvailable()
| set< Variable > Function::GetMediumLevelILAliasedVariablesIfAvailable | ( | ) |
◆ GetMediumLevelILSSAVariablesIfAvailable()
| set< SSAVariable > Function::GetMediumLevelILSSAVariablesIfAvailable | ( | ) |
◆ GetHighLevelILVariablesIfAvailable()
| set< Variable > Function::GetHighLevelILVariablesIfAvailable | ( | ) |
◆ GetHighLevelILAliasedVariablesIfAvailable()
| set< Variable > Function::GetHighLevelILAliasedVariablesIfAvailable | ( | ) |
◆ GetHighLevelILSSAVariablesIfAvailable()
| set< SSAVariable > Function::GetHighLevelILSSAVariablesIfAvailable | ( | ) |
◆ CreateAutoVariable()
| void Function::CreateAutoVariable | ( | const Variable & | var, |
| const Confidence< Ref< Type > > & | type, | ||
| const std::string & | name, | ||
| bool | ignoreDisjointUses = false ) |
◆ CreateUserVariable()
| void Function::CreateUserVariable | ( | const Variable & | var, |
| const Confidence< Ref< Type > > & | type, | ||
| const std::string & | name, | ||
| bool | ignoreDisjointUses = false ) |
◆ DeleteAutoVariable()
| void BinaryNinja::Function::DeleteAutoVariable | ( | const Variable & | var | ) |
◆ DeleteUserVariable()
| void Function::DeleteUserVariable | ( | const Variable & | var | ) |
◆ IsVariableUserDefinded()
| bool Function::IsVariableUserDefinded | ( | const Variable & | var | ) |
◆ GetVariableType()
◆ GetVariableName()
| string Function::GetVariableName | ( | const Variable & | var | ) |
◆ GetVariableNameOrDefault()
| string Function::GetVariableNameOrDefault | ( | const Variable & | var | ) |
◆ GetLastSeenVariableNameOrDefault()
| string Function::GetLastSeenVariableNameOrDefault | ( | const Variable & | var | ) |
◆ SetAutoIndirectBranches()
| void Function::SetAutoIndirectBranches | ( | Architecture * | sourceArch, |
| uint64_t | source, | ||
| const std::vector< ArchAndAddr > & | branches ) |
◆ SetUserIndirectBranches()
| void Function::SetUserIndirectBranches | ( | Architecture * | sourceArch, |
| uint64_t | source, | ||
| const std::vector< ArchAndAddr > & | branches ) |
◆ SetGuidedSourceBlocks()
| void Function::SetGuidedSourceBlocks | ( | const std::vector< ArchAndAddr > & | addresses | ) |
◆ AddGuidedSourceBlocks()
| void Function::AddGuidedSourceBlocks | ( | const std::vector< ArchAndAddr > & | addresses | ) |
◆ RemoveGuidedSourceBlocks()
| void Function::RemoveGuidedSourceBlocks | ( | const std::vector< ArchAndAddr > & | addresses | ) |
◆ IsGuidedSourceBlock()
| bool Function::IsGuidedSourceBlock | ( | Architecture * | arch, |
| uint64_t | addr ) const |
◆ GetGuidedSourceBlocks()
| std::vector< ArchAndAddr > Function::GetGuidedSourceBlocks | ( | ) |
◆ HasGuidedSourceBlocks()
| bool Function::HasGuidedSourceBlocks | ( | ) | const |
◆ GetIndirectBranches()
| vector< IndirectBranchInfo > Function::GetIndirectBranches | ( | ) |
◆ GetIndirectBranchesAt()
| vector< IndirectBranchInfo > Function::GetIndirectBranchesAt | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetCalleeForAnalysis()
| Ref< Function > Function::GetCalleeForAnalysis | ( | Ref< Platform > | platform, |
| uint64_t | addr, | ||
| bool | exact ) |
◆ GetUnresolvedIndirectBranches()
| vector< ArchAndAddr > Function::GetUnresolvedIndirectBranches | ( | ) |
◆ HasUnresolvedIndirectBranches()
| bool Function::HasUnresolvedIndirectBranches | ( | ) |
◆ SetAutoCallTypeAdjustment()
Apply an automatic type adjustment to the call at `addr` in `arch`.
The adjustment will take effect if the new confidence level is higher than the confidence level of any existing adjustment at the given address, whether automatic or user-defined.
- Parameters
-
arch Architecture for the call instruction addr Address of the call instruction adjust Type adjustment to apply
◆ SetAutoCallStackAdjustment()
| void Function::SetAutoCallStackAdjustment | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| const Confidence< int64_t > & | adjust ) |
Apply an automatic stack adjustment to the call at `addr` in `arch`.
The adjustment will take effect if the new confidence level is higher than the confidence level of any existing adjustment at the given address, whether automatic or user-defined.
- Parameters
-
arch Architecture for the call instruction addr Address of the call instruction adjust Stack adjustment to apply
◆ SetAutoCallRegisterStackAdjustment() [1/2]
| void BinaryNinja::Function::SetAutoCallRegisterStackAdjustment | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| const std::map< uint32_t, Confidence< int32_t > > & | adjust ) |
Apply automatic register stack adjustments to the call at `addr` in `arch`.
- Note
- This overwrites any existing register stack adjustments at the given address, irrespective of their confidence level.
- Parameters
-
arch Architecture for the call instruction addr Address of the call instruction adjust Map of register stack adjustments to apply
◆ SetAutoCallRegisterStackAdjustment() [2/2]
| void Function::SetAutoCallRegisterStackAdjustment | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| uint32_t | regStack, | ||
| const Confidence< int32_t > & | adjust ) |
Apply an automatic register stack adjustment for a specific register stack to the call at `addr` in `arch`.
The adjustment will take effect if the new confidence level is higher than the confidence level of any existing adjustment at the given address, whether automatic or user-defined.
- Parameters
-
arch Architecture for the call instruction addr Address of the call instruction regStack Register stack identifier adjust Register stack adjustment to apply
◆ SetUserCallTypeAdjustment()
◆ SetUserCallStackAdjustment()
| void Function::SetUserCallStackAdjustment | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| const Confidence< int64_t > & | adjust ) |
◆ SetUserCallRegisterStackAdjustment() [1/2]
| void BinaryNinja::Function::SetUserCallRegisterStackAdjustment | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| const std::map< uint32_t, Confidence< int32_t > > & | adjust ) |
◆ SetUserCallRegisterStackAdjustment() [2/2]
| void Function::SetUserCallRegisterStackAdjustment | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| uint32_t | regStack, | ||
| const Confidence< int32_t > & | adjust ) |
◆ GetCallTypeAdjustment()
◆ GetCallStackAdjustment()
◆ GetCallRegisterStackAdjustment() [1/2]
| map< uint32_t, Confidence< int32_t > > Function::GetCallRegisterStackAdjustment | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetCallRegisterStackAdjustment() [2/2]
| Confidence< int32_t > Function::GetCallRegisterStackAdjustment | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| uint32_t | regStack ) |
◆ IsCallInstruction()
| bool Function::IsCallInstruction | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetBlockAnnotations()
◆ GetIntegerConstantDisplayType()
◆ GetIntegerConstantDisplayTypeEnumType()
| Ref< Type > Function::GetIntegerConstantDisplayTypeEnumType | ( | Architecture * | arch, |
| uint64_t | instrAddr, | ||
| uint64_t | value, | ||
| size_t | operand ) |
◆ SetIntegerConstantDisplayType()
◆ GetIntegerConstantDisplayTypeAndEnumType()
◆ GetInstructionHighlight()
◆ SetAutoInstructionHighlight() [1/4]
◆ SetAutoInstructionHighlight() [2/4]
◆ SetAutoInstructionHighlight() [3/4]
◆ SetAutoInstructionHighlight() [4/4]
| void Function::SetAutoInstructionHighlight | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| uint8_t | r, | ||
| uint8_t | g, | ||
| uint8_t | b, | ||
| uint8_t | alpha = 255 ) |
◆ SetUserInstructionHighlight() [1/4]
◆ SetUserInstructionHighlight() [2/4]
◆ SetUserInstructionHighlight() [3/4]
◆ SetUserInstructionHighlight() [4/4]
| void Function::SetUserInstructionHighlight | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| uint8_t | r, | ||
| uint8_t | g, | ||
| uint8_t | b, | ||
| uint8_t | alpha = 255 ) |
◆ GetAllTagReferences()
| std::vector< TagReference > Function::GetAllTagReferences | ( | ) |
◆ GetTagReferencesOfType()
◆ GetAddressTagReferences()
| std::vector< TagReference > Function::GetAddressTagReferences | ( | ) |
◆ GetAutoAddressTagReferences()
| std::vector< TagReference > Function::GetAutoAddressTagReferences | ( | ) |
◆ GetUserAddressTagReferences()
| std::vector< TagReference > Function::GetUserAddressTagReferences | ( | ) |
◆ GetAddressTags()
◆ GetAutoAddressTags()
| std::vector< Ref< Tag > > Function::GetAutoAddressTags | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetUserAddressTags()
| std::vector< Ref< Tag > > Function::GetUserAddressTags | ( | Architecture * | arch, |
| uint64_t | addr ) |
◆ GetAddressTagsOfType()
◆ GetAutoAddressTagsOfType()
◆ GetUserAddressTagsOfType()
◆ GetAddressTagsInRange()
◆ GetAutoAddressTagsInRange()
◆ GetUserAddressTagsInRange()
◆ AddAutoAddressTag()
◆ RemoveAutoAddressTag()
| void Function::RemoveAutoAddressTag | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| Ref< Tag > | tag ) |
◆ RemoveAutoAddressTagsOfType()
◆ AddUserAddressTag()
◆ RemoveUserAddressTag()
| void Function::RemoveUserAddressTag | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| Ref< Tag > | tag ) |
◆ RemoveUserAddressTagsOfType()
◆ GetFunctionTagReferences()
| std::vector< TagReference > Function::GetFunctionTagReferences | ( | ) |
◆ GetAutoFunctionTagReferences()
| std::vector< TagReference > Function::GetAutoFunctionTagReferences | ( | ) |
◆ GetUserFunctionTagReferences()
| std::vector< TagReference > Function::GetUserFunctionTagReferences | ( | ) |
◆ GetFunctionTags()
◆ GetAutoFunctionTags()
◆ GetUserFunctionTags()
◆ GetFunctionTagsOfType()
◆ GetAutoFunctionTagsOfType()
◆ GetUserFunctionTagsOfType()
◆ AddAutoFunctionTag()
◆ RemoveAutoFunctionTag()
◆ RemoveAutoFunctionTagsOfType()
◆ AddUserFunctionTag()
◆ RemoveUserFunctionTag()
◆ RemoveUserFunctionTagsOfType()
◆ CreateAutoAddressTag() [1/2]
| Ref< Tag > Function::CreateAutoAddressTag | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| const std::string & | tagTypeName, | ||
| const std::string & | data, | ||
| bool | unique = false ) |
◆ CreateUserAddressTag() [1/2]
| Ref< Tag > Function::CreateUserAddressTag | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| const std::string & | tagTypeName, | ||
| const std::string & | data, | ||
| bool | unique = false ) |
◆ CreateAutoFunctionTag() [1/2]
| Ref< Tag > Function::CreateAutoFunctionTag | ( | const std::string & | tagTypeName, |
| const std::string & | data, | ||
| bool | unique = false ) |
◆ CreateUserFunctionTag() [1/2]
| Ref< Tag > Function::CreateUserFunctionTag | ( | const std::string & | tagTypeName, |
| const std::string & | data, | ||
| bool | unique = false ) |
◆ CreateAutoAddressTag() [2/2]
| Ref< Tag > Function::CreateAutoAddressTag | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| Ref< TagType > | tagType, | ||
| const std::string & | data, | ||
| bool | unique = false ) |
◆ CreateUserAddressTag() [2/2]
| Ref< Tag > Function::CreateUserAddressTag | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| Ref< TagType > | tagType, | ||
| const std::string & | data, | ||
| bool | unique = false ) |
◆ CreateAutoFunctionTag() [2/2]
| Ref< Tag > Function::CreateAutoFunctionTag | ( | Ref< TagType > | tagType, |
| const std::string & | data, | ||
| bool | unique = false ) |
◆ CreateUserFunctionTag() [2/2]
| Ref< Tag > Function::CreateUserFunctionTag | ( | Ref< TagType > | tagType, |
| const std::string & | data, | ||
| bool | unique = false ) |
◆ Analyze()
| void Function::Analyze | ( | ) |
◆ Reanalyze()
◆ MarkUpdatesRequired()
◆ MarkCallerUpdatesRequired()
◆ GetWorkflow()
◆ RequestAdvancedAnalysisData()
| void Function::RequestAdvancedAnalysisData | ( | ) |
◆ ReleaseAdvancedAnalysisData() [1/2]
| void Function::ReleaseAdvancedAnalysisData | ( | ) |
◆ ReleaseAdvancedAnalysisData() [2/2]
| void BinaryNinja::Function::ReleaseAdvancedAnalysisData | ( | size_t | count | ) |
◆ GetAnalysisPerformanceInfo()
| map< string, double > Function::GetAnalysisPerformanceInfo | ( | ) |
◆ GetTypeTokens()
◆ GetGlobalPointerValue()
◆ UsesIncomingGlobalPointer()
| bool Function::UsesIncomingGlobalPointer | ( | ) | const |
◆ GetRegisterValueAtExit()
◆ IsFunctionTooLarge()
| bool Function::IsFunctionTooLarge | ( | ) |
Whether the function is too large to automatically perform analysis.
- Returns
- Whether the function is too large to automatically perform analysis
◆ IsAnalysisSkipped()
| bool Function::IsAnalysisSkipped | ( | ) |
Whether automatic analysis was skipped for this function.
- Returns
- Whether automatic analysis was skipped for this function.
◆ GetAnalysisSkipReason()
◆ GetAnalysisSkipOverride()
◆ SetAnalysisSkipOverride()
◆ GetUnresolvedStackAdjustmentGraph()
◆ SetUserVariableValue()
| void Function::SetUserVariableValue | ( | const Variable & | var, |
| const ArchAndAddr & | defAddr, | ||
| PossibleValueSet & | value, | ||
| bool | after = true ) |
◆ ClearUserVariableValue()
| void Function::ClearUserVariableValue | ( | const Variable & | var, |
| const ArchAndAddr & | defAddr, | ||
| bool | after = true ) |
◆ GetAllUserVariableValues()
| map< Variable, map< pair< ArchAndAddr, bool >, PossibleValueSet > > Function::GetAllUserVariableValues | ( | ) |
◆ ClearAllUserVariableValues()
| void Function::ClearAllUserVariableValues | ( | ) |
◆ CreateForcedVariableVersion()
| void Function::CreateForcedVariableVersion | ( | const Variable & | var, |
| const ArchAndAddr & | location ) |
◆ ClearForcedVariableVersion()
| void Function::ClearForcedVariableVersion | ( | const Variable & | var, |
| const ArchAndAddr & | location ) |
◆ SetFieldResolutionForVariableAt()
◆ ClearFieldResolutionForVariableAt()
| void Function::ClearFieldResolutionForVariableAt | ( | const Variable & | var, |
| const ArchAndAddr & | location ) |
◆ GetFieldResolutionForVariableAt()
◆ GetAllFieldResolutions()
◆ RequestDebugReport()
| void Function::RequestDebugReport | ( | const std::string & | name | ) |
◆ CheckForDebugReport()
| bool Function::CheckForDebugReport | ( | const std::string & | name | ) |
◆ GetGotoLabelName()
| string Function::GetGotoLabelName | ( | uint64_t | labelId | ) |
Get the name for a given label ID.
- Parameters
-
labelId ID For the label. Saved in the highlight token value.
- Returns
- Name for the label
◆ SetGotoLabelName()
| void Function::SetGotoLabelName | ( | uint64_t | labelId, |
| const std::string & | name ) |
Set the name for a given label ID.
- Parameters
-
labelId ID For the label. Saved in the highlight token value. name New name for the label
◆ GetVariableDeadStoreElimination()
◆ SetVariableDeadStoreElimination()
◆ GetExprFolding()
◆ SetExprFolding()
| void Function::SetExprFolding | ( | uint64_t | addr, |
| BNExprFolding | mode ) |
◆ IsConditionInverted()
| bool Function::IsConditionInverted | ( | uint64_t | addr | ) |
◆ SetConditionInverted()
| void Function::SetConditionInverted | ( | uint64_t | addr, |
| bool | invert ) |
◆ GetEarlyReturn()
◆ SetEarlyReturn()
| void Function::SetEarlyReturn | ( | uint64_t | addr, |
| BNEarlyReturn | mode ) |
◆ GetSwitchRecovery()
◆ SetSwitchRecovery()
◆ GetMergedVariables()
◆ MergeVariables()
◆ UnmergeVariables()
◆ GetSplitVariables()
| std::set< Variable > Function::GetSplitVariables | ( | ) |
◆ SplitVariable()
| void Function::SplitVariable | ( | const Variable & | var | ) |
◆ UnsplitVariable()
| void Function::UnsplitVariable | ( | const Variable & | var | ) |
◆ GetHighestAddress()
| uint64_t Function::GetHighestAddress | ( | ) |
The highest (largest) virtual address contained in a function.
- Returns
- The highest (largest) virtual address contained in a function.
◆ GetLowestAddress()
| uint64_t Function::GetLowestAddress | ( | ) |
The lowest (smallest) virtual address contained in a function.
- Returns
- The lowest (smallest) virtual address contained in a function.
◆ GetAddressRanges()
All of the address ranges covered by a function.
- Returns
- All of the address ranges covered by a function
◆ GetInstructionContainingAddress()
| bool Function::GetInstructionContainingAddress | ( | Architecture * | arch, |
| uint64_t | addr, | ||
| uint64_t * | start ) |
◆ IsInlinedDuringAnalysis()
| Confidence< bool > Function::IsInlinedDuringAnalysis | ( | ) |
◆ SetAutoInlinedDuringAnalysis()
| void Function::SetAutoInlinedDuringAnalysis | ( | Confidence< bool > | inlined | ) |
Set whether the function should be inlined during analysis.
This will take effect if the new confidence level is higher than the confidence level of the existing value of `IsInlinedDuringAnalysis`, whether automatic or user-defined.
- Parameters
-
inlined Whether the function should be inlined.
◆ SetUserInlinedDuringAnalysis()
| void Function::SetUserInlinedDuringAnalysis | ( | Confidence< bool > | inlined | ) |
◆ IsInstructionCollapsed()
◆ IsCollapsed()
| bool Function::IsCollapsed | ( | ) | const |
◆ ToggleRegion()
| void Function::ToggleRegion | ( | uint64_t | hash | ) |
◆ CollapseRegion()
| void Function::CollapseRegion | ( | uint64_t | hash | ) |
◆ ExpandRegion()
| void Function::ExpandRegion | ( | uint64_t | hash | ) |
◆ ExpandAll()
| void Function::ExpandAll | ( | ) |
◆ StoreMetadata()
| void Function::StoreMetadata | ( | const std::string & | key, |
| Ref< Metadata > | value, | ||
| bool | isAuto = false ) |
◆ QueryMetadata()
◆ GetMetadata()
◆ GetAutoMetadata()
◆ RemoveMetadata()
| void Function::RemoveMetadata | ( | const std::string & | key | ) |