diff options
| author | Xusheng <xusheng@vector35.com> | 2021-02-05 20:28:13 +0800 |
|---|---|---|
| committer | Xusheng <xusheng@vector35.com> | 2021-04-22 10:52:39 +0800 |
| commit | c4b1dd712783e7474570705e6d95183a0c02a76e (patch) | |
| tree | 0393986e0078cb20610c8ad091db061f8f41a08b /ui/viewframe.h | |
| parent | a355d5c9aa1978d10f378931bfd5f06be60bae98 (diff) | |
add persistent search result
Diffstat (limited to 'ui/viewframe.h')
| -rw-r--r-- | ui/viewframe.h | 50 |
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(); |
