Сейчас на форуме: morgot, sashalogout, -Sanchez- (+3 невидимых) |
eXeL@B —› Софт, инструменты —› CmpDisasm - Утилита для сравнения PE файлов в дизассемблированном виде |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 12 . 13 . >> |
Посл.ответ | Сообщение |
|
Создано: 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 *Изменил интерфейс (кнопки переместил в тулбар) *По дефолту, заголовок выключен из сканирования *Исправил баги которые были отправлены в ПМ и которые нашел сам *Исправил грамматическую ашыпку * 13 апреля 2013 v 0.81 * Исправил ошибку при перетаскивании нескольких файлов драг-дропом и некоторые другие * Добавил сравнение файлов вперед и назад * 8 декабря 2013 v 0.83 * Убрал ошибки * Добавил импорт\экспорт * 25 января 2014 v. 0.84 * Добавил командную строку ; использовать: CmpDisasm.exe file1 file2 48de_25.01.2014_EXELAB.rU.tgz - CmpDisasm.rar |
|
Создано: 27 марта 2009 12:01 · Личное сообщение · #2 Bronco пишет: А то бэкапить файлО приходитЦо, что б в Ольку загрузить и пройтись по этим адресам. И сделай пожалуйста: - Copy address to clipboard Сделаю Jupiter Расшарить файл при CreateFile не проблема, можно просто после маппирования, закрывать хендл. Вопрос вроде стоял в другом SVLab пишет: Слелать возможность открывать файл, уже занятый другой программой или просто запущенный. Я почитал Ms-Rem'a - "3 метода работы с занятыми файлами" и стало немножко тоскливо |
|
Создано: 27 марта 2009 16:13 · Личное сообщение · #3 |
|
Создано: 31 марта 2009 14:19 · Поправил: crc1 · Личное сообщение · #4 |
|
Создано: 31 марта 2009 17:34 · Личное сообщение · #5 |
|
Создано: 07 апреля 2009 08:41 · Личное сообщение · #6 |
|
Создано: 07 апреля 2009 13:25 · Личное сообщение · #7 |
|
Создано: 07 апреля 2009 14:57 · Личное сообщение · #8 |
|
Создано: 07 апреля 2009 22:14 · Личное сообщение · #9 |
|
Создано: 09 апреля 2009 13:41 · Личное сообщение · #10 А может сделать как в старой досовской утилитке NCF? По-моему удобно и наглядно c23b_09.04.2009_CRACKLAB.rU.tgz - NCF.COM |
|
Создано: 10 апреля 2009 01:20 · Личное сообщение · #11 в тему о сравнении файлов: research.eeye.com/html/tools/RT20060801-1.html "The eEye Binary Diffing Suite (EBDS) is a free and open source set of utilities for performing automated binary differential analysis. This becomes very useful for reverse engineering patches as well as program updates." иногда юзаю, т.к. bindiff штука платная |
|
Создано: 30 июня 2009 10:36 · Личное сообщение · #12 |
|
Создано: 30 июня 2009 10:46 · Личное сообщение · #13 |
|
Создано: 30 июня 2009 11:11 · Личное сообщение · #14 |
|
Создано: 30 июня 2009 11:18 · Личное сообщение · #15 |
|
Создано: 21 августа 2009 15:30 · Поправил: crc1 · Личное сообщение · #16 theCollision пишет: Скоко не слежу, автор нихера нового не постит, следовательно ЗАБИЛ Не, не забил. Просто проект крупный подвернулся, со временем напряг. Вот, кое-что доделал. CmpDisasm v. 0.35 ;add ; Добавлен пункт меню "Copy address to clipboard" в контекстном меню ; Добавлена примочка "stay on top", запоминается в реестре. ; Окно проги разворачивается на весь экран ; Добавлена цветовая схема, цвет запоминается в реестре ; Открывает занятые файлы + возможность работать с этими файлами в других приложениях (OllyDbg...) ; Добавлено отображение адреса VA, либо Offset. Менять можно через меню, либо щелкнув по шапке столбца адреса ; Добавлена информация о секциях, различия выделяются цветом Может еще чего... |
|
Создано: 21 августа 2009 19:34 · Личное сообщение · #17 Попробовал сравнить два файла, ан не получилось, пишет слишком разные файлы. В секции кода различия незначительны, просто после небольшой правки ресурсов в рестораторе измениляся размер секции ресурсов, и последующие секции тоже сместились. Можно ли посекционно задавать диапазон сравнения? Что-то непонятно в окне Section Information, на что влияют чекбоксы, и в чем различие кнопок OK и Cancel? |
|
Создано: 21 августа 2009 20:21 · Поправил: theCollision · Личное сообщение · #18 crc1 Пользоваться не возможно! взял запаковал krypton v0.4 krypton 0.5 и указал секции, а фигу! Вобщем, мое видение : 1. сравнивать чисто код начиная с AddressOfEntryPoint 2. сравнивать чисто ресурсы 3. Сравнивать указанного адреса либо как код, либо как данные 4. Можно добавить не большую эмуляцию, которая будет бегать по jmp, jX / jNX . Ну и с возможностью убрать команды к примеру EB , т.е. своего рода лог трейсера, это бы помогло разгребать полиморфики ;) По поводу ГУИ: 1. Информацию из заголовка, лучше выводить по запросу, как сделано в hiew по ф8, у тебя может другая кнопка будет. С экономишь рабочее пространство 2. При старте проги, чтобы выплывало окно с выбором путей для сравнения или два прошлых стравнения чуть по ниже на этом же окне ----- My love is very cool girl. |
|
Создано: 21 августа 2009 23:26 · Личное сообщение · #19 |
|
Создано: 24 августа 2009 08:37 · Личное сообщение · #20 SVLab пишет: на что влияют чекбоксы Пока ни начто, просто показывают, что в данной секции есть код. кнопки OK и Cancel это на будущее. Для сравнения диапазонов. По поводу отказа сравнения: сделаю пункт меню "Сравнивать любые файлы. Можно будет сравнивать хоть winword с notepad'ом theCollision 1. Согласен, сравнивать в disasm'е нужно только код, остальное в HEX виде. на счет "начиная с AddressOfEntryPoint" не согласен. В делфях EP в конце секции кода. Иногда и в хидер код пихают. 2. Этот пункт не понял. 3. Пишу модуль для сравнения HEX дампов 4. Прыжков по джампам и калам не будет по ряду причин. Офтоп: в субботу лосося поймал на 16 кг. 20 минут воевал |
|
Создано: 24 августа 2009 16:46 · Поправил: theCollision · Личное сообщение · #21 >>2. Этот пункт не понял. В ресурсы можно закинуть что угодно, к примеру код трояна или еще чего-нить, тогда имеет смысл сравнить два файла по содержимому в ресурсах. >>а счет "начиная с AddressOfEntryPoint" не согласен. К примеру, кто-то файл заразил(пакер к примеру), а на первом байте jmp еще что-то более хитрое(лже-сигнатура), тогда мне твоя точка входа WinMain или аналог ничего не даст! Она будет иметь смысл, если буду сравнивать работу чистых, распакованных файлов! >>3. Пишу модуль для сравнения HEX дампов Просто сравнить дампы я и спомощью fc смогу, да и другие также! А вот чтобы сравнить код, то придется открывать один packed1.exe в одном экземпляре hiew и packed2.exe в другом. Затем переходить по нужным смещениям и сравнивать. Но зачем так мудренно? Вот тут-то и начинаю искать сравниватель кода. Поэтому и возникает нужда в DarunGrim2 к примеру. >>4. Прыжков по джампам и калам не будет по ряду причин. И многое потеряешь! Если присмотришься к утиллитам BinDiff, IdaCompare, то увидишь что они сравнивают блоками, которые разграничивают до перехода и после перехода. А то что различается помечают красным, очень удобно! ----- My love is very cool girl. |
|
Создано: 28 августа 2009 18:57 · Поправил: RedAbishai · Личное сообщение · #22 1. Можно было бы задавать пути/имена файлов аргументами командной строки при запуске программы. Запускать из файл-менеджера так было бы быстрее. 2. Запустил CmpDisasm.exe, открыл два экзешника, сравнил, потом открыл другие два экзешника - а первые два так и остались заблокированы, ни удалить ни переместить никуда. Баг? 3. При запуске после выбора первого и второго файла сравнение можно было бы производить автоматом, не дожидаясь, пока юзер нажмет на кнопку "Compare" - очевидно, что в 99% случаев так и должно быть. 4. Да и разворачивать во весь экран было бы все-таки неплохо. |
|
Создано: 28 сентября 2009 13:34 · Личное сообщение · #23 1. RedAbishai пишет: Можно было бы задавать пути/имена файлов аргументами командной строки при запуске программы. Запускать из файл-менеджера так было бы быстрее. Что, драг дропом бросить на форму два файла это долго? 2. При выборе файла он сразу маппируется в память и хендл файла освобождается. Так что файлы блокироваться не должны. 3. Файлы дизассемблируются не полностью, а только те участки где есть различия. Кнопка "Compare" служит для перехода к следующему различию. 4. Давно уже реализовано. RedAbishai возможно ты скачал старую версию? |
|
Создано: 29 сентября 2009 08:19 · Личное сообщение · #24 |
|
Создано: 08 октября 2009 15:15 · Поправил: crc1 · Личное сообщение · #25 |
|
Создано: 08 октября 2009 18:59 · Личное сообщение · #26 |
|
Создано: 08 октября 2009 19:13 · Личное сообщение · #27 crc1 Скачал прогу. Понравился дизайн. Не понравилось вот что. Тулза ругается что размеры, названия и флаги секций различаются, не давая возможность форсировать анализ. Желательно сделать возможность сравнивать две секции (я же точно знаю что это один и тот же файл, просто дампы разные). А размеры у них разные только потому что в одном выравнивание 0x200, а в другом 0x1000. |
|
Создано: 08 октября 2009 21:55 · Поправил: crc1 · Личное сообщение · #28 Bronco пишет: crc1 пишет:че там дизассемблировалось Bronco пишет: VA адрес секций ведь в заголовке прописан. Не пойму, если в одном файле в секции данных стоит "Пошел на Йух", а в другом файле по этому же адресу "Я тебя люблю", то каким образом это можно дизассемблировать? И при чем здесь VA адрес, если кода нету? progopis форсировать анализ это шорошо, но занимаюсь этой утилитой урывками. Сам знаю, что не хватает сравнения отдельных диапазонов, но пока нет времени (кризис мля, закзчик душит) Ведь писал ее для себя, по бырому, задолбало уже... А на счет форсировать думаю поборем |
|
Создано: 09 октября 2009 14:39 · Личное сообщение · #29 |
|
Создано: 10 октября 2009 02:36 · Поправил: crc1 · Личное сообщение · #30 Bronco не бзди, все будет хорошо. Скоро добавлю дамп в hex виде, а там разберемся. Мужики, кто в теме, подскажите. Сравнение hex дампов сделал на второй вкладке, но бля затык, по горизонтали не влезют два окошка по размеру(по ширине экрана) Мерял на ноуте 15" с макс разрешением экрана. Можно эти окна сделать друг над другом, но это чет не айс. Шрифты менял, минимальный читабельный это - 8 Шрифт Courier New. Для больших мониторов поблем нет, развернул на полный экран и фсе, а для ноутов я х.з. Советуйте... Bronco, не будь голословным, выкладывай файлы где у тебя непонятки с адресами, буду разбираться Не удержаля глядя на аватар Bronco offtop Курить мы будем, НО пить не бросим end offtop |
|
Создано: 10 октября 2009 10:53 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 12 . 13 . >> |
eXeL@B —› Софт, инструменты —› CmpDisasm - Утилита для сравнения PE файлов в дизассемблированном виде |