Сейчас на форуме: 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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 31 августа 2012 18:35
· Личное сообщение · #2

crc1 пишет:
отнимаю 48h от адреса отличия (что бы выровнять диpасм листинг).

что это за значение? если от фонаря то оно может выровнять не на ту инструкцию, что в итоге и получаем

crc1 пишет:
Ты хочешь что бы вывод дизасма начинался сразу с адреса отличия?

хотел, это бы в большинстве случаев исправляло ситуацию,
если в левом окне уже позиция выровнена на размер инструкции(она обозначена желтым цветом) - значит и в правом окне нужно по любому начинать дизассмить с этой инструкции

ситуацию при которой это бы заглючило я вроде не вижу, ошибаюсь?

ps сделай что бы окно cmpdisasm можно было ресайзить



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

Создано: 31 августа 2012 19:02 · Поправил: crc1
· Личное сообщение · #3

reversecode
Глянь личку
reversecode пишет:
ps сделай что бы окно cmpdisasm можно было ресайзить

А че, нельзя?
crc1 пишет:
* 29 марта 2009 г. v 0.35

* Окно проги разворачивается на весь экран

и скажу больше, его можно таки ресайзить




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 31 августа 2012 19:10 · Поправил: reversecode
· Личное сообщение · #4

crc1 пишет:
* Окно проги разворачивается на весь экран
и скажу больше, его можно таки ресайзить

виндовс виста, можно ресайзить только вверх и вниз,
вправо влево не ресайзится, хотя курсор меняется

crc1 пишет:
Проверил, все ресайзится (на xp и win7), висту фтопку

хорошо, спишем на баги винды
если все же у кого то есть виста - просьба проверить



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

Создано: 31 августа 2012 19:20
· Личное сообщение · #5

reversecode пишет:
виндовс виста

Висты нету, но сейчас спецом проверю на семерке



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

Создано: 31 августа 2012 19:32
· Личное сообщение · #6

Проверил, все ресайзится (на xp и win7), висту фтопку



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

Создано: 31 августа 2012 20:13
· Личное сообщение · #7

reversecode высказал пожелание показывать дисасм листинг начиная с точки отличия. Я скомпилил такой вариант.
Попробуйте и выскажите свое мнение
Вариант будет называться CmpDisasmRC

3bff_31.08.2012_EXELAB.rU.tgz - CmpDisasmRC.rar

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

Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 01 сентября 2012 21:08
· Личное сообщение · #8

crc1
Падает 076

EAX = 00000000 EBX = 00000000 ECX = 00000000 EDX = 00000000 ESI = 00000029 EDI = 00000000 EIP = 0046FECD ESP = 0018FE54 EBP = 0018FE58 EFL = 00010246

0046FEB0 add ecx,4
0046FEB3 mov dword ptr [ebp+8],ecx
0046FEB6 mov edx,dword ptr [ebp+0Ch]
0046FEB9 add edx,4
0046FEBC mov dword ptr [ebp+0Ch],edx
0046FEBF mov eax,dword ptr [ebp+10h]
0046FEC2 sub eax,4
0046FEC5 mov dword ptr [ebp+10h],eax
0046FEC8 jmp 0046FE9D
0046FECA mov ecx,dword ptr [ebp-4]
0046FECD mov byte ptr [ecx],0 << crash here
0046FED0 mov esp,ebp
0046FED2 pop ebp
0046FED3 ret 0Ch
0046FED6 int 3


> CmpDisasm076.exe!0046fecd()
[Frames below may be incorrect and/or missing, no symbols loaded for CmpDisasm076.exe]
CmpDisasm076.exe!0046fd58()
CmpDisasm076.exe!0042100f()
CmpDisasm076.exe!00409f2b()
CmpDisasm076.exe!00406d91()
CmpDisasm076.exe!00405480()
CmpDisasm076.exe!00402282()
kernel32.dll!755133ca()




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

Создано: 01 сентября 2012 22:51
· Личное сообщение · #9

crc1

В Windows 7 x64 тоже валится при попытке сравнить любые два корректных EXE

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




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

Создано: 03 сентября 2012 12:37
· Личное сообщение · #10

sendersu
Выложи файлы на обменник
GPcH пишет:
В Windows 7 x64 тоже валится

Да я знаю, спасибо. Но все не могу поставить 7-ку x64 на VM




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

Создано: 03 сентября 2012 15:21
· Личное сообщение · #11

crc1 пишет:
высказал пожелание показывать дисасм листинг начиная с точки отличия


а можно на выбор оставить оба варианта? У меня что-то не выходит понять, какой нравится больше




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 сентября 2012 16:45
· Личное сообщение · #12

на выбор они и оставлены,
оффициальный в шапке,
а мое имхо приклеили в теме)



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 04 сентября 2012 11:49
· Личное сообщение · #13

crc1 пишет:
Выложи файлы на обменник

ушло
что еще заметил - 2ая версия та что должна показивать с начала дифф - иногда (редко, гдето 10%) все же надо скроллить вверх втурую часть

ПОЖЕЛАНИЕ

Счас ищет только вперед, можно сделать кнопулю - поиск диффа назад? (Back)



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

Создано: 04 сентября 2012 20:20
· Личное сообщение · #14

sendersu пишет:
что еще заметил - 2ая версия та что должна показивать с начала дифф - иногда (редко, гдето 10%) все же надо скроллить вверх втурую часть

Исправил


2c34_04.09.2012_EXELAB.rU.tgz - CmpDisasmRC.rar

| Сообщение посчитали полезным: WildGoblin, tomac, igorca

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

Создано: 14 сентября 2012 21:19
· Личное сообщение · #15

crc1 может где уже было. В семерке не работает. Валится при Log и Compare.



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

Создано: 16 сентября 2012 19:19
· Личное сообщение · #16

NeoTall пишет:
может где уже было.

Да было, четыре поста выше




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 17 сентября 2012 00:27
· Личное сообщение · #17

В дополнение к багрепортам про падения на 7ке:
Попробовал под Win 8 x64 - Compare сработал нормально, но Log как и в 7ке - крашит приложение.
Всевозможные режимы совместимости не спасают.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




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

Создано: 17 сентября 2012 14:49
· Личное сообщение · #18

Хотелось бы добавить открытие файлов из командной строки



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

Создано: 17 ноября 2012 14:13 · Поправил: crc1
· Личное сообщение · #19

crc1 пишет:
Да я знаю, спасибо. Но все не могу поставить 7-ку x64 на VM [/i]

Сподобился я поставить на VMware win 7 x64. У меня cmpdisasm не падает, лог файл создается норм. я х.з.
У кого че, пишите, нокак воспроизвести?



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 21 ноября 2012 01:30
· Личное сообщение · #20

crc1
закинул в ПМ



Ранг: 10.2 (новичок), 6thx
Активность: 0.010
Статус: Участник

Создано: 21 ноября 2012 11:44 · Поправил: c7111981
· Личное сообщение · #21

Не сравнивает НОПы, в случаях дополнительного кода.
Сори, я не тот файл для сравнения выбрал...




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

Создано: 21 ноября 2012 21:04
· Личное сообщение · #22

crc1
Уже восьмерка месяц как оффициально вышла. Лучше бы сразу ее ставил. В восьмерке падает при нажатии кнопки Compare после выбора двух файлов:

Необработанное исключение по адресу 0x77A4A94F (ntdll.dll) в CmpDisasmRC.exe: 0xC0000374: Куча была повреждена (параметры: 0x77A5E1E8).

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

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




Ранг: 3.2 (гость), 6thx
Активность: 0.020
Статус: Участник

Создано: 21 ноября 2012 21:17 · Поправил: Модератор
· Личное сообщение · #23

GPcH
на восьмерке почти всё глючно работает! после первого SP1 нужно проверять глючность прог!

От модератора: Archer: пиши прямыми руками без недокументированной мути, и всё будет работать. Если что, софт из топика не имел в виду.




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

Создано: 22 ноября 2012 15:36
· Личное сообщение · #24

CTPaHHuk

Поржал. После первого SP надо будет уже Windows 9 ставить а не проверять глючность прог на восьмерке ) Наверное до сих пор на XP, угадал?

По факту соглашусь с арчером. Из всего набора необходимого мне софта ничего не глючит на восьмерке. Система работает даже стабильнее седьмой (нет memory leak'ов после двухнедельных гибернейтов, очистка памяти работает заметно лучше). А пуск легко возвращается бесплатной программой "Classic Start Menu" (которая в довесок еще и убирает левый нижний актив корнер).

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




Ранг: 19.9 (новичок), 31thx
Активность: 0.030.01
Статус: Участник

Создано: 22 ноября 2012 18:02
· Личное сообщение · #25

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




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

Создано: 08 декабря 2012 16:37
· Личное сообщение · #26

GPcH
Закиньте ссылочку в ПМ на дистрибутив Win8
На win7 x32 x64 все работает




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 08 декабря 2012 17:32
· Личное сообщение · #27

-->Windows8-32 <--
--> Windows8-64 <--

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




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

Создано: 09 декабря 2012 18:50 · Поправил: crc1
· Личное сообщение · #28

ClockMan
Спасибо
PS Или я дурак или у нас на форуме появились новый смайлы

Ага, наверно видео у меня сглючило



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

Создано: 11 декабря 2012 19:06 · Поправил: crc1
· Личное сообщение · #29

GPcH пишет:
Причем если загрузить в отладчике и продолжить выполнение проги после эксепшена - далее все корректно выводится

Поставил Windows8-64 по ссылке ClockMan,а на ВМварю
Нормально работает без всякого отладчика

Не могу воспроизвести ошибку
evggrig пишет:
А может быть такое что два одинаковых файла (пропатчено только пару команд), файловая инфа у обоих совпадает отказывается сравнивать пишет файлы разные?

Не может, это означает что в файлах более двух сотен отличий. Проверь любым HEX сравнивателем


add

По просьбе sendersu потестировал его файлы на win8 x64. Нашел ошибку, исправил. Прошу проверить.
Еще
crc1 пишет:
reversecode высказал пожелание показывать дисасм листинг начиная с точки отличия. Я скомпилил такой вариант. Попробуйте и выскажите свое мнениеВариант будет называться CmpDisasmRC

Заметил, что этот вариант глючный, если изменения сделаны в середине инструкции.


А вот так должно быть



Так что выкладываю старый вариант отображения листинга с исправлениями багов

73b6_11.12.2012_EXELAB.rU.tgz - CmpDisasm.rar




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

Создано: 13 декабря 2012 03:03
· Личное сообщение · #30

crc1

Скинь мне пустое письмо на email: admin {@} vb-decompiler [dot] org - отправлю семплы для анализа. На восьмерке все равно падает. Восьмерка стоит основной системой x64, UAC включен.

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





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 13 декабря 2012 03:15
· Личное сообщение · #31

crc1 пишет:
Заметил, что этот вариант глючный, если изменения сделаны в середине инструкции.

потому что reversecode просил сделать диф на границу выровненой инструкции по дизасму длин,
видимо этого выравнивания так и нет, поэтому оно дифает от начала первой разницы в байтах
и если в средине инструкции тогда нето


<< . 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 » Выход » ЛС
   Для печати Для печати