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

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



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

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

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

http://prntscr.com/5tkuxh



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

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

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



Ранг: 21.0 (новичок), 19thx
Активность: 0.010.03
Статус: Участник

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

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

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

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

версия 0.84



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

Создано: 06 марта 2015 03:56 · Поправил: unknownproject
· Личное сообщение · #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, а его скип крашит прогу.

-----
TEST YOUR MIGHT


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

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

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

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



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

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

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

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

f640_14.03.2015_EXELAB.rU.tgz - CmpDisasm.rar



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

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

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


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


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





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

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


А должен?





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

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

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



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

Создано: 09 ноября 2015 08:05 · Поправил: dosprog
· Личное сообщение · #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 (посетитель), 13thx
Активность: 0.040
Статус: Участник

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

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

1112_28.02.2016_EXELAB.rU.tgz - error_1.png



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

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

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



Ранг: 12.0 (новичок), 17thx
Активность: 0.060
Статус: Участник

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

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




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

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

neshta

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

-----
vx




Ранг: 12.0 (новичок), 17thx
Активность: 0.060
Статус: Участник

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

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

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




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

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

neshta

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

-----
vx




Ранг: 12.0 (новичок), 17thx
Активность: 0.060
Статус: Участник

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

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

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




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

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

neshta

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

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

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

-----
vx




Ранг: 12.0 (новичок), 17thx
Активность: 0.060
Статус: Участник

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

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

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

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

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




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

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

neshta

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

-----
vx




Ранг: 12.0 (новичок), 17thx
Активность: 0.060
Статус: Участник

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

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

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

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




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

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

neshta

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

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

-----
vx




Ранг: 12.0 (новичок), 17thx
Активность: 0.060
Статус: Участник

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

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

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




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

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

neshta

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

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

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

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

-----
vx




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

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

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

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


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


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




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

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

dosprog

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

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

-----
vx




Ранг: 46.1 (посетитель), 1thx
Активность: 0.02=0.02
Статус: Участник

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

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

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

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

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




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

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

fc
fc /b



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

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

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

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

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

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

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





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

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

dosprog про какую утилитку идёт речь?


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