чем сравнить два bin файла
Инструмент для сравнения 2 двоичных файлов в Windows [закрыт]
Мне нужен инструмент для сравнения 2 двоичных файлов. Файлы довольно большие. Некоторые бесплатные или пробные инструменты, которые я нашел в Интернете, не удобны для больших файлов. Вы можете порекомендовать мне какие-нибудь инструменты?
8 ответов
Если вы хотите узнать только, идентичны ли файлы, вы можете использовать Windows fc команда в двоичном режиме:
Подробнее см. В разделе ссылка для fc
Total Commander также имеет бинарную опцию сравнения: перейти к: File \Compare by content
ps. Я предполагаю, что некоторые люди могут использовать этот инструмент и могут не знать о встроенной функции.
мой любимый «швейцарский нож» вне сравнения с http://www.scootersoftware.com/
diffs двоичные смещения и значения находятся в десятичном и восьмеричном соответственно.. Влади.
Я предпочитаю использовать objcopy для преобразования в hex, а затем использовать diff.
Я думаю hexcmp является мгновенным и простым в использовании
Это приложение gui по сравнению с теми командной строки, очень проста в использовании, но довольно мощный функциональный. Это должны быть полезными для начинающих пользователей.
HexCmp HexCmp-это визуальный двоичный файл для сравнения приложений и простой в использовании редактор hex. Это может помочь вам сравнить два файла в binary raw быстро и легко. ($29.95)
когда beeing снаружи, «DiffTool» от магазина игры Googles можно использовать слишком. DiffTool сравнивает текстовые файлы, двоичные файлы и папки, если файлы не очень большие.
Чем сравнить два bin файла
Краткое описание:
Эта утилита сравнивает тексты, бинарные файлы (HexDiff), полные папки и SD-карты.
Эта утилита Diff сравнивает тексты, бинарные файлы (HexDiff), полные папки и SD-карты.
Можно сравнить документы (unformated текст из них) тоже.
Кроме того, вы можете сохранить текущее состояние ваших папок устройства для обнаружения изменений позже.
Шрифт может быть изменен (для отображения специальных символов или ни один латинских символов, как азиатские языки, прочитать описание и посмотреть фотографии моего второго приложения » шрифты для DiffTool «).
Функции DiffTool в деталях:
на результат экранов:
— цвета:
красный = старое содержание А
зеленый = новое содержание B
красный / зеленый = изменено содержание
желтый = изменения инлайн
черный = идентичный контент, A = B
— Поддерживает портрет и пейзаж
— Пинч-на-зум
— Экспорт результатов в виде текста
— Работает на больших и маленьких дисплеев! (Использует интегрированное представление вместо 2-х панелей)
1. Сравнение текста:
— Поддерживает:
текстовые файлы,
исходный код,
Текст документов (Microsoft Office и Open Office),
скомпилирован Android XML (Diff файл манифеста)
— Поддерживаемые форматы файлов:
ASCII, ANSI, ISO-8859-1, Latin1, кодировка CP1252,
UNICODE (UTF-8/16/32 немного и большой обратный порядок байт),
DOCX, XLSX, PPTX,
ODT, ODS, ODP,
DOC, XLS, PPT, RTF (latin1 только)
— Игнорирует различия на пробельных
— Игнорирует конец-строки различия форматов (Unix, Windows, Mac)
— Поиск текста или номера строк
2. Бинарного сравнения или HexDiff:
— Файлы могут иметь любой формат
— HEX и ASCII-дисплей
— Проверяет различия на пробельных и с истекшим линии
— Поиск HEX, ASCII текст или адрес
— При наличии тонны байтов, которые отличаются, показывая все детали может занять некоторое время
3. Сравнение папок:
— Проверяет, есть ли файлы 100% БИТ EXACT
(Для сравнения с HASH перспективе 4.)
— Проверяет вложенные папки тоже
— Сравнить содержимое ZIP, JAR, EPUB и APK
— Поиск имен файлов
— Использовать двойной щелчок мышью, чтобы сравнить / объединить файлы или объединить / синхронизировать папки
4. Сохранение состояния папок:
— Сохраняет файл, содержащий состояние выбранной папки и ее подпапок. При просмотре этого файла позже (см 5.) все изменения, внесенные, так как файл был сохранен отображаются:
— Вы можете искать имена файлов
— Дважды щелкнуть файл, чтобы отобразить его
Эта функция также может быть использована для сравнения двух SD-карт. Храните состояние карты 1, после него, замените карту 1 картой 2, просмотреть сохраненный файл состояния (см 5.) и все Diff будет показано.
5. Просмотр сохраненных файлов имеет 5 функций:
— загружает сохраненные дифференциалов, также других инструментов Diff / Patch
— Загружает изменения папки состояния файлов и проверяет
— Телезритель исходный код
— Рассматривает любой текстовый файл или текст поддерживаемых документов
— Рассматривает AndroidManifest.xml любого APK
DiffTool также является идеальным для просмотра исходного кода для всех разработчиков, чтобы проверить свои изменения на C, C ++, HTML, PHP, C4droid *, Python ® **, Java ® *** и любой другой исходный код.
Требуется Android: 2.1+
Русский интерфейс: Нет
софт для сравнения данных двух прошивок (hex. ).
Информация Неисправность Прошивки Схемы Справочники Маркировка Корпуса Сокращения и аббревиатуры Частые вопросы Полезные ссылки
Справочная информация
Этот блок для тех, кто впервые попал на страницы нашего сайта. В форуме рассмотрены различные вопросы возникающие при ремонте бытовой и промышленной аппаратуры. Всю предоставленную информацию можно разбить на несколько пунктов:
Неисправности
О прошивках
Большинство современной аппаратуры представляет из себя подобие программно-аппаратного комплекса. То есть, основной процессор управляет другими устройствами по программе, которая может находиться как в самом чипе процессора, так и в отдельных микросхемах памяти.
На сайте существуют разделы с прошивками (дампами памяти) для микросхем, либо для обновления ПО через интерфейсы типа USB.
Схемы аппаратуры
Начинающие ремонтники часто ищут принципиальные схемы, схемы соединений, пользовательские и сервисные инструкции. Это могут быть как отдельные платы (блоки питания, основные платы, панели), так и полные Service Manual-ы. На сайте они размещены в специально отведенных разделах и доступны к скачиванию гостям, либо после создания аккаунта:
Справочники
На сайте Вы можете скачать справочную литературу по электронным компонентам (справочники, таблицу аналогов, SMD-кодировку элементов, и тд.).
Современная элементная база стремится к миниатюрным размерам. Места на корпусе для нанесения маркировки не хватает. Поэтому, производители их маркируют СМД-кодами.
При создании запросов в определении точного названия (партномера) компонента, необходимо указывать не только его маркировку, но и тип корпуса. Наиболее распостранены:
Краткие сокращения
При подаче информации, на форуме принято использование сокращений и аббревиатур, например:
Частые вопросы
После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.
Ответ в тему софт для сравнения данных двух прошивок (hex. ). как и все другие советы публикуются всем сообществом. Большинство участников это профессиональные мастера по ремонту и специалисты в области электроники.
Возможность поиска по всему сайту и файловому архиву появится после регистрации. В верхнем правом углу будет отображаться форма поиска по сайту.
Полезные ссылки
Здесь просто полезные ссылки для мастеров. Ссылки периодически обновляемые, в зависимости от востребованности тем.
Сравнение и анализ дампов. Программы – Программы по Одометрам – AUTO TECHNOLOGY
Закачивайте только провереные проги
программы для просмотра и сравнения прошивок
Закачивайте только провереные проги
Сравнить 2 бинарных файла
import struct
file1=open(‘d:\22.jpg’,’wb’)
file2=open(‘d:\11.jpg’,’wb’)
file1.write(struct.pack(‘x’))
file2.write(struct.pack(‘x’))
diff = difflib.ndiff(file1.readlines(), file2.readlines())
delta = ‘’.join(x for x in diff if x.startswith(’+ ‘))
f = open(’3.txt’,’w’)
f.write(delta)
Сравнить два бинарных дерева на изоморфизм
Как должна работать эта программа?Что подавать на вход? Сравнить 2 дерева на изоморфизм.
Сравнить два бинарных дерева и если возможно, создать новое дерево — резольвенту двух сравниваемых
Есть множество деревьев разбора дизъюнктов. О каждом узле известно: его тип, левое и правое.
Почему так(комбинации бинарных и не бинарных вводов и выводов)?
#include #include #include #include using namespace.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Анализ и разбивка составных файлов (прошивки, образы дисков)
Файлы контейнеры (матрёшки)
2 способа объединения файлов
С практической точки зрения, с точки зрения поиска файлов можно выделить 2 способа объединить файлы:
1. Файлы хранятся без изменения, в своём начальном виде.
Пример такого объединения файлов это файловые системы без шифрования и без сжатия. Например, EXT4, NTFS — в них файлы помещены в своём первоначальном виде. Соответственно, образы таких файловых систем также относятся к этой группе. Сюда же можно отнести некоторые прошивки, например, для роутеров и IP камер.
Понятно, что в таких больших файлах (образах) можно найти хранимые файлы. Более того, хранимые файлы можно извлечь и сохранить в виде самостоятельного файла, который будет идентичен исходному.
2. Файлы обрабатываются по определённому алгоритму.
Примеры такого способа объединения файлов это файловые системы с шифрованием или сжатием (например, Squashfs), архивы со сжатием.
Для поиска отдельных файлов по их сигнатурам необходимо выполнить обратное действие, то есть если файл был сжат, необходимо его разархивировать. Если это файловая система со сжатием, то необходимо её смонтировать.
С практической точки зрения это означает, что бесполезно искать файлы по сигнатурам в архивах, пока эти архивы не распакованы (НО: некоторые программы по анализу сырых данных поддерживают работу с архивами!). Бесполезно искать файлы по сигнатурам в файловой системе Squashfs до её монтирования. При этом можно применять поиск по сигнатурам в EXT4 и NTFS и их монтирование не требуется!
Монтирование, например, образа NTFS даст нам следующее: мы сможем получать доступ к файлам этой файловой системы тем способом, каким это предусмотрели разработчики, то есть мы увидим список файлов и сможем получить доступ к любому из них без необходимости искать файлы по сигнатурам. Но при этом мы не сможем получить или даже узнать об уже удалённых файлах.
Без монтирования образа NTFS мы сможем работать с хранящимися на нём файлами напрямую, то есть с одной стороны нам придётся искать файлы по сигнатурам, но с другой стороны мы получим доступ даже к удалённым файлам. Удалённые файлы доступны в результате того, что обычно удаление на HDD заключается в том, что информация о файле просто удаляется из «журнала» файловой системы, но сам файл остаётся там же, где и был (если его впоследствии случайно не перезаписали другим файлом). Что касается с SSD, то там обычно данные всё-таки удаляются.
Ничего не мешает комбинировать эти способы, причём криминалистические инструменты позволяют сделать поиск удалённых данных более эффективным, например, поиск удалённых файлов выполняется только на тех частях диска, которые считаются пустыми.
Как распаковать прошивку камеры
Рассмотрим пример распаковки прошивки камеры Network Surveillance DVR r80x20-pq (эту камеру я использовал в тестах, например, в статье «Аудит безопасности IP камер».
Скачиваем и распаковываем архив. Он называется General_IPC_XM530_R80X20-PQ_WIFIXM711.711.Nat.dss.OnvifS_V5.00.R02.20210818_all.bin, для краткости последующих команд я переименую его в firmware.bin.
Проверим, что это за файл:
То есть это Zip архив.
Проверим с помощью Detect It Easy:
Также воспользуемся утилитой Binwalk, которая специально предназначена для анализа прошивок:
Поскольку это просто архив, распакуем его:
Видимо, следующие образы являются составными частями файловой системы:
Поинтересуемся файлом user-x.cramfs.img:
U-Boot — это загрузчик для встроенных плат на базе PowerPC, ARM, MIPS и нескольких других процессоров, который можно установить в загрузочное ПЗУ и использовать для инициализации и тестирования оборудования или для загрузки и запуска кода приложения. В вашем Linux вы можете найти пакеты uboot-tools (Arch Linux и производные) и u-boot-tools (Debian и производные) — это инструменты и утилиты для сборки прошивок и выполнения с ними других действий.
Попробуем смонтировать образ user-x.cramfs.img:
Обратимся за помощью к утилите Binwalk, которая умеет находить файлы и файловые системы даже если они находятся не в начале:
Теперь всё стало ясно — данный образ состоит из двух разделов. Первые 64 байта занимает заголовок uImage. А сама файловая система Squashfs идёт начиная с 64 байта.
Мы можем извлечь файловую систему — как это сделать сразу несколькими способами будет показано ниже, — но также по-прежнему можем её просто смонтировать, указав смещение:
Посмотрим на файлы, размещённые в образе user-x.cramfs.img:
В этом образе я не нашёл ничего интересного, размонтируем его:
Посмотрим, где начинается файловая система в romfs-x.cramfs.img:
Здесь можно найти хеш дефолтного пользователя root:
Аналогичным образом, сканируя с помощью Binwalk и монтируя разделы файловой системы, можно искать интересные файлы.
Как вырезать файловую систему из образа
1. Монтировать без извлечения
Как было показано выше, с помощью опции offset можно указать смещение и монтировать файловую систему которая является частью образа и расположена не в самом его начале:
Если образ содержит несколько файловых систем, вам может понадобиться указать ещё и опцию sizelimit — размер файловой системы:
2. Извлечение с помощью dd
Найдём разделы в прошивке:
Всего имеется три области:
Для извлечения каждого из этих разделов можно использовать команду вида:
К примеру, из файла Keenetic-II-V2.06(AAFG.0)C3.bin я хочу извлечь первые 64 байт, тогда команда следующая:
Теперь я хочу извлечь второй раздел, начинающийся с 64 байта. Этот раздел заканчивается на байте 1376256, но опция count команды dd указывает сколько байт нужно прочитать (а не границу извлечения данных), поэтому значение count рассчитывается по формуле:
Файл LZMA можно распаковать, например, с помощью 7z:
В принципе команда извлекла данные, хотя и сообщила об ошибке:
Суть ошибки в том, что после конца полезной нагрузки были обнаружены данные. Можно сказать, что это нормально (неизбежно) в данном случае, поскольку мы не знали точный размер блока и указали в качестве его конца байт, где начинается другой раздел. Другой раздел начинается с байта (в шестнадцатеричном виде) 0x150000, поэтому можно предположить, что для паддинга (padding, выравнивания) между разделами просто «набиты» нули. В этом можно убедиться, открыв файл data.lzma в шестнадцатеричном редакторе, например в Bless:
Да, в конце этого файла нули — если точный размер неизвестен, то лучше записать лишнего, чем потерять данные.
Третий блок начинается с 1376256 байта и имеет размер 6205991 об этом нам говорит строка «size: 6205991 bytes». Команда по его извлечению следующая:
Но производители прошивки всё равно меня перехитрили использовав Squashfs version 3.0 из 2006 года и я не смог её открыть по техническим причинам:
3. Извлечение с помощью Binwalk
У программы Binwalk имеются следующие опции для извлечения:
Более подробное их описание вы можете прочитать в карточке программы https://kali.tools/?p=6771. Это кажется удобным — извлекать данные автоматически, но на практике результат будет не совсем тем, который вы ожидаете. Поскольку даже в ручном режиме мы не всегда точно знаем границы разделов, то это же самое относится и к указанным опциям, которые плохо работают с разделами, для которых не указан конкретный размер.
4. Извлечение с помощью dc3dd и dcfldd
У программы dd есть улучшенные версии dc3dd и dcfldd. При желании для извлечения разделов файловой системы из образа диска вы можете использовать их.
Поиск последовательности байтов в бинарном файле
Программы file, Binwalk и Detect It Easy в поиске данных используют сигнатуры. Эти сигнатуры предопределены в их базах данных (так называемые магические файлы).
Если вам нужно выполнить поиск по вашим собственным сигнатурам, то есть по строке бинарных данных, то вы можете использовать Binwalk со следующими опциями:
Например, поиск шестнадцатеричных байтов 53EF в файле /mnt/disk_d/fs.ext4:
Программа sigfind из пакета Sleuth также позволяет искать по сигнатурам, при этом программа позволяет указать отступ от начала блока (НЕ файла). В программе прописаны несколько сигнатур для поиска файловых систем, например:
В следующем примере ищется последовательность байтов 53EF (обратный порядок записи байтов) со смещением 56 от любого блока (если не указать смещение, то будут выведены только блоки, где данная последовательность байтов имеет смещение 0):