From 5714f4fc71e6cff04ec025c9976f0e223514e284 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Tue, 18 Aug 2015 02:21:22 -0400 Subject: Allow plugins to specify ELF relocation types, add imported data symbol support --- architecture.cpp | 18 ++++++++++++++++++ binaryninjaapi.h | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/architecture.cpp b/architecture.cpp index 16ea982f..ae4dd225 100644 --- a/architecture.cpp +++ b/architecture.cpp @@ -490,6 +490,24 @@ void Architecture::RegisterFunctionRecognizer(FunctionRecognizer* recog) } +bool Architecture::IsBinaryViewTypeConstantDefined(const string& type, const string& name) +{ + return BNIsBinaryViewTypeArchitectureConstantDefined(m_arch, type.c_str(), name.c_str()); +} + + +uint64_t Architecture::GetBinaryViewTypeConstant(const string& type, const string& name, uint64_t defaultValue) +{ + return BNGetBinaryViewTypeArchitectureConstant(m_arch, type.c_str(), name.c_str(), defaultValue); +} + + +void Architecture::SetBinaryViewTypeConstant(const string& type, const string& name, uint64_t value) +{ + BNSetBinaryViewTypeArchitectureConstant(m_arch, type.c_str(), name.c_str(), value); +} + + CoreArchitecture::CoreArchitecture(BNArchitecture* arch): Architecture(arch) { } diff --git a/binaryninjaapi.h b/binaryninjaapi.h index c875eb5b..de03b078 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -887,6 +887,11 @@ namespace BinaryNinja virtual bool SkipAndReturnValue(uint8_t* data, uint64_t addr, size_t len, uint64_t value); void RegisterFunctionRecognizer(FunctionRecognizer* recog); + + bool IsBinaryViewTypeConstantDefined(const std::string& type, const std::string& name); + uint64_t GetBinaryViewTypeConstant(const std::string& type, const std::string& name, + uint64_t defaultValue = 0); + void SetBinaryViewTypeConstant(const std::string& type, const std::string& name, uint64_t value); }; class CoreArchitecture: public Architecture -- cgit v1.3.1