Сейчас на форуме: morgot, sashalogout, -Sanchez- (+3 невидимых)

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

Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 30 января 2009 16:33 · Поправил: crc1
· Личное сообщение · #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

48de_25.01.2014_EXELAB.rU.tgz - CmpDisasm.rar




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

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

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

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




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

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

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




Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

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

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



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

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

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

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

Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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

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

Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

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

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

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

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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

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




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

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

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

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

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

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


dot



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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

Скачать ниже

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


Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

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

crc1, http://min.us/lkcDpY

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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

905b_27.03.2011_EXELAB.rU.tgz - CmpDisasm.rar

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


Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

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

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

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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

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




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

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

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

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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

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




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

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

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

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

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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

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



Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

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

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




Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

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

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

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

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



Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

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

crc1

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



Ранг: 57.1 (постоянный), 3thx
Активность: 0.040
Статус: Участник

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

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




Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

Создано: 03 апреля 2011 18:57
· Личное сообщение · #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.8 (посетитель), 51thx
Активность: 0.030
Статус: Участник

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

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

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




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

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

Пожелания:

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

-----
EnJoy!


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

Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

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

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

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




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

возможность исключения ПЕ хедера из анализа и просто исключение из анализа-разные вещи.
Если 2 и не стоит делать.
То 1 сделать стоит отдельной галкой, типа исключать или нет.


<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 12 . 13 . >>
 eXeL@B —› Софт, инструменты —› CmpDisasm - Утилита для сравнения PE файлов в дизассемблированном виде
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати