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

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


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

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

Сейчас на форуме: RevCred
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · 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

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

Создано: 17 января 2015 18:06 New!
Цитата · Личное сообщение · #2

если кинуть не PE (случайно не тот файл дрег-дропнул) прога в панике

http://prntscr.com/5tkuxh

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

Создано: 17 января 2015 18:17 New!
Цитата · Личное сообщение · #3

Хотелось бы подробностейй

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

Создано: 6 марта 2015 02:03 New!
Цитата · Личное сообщение · #4

небольшие проблемы:

http://pastebin.com/dVgV5wBC
c 00E612F0 одинаковые байты 0x00 выдает как разные.

http://pastebin.com/keMRQYyN
на 004D2246 изменен 1 байт всего. (для наглядности сравнил руками в OllyDbg еще там).

версия 0.84

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

Создано: 6 марта 2015 03:56 · Поправил: unknownproject New!
Цитата · Личное сообщение · #5

sendersu пишет:
если кинуть не PE (случайно не тот файл дрег-дропнул) прога в панике

http://prntscr.com/5tkuxh

Аналогично в версии 0.84.
Дропаем chm файл и получаем:
1.http://snag.gy/2MgLD.jpg
--- Следует исправить No valid PE File -> Not Valid PE File (Нет валидного PE файла -> Невалидный PE файл) или же на Invalid PE File.
2.После скипа предыдущего месседжа получаем следующее:
http://snag.gy/gmPhv.jpg, а его скип крашит прогу.

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


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

Создано: 8 марта 2015 21:25 New!
Цитата · Личное сообщение · #6

Спасибо за замечания, обязательно поправллю
unknownproject поздравляю вас что вышли из минусов Всем добра

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

Создано: 14 марта 2015 22:29 New!
Цитата · Личное сообщение · #7

вот пропаченая версия 0.81 мною

список изменений:
1.распакован
2.убрал проверки на "File powerfully differ" + синхронизировал ImageBase двоих файлов
3.исправил Crash на кнопке назад

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

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

Создано: 15 марта 2015 02:34 · Поправил: dosprog New!
Цитата · Личное сообщение · #8

DMichael37 пишет:
вот пропаченая версия 0.81 мною


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


.. А версию 0.84 будем ковырять, когда выйдет версия 0.87 ..





--Добавлено-- К следующему посту:

DMichael37 пишет:
@dosprog поумничал а теперь чувствуешь лучше?


А должен?


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

Создано: 15 марта 2015 08:51 New!
Цитата · Личное сообщение · #9

@dosprog поумничал а теперь чувствуешь лучше?
с версий 0.83 был добавлен импорт\експорт который работает очень криво

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

Создано: 9 ноября 2015 08:05 · Поправил: 16 февраля 2016 01:19 dosprog New!
Цитата · Личное сообщение · #10

crc1,
Есть предложение - неплохо бы добавить в опцию "Save as" варианты сохранения в формате обычного CRK, например:
Code:
  1. Comparing files 1.exe and 2.exe
  2. 1.exe
  3. 000069CB: 2A 00       ;;.004075CA: je 004075F6h -> je 004075CCh

и в таком же формате, но с VirtualAddresses:
Code:
  1. Comparing files 1.exe and 2.exe
  2. 1.exe
  3. .004075CA: 2A 00       ;;000069CB: je 004075F6h -> je 004075CCh

Если первый вариант можно получить с помощью кучи других утилит (правда, без дизасма в комментариях), то для второго варианта придётся делать что-то своё (вроде CMP32.EXE ). Если не иметь такой опции в CmpDisasm'е.

Это чтоб удобно потом было использовать CRACKER.


Здесь же, в пункте "Save as", неплохо бы иметь и вариант сохранения в формате R!SC's process patcher (.RPP):
Code:
  1. P=004075CA/74,2A/74,00:      ;;000069CB: je 004075F6h -> je 004075CCh


Добавление таких возможности серьёзных затрат не потребует, зато существенно расширит сферу применения CmpDisasm'a.







--Добавлено--
Кстати,
а вот как утилитка CMP32.EXE позволяет легко определить, почему крэшится поправленная распакованная версия 0.8.1 из предыдущего поста
после запаковки её обратно UPX'ом и попытки в ней выполнить сравнение файлов "назад" -

Вывод из "CMP32.EXE /a" (его можно использовать с CRACKER.EXE для патчения/распатчивания файла cmpdisasm.exe):
Code:
  1. CmpDisasm v.0.8.1
  2.  
  3. Differences between original & new file
  4. cmpdisasm.exe
  5. .004057AC: 74 90 ;00004BAC:
  6. .004057AD: 23 90 ;00004BAD:
  7. .004057BA: 75 90 ;00004BBA:
  8. .004057BB: 15 90 ;00004BBB:
  9. .004057C8: 75 90 ;00004BC8:
  10. .004057C9: 07 90 ;00004BC9:
  11. .004059A5: 8B E9 ;00004DA5:
  12. .004059A6: 2D E3 ;00004DA6:
  13. .004059A7: 90 C7 ;00004DA7:
  14. .004059A8: 5F 01 ;00004DA8:
  15. .004059A9: 4D 00 ;00004DA9:
  16. .004059AA: 00 90 ;00004DAA:
  17. ;Warning! Patch at tail of section:
  18. 0002158D: 00 83
  19. 0002158E: 00 3D
  20. 0002158F: 00 90
  21. 00021590: 00 5F
  22. 00021591: 00 4D
  23. 00021594: 00 0F
  24. 00021595: 00 84
  25. 00021596: 00 40
  26. 00021597: 00 38
  27. 00021598: 00 FE
  28. 00021599: 00 FF
  29. 0002159A: 00 8B
  30. 0002159B: 00 2D
  31. 0002159C: 00 90
  32. 0002159D: 00 5F
  33. 0002159E: 00 4D
  34. 000215A0: 00 E9
  35. 000215A1: 00 06
  36. 000215A2: 00 38
  37. 000215A3: 00 FE
  38. 000215A4: 00 FF

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

Создано: 28 февраля 2016 18:24 New!
Цитата · Личное сообщение · #11

crc1
crash при сравнений файлов. Система у меня Win7.

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

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

Создано: 17 ноября 2016 12:00 · Поправил: 17 ноября 2016 12:00 cppasm New!
Цитата · Личное сообщение · #12

Такая же ерунда.
Правда у меня на Win7 x64 работает ок, а на Windows Server 2008 R2 падает.
Я немного подебажил - падает где-то в недрах HeapFree.
Похоже куча повреждается...

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

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

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


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

Создано: 17 ноября 2016 12:23 New!
Цитата · Личное сообщение · #14

neshta

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

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

Создано: 17 ноября 2016 12:31 New!
Цитата · Личное сообщение · #15

difexacaw пишет: Не согласен, задача слишком сложна

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


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

Создано: 17 ноября 2016 12:37 New!
Цитата · Личное сообщение · #16

neshta

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

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

Создано: 17 ноября 2016 12:45 New!
Цитата · Личное сообщение · #17

difexacaw пишет: Найти какой то изменённый код тоже не просто

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


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

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

neshta

Нейросети это тема из области магии, тупо выполняет свёртки(рекурсивная мат оптимизация), результат которых бессмысленный и даже элементарно не логичен. Это тупо гадание, но это уже другая тема.

> можно использовать какие нибудь нечеткие хеши и сравнивать уже блоки в которых хеши не совпадают.

Один и тот же алгоритм может быть закодирован разным образом, это морф. Поиск подобия есть определение что кодировка операций в целом выполняет исходный алгоритм. Соотвественно деморф это разложение кодирующих конструкций(дизасм) на элементарные примитивы, сложение етц. Далее необходимо их обобщить, выделить более общие операции(декомпиль). Но и это не решает никак задачу, так как это просто обратная макро сборка. Нужно выполнить уже не машинный анализ, что бы выделить алгоритм и сравнить с исходным. Это не разрешимая задача.
Конечно код как строку в памяти по хэшу даже сигнатурой найти единственный и рабочий вариант

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

Создано: 17 ноября 2016 13:05 New!
Цитата · Личное сообщение · #19

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

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

difexacaw пишет: Но и это не решает никак задачу

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


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

Создано: 17 ноября 2016 13:10 · Поправил: 17 ноября 2016 13:13 difexacaw New!
Цитата · Личное сообщение · #20

neshta

Кто же сейчас голую дельфю юзает. Оно накроется протектором, который перепилет всё не известно заранее как. И под каждый семпл нужно по тем шаблонам определить известный прот, что бы далее по его известным шаблонам что то сделать. Но если это какой то не древний викс двиг к примеру(морфер/обфуксатор/прот) то весь сей ресурс ничего сделать не сможет в приемлемое время, не говоря уже про автоматику. Мы и с закраской графа в памяти разобраться не смогли, а данные вещи вообще не реальны

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

Создано: 17 ноября 2016 13:21 · Поправил: 17 ноября 2016 13:25 neshta New!
Цитата · Личное сообщение · #21

difexacaw пишет: Оно накроется протектором

Которые еще больше ограничены, тот же аспр, убогий морфин, risc тоже ограничен (php c ioncube огромны, но стоит чуть чуть понять механизм работы и вся задача сводится к банальному написаю кода, ибо решать там нечего).
Взять те же плюсовые шаблоны, они хоть и тьюринг полные, но следуют довольно строгим (есть побочные эффекты) правилам и даже шаблоны вполне себе разбираются автоматически.
На счет рукописного кода, спорить не буду, автодятлами сложные семплы не решаются, тем более сейчас, когда научились определять виртуальные машины и просто не выполняют деструктивную ветку которая ко всему прочему зашифрована.

Ps. CRACKER.EXE решает, пока я пишу декомпилятор данный тул ломает интронет.


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

Создано: 17 ноября 2016 13:31 New!
Цитата · Личное сообщение · #22

neshta

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

Проблема в юзаемых инструментах. Упомянутый вами d-rio один из самых известных инструментов, но вы знаете какой это шлак.

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

Создано: 17 ноября 2016 13:37 New!
Цитата · Личное сообщение · #23

difexacaw пишет: но вы знаете какой это шлак

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


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

Создано: 17 ноября 2016 13:52 · Поправил: 17 ноября 2016 13:54 difexacaw New!
Цитата · Личное сообщение · #24

neshta

> для большинства задач его достаточно

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

> Кстати, читали док с BH, обзор антивирусных эмуляторов, это ппц.

Не, дайте линк плз.

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

Создано: 18 ноября 2016 08:03 · Поправил: 19 ноября 2016 00:36 dosprog New!
Цитата · Личное сообщение · #25

neshta пишет:
CRACKER.EXE решает, пока я пишу декомпилятор данный тул ломает интронет.

) Это не круто.
Я одного чувака знаю, так тот пишет собственную операционную систему, на замену виндовсу.
Примерно как ты, но круче в разы


difexacaw пишет:
Не согласен,


Пускай забалахманит за вечер и предъявит.
) А то языком своим только пиздит болтает про машыны Неймана


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

Создано: 18 ноября 2016 10:04 · Поправил: 18 ноября 2016 10:05 difexacaw New!
Цитата · Личное сообщение · #26

dosprog

> пишет собственную операционную систему, на замену виндовсу.

Ну и что. Если он к примеру юзает эту ось только ради запуска драйвера, который обслуживает железку и элементарного гуя - в таком случае ось" это будет мк контроллер и небольшая прошивка или готовая железка с линями с минимальным допилом.
Вы так сказали, как будто чувак пилит полноценную ось, да есчо и альтернативу нт, есчо один попов

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

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

немного флуд,

подскажите чем можно сравнивать txt/bin,
типа как в TC, resync from here, и главное,
что-бы с консоли с параметрами можно было запускать,
а результат в окне смотреть ?

поддержка pc/arm/thumb/mips/ppc или elf/pe - тоже класс, но такого не бывает ))

CmpDisasm попробовал, пишет ops (((


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

Создано: 18 января 2018 19:31 New!
Цитата · Личное сообщение · #28

fc
fc /b

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

Создано: 18 января 2018 20:09 New!
Цитата · Личное сообщение · #29

carver https://www.scootersoftware.com/v4help/index.html?command_line_reference.html

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


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

Создано: 19 января 2018 07:34 · Поправил: dosprog New!
Цитата · Личное сообщение · #30

Может быть, и неплохая утилитка, но страшат её размеры. - 140 мегабайтов.
Называется - ну нихуя себе решил два файла тупо сравнить..


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

Создано: 19 января 2018 20:18 New!
Цитата · Личное сообщение · #31

dosprog про какую утилитку идёт речь?
<< 1 ... 9 . 10 . 11 . 12 . 13 . >>
 eXeL@B —› Софт, инструменты —› CmpDisasm - Утилита для сравнения PE файлов в дизассемблированном виде

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

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