Как сравнить два EXE-файла, найти различия и декомпилировать их с помощью Cutter или Radare2? - PullRequest
3 голосов
/ 27 января 2020

После нескольких дней борьбы я хотел бы спросить сообщество:)

У меня есть два exe-файла. Оба размера и довольно большие (около 80 МБ).

  • Первый исполняемый файл - это оригинальный файл, который был скомпилирован некоторое время go. У меня также есть соответствующий файл PDB.
  • Второй файл практически идентичен первому, но он был исправлен в двоичном формате в нескольких местах.

Мне удалось декомпилировать файлы с помощью Cutter (Radare2 GUI), но, учитывая размер файла, почти невозможно go использовать для каждого метода.

С помощью Hex Editor (Hex Fiend) мне удалось получить каждое смещение место, где был применен патч. Теперь я пытаюсь найти эти смещения с помощью Cutter, чтобы декомпилировать местоположения.

Вопрос: как? Когда я открываю Hexdump в Cutter, кажется, что все не на месте, и мне может потребоваться смещение. Установка смещения на загрузочном экране в Cutter, похоже, ничего не делает. Я неправильно его использую?

Пример:

HexFiend

Offset                Hex Data                                         Text
474942-474956         47 65 74 4D 6F 64 75 6C 65 48 61 6E 64 6C 65 41  GetModuleHandleA

Резак

Offset                Hex Data                                         Text
0x0060713E-0x0060714D 47 65 74 4D 6F 64 75 6C 65 48 61 6E 64 6C 65 41  GetModuleHandleA

474942 0x73F3E, но это далеко от 0x0060713E

Может быть, мне нужны другие инструменты? Любая помощь приветствуется!

...