From 3f36f01667138e248d030701b9c0c047c1c7f5d7 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Wed, 18 Feb 2015 00:44:25 -0500 Subject: Add simple basic block analysis --- binaryview.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'binaryview.cpp') diff --git a/binaryview.cpp b/binaryview.cpp index 1dc21283..e99ed738 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -48,6 +48,7 @@ BinaryView::BinaryView(FileMetadata* file) view.getModification = GetModificationCallback; view.getStart = GetStartCallback; view.getLength = GetLengthCallback; + view.getEntryPoint = GetEntryPointCallback; view.isExecutable = IsExecutableCallback; view.save = SaveCallback; @@ -118,6 +119,13 @@ uint64_t BinaryView::GetLengthCallback(void* ctxt) } +uint64_t BinaryView::GetEntryPointCallback(void* ctxt) +{ + BinaryView* view = (BinaryView*)ctxt; + return view->PerformGetEntryPoint(); +} + + bool BinaryView::IsExecutableCallback(void* ctxt) { BinaryView* view = (BinaryView*)ctxt; @@ -286,6 +294,12 @@ uint64_t BinaryView::GetLength() const } +uint64_t BinaryView::GetEntryPoint() const +{ + return BNGetEntryPoint(m_view); +} + + bool BinaryView::IsExecutable() const { return BNIsExecutableView(m_view); @@ -298,6 +312,18 @@ bool BinaryView::Save(FileAccessor* file) } +void BinaryView::AddFunctionForAnalysis(Architecture* arch, uint64_t addr) +{ + BNAddFunctionForAnalysis(m_view, arch->GetArchitectureObject(), addr); +} + + +void BinaryView::UpdateAnalysis() +{ + BNUpdateAnalysis(m_view); +} + + BinaryData::BinaryData(FileMetadata* file): BinaryView(BNCreateBinaryDataView(file->GetFileObject())) { } -- cgit v1.3.1