summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2015-08-17 21:38:27 -0400
committerRusty Wagner <rusty@vector35.com>2015-08-17 21:38:27 -0400
commitf2dadb1046adc01f734182193d48f76a846ae662 (patch)
tree123a8b3837ee60ffb64d9c1c4db9d8fcb9442a89
parent5bb9b6c059e85e81a307a111fef7749cd759a8d0 (diff)
Refactor ELF parser to use dynamic program header instead of section headers for imports
-rw-r--r--binaryninjaapi.h3
-rw-r--r--binaryview.cpp7
2 files changed, 10 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 1030e803..28ef54b6 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -446,6 +446,7 @@ namespace BinaryNinja
void NotifyDataRemoved(uint64_t offset, uint64_t len);
private:
+ static bool InitCallback(void* ctxt);
static size_t ReadCallback(void* ctxt, void* dest, uint64_t offset, size_t len);
static size_t WriteCallback(void* ctxt, uint64_t offset, const void* src, size_t len);
static size_t InsertCallback(void* ctxt, uint64_t offset, const void* src, size_t len);
@@ -464,6 +465,8 @@ namespace BinaryNinja
BinaryView(BNBinaryView* view);
virtual ~BinaryView();
+ virtual bool Init() { return true; }
+
FileMetadata* GetFile() const { return m_file; }
BNBinaryView* GetViewObject() const { return m_view; }
diff --git a/binaryview.cpp b/binaryview.cpp
index 12fa6548..7d9af62e 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -177,6 +177,13 @@ BinaryView::~BinaryView()
}
+bool BinaryView::InitCallback(void* ctxt)
+{
+ BinaryView* view = (BinaryView*)ctxt;
+ return view->Init();
+}
+
+
size_t BinaryView::ReadCallback(void* ctxt, void* dest, uint64_t offset, size_t len)
{
BinaryView* view = (BinaryView*)ctxt;