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

ВИДЕОКУРС ВЗЛОМ
выпущен 3 октября!


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

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

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

 eXeL@B —› Софт, инструменты —› CmpDisasm - Утилита для сравнения PE файлов в дизассемблированном виде
<< 1 ... 9 . 10 . 11 . 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

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

Создано: 16 декабря 2012 18:22 New!
Цитата · Личное сообщение · #2

reversecode
Для этой утилитки, еще делать выравнивание инструкций o_O
Пусть будет как есть (оно того не стоит).
Протестировал на win xp sp3, win 7 x32/64, win 8 x64. У меня все работает
Кидайте в личку файлы где не работает\падает (токо чтоб отличий много не было)

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

Создано: 16 декабря 2012 19:17 New!
Цитата · Личное сообщение · #3

reversecode пишет:
eversecode просил сделать диф на границу выровненой инструкции по дизасму длин

Думаю не стоит оно того

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


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

Создано: 7 февраля 2013 18:18 New!
Цитата · Личное сообщение · #4

Кароче, парни я поставил себе (купил маму M6A97 CPU AMD FX-8320+64 + ОЗУ 16 гигов) сверху поставил win 7 х64 и всеработает

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


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

Создано: 20 февраля 2013 06:28 New!
Цитата · Личное сообщение · #5

валится, при нажатии на любую кнопку...:*

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

Создано: 20 февраля 2013 10:22 New!
Цитата · Личное сообщение · #6

crash_ пишет:
валится, при нажатии на любую кнопку...

тоже было пару раз такое на v.0.75 а v.0.7 нормально пашет

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

Создано: 4 апреля 2013 19:30 · Поправил: crc1 New!
Цитата · Личное сообщение · #7

Собственно поправил немного
*4 апреля 2013 v 0.79
*Изменил интерфейс (кнопки переместил в тулбар)
*По дефолту, заголовок выключен из сканирования
*Исправил баги которые были отправлены в ПМ и которые нашел сам
http://rghost.ru/45041419

| Сообщение посчитали полезным: DimitarSerg, verdizela, Kindly, sendersu, linhanshi, KingSise, Gideon Vi, t0ShA, deepred



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

Создано: 4 апреля 2013 22:53 · Поправил: -=AkaBOSS=- New!
Цитата · Личное сообщение · #8

ошибка интерфейса: File Info > Entry Poit

плюс тот же баг: в лог старшая цифра адреса не пишется

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

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


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

Создано: 5 апреля 2013 09:55 New!
Цитата · Личное сообщение · #9

-=AkaBOSS=-
Зажми файлы раром и положи на rghost.ru
Че-то у меня тут


Ранг: 468.0 (мудрец)
Статус: Участник
[www.AHTeam.org]

Создано: 5 апреля 2013 10:31 New!
Цитата · Личное сообщение · #10

crc1 пишет:
Зажми файлы раром и положи на rghost.ru

http://rghost.net/45053822

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

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

KingSise спасибо
-=AkaBOSS=- пишет:
ошибка интерфейса: File Info > Entry Poit

Неправда ваша
Image Base(12345000) + Entry Point(1000) = 12346000
Что мы и наблюдаем
С логом бум разбираться


Ранг: 515.2 (!)
Статус: Участник
Победитель турнира 2010

Создано: 5 апреля 2013 11:46 New!
Цитата · Личное сообщение · #12

crc1 пишет:
Неправда ваша


Имелось в виду не значение, а "Entry Poit"

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

Создано: 5 апреля 2013 11:58 · Поправил: crc1 New!
Цитата · Личное сообщение · #13

упс

-=AkaBOSS=-
Ошибочку и лог-файл поправил
http://rghost.ru/45056833

| Сообщение посчитали полезным: -=AkaBOSS=-, stas_02


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

Создано: 13 апреля 2013 15:40 New!
Цитата · Личное сообщение · #14

Еще одно обновление 0.81
Добавил я все таки сканирование файлов вперед-назад
ну и баги поправил, спасибо -=AkaBOSS=-
http://rghost.ru/45255648

| Сообщение посчитали полезным: deepred, DimitarSerg, -=AkaBOSS=-, zNob, Dazz



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

Создано: 13 апреля 2013 15:59 New!
Цитата · Личное сообщение · #15

crc1
На Windows 8 x64 падает на том же файле в том же месте что писал тебе год назад.

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

Создано: 13 апреля 2013 16:54 New!
Цитата · Личное сообщение · #16

GPcH
Хорошо, поставлю на виртуалку 8 x64 и внимательно посмотрю/потестю


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

Создано: 13 апреля 2013 18:07 · Поправил: Kindly New!
Цитата · Личное сообщение · #17

crc1, добавь плиз возможность копирования байтов с hex-дампа без захвата адресов и ASCII дампа (только байты), и без "черточек" (опционально хотя бы).
Ну и:
mov al,1
retn
если сравнивается с началом оригинальной функи "кривит" в дизасме аж на 4 инструкции


reversecode пишет:
он этого делать не будет

ясно


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

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

Kindly пишет:
если сравнивается с началом оригинальной функи "кривит" аж на 4 инструкции

это выравниение на границу команд, уже говорили об этом, он этого делать не будет

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

Создано: 17 июля 2013 23:55 New!
Цитата · Личное сообщение · #19

win7x64 0.81 версия падает (5 раз кнопку Next)
что интересно, дельта в секции ресурсов (шот1)


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


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

Создано: 2 августа 2013 18:46 · Поправил: reversecode New!
Цитата · Личное сообщение · #20

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

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

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

Создано: 7 сентября 2013 22:08 · Поправил: crc1 New!
Цитата · Личное сообщение · #21

sendersu reversecode
Извините друзья, но абсолютно (катострофически) нету времени. Как появится, поправлю все ашипки

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

Создано: 8 декабря 2013 08:27 New!
Цитата · Личное сообщение · #22

Какие ошибки осилил - поправил
Теперь можно посмотреть импорт\экспорт

| Сообщение посчитали полезным: nick8606, sendersu, SReg, zNob, icerix, Holtek, Jupiter, igorca



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

Создано: 13 декабря 2013 21:43 New!
Цитата · Личное сообщение · #23

crc1
Спасибо за обновление.
Баг в обработке импорта. Проверь на файлах, у которых WSOCK32.dll в импорте.

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

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

Создано: 13 декабря 2013 23:31 · Поправил: crc1 New!
Цитата · Личное сообщение · #24

Jupiter пишет:
Спасибо за обновление.Баг в обработке импорта. Проверь на файлах, у которых WSOCK32.dll в импорте.

Спасибо за баг реп. Этот баг возникал на x64 файлах, у которых импорт из модулей идет по ординалу. Недочет был в разрядности DWORD - QWORD. Еще не привык к х64
Поправил.
P.S. Разделом "Скачать" имхо Боров занимается. Пора бы версию подновить

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


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

Создано: 14 декабря 2013 04:35 New!
Цитата · Личное сообщение · #25

crc1
С импортом пофиксил багу, спасибо.
Но вот при открытии вкладки Export, показывает почему-то только для 1-го (левого) файла.

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

Создано: 14 декабря 2013 07:16 · Поправил: dosprog New!
Цитата · Личное сообщение · #26

crc1,
это не багрепорт как таковой, а просто пожелания/предложения:

1)
хорошо бы принимать имена сравниваемых файлов и из командной строки (если они там заданы).

2)
Также хорошо бы в режимах Asm,Hex,Imp,Exp при нажатии на Ctrl+<,Ctrl+> выполнять "сравнение со сдвижкой" второго файла на 10h байт, а по Ctrl+ArrowUP,Ctrl+ArrowDown - то же самое со сдвижкой на 1 байт (в HEХ моде) или на 10\1 инструкцию (в дизасм.моде). Т.е. смещение и тут же снова синхронизация уже с учётом этой сдвижки.
(Это к тому, о чём писал reversecode:
... сравнить два файла которые по разному скомпилены, вообще нельзя.. здесь наверное лучше подходит pediff, который и хеш мачинг делает и ищет функции даже если они смещены.
Да и раньше другие).
Сейчас - прекращение сравнения, если программа определила, что "это совсем разные файлы", а там весь код-то сдвинут на 3 байта... Нужно бы не прерывать сравнение, а дать юзеру возможность "подвигать" второй файл относительно первого.
Понятное дело, такая опция серьёзно все усложняет... Хотя...

3)
В опцию "Save differences in file" можно бы добавить "Сохранение в формате .CRK". (Хотя это можно делать и другими программами).
А в этом сохранении CRK - ещё опция "Сохранять с виртуальными адресами" - это было бы полезно.
Ну, например:

Сохранённый файл - обычный .CRK:
- - - - - - - - - - - - - - - - - - - ->8
SuperPuper v.223.002b

Make fully damaged file:
sppr.exe
00000001 4D FF
00000002 5A FF
0000074C FC 90
- - - - - - - - - - - - - - - - - - - ->8

Сохранённый файл - то же самое, но с виртуальными адресами:
- - - - - - - - - - - - - - - - - - - ->8
SuperPuper v.223.002b

Make fully damaged file:
sppr.exe
00000001 4D FF
00000002 5A FF
.040134C FC 90
- - - - - - - - - - - - - - - - - - - ->8

P.S.- если при этом ещё учитывать сказанное в 2) - начинается вообще что-то похожее на тёмный лес...


4)
А вот тут, похоже, небольшое упущение: в режиме сравнения "PE Header" отсутствует синхронизация прокрутки, которая есть в других режимах.

-- ADD --
К следующему посту:
crc1,
понятно.
В общем-то, всё вполне юзабельно и так. Просто смотря для чего.
В большинстве случаев приходится сравнивать просто два текста листингов.

-- ADD2 --
К пункту 3)
Опцию "Save differences in file" можно было бы дополнить возможностью сохранять эти данные в формате скрипта .RPP для R!SC's Process Patcher'a.
Эти скрипты можно делать и вручную, но удобно было бы автоматизировать.
Если бы была возможность задавать аргументы в командной строке, тогда процесс генерации лоадера можно было бы выполнять вообще автоматически, с помощью .BAT-файла с вызовом CMPDISASM, а следом RPP.
Ну это так, просто пожелания. Нет - так нет. Время, которого нет, это деньги, которых тоже почти нет...

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

Создано: 14 декабря 2013 21:49 New!
Цитата · Личное сообщение · #27

Jupiter пишет:
Но вот при открытии вкладки Export, показывает почему-то только для 1-го (левого) файла.

У меня обе показывает, при условии что открыты два файла
Отпишите у кого по другому
dosprog
1. А она нужна ком. строка? Если еще пара, тройка человек отпишется, сделаю ком. строку.
2. По пункту № 2, (тут каждый может крутить вертеть как бы все это было здорово ежели да кабы)
Еще раз для непонятливых оъясняю - это утилита (просто утилита, а не програмный коплекс) для сравнения PE файлов в дизассемблированном виде. Не буду я заморачиваться со сдвигами
dosprog пишет:
Сейчас - прекращение сравнения, если программа определила, что "это совсем разные файлы", а там весь код-то сдвинут на 3 байта... Нужно бы не прерывать сравнение, а дать юзеру возможность "подвигать" второй файл относительно первого.

Кому интересно - пишите сами. Идея проста как три копейки берете два файла и сравниваите их побайтово. Как нашли отличие, выводите на экран используя любой дисасм движок ну и паралельно внедряя все плюшки кому как хочется
3. Пунк №3 не понял
dosprog пишет:
А в этом сохранении CRK - ещё опция "Сохранять с виртуальными адресами" - это было бы полезно.Ну, например:

А сейчас разве не так. Или нужно сохранение с офсетами?
4. Смотри п.1 Если надо сделаю


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

Создано: 14 декабря 2013 22:45 New!
Цитата · Личное сообщение · #28

crc1 пишет:
Кому интересно - пишите сами. Идея проста как три копейки берете два файла и сравниваите их побайтово. Как нашли отличие, выводите на экран используя любой дисасм движок ну и паралельно внедряя все плюшки кому как хочется

не все там так просто
нужно внедрять --> Link <--
и иметь стоп поинты окончания анализа
т.е. знать чем функции заканчиваются
а они не всегда заканчиваются retn
может быть оптимизация при которой retn будет внутри, а самый крайний будет jmp ведущий внутрь функци

ну итд


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

Создано: 15 декабря 2013 16:25 New!
Цитата · Личное сообщение · #29

Эхх, чуда не случилось. Как оно падало в Win 8 x64, так и падает в Win 8.1 x64 при нажатии кнопки сравнения.

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

Создано: 15 декабря 2013 17:35 New!
Цитата · Личное сообщение · #30

reversecode пишет:
не все там так просто

Ну а я про что.
Четыре года назад меня заинтересовал PE формат, я начал его постигать и наваял данную утилиту.
Дальше копать мне стало не интересно и как говорит тов. Drop, шекелей мне с нее не капает.
То что хотите вы, с PE форматом рядом не стояло (вернее стояло, но на ранних стадиях)
GPcH
Прошу прощения, так и не удосужился поставить Win 8 x64 на виртуалку
Скинь в ЛС проблемные файлы, в ближайшее время поставлю Win 8 x64 и попробую разобратся


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

Создано: 15 декабря 2013 19:04 New!
Цитата · Личное сообщение · #31

crc1
У меня на разных файлах такое. Думаю проблема не в файлах а в какой то несовместимости с системой. И если таки найдешь на это время, на виртуалку сразу ставь 8.1 x64 (оригинальной восьмерки у меня уже нет чтобы проверить).
<< 1 ... 9 . 10 . 11 . 12 . 13 . >>
 eXeL@B —› Софт, инструменты —› CmpDisasm - Утилита для сравнения PE файлов в дизассемблированном виде

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

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