eXeLab
eXeL@B ВИДЕОКУРС !

Курс видеоуроков «Программирование и взлом 2O18»
Обновлен 13 сентября 2O18 года
Свежие инструменты, новые видеоуроки!

  • 300+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: thun1977 (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› CmpDisasm - Утилита для сравнения PE файлов в дизассемблированном виде
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 12 . 13 . >>
Посл.ответ Сообщение

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 30 января 2009 16:33 · Поправил: crc1 New!
Цитата · Личное сообщение · #1

В HEX виде много разных утилей для сравнения файлов. В дизассемблированном не встречал. Наваял свою.
Баг-репорты приветствуются
******************************************
Выравнивания на длину инструкции НЕ БУДЕТ
******************************************
History:
* 30 января 2009 г. v 0.1
* Собственно первый глючный вариант

* 29 марта 2009 г. v 0.35
* Добавлен пункт меню "Copy address to clipboard" в контекстном меню
* Добавлена примочка "stay on top", запоминается в реестре.
* Окно проги разворачивается на весь экран
* Добавлена цветовая схема, цвет запоминается в реестре
* Открывает занятые файлы + возможность работать с этими файлами в других приложениях
* Добавлено отображение адреса VA, либо Offset. Менять можно через меню, либо щелкнув по шапке столбца адреса
* Добавлена информация о секциях, различия выделяются цветом

* 16 октября 2009 г. v 0.5
* Добавлены HEX дампы файлов
* Добавлена возможность сравнивать диапазоны файлов

* 20 января 2010 г. v 0.6
* Поставил ScintillaGadget для вывода HEX дампов
* Исправил некоторые баги
* Добавил выбор двух последних файлов

* 3 февраля 2010 г. v 0.65
* Добавил выбор двух последних файлов, после драг-дропа
* Убирал дублирующиеся записи в логе

* 5 марта 2011 г. v. 0.7
* Заменил двиг на beaengine x86-64 Можно сравнивать 64 битные файлы
* Исправил крешь при запуске на win7

* 6 апреля 2011 г. v. 0.71
* Изменил фейс главного окна
* Сделал выделение цветом различий в File Info в главном окне
* Добавил пункт меню Исключить PE Header из анализа
* Добавил пункт меню "Save differences as"

* 16 октября 2011 v. 0.75
* Добавил просмотр заголовков файлов
* Автоматическое переключение disasm\hex вкладок, в зависимости от код\данные
* Исправил обнаруженные баги

*30 августа 2012 v. 0.76
* Пофиксил баги

*17 декабря 2012 v. 0.77
* Пофиксил баги
* Проверил на win xp sp3, win 7 x32/x64 win 8 x64

*4 апреля 2013 v 0.79
*Изменил интерфейс (кнопки переместил в тулбар)
*По дефолту, заголовок выключен из сканирования
*Исправил баги которые были отправлены в ПМ и которые нашел сам
*Исправил грамматическую ашыпку
--> Link <--

* 13 апреля 2013 v 0.81
* Исправил ошибку при перетаскивании нескольких файлов драг-дропом и некоторые другие
* Добавил сравнение файлов вперед и назад
--> Link <--

* 8 декабря 2013 v 0.83
* Убрал ошибки
* Добавил импорт\экспорт
--> Link <--

* 25 января 2014 v. 0.84
* Добавил командную строку ; использовать: CmpDisasm.exe file1 file2

{ Атач доступен только для участников форума } - CmpDisasm.rar


Ранг: 627.6 (!)
Статус: Участник
Автор VB Decompiler

Создано: 25 января 2011 03:47 New!
Цитата · Личное сообщение · #2

Нафига тему растянул? Не у всех 1920 на 1080 разрешение монитора.

Ранг: 0.3 (гость)
Статус: Участник

Создано: 26 января 2011 16:24 New!
Цитата · Личное сообщение · #3

Почитайте и --> тут <-- про аналоги, может и пригодятся.


Ранг: 78.9 (постоянный)
Статус: Участник

Создано: 11 февраля 2011 07:37 · Поправил: AKAB New!
Цитата · Личное сообщение · #4

у меня вопрос
Если были изменены несколько участков кода CmpDisasm при сравнении показывает только один участок
как мне узнать остальные участки?

Ранг: 189.9 (ветеран)
Статус: Участник

Создано: 11 февраля 2011 08:05 New!
Цитата · Личное сообщение · #5

AKAB После Compare нажми на Log

| Сообщение посчитали полезным: AKAB


Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 13 марта 2011 17:07 · Поправил: crc1 New!
Цитата · Личное сообщение · #6

Новая версия
Поменял движок на BeaEngine, теперь мона сравнивать и x64
+ пара тройка багов

| Сообщение посчитали полезным: [0utC4St], hlmadip, Gideon Vi, 4kusNick, _ruzmaz_


Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 13 марта 2011 17:13 New!
Цитата · Личное сообщение · #7

Да, еще хотел заметить, теперь утиль вроде нрм запускается под win7
У кого есть x64 dll, положите на обменник


Ранг: 109.3 (ветеран)
Статус: Участник
Yes! I_m noob!

Создано: 13 марта 2011 17:16 · Поправил: [0utC4St] New!
Цитата · Личное сообщение · #8

crc1 пишет:
теперь мона сравнивать и x64

Это огромный +
Но вот с кнопками так ничего и не сделано.
Уважаемый crc1, не могли бы вы доделать интерфейс, как предлагалось на предыдущей странице.
Это было бы очень чудно.

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 13 марта 2011 17:26 · Поправил: crc1 New!
Цитата · Личное сообщение · #9

[0utC4St] пишет:
Но вот с кнопками так ничего и не сделано.

Какие блин кнопки???


Ранг: 109.3 (ветеран)
Статус: Участник
Yes! I_m noob!

Создано: 13 марта 2011 17:27 · Поправил: [0utC4St] New!
Цитата · Личное сообщение · #10

crc1, так - http://exelab.ru/f/index.php?action=vthread&forum=3&topic=13687&page=4#30
Или хотя бы так - http://exelab.ru/f/index.php?action=vthread&forum=3&topic=13687&page=4#31

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 13 марта 2011 17:33 · Поправил: crc1 New!
Цитата · Личное сообщение · #11

Уважаемый crc1, не могли бы вы доделать интерфейс, как предлагалось на предыдущей странице.
Уважаемый [0utC4St] ??? Вам кнопки нужы? Их уменя много
Хотелось бы услышать баг-репорты, а непро кнопки


Ранг: 1084.7 (!!!!)
Статус: Участник

Создано: 13 марта 2011 18:17 New!
Цитата · Личное сообщение · #12

crc1 пишет:
У кого есть x64 dll, положите на обменник


dot

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 13 марта 2011 18:48 New!
Цитата · Личное сообщение · #13

Gideon Vi
Оба на, с dll чет нетак с адресацией

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 17 марта 2011 14:07 · Поправил: crc1 New!
Цитата · Личное сообщение · #14

Исправленная версия x86-64

Скачать ниже

| Сообщение посчитали полезным: [0utC4St], _ruzmaz_, sendersu, stas_02



Ранг: 109.3 (ветеран)
Статус: Участник
Yes! I_m noob!

Создано: 17 марта 2011 14:20 · Поправил: [0utC4St] New!
Цитата · Личное сообщение · #15

crc1, http://min.us/lkcDpY

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 27 марта 2011 22:38 New!
Цитата · Личное сообщение · #16

Исправил баг, спасибо [0utC4St]

{ Атач доступен только для участников форума } - CmpDisasm.rar

| Сообщение посчитали полезным: [0utC4St], korsaring, _ruzmaz_, vnekrilov, CTAPi4OK



Ранг: 109.3 (ветеран)
Статус: Участник
Yes! I_m noob!

Создано: 27 марта 2011 22:50 New!
Цитата · Личное сообщение · #17

crc1, а что сабж должен выводить, если сравнивать 2 разных по размеру файла (вариант инлайна)?

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 27 марта 2011 22:56 New!
Цитата · Личное сообщение · #18

[0utC4St] пишет:
а что сабж должен выводить, если сравнивать 2 разных по размеру файла (вариант инлайна)?

Обычно, инлайн делают как говорят где мнооого нулей. Вот сабж и будет сравнивать код инлайна с нулями. Другое дело, если для инлайна добавлена секция тут


Ранг: 109.3 (ветеран)
Статус: Участник
Yes! I_m noob!

Создано: 27 марта 2011 23:07 New!
Цитата · Личное сообщение · #19

crc1, в том примере что я давал инлайн приращением (увеличением секции на 2000h).
...хотелось бы чтоб сабж предупреждал что файлы разного размера или хотя бы подсвечивал различи я в File Info над панелями... (ну это по части пожеланий).
з.ы. Ну и конечно же хочется видеть адаптированный сабж под разрешение монитора кроме как 1920 на 1080.

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 27 марта 2011 23:56 New!
Цитата · Личное сообщение · #20

[0utC4St] пишет:
или хотя бы подсвечивал различи я в File Info над панелями
В Sections Information различия подсвечиваются, подсветку в File Info над панелями время будет, сделаю.
[0utC4St] пишет:
хочется видеть адаптированный сабж под разрешение монитора кроме как 1920 на 1080.

Подскажи каким образом. На 3 или 4 странице этот вопрос уже обсуждали, путного никто не посоветовал. Уменьшать шрифт нельзя. Остается выкидывать или опкоды или инструкции. Твои варианты...
ЗЫ. Или такой способ адаптации: сейчас нельзя изменить размеры окна меньше 1094х580. Я это дело уберу и пусть каждый подстраивает так, как ему надо. Так пойдет?


Ранг: 109.3 (ветеран)
Статус: Участник
Yes! I_m noob!

Создано: 28 марта 2011 00:07 · Поправил: [0utC4St] New!
Цитата · Личное сообщение · #21

crc1 пишет:
Я это дело уберу и пусть каждый подстраивает так, как ему надо. Так пойдет?

Наверно это оптимальный вариант. ( Каким образом подстраивать? )
Вот вариант для ленивых. Переместить кнопки --> так <-- и всё
з.ы. По-ходу повторяюсь....

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 28 марта 2011 00:32 New!
Цитата · Личное сообщение · #22

[0utC4St] пишет:
Вот вариант для ленивых.

Ладно, уговорил, переделаю

Ранг: 133.4 (ветеран)
Статус: Участник

Создано: 28 марта 2011 00:53 New!
Цитата · Личное сообщение · #23

Горизонтальную прокрутку и выбор шрифта


Ранг: 169.1 (ветеран)
Статус: Участник

Создано: 2 апреля 2011 18:31 New!
Цитата · Личное сообщение · #24

Два злобных замечания:

1. На кой там проверка валидности PE? А если хочется сравнить два откуда-то выдранных куска дампов?
2. При попытке сравнения двух достаточно разных файлов, уверяет: "No reason". Если пытаюсь это сделать, то значит "резоны" таки есть.

Про остальное молчу, так как воспользоваться, когда была нужда, просто не удалось. Обошелся другими компараторами, без избытка AI.

Ранг: 328.8 (мудрец)
Статус: Участник

Создано: 3 апреля 2011 06:39 New!
Цитата · Личное сообщение · #25

crc1

А можно ли ссылку на последнюю версию этой утилиты помещать в шапку? Ведь так будет значительно удобнее для пользователей форума

Ранг: 57.1 (постоянный)
Статус: Участник

Создано: 3 апреля 2011 13:24 · Поправил: sys_dev New!
Цитата · Личное сообщение · #26

>>1. На кой там проверка валидности PE? А если хочется сравнить два откуда-то выдранных куска дампов?
А нафига сравнивать бинари? Для сравнения бинарей просто дофигища тулзов!!! К примеру: виндовый "fc" или unix-вая "cmp". Зачем бинарий сравнивать тулзой разработанной исключительно для PE-файлов? Или я чтото не так понял?


Ранг: 169.1 (ветеран)
Статус: Участник

Создано: 3 апреля 2011 18:57 New!
Цитата · Личное сообщение · #27

sys_dev пишет:
что-то не так понял?

Угу.

Для bin-compare средств, действительно, хватает. Но, иногда хочется сравнить именно два куска кода, которые заведомо не совпадают бинарно, но скорее всего, одинаковы. Скажем, использованы другие константы внутри кода или простенький полиморф, основанный на замене регистров итп. Например, так:

Code:
  1.          // 69 15 ** ** ** 00 05 84 08 08    imul  edx, ds:dword_696044, 8088405h
  2.          // 42                               inc   edx
  3.          // 89 15 ** ** ** 00                mov   ds:dword_696044, edx
  4.          // DD 05 ** ** ** 00                fld   ds:dbl_68E034
  5.          // 6A 00                            push  0
  6.          // 52                               push  edx
  7.          // DF 2C 24                         fild  [esp+8+var_8]
  8.          // 83 C4 08                         add   esp, 8
  9.          // DE C9                            fmulp st(1), st
  10.          // C3                               retn


или так:

Code:
  1. ; --- 1
  2. // 0F B6 C1                 MOVZX   EAX, CL
  3. // FF 34 85 6C 52 40 00     PUSH    DS:OFF_xxxxxx[EAX*4]
  4. // C3                       RETN
  5. ; --- 2
  6. // 0F B6 C1                 MOVZX   EAX, CL
  7. // 46                       INC     ESI
  8. // FF 34 85 13 51 40 00     PUSH    DS:OFF_xxxxxx[EAX*4]
  9. // C3                       RETN
  10. ; --- 3
  11. // 0F B6 C2                 MOVZX   EAX, DL
  12. // FF 24 85 05 53 40 00     JMP     DS:OFF_xxxxxx[EAX*4]
  13. ; --- 4
  14. // 46                       INC     ESI
  15. // 0F B6 C2                 MOVZX   EAX, DL
  16. // FF 24 85 40 50 40 00     JMP     DS:OFF_xxxxxx[EAX*4]
  17. ; --- 5
  18. // 8D 14 85 A7 51 40 00     LEA     EDX, OFF_xxxxxx[EAX*4]
  19. // FF 22                    JMP     DWORD PTR [EDX]
  20. ; --- 6
  21. // 0F B6 C0                 MOVZX   EAX, AL
  22. // 8D 14 85 4D 51 40 00     LEA     EDX, OFF_xxxxxx[EAX*4]
  23. // FF 22                    JMP     DWORD PTR [EDX]
  24. ; --- 7
  25. // 46                       INC     ESI
  26. // 0F B6 C0                 MOVZX   EAX, AL
  27. // 8D 0C 85 76 52 40 00     LEA     ECX, OFF_xxxxxx[EAX*4]
  28. // FF 21                    JMP     DWORD PTR [ECX]


Или, требуется сравнить две различных версии одной программы, упакованных, к тому же, разными пакерами, но, предположительно, имеющих в некотором месте функционально идентичный, но бинарно различающийся код. Для этого нужно сравнивать именно дизассемблированный код - и только для этих двух интересующих фрагментов.

Или, например, часть файла вообще исходно была зашифрована, код рипнут и дешифрован отдельно и его, опять-таки, хочется с чем-то сравнить - в исходном виде - без всякой привязки к файлу и валидации.

Большей частью, все это приходится выполнять в два приема: 1. готовить листинги 2. сравнивать исходники. Не будь "лишних" проверок, в ряде случаев это можно было бы сделать "в один клик".

Ранг: 27.2 (посетитель)
Статус: Участник

Создано: 5 апреля 2011 03:23 · Поправил: ADMIN-CRACK New!
Цитата · Личное сообщение · #28

crc1
Вот тут выложил проблемные файлы
http://rghost.ru/5080195
Прога падает при сравнении на вин7 х86.
Старая версия в которой совместимость еще выставлять нужно было нормально отработала.

PS:
64-х разрядная версия тех же файлов, так же валит программу на вин7 х64


Ранг: 558.3 (!)
Статус: Модератор
Research & Development

Создано: 6 апреля 2011 13:00 New!
Цитата · Личное сообщение · #29

Пожелания:

1. Возможность исключать заголовок (PE header) из анализа.
2. Возможность удобной и быстрой навигации по изменениям: список + кнопки "<" и ">"
3. Автоматическое именование файла с отчётом по имени файла слева вместо "CmpDisasm.txt": если загружен файл TargetApp.exe, то анализ будет сохранён в файл TargetApp_CmpDisasm.txt

| Сообщение посчитали полезным: vnekrilov


Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 6 апреля 2011 20:52 New!
Цитата · Личное сообщение · #30

gazlan
Без коментариев. Название топика "Утилита для сравнения PE файлов в дизассемблированном виде"

Привет Юпитер, еще раз сенкс за науку, но здесь я Вам повозвражаю:
1. Зачем иключать PE header из анализа. Пусть будет. Я сам часто пользовался заголовком PE что бы разместить там свой код.
2. Навигация... Давно уже думал об этом, но все руки не доходят. Сейчас выложу поправленую (пока без навигации) версию и если затестят нормально, буду ладить навигацию
3. Именование лог-файла уже обсуждался на третьей странице топа. Может на самом деле сделать "save as..."


Ранг: 1956.3 (!!!!)
Статус: Модератор
retired

Создано: 6 апреля 2011 21:01 New!
Цитата · Личное сообщение · #31

возможность исключения ПЕ хедера из анализа и просто исключение из анализа-разные вещи.
Если 2 и не стоит делать.
То 1 сделать стоит отдельной галкой, типа исключать или нет.
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 12 . 13 . >>
 eXeL@B —› Софт, инструменты —› CmpDisasm - Утилита для сравнения PE файлов в дизассемблированном виде

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS