diff options
| author | Brian Potchik <brian@vector35.com> | 2020-10-24 22:18:28 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2020-10-24 22:18:28 -0400 |
| commit | 905382cc267cc1d0ee5e3c6e122819b869f46701 (patch) | |
| tree | 1c8b911942d53c4c0a149f5a188874b7c158501e /ui | |
| parent | 798ff5b7e7b2de73d70017ddb0fc5e52150d9584 (diff) | |
PossibleValueSet dialog pulls existing values and miscellaneous cleanup.
Diffstat (limited to 'ui')
| -rw-r--r-- | ui/commands.h | 2 | ||||
| -rw-r--r-- | ui/possiblevaluesetdialog.h | 58 |
2 files changed, 17 insertions, 43 deletions
diff --git a/ui/commands.h b/ui/commands.h index d033fd21..d0e8b981 100644 --- a/ui/commands.h +++ b/ui/commands.h @@ -23,7 +23,7 @@ bool BINARYNINJAUIAPI createInferredMember(QWidget* parent, BinaryViewRef data, FunctionRef func, BNFunctionGraphType type); bool BINARYNINJAUIAPI inputPossibleValueSet(QWidget* parent, BinaryViewRef data, FunctionRef currentFunction, - HighlightTokenState& highlight, uint64_t defSiteAddress); + HighlightTokenState& highlight, uint64_t defSiteAddress, size_t ilInstructionIndex = BN_INVALID_EXPR); bool BINARYNINJAUIAPI overwriteCode(BinaryViewRef data, ArchitectureRef arch, uint64_t addr, size_t len, const BinaryNinja::DataBuffer& buffer); diff --git a/ui/possiblevaluesetdialog.h b/ui/possiblevaluesetdialog.h index 5b5550a3..d2229de7 100644 --- a/ui/possiblevaluesetdialog.h +++ b/ui/possiblevaluesetdialog.h @@ -2,59 +2,33 @@ #include <QtWidgets/QDialog> #include <QtWidgets/QLabel> -#include <QtCore/QStringListModel> #include <QtWidgets/QComboBox> #include <QtWidgets/QLineEdit> -#include <QtCore/QTimer> -#include <QtCore/QThread> -#include <QToolTip> -#include "binaryninjaapi.h" -#include "dialogtextedit.h" -#include "clickablelabel.h" + +#include "uitypes.h" class BINARYNINJAUIAPI PossibleValueSetDialog: public QDialog { Q_OBJECT - QComboBox* m_combo; - QLineEdit* m_value; - QStringListModel* m_model; - QLabel* m_prompt; - QString m_promptText; - ClickableLabel* m_valueLabel; BinaryViewRef m_view; - bool m_resultValid; - QStringList m_historyEntries; - int m_historySize; - QFont m_defaultFont; - bool m_initialTextSelection; - BinaryNinja::PossibleValueSet m_valueSet; + uint64_t m_addr; + + QComboBox* m_combo; + QLineEdit* m_input; QPushButton* m_acceptButton; - QPalette m_defaultPalette; - QString m_parseError; - uint64_t m_here; - QTimer* m_updateTimer; + QLabel* m_formatLabel; -private Q_SLOTS: - void accepted(); - void checkParse(); - void updateTimerEvent(); - void showHelp(); - void stateChanged(const QString&); + std::map<BNRegisterValueType, QString> m_typeText; + std::map<BNRegisterValueType, QString> m_formatText; + std::map<QString, BNRegisterValueType> m_regValueTypes; + BNRegisterValueType m_curRegValueType; + + BinaryNinja::PossibleValueSet m_valueSet; public: - PossibleValueSetDialog(QWidget* parent, BinaryViewRef view, uint64_t here); - BinaryNinja::PossibleValueSet getPossibleValueSet() const { return m_valueSet; } - static BNRegisterValueType getRegisterValueTypeFromString(const std::string& stateStr); -}; + PossibleValueSetDialog(QWidget* parent, BinaryViewRef view, uint64_t addr, BinaryNinja::PossibleValueSet existingValue); -static const QStringList valueSets = { - "ConstantValue", - "ConstantPointerValue", - "StackFrameOffset", - "SignedRangeValue", - "UnsignedRangeValue", - "InSetOfValues", - "NotInSetOfValues", - "UndeterminedValue", + BinaryNinja::PossibleValueSet getPossibleValueSet() const { return m_valueSet; } + void validate(const QString& input); }; |
