From c4921a6265a995d9aade424672f0eb3d28afe0f5 Mon Sep 17 00:00:00 2001 From: Gilad Reich Date: Mon, 27 Jan 2020 02:32:45 +0100 Subject: [PATCH] Compile and execute .idc file containing structures to import. --- src/ida_migrator/import_dialog.py | 13 +++++++++++++ src/ida_migrator/migrator_dialog.py | 1 + 2 files changed, 14 insertions(+) diff --git a/src/ida_migrator/import_dialog.py b/src/ida_migrator/import_dialog.py index d992fdb..277ebbb 100644 --- a/src/ida_migrator/import_dialog.py +++ b/src/ida_migrator/import_dialog.py @@ -45,4 +45,17 @@ def rename_functions(self): def on_start_clicked(self): count = self.rename_functions() print("[IDA Migrator]: {} functions has been renamed.".format(count)) + + answer = QMessageBox.question(self, 'QUESTION', + """Would you like to import type information as well? (structs, enums) + \nYou'll need to provide the dumped IDC file.""", + QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) + + if answer == QMessageBox.Yes: + # idc.process_ui_action('Execute') + dir_path = os.path.dirname(idc.GetIdbPath()) + file_path, _ = QFileDialog.getOpenFileName(self, "Select File to Import", dir_path, "IDC Script (*.idc)") + if file_path: + ida_expr.exec_idc_script(None, file_path.encode(), "main", None, 0) + QMessageBox.information(self, "SUCCESS", "Successfully renamed {} functions.".format(count)) diff --git a/src/ida_migrator/migrator_dialog.py b/src/ida_migrator/migrator_dialog.py index e8fee08..9e77cd2 100644 --- a/src/ida_migrator/migrator_dialog.py +++ b/src/ida_migrator/migrator_dialog.py @@ -5,6 +5,7 @@ import idc import idaapi import idautils +import ida_expr from ida_migrator import UI_DIR