summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2015-08-18 02:21:22 -0400
committerRusty Wagner <rusty@vector35.com>2015-08-18 02:21:22 -0400
commit5714f4fc71e6cff04ec025c9976f0e223514e284 (patch)
tree6b59f724c57a23c6c9a2420b6161efb61dfc76bc
parentf4bc1d02a7b4c395338311fb3bcb016cf54f3400 (diff)
Allow plugins to specify ELF relocation types, add imported data symbol support
-rw-r--r--architecture.cpp18
-rw-r--r--binaryninjaapi.h5
2 files changed, 23 insertions, 0 deletions
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