diff --git a/.gitignore b/.gitignore index bc131cc..a65e3d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ venv -output.xlsx \ No newline at end of file +output.xlsx +__pycache__ \ No newline at end of file diff --git a/comp.py b/comp.py index 3d2503f..76aad65 100644 --- a/comp.py +++ b/comp.py @@ -4,6 +4,7 @@ import subprocess # для работы с ida from i64tosqlite import create_sqlite_from_i64 +from exetoi64 import make_i64 # для работы с excel import pandas as pd @@ -16,12 +17,19 @@ def main(): # эти пути необходимо задавать вручную ida_executable = r"C:\tools\IDA\ida.exe" diaphora_dir = r"C:\tools\diaphora" - i64_1_path = r"C:\tools\ilya.exe.i64" - i64_2_path = r"C:\tools\my.exe.i64" + exe_1_path = r"C:\tools\ilya.exe" + exe_2_path = r"C:\tools\my.exe" + # + + # генерация i64 из exe + start = time.perf_counter() + i64_1_path = exe_1_path + ".i64" + i64_2_path = exe_2_path + ".i64" + make_i64(ida_executable, exe_1_path, i64_1_path) + make_i64(ida_executable, exe_2_path, i64_2_path) # # генерация sqlite базы из i64 - start = time.perf_counter() diaphora_script_path = diaphora_dir + r"\diaphora_ida.py" diaphora_path = diaphora_dir + r"\diaphora.py" sqlite1_path = i64_1_path+'.sqlite' @@ -39,6 +47,8 @@ def main(): # # удаляю ненужное + os.remove(i64_1_path) + os.remove(i64_2_path) os.remove(sqlite1_path) os.remove(sqlite2_path) os.remove(sql_output_path) diff --git a/exetoi64.py b/exetoi64.py new file mode 100644 index 0000000..b59b979 --- /dev/null +++ b/exetoi64.py @@ -0,0 +1,22 @@ +import os +import subprocess + +def make_i64(ida_executable, infile, idbfile): + if os.path.isfile(idbfile): + print("\033[31mSkipping existing IDB %s. Analysis has already been made\033[0m" % idbfile) + return + + print(f"\033[92mAnalysing {infile}...\033[0m") + + cmd = [ida_executable, "-B", "-o%s" % idbfile, infile] + + process = subprocess.Popen(cmd, shell=True) + process.wait() + +if __name__ == "__main__": + + ida_executable = r"C:\Users\user\Desktop\IDA Pro 7.7.220118 (Windows) (x86,x64,ARM64)\ida64.exe" + exe_file = r"C:\tools\ilya.exe" + i64path = exe_file + ".i64" + + make_i64(ida_executable, exe_file, i64path) \ No newline at end of file