From 5019d87a1936a07f86512d6de5cbd4b0db3ea25b Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Tue, 27 Aug 2019 07:37:10 -0400 Subject: Add support for showing structure offsets and inferring types via hotkey, add changing names/types of structure members from linear/graph view --- ui/commands.h | 8 +++++--- ui/flowgraphwidget.h | 1 + ui/linearview.h | 1 + ui/tokenizedtextview.h | 1 + 4 files changed, 8 insertions(+), 3 deletions(-) (limited to 'ui') diff --git a/ui/commands.h b/ui/commands.h index dd088850..f95664f1 100644 --- a/ui/commands.h +++ b/ui/commands.h @@ -18,12 +18,14 @@ bool BINARYNINJAUIAPI askForNewType(QWidget* parent, BinaryViewRef data, Functio TypeRef& type, BinaryNinja::QualifiedName& name); bool BINARYNINJAUIAPI inputNewType(QWidget* parent, BinaryViewRef data, FunctionRef currentFunction, uint64_t currentAddr, HighlightTokenState& highlight); +bool BINARYNINJAUIAPI createInferredMember(BinaryViewRef data, HighlightTokenState& highlight); bool BINARYNINJAUIAPI overwriteCode(BinaryViewRef data, ArchitectureRef arch, uint64_t addr, size_t len, const BinaryNinja::DataBuffer& buffer); bool BINARYNINJAUIAPI overwriteCode(BinaryViewRef data, ArchitectureRef arch, uint64_t addr, const BinaryNinja::DataBuffer& buffer); -StructureRef BINARYNINJAUIAPI getInnerMostStructureContaining( - StructureRef structure, size_t& memberIndex, const std::vector& nameList, - size_t nameIndex); +StructureRef BINARYNINJAUIAPI getInnerMostStructureContaining(BinaryViewRef data, StructureRef structure, + size_t& memberIndex, const std::vector& nameList, size_t nameIndex, TypeRef& type, std::string& typeName); +StructureRef BINARYNINJAUIAPI getInnerMostStructureContainingOffset(BinaryViewRef data, StructureRef structure, + const std::vector& nameList, size_t nameIndex, size_t& offset, TypeRef& type, std::string& typeName); diff --git a/ui/flowgraphwidget.h b/ui/flowgraphwidget.h index 3ec61019..9c4dfcd0 100644 --- a/ui/flowgraphwidget.h +++ b/ui/flowgraphwidget.h @@ -283,6 +283,7 @@ private Q_SLOTS: void undefineFunc(); void createFunc(); void changeType(); + void inferStructureType(); void comment(); void addUserXref(); void functionComment(); diff --git a/ui/linearview.h b/ui/linearview.h index 486b2326..fe31de8a 100644 --- a/ui/linearview.h +++ b/ui/linearview.h @@ -162,6 +162,7 @@ private Q_SLOTS: void makePtr(); void makeString(); void changeType(); + void inferStructureType(); size_t getStringLength(uint64_t startAddr); void displayAsDefault(); diff --git a/ui/tokenizedtextview.h b/ui/tokenizedtextview.h index e54b5842..95c47666 100644 --- a/ui/tokenizedtextview.h +++ b/ui/tokenizedtextview.h @@ -88,6 +88,7 @@ class BINARYNINJAUIAPI TokenizedTextView: public QAbstractScrollArea, public Vie void makePtr(); void makeString(); void changeType(); + void inferStructureType(); size_t getStringLength(uint64_t startAddr); void displayAsDefault(); -- cgit v1.3.1