summaryrefslogtreecommitdiff
path: root/ui/viewframe.h
diff options
context:
space:
mode:
authorXusheng <xusheng@vector35.com>2021-02-05 20:28:13 +0800
committerXusheng <xusheng@vector35.com>2021-04-22 10:52:39 +0800
commitc4b1dd712783e7474570705e6d95183a0c02a76e (patch)
tree0393986e0078cb20610c8ad091db061f8f41a08b /ui/viewframe.h
parenta355d5c9aa1978d10f378931bfd5f06be60bae98 (diff)
add persistent search result
Diffstat (limited to 'ui/viewframe.h')
-rw-r--r--ui/viewframe.h50
1 files changed, 38 insertions, 12 deletions
diff --git a/ui/viewframe.h b/ui/viewframe.h
index 36072430..4d1ebf32 100644
--- a/ui/viewframe.h
+++ b/ui/viewframe.h
@@ -14,6 +14,7 @@
#include <stack>
#include <utility>
#include <vector>
+#include "binaryninjaapi.h"
#include "filecontext.h"
#include "viewtype.h"
#include "action.h"
@@ -78,6 +79,7 @@ class FeatureMap;
class StatusBarWidget;
class ViewNavigationMode;
class TransformParameterDialog;
+// struct BinaryNinjaCore::LinearDisassemblyLine;
class BINARYNINJAUIAPI View
@@ -109,14 +111,31 @@ public:
virtual bool canAssemble() { return false; }
virtual bool canCompile() { return false; }
- virtual bool findNextData(uint64_t start, uint64_t end, const BinaryNinja::DataBuffer& data, uint64_t& addr, BNFindFlag flags,
+ virtual bool findNextData(uint64_t start, uint64_t end, const BinaryNinja::DataBuffer& data,
+ uint64_t& addr, BNFindFlag flags,
const std::function<bool (size_t current, size_t total)>& cb);
- virtual bool findNextText(uint64_t start, uint64_t end, const std::string& text, uint64_t& addr,
- DisassemblySettingsRef settings, BNFindFlag flags,
+ virtual bool findNextText(uint64_t start, uint64_t end, const std::string& text,
+ uint64_t& addr, DisassemblySettingsRef settings, BNFindFlag flags,
+ BNFunctionGraphType graph,
const std::function<bool (size_t current, size_t total)>& cb);
- virtual bool findNextConstant(uint64_t start, uint64_t end, uint64_t constant, uint64_t& addr, DisassemblySettingsRef settings,
+ virtual bool findNextConstant(uint64_t start, uint64_t end, uint64_t constant,
+ uint64_t& addr, DisassemblySettingsRef settings, BNFunctionGraphType graph,
const std::function<bool (size_t current, size_t total)>& cb);
+ virtual bool findAllData(uint64_t start, uint64_t end, const BinaryNinja::DataBuffer& data, BNFindFlag flags,
+ const std::function<bool (size_t current, size_t total)>& cb,
+ const std::function<bool (uint64_t addr, const BinaryNinja::DataBuffer& match)>& matchCallback);
+ virtual bool findAllText(uint64_t start, uint64_t end, const std::string& data,
+ DisassemblySettingsRef settings, BNFindFlag flags, BNFunctionGraphType graph,
+ const std::function<bool (size_t current, size_t total)>& cb,
+ const std::function<bool (uint64_t addr, const std::string& match,
+ const BinaryNinja::LinearDisassemblyLine& line)>& matchCallback);
+ virtual bool findAllConstant(uint64_t start, uint64_t end, uint64_t constant,
+ DisassemblySettingsRef settings, BNFunctionGraphType graph,
+ const std::function<bool (size_t current, size_t total)>& cb,
+ const std::function<bool (uint64_t addr,
+ const BinaryNinja::LinearDisassemblyLine& line)>& matchCallback);
+
virtual BinaryViewRef getData() = 0;
virtual uint64_t getCurrentOffset() = 0;
virtual BNAddressRange getSelectionOffsets();
@@ -307,12 +326,12 @@ public:
QString getShortFileName();
std::vector<QString> getAvailableTypes() const;
- QString getCurrentView();
- QString getCurrentDataType();
- uint64_t getCurrentOffset();
- BNAddressRange getSelectionOffsets();
+ QString getCurrentView() const;
+ QString getCurrentDataType() const;
+ uint64_t getCurrentOffset() const;
+ BNAddressRange getSelectionOffsets() const;
- ViewLocation getViewLocation();
+ ViewLocation getViewLocation() const;
void setViewLocation(const ViewLocation& viewLocation);
View* getCurrentViewInterface() const { return View::getViewFromWidget(m_view); }
@@ -335,9 +354,9 @@ public:
bool goToReference(BinaryViewRef data, FunctionRef func, uint64_t source, uint64_t target, bool addHistoryEntry = true);
bool navigateToViewLocation(BinaryViewRef data, const ViewLocation& viewLocation,
bool addHistoryEntry = true);
- QString getTypeForView(QWidget* view);
- QString getDataTypeForView(const QString& type);
- QString getDataTypeForView(QWidget* view);
+ QString getTypeForView(QWidget* view) const;
+ QString getDataTypeForView(const QString& type) const;
+ QString getDataTypeForView(QWidget* view) const;
bool closeRequest();
void closing();
@@ -367,6 +386,13 @@ public:
void nextTag();
void prevTag();
+ void startNewFind(const BinaryNinja::FindParameters& params);
+ bool updateSearchProgress(uint64_t cur, uint64_t total);
+ void notifySearchCompleted();
+ void addSearchResult(uint64_t addr, const BinaryNinja::DataBuffer& match);
+ void addSearchResult(uint64_t addr, const BinaryNinja::DataBuffer& match,
+ const BinaryNinja::LinearDisassemblyLine& line);
+
virtual UIActionContext actionContext();
void bindActions();
static void registerActions();