eXeLab
eXeL@B DVD 2017 !

Видеокурс программиста и крэкера 5D 2O17
(актуальность: июль 2O17)
Свежие инструменты, новые видеоуроки!

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

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

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

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

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

Ранг: 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
SniperOK

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

Создано: 30 января 2009 16:42 New!
· Личное сообщение · #2

www.zynamics.com/index.php?page=bindiff
не оно?
crc1

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

Создано: 30 января 2009 16:45 New!
· Личное сообщение · #3

SniperOK пишет:
не оно?

а х.з. может и оно, не видел. Сейчас посмотрю
Bronco


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

Создано: 30 января 2009 16:47 New!
· Личное сообщение · #4

За...сь, давно чего-тотакого хотелось...
Раскрасить бы как-то это дело, шОб неоднообразно код смотрелсИ .....
crc1

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

Создано: 30 января 2009 17:05 New!
· Личное сообщение · #5

Bronco пишет:
Раскрасить бы как-то это дело

Это как
crc1

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

Создано: 30 января 2009 17:08 New!
· Личное сообщение · #6

SniperOK пишет:
не оно?

хуясе
Single User License 900 € (1215 US$)
borov


Ранг: 534.7 (!)
Статус: Uploader
retired

Создано: 30 января 2009 17:10 · Поправил: borov New!
· Личное сообщение · #7

забавная вещичка, нужно сделать чтобы выдилялись измененое такой же длины как было в оригенали(как-то не понятно объяснил :s1
например в оригинале:
Code:
  1. 00495BF1   7525           JNE O495C1Ah


измененое:
Code:
  1. 00495BF1   90             NOP
  2. 00495BF2   90             NOP


и он выделяет только первую строку, а на самом деле измененые обе строки

Подумай над этим

crc1 пишет:
Bronco пишет:
Раскрасить бы как-то это дело
Это как

сделать подсветку синтаксиса
Flint


Ранг: 238.5 (наставник)
Статус: Участник
CyberHunter

Создано: 30 января 2009 17:21 New!
· Личное сообщение · #8

Скрол, имхо, должен двигаться сразу в обоих окнах! Т.е. если я двигаю вниз одно окно, то и во втором оно должно тоже передвигаться соответственно первому. То что различия должны выделятся - это факт!
Для примера глянь как сделано в HEXCMP.
P.S. Тулза полезная!
FrenFolio


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

Создано: 30 января 2009 17:48 · Поправил: FrenFolio New!
· Личное сообщение · #9

О, отличная штука! Как раз думал о том, почему нет такой проги которая бы показывала отличия прямо в дизасме. А тут - вот тебе.
borov


Ранг: 534.7 (!)
Статус: Uploader
retired

Создано: 30 января 2009 18:08 New!
· Личное сообщение · #10

crc1, а зачем ты длл прикрутил к ЕХЕ, нельзя было отдельно
crc1

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

Создано: 30 января 2009 18:36 · Поправил: crc1 New!
· Личное сообщение · #11

borov пишет:
а зачем ты длл прикрутил к ЕХЕ, нельзя было отдельно

моно, прилепляю
Сцылка на сайт [url=http://web.vip.hr/inga.vip/test.htm
]http://web.vip.hr/inga.vip/test.htm
[/url]
прикрутил для удобства
crc1

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

Создано: 30 января 2009 18:39 New!
· Личное сообщение · #12

чет не приклепилась

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


Ранг: 534.7 (!)
Статус: Uploader
retired

Создано: 30 января 2009 18:44 New!
· Личное сообщение · #13

та я ее сам уже давно отковырял
crc1

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

Создано: 30 января 2009 18:50 New!
· Личное сообщение · #14

Flint пишет:
Скрол, имхо, должен двигаться сразу в обоих окнах!

Согласен, и HEXCMP видел. Но я же не коммерческий продукт выложил, а так утилиту. Главное чтобы правильно различия находила.
P.S. А как заскролить второе окошко. Нужно же учесть и просто скрол, потом нажатие на скроллбар, и просто нажатие на клаве стрелок
borov


Ранг: 534.7 (!)
Статус: Uploader
retired

Создано: 30 января 2009 19:54 New!
· Личное сообщение · #15

crc1 пишет:
А как заскролить второе окошко. Нужно же учесть и просто скрол, потом нажатие на скроллбар, и просто нажатие на клаве стрелок

юзай сообщения LVN_BEGINSCROLL и LVN_ENDSCROLL
Halt

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

Создано: 30 января 2009 20:13 New!
· Личное сообщение · #16

если у тебя LISTVIEW можно просто сравнивать 1 видимую строчку в правом и левом окне и там уже крутить
там есть функция, точнее сообщение:

The LVM_GETTOPINDEX message retrieves the index of the topmost visible item when in list or report view. You can send this message explicitly or by using the ListView_GetTopIndex macro.

LVM_GETTOPINDEX
wParam = 0;
lParam = 0;


Returns the index of the item if successful or zero if the list view control is in icon or small icon view.
theCollision

Ранг: 271.5 (наставник)
Статус: Участник
Packer Reseacher

Создано: 31 января 2009 16:41 New!
· Личное сообщение · #17

crc1
посмотри на WinMerge и примерно сделай тоже самое, или на Perforse показыватель дифов
Hexxx


Ранг: 481.4 (мудрец)
Статус: Участник
Тот самый :)

Создано: 1 февраля 2009 01:36 New!
· Личное сообщение · #18

crc1 пишет:
хуясе
Single User License 900 € (1215 US$)

Есть ломанная версия
rapidshare.com/files/178972616/SABRE-BinDiff--v2.0.269.rar
Archer


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

Создано: 1 февраля 2009 16:15 New!
· Личное сообщение · #19

Если это древний слом, то там криво как-то поломали. Ограничение на большое число (блоков или функций, не помню точно) не снято.
Talula


Ранг: 210.8 (наставник)
Статус: Участник
Тот ещё Lamer

Создано: 2 февраля 2009 00:58 New!
· Личное сообщение · #20

я обычно просто два дизасма в winmerge сравниваю... там всё подсвечивается...
vnekrilov

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

Создано: 2 февраля 2009 06:33 New!
· Личное сообщение · #21

Talula пишет:
я обычно просто два дизасма в winmerge сравниваю... там всё подсвечивается...


Подскажи, как ты получаешь в winmerge дизассемблированный код? Или ты просто находишь offset, где имеются смещения?
Jupiter


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

Создано: 2 февраля 2009 08:44 New!
· Личное сообщение · #22

vnekrilov
видимо, Talula сравнивает листинги, предварительно отдизасмив файлы
theCollision

Ранг: 271.5 (наставник)
Статус: Участник
Packer Reseacher

Создано: 2 февраля 2009 12:34 · Поправил: theCollision New!
· Личное сообщение · #23

>>Подскажи, как ты получаешь в winmerge дизассемблированный код? Или ты просто находишь offset, где имеются смещения?
5 баллов ! ;))) пацтулом, остановиться от приступа смеха не могу )))
vnekrilov

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

Создано: 2 февраля 2009 12:45 New!
· Личное сообщение · #24

theCollision пишет:
5 баллов ! ;))) пацтулом, остановиться от приступа смеха не могу )))


Не понял, в чем причина приступов смеха???
Isaev


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

Создано: 2 февраля 2009 16:10 · Поправил: Isaev New!
· Личное сообщение · #25

Flint пишет:
Скрол, имхо, должен двигаться сразу в обоих окнах!

borov пишет:
нужно сделать чтобы выдилялись измененое такой же длины как было в оригенали

+1

А ещё бы сделать,
- чтобы файлы можно было мышкой закидывать
- чтобы показывала в каком сегменте изменения
- кнопки следующее/предыдущее
- какое нибудь сохранение всех изменений (в txt хотя бы)
- combobox для переключения между сегментами
- и окно разворачивалось на весь экран
mak


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

Создано: 2 февраля 2009 18:30 · Поправил: mak New!
· Личное сообщение · #26

crc1 на чем писал ?

А ещё бы сделать,
1.Изменение кода, редактирование кода вообщем.
2.Поиск по сигнатурам
3. Эмулирование выполнения программ (тоесть прогонять кусок кода скажем , если он обфусцирован , то эмуляцией можно узнать различия , может не так дизасмнул , и таким образом , видеть наш код бывший и тот что лишний.


Почему бы и нет , будет тогда достаточно универсальная утилита , облегчающая анализ. Конечно самое важное это сравнение , но как дополнение к этому мне бы такое понадобилось.


P.S. Длл ку с дизасмом, выложить отдельно не приклееной , сделать меню выбора дизасм модулей. Например имеется 4 разных дизассемблера , и выбирать какой хочешь, реализовать как плагины, тогда можно будет перенсти на 64 битную систему , и там уже другой дизасм использовать.
Talula


Ранг: 210.8 (наставник)
Статус: Участник
Тот ещё Lamer

Создано: 2 февраля 2009 21:27 New!
· Личное сообщение · #27

vnekrilov, Jupiter пишет:
сравнивает листинги, предварительно отдизасмив файлы
vnekrilov

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

Создано: 3 февраля 2009 06:32 New!
· Личное сообщение · #28

Talula пишет:
сравнивает листинги, предварительно отдизасмив файлы


Спасибо, я так и понял.
crc1

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

Создано: 5 февраля 2009 16:11 · Поправил: crc1 New!
· Личное сообщение · #29

CmpDisasm 0.2b
Учел некоторые пожелания
1. Сделал синхронную прокрутку окошек (правда криво, только колесом и притормаживает мальца)
2. Показывает в какой секции изменения (если секция имеет имя)
3. Сохранение всех изменений в файл CmpDisasm.txt в текущей папке
4. Добавлено контекстное меню в окошки
5. Поправил ошибки
Пока фсе
Isaev пишет:
- чтобы файлы можно было мышкой закидывать

Дык вроде было уже в первом варианте

mak пишет:
А ещё бы сделать,
1.Изменение кода, редактирование кода вообщем.
2.Поиск по сигнатурам
3. Эмулирование выполнения программ

Редактировать можно где угодно, в той же Оле. А че искать по сигнам? там дизассемблируется по 40 строчек кода. Про эмулирование - это что?, вторую IDA кодить
На счет приклееной dll, еще раз повторюсь, прилепил для удобства. В about'е есть сцылка на сайт с описанием и прмерами. На счет плугина с выбором дизасм модулей, тоже не понятно. У каждого дизасм движка свой интерфейс...? И вообще, я только один нормальный нашел. Остальные либо платные, либо кривые.
ПыСы. У кого есть грамотно реализованный исходник с использованием API по синхронной прокрутке окошек, прошу поделиться (коментарии в исходнике приветствуются
Isaev


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

Создано: 5 февраля 2009 16:34 · Поправил: Isaev New!
· Личное сообщение · #30

в файле изменений
Code:
  1. 00400261  0000 ADD BYTE PTR [EAX],AL      |      00400261  90  NOP

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

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

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