diff options
Diffstat (limited to 'ui')
| -rw-r--r-- | ui/commands.h | 5 | ||||
| -rw-r--r-- | ui/createstructdialog.h | 2 | ||||
| -rw-r--r-- | ui/createtypedialog.h | 2 | ||||
| -rw-r--r-- | ui/linearview.h | 20 |
4 files changed, 25 insertions, 4 deletions
diff --git a/ui/commands.h b/ui/commands.h index f95664f1..0a591437 100644 --- a/ui/commands.h +++ b/ui/commands.h @@ -18,7 +18,7 @@ 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 createInferredMember(QWidget* parent, BinaryViewRef data, HighlightTokenState& highlight, FunctionRef func); bool BINARYNINJAUIAPI overwriteCode(BinaryViewRef data, ArchitectureRef arch, uint64_t addr, size_t len, const BinaryNinja::DataBuffer& buffer); @@ -29,3 +29,6 @@ StructureRef BINARYNINJAUIAPI getInnerMostStructureContaining(BinaryViewRef data size_t& memberIndex, const std::vector<std::string>& nameList, size_t nameIndex, TypeRef& type, std::string& typeName); StructureRef BINARYNINJAUIAPI getInnerMostStructureContainingOffset(BinaryViewRef data, StructureRef structure, const std::vector<std::string>& nameList, size_t nameIndex, size_t& offset, TypeRef& type, std::string& typeName); + +// Auto generate a structure name +std::string BINARYNINJAUIAPI createStructureName(BinaryViewRef data);
\ No newline at end of file diff --git a/ui/createstructdialog.h b/ui/createstructdialog.h index df117411..096adefb 100644 --- a/ui/createstructdialog.h +++ b/ui/createstructdialog.h @@ -16,7 +16,7 @@ class BINARYNINJAUIAPI CreateStructDialog: public QDialog uint64_t m_resultSize; public: - CreateStructDialog(QWidget* parent); + CreateStructDialog(QWidget* parent, const std::string& name); BinaryNinja::QualifiedName getName() { return m_resultName; } uint64_t getSize() { return m_resultSize; } diff --git a/ui/createtypedialog.h b/ui/createtypedialog.h index 1d0effe3..552f2076 100644 --- a/ui/createtypedialog.h +++ b/ui/createtypedialog.h @@ -16,7 +16,7 @@ class BINARYNINJAUIAPI CreateTypeDialog: public QDialog std::map<BinaryNinja::QualifiedName, TypeRef> m_results; public: - CreateTypeDialog(QWidget* parent, BinaryViewRef data, const QString& definition); + CreateTypeDialog(QWidget* parent, BinaryViewRef data, const QString& title, const QString& definition); std::map<BinaryNinja::QualifiedName, TypeRef> getResults() { return m_results; } private Q_SLOTS: diff --git a/ui/linearview.h b/ui/linearview.h index b30e127c..53e8802c 100644 --- a/ui/linearview.h +++ b/ui/linearview.h @@ -127,6 +127,18 @@ class BINARYNINJAUIAPI LinearView: public QAbstractScrollArea, public View, publ bool isLineValidHighlight(const BinaryNinja::LinearDisassemblyLine& line); void ensureLineVisible(size_t line); + TypeRef createStructure(BinaryNinja::QualifiedName& name, uint64_t size); + StructureRef defineInnerType(TypeRef type, TypeRef baseType, uint64_t offset, uint64_t size); + StructureRef defineInnerPointer(TypeRef type, ArchitectureRef arch, uint64_t baseAddress, uint64_t offset, uint64_t size); + StructureRef defineInnerStruct(TypeRef type, uint64_t offset, uint64_t size); + StructureRef defineInnerArray(TypeRef type, uint64_t offset, uint64_t size); + StructureRef defineInnerName(TypeRef type, uint64_t offset, uint64_t size); + StructureRef defineInnerUnknownType(QWidget* parent, TypeRef type, uint64_t offset, uint64_t size); + StructureRef defineInnerIntegerSize(TypeRef type, uint64_t offset, uint64_t size); + StructureRef defineInnerSign(TypeRef type, uint64_t offset, uint64_t size); + TypeRef getPointerTypeAndName(ArchitectureRef arch, uint64_t addr, std::string& name); + std::string getVariableName(uint64_t addr); + private Q_SLOTS: void viewInHexEditor(); void viewInGraph(); @@ -155,15 +167,21 @@ private Q_SLOTS: void skipAndReturnZero(); void skipAndReturnValue(); + void makeTypes(TypeRef type); void makeInt8(); void makeInt16(); void makeInt32(); void makeInt64(); void toggleIntSize(); + void toggleIntSign(); void makePtr(); void makeString(); void changeType(); - void inferStructureType(); + void createStructOrinferStructureType(); + void createArray(); + void createStruct(); + void createNewTypes(); + size_t getStringLength(uint64_t startAddr); void displayAsDefault(); |
