#ifndef OPTIONSDIALOG_H #define OPTIONSDIALOG_H #include #include #include #include #include #include "core/Cutter.h" #include "common/AnalTask.h" #include "common/InitialOptions.h" namespace Ui { class InitialOptionsDialog; } class MainWindow; class InitialOptionsDialog : public QDialog { Q_OBJECT public: explicit InitialOptionsDialog(MainWindow *main); ~InitialOptionsDialog(); QStringList asm_plugins; void setupAndStartAnalysis(/*int level, QList advanced*/); private slots: void on_okButton_clicked(); void on_analSlider_valueChanged(int value); void on_AdvOptButton_clicked(); void on_analCheckBox_clicked(bool checked); void on_archComboBox_currentIndexChanged(int index); void on_pdbSelectButton_clicked(); void on_scriptSelectButton_clicked(); void updatePDBLayout(); void updateScriptLayout(); protected: void closeEvent(QCloseEvent *event) override; private: std::unique_ptr ui; MainWindow *main; CutterCore *core; QString analysisDescription(int level); QString shellcode; int analLevel; void updateCPUComboBox(); QString getSelectedArch(); QString getSelectedCPU(); int getSelectedBits(); int getSelectedBBSize(); InitialOptions::Endianness getSelectedEndianness(); QString getSelectedOS(); QList getSelectedAdvancedAnalCmds(); public: void loadOptions(const InitialOptions &options); void reject() override; }; #endif // OPTIONSDIALOG_H