Форум программистов Vingrad
|
Модераторы: Poseidon, Snowy, bems, MetalFan
Страницы: (2) Все [1] 2 |
Поиск: |
![]() ![]()
|
|
Опции темы |
| Rexar |
|
||
|
Шустрый Профиль Репутация: 0
|
Как изменить контрольную сумму файла средствами Делфи……. |
||
|
|||
| Poseidon |
|
||
Delphi developer Профиль
Репутация: 53
|
Какого файла? Формат? В общем случае можно просто открыть файл как текст и добавить туда пару символов. Хотя для некоторых форматов может не прокатить ——————— Если хочешь, что бы что-то работало — используй написанное, |
||
|
|||
| Rexar |
|
||
|
Шустрый Профиль Репутация: 0
|
*.exe, если просто добавить символы, то программа не запуститься….. |
||
|
|||
| Snowy |
|
||
Эксперт Профиль
Репутация: 192
|
Изменить контрольную сумму файла легко. Достаточно изменить любой байт файла и любой CRC выдвст другой результат. |
||
|
|||
| Rexar |
|
||
|
Шустрый Профиль Репутация: 0
|
Нужно изменить размер файла, например чтоб больше был…….., это Hex редактором что-ли делать или как ? Я просто не пойму что ты написал |
||
|
|||
| DIMONSOFT |
|
||
|
Бывалый Профиль
Репутация: 1
|
Антивирусам это непонравиться ——————— |
||
|
|||
| Poseidon |
|
||
Delphi developer Профиль
Репутация: 53
|
DIMONSOFT, антивирусам все равно! ——————— Если хочешь, что бы что-то работало — используй написанное, |
||
|
|||
| DIMONSOFT |
|
||
|
Бывалый Профиль
Репутация: 1
|
Согласен. Но непонятно что ——————— |
||
|
|||
| Guest |
|
||
|
Unregistered
|
Я хочу вот что: есть файл 1.exe он занимает 48,8 КБ, нужно сделать так чтоб он занимал места больше чем 48,8 КБ, например 50,8 КБ. |
||
|
|||
| Zero |
|
||
Эксперт Профиль
Репутация: 8
|
Да можно и текстовым редактором… Или я например, использую Total Commander, там выбираешь любой файл, и нажимаешь <F4> |
||
|
|||
| Guedda |
|
||
Подрывник Профиль
Репутация: 14
|
Если у тебя есть исходники, то лучше дописать что-нить (кроме комментариев)… А если исходников нет, тогда лучше делать, как посоветовал Snowy ——————— Ll 2 |
||
|
|||
| Yanis |
|
||
Эксперт Профиль
Репутация: 72
|
2 Rexar ———————
|
||
|
|||
| Rexar |
|
||
|
Шустрый Профиль Репутация: 0
|
Как это сделать чтоб *.exe файл потом можно было запустить ? Если я тупо допишу через блокнот то экзэшник не запускается… |
||
|
|||
| Poseidon |
|
||||
Delphi developer Профиль
Репутация: 53
|
——————— Если хочешь, что бы что-то работало — используй написанное, |
||||
|
|||||
| Snowy |
|
||||
Эксперт Профиль
Репутация: 192
|
|
||||
|
|||||
|
Страницы: (2) Все [1] 2 |
![]() ![]()
|
| Правила форума «Delphi: Общие вопросы» | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
| 0 Пользователей: |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
- Главная
- Форум
- Личные форумы.
- Полезности от nikzzzz

|
Последний раз редактировалось: nikzzzz (2017-09-30 18:20), всего редактировалось 3 раз(а) |
Отправлено: 18-Окт-2016 03:28
(спустя 1 месяц 1 день)

(спустя 1 месяц 1 день)
nikzzzz |
|
Отправлено: 14-Ноя-2016 15:33
(спустя 27 дней)

(спустя 27 дней)
KottoSOFT |
|
Отправлено: 14-Ноя-2016 15:51
(спустя 18 минут)

(спустя 18 минут)
vovan1982 |
|
Отправлено: 23-Сен-2017 22:07
(спустя 10 месяцев 9 дней)

(спустя 10 месяцев 9 дней)
Joker-2013 |
|
Отправлено: 23-Сен-2017 22:42
(спустя 35 минут)

(спустя 35 минут)
nikzzzz |
45269
Может если корректировать контрольную сумму, вирустотал будет более снисходителен к файлу? А черт их знает, в принципе коррекция кс никак не повредит. 45269
Если подписывать проект цифровой подписью, контрольная сумма становится корректной… (наверное в утилите подписания, встроена корректировка) Это само-собой, иначе подпись будет не действительна. |
Отправлено: 23-Сен-2017 22:51
(спустя 8 минут)

(спустя 8 минут)
Adler |
45269
Может если корректировать контрольную сумму, вирустотал будет более снисходителен к файлу… Небольшая разница, но есть: Не корректированная КС — |
Отправлено: 23-Сен-2017 22:52
(спустя 56 секунд)

(спустя 56 секунд)
Joker-2013 |
|
Отправлено: 23-Сен-2017 22:54
(спустя 2 минуты)

(спустя 2 минуты)
Joker-2013 |
|
Отправлено: 23-Сен-2017 23:12
(спустя 18 минут)

(спустя 18 минут)
Adler |
Последний раз редактировалось: Adler (2017-09-23 23:16), всего редактировалось 1 раз |
Отправлено: 23-Сен-2017 23:15
(спустя 3 минуты)

(спустя 3 минуты)
nikzzzz |
|
Отправлено: 23-Сен-2017 23:20
(спустя 5 минут)

(спустя 5 минут)
Joker-2013 |
|
Отправлено: 23-Сен-2017 23:23
(спустя 3 минуты)

(спустя 3 минуты)
Adler |
45275
Провел эксперимент на BootInst , результаты поразили, на время написания вирустотал показывал порядка пяти срабатываний (27.07.2017), теперь уже 21. 22 и 15 45276
в BootInst и с ресурсами что то не так А что там не так? Последний раз редактировалось: Adler (2017-09-23 23:28), всего редактировалось 1 раз |
Отправлено: 23-Сен-2017 23:28
(спустя 4 минуты)

(спустя 4 минуты)
nikzzzz |
|
Отправлено: 25-Сен-2017 22:54
(спустя 1 день 23 часа)

(спустя 1 день 23 часа)
Ander_73 |
|
Страница 1 из 2
Текущее время: 10-Фев 16:51
Часовой пояс: UTC + 3
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы
Вопрос:
В старой игре, которую я пытаюсь использовать, есть проверка CRC-32. У меня нет доступа к контрольной сумме CRC, поэтому я должен изменить файл, сохраняя тот же вывод контрольной суммы.
Информация у меня есть
-
Файл, если сам файл является единственным входом в программу CRC-32, я могу рассчитать, какая контрольная сумма CRC-32 должна быть.
-
32-битный полиномиальный код.
Лучший ответ:
Как говорит @MrSmith42, при условии, что вам не нужно поддерживать постоянную длину файла, можно легко вычислить “коллизию” (имя, данное для двух входных сообщений, которые приводят к одному и тому же хешу).
Это неловко, с большим количеством небольшого поворота, но очень быстро.
Предположим, что исходный файл в шестнадцатеричном виде:
1122334455667788
Тогда его контрольная сумма CRC-32 будет 0x9118E1C2 с использованием стандартного полинома CRC32. Если используемый алгоритм не является стандартным, его можно заменить. Я буду придерживаться стандарта для демонстрационных целей.
Сначала внесите необходимые изменения в файл. Например, я меняю байт посередине:
11223344FF667788
Первый шаг для восстановления CRC – заполнить файл четырьмя нулевыми байтами:
11223344FF66778800000000
Контрольная сумма CRC теперь 0x6BBE83C9.
Шаг второй, XOR две контрольные суммы:
0x9118E1C2 XOR 0x6BBE83C9 = 0xFAA6620B
Шаг третий, немного поменять результат:
Bit reverse of 0xFAA6620B = 0xD046655F
Шаг четвертый, и это немного странно, так что смотрите ниже, выполните обратный расчет CRC32:
0xD046655F * inverse(x32) mod crc_poly = 0xe4c7d232
Шаг пятый, побитовый результат, побайтно на этот раз:
0xe4c7d232 bit reversed byte-wise = 0x27E34B4C
Шаг шестой, замените заполненные байты на результат
11223344FF66778827E34B4C
Вуаля, значение контрольной суммы CRC32 теперь вернулось к 0x9118E1C2.
Самый простой способ сделать обратный расчет CRC – это пакет BitVector в Python:
>>> import BitVector as bv
>>> poly = bv.BitVector(intVal = 0x104C11DB7) # "standard" CRC32 polynomial
>>> inv = bv.BitVector(intVal = 0x100000000).gf_MI(poly, 32)
>>> k = 0xD046655F
>>> p = bv.BitVector(intVal = k).gf_multiply_modular(inv, poly, 32)
>>> print(p.getHexStringFromBitVector())
e4c7d232
Этот алгоритм от Redditor/u/supersaw7 опубликован в этой теме. Я не встречал лучшего, несмотря на то, что более простая версия была невероятно возможной.
Ответ №1
Если размер файла не обязательно должен быть постоянным, вы можете просто изменить его содержимое столько, сколько хотите, и добавить несколько байтов (4), чтобы исправить контрольную сумму.
Какие байты для добавления могут быть
а) вычислен, если вы понимаете используемый CRC-алгоритм или
б) попробуйте попытку грубой силы найти подходящие байты (может занять некоторое время, но если вам не нужно часто это делать, это все еще возможно
Ответ №2
Используйте пародию. После того, как вы изменили свой файл, вам нужно будет определить набор битовых местоположений, которые вы позволите изменить, чтобы вернуть CRC в исходное значение. Вам нужно будет предоставить пародию исключительного или исходного CRC, к которому вы хотите вернуться, и текущего CRC, а также местоположения бит, которые вам не нужны, например, в символьных строках, а также некоторая информация о сам CRC и длина файла. затем spoof решает, для какого из этих битов перевернуться, чтобы получить желаемый CRC. В документации дается руководство по количеству изменяемых позиций бит, которые вам нужно будет предложить.
Вы можете оставить файл той же длины или добавить байты в файл для создания позиций, которые считаются изменчивыми.
Старая игра, которую я пытаюсь сделать модом, имеет проверку CRC-32. У меня нет доступа к самой контрольной сумме CRC, поэтому я должен изменить файл, сохраняя тот же вывод контрольной суммы.
Информация у меня есть
-
Файл, если сам файл является единственным входом в программу CRC-32, я могу рассчитать, какой должна быть контрольная сумма CRC-32.
-
32-битный полиномиальный код.
3 ответа
Лучший ответ
Как говорит @ MrSmith42, при условии, что вам не нужно поддерживать постоянную длину файла, можно легко рассчитать «коллизию» (имя, данное для двух входных сообщений, которые приводят к одному и тому же хешу).
Это неудобно, с большим количеством небольшого поворота, но очень быстро.
Предположим, исходный файл в шестнадцатеричном виде:
1122334455667788
Тогда его контрольная сумма CRC-32 будет 0x9118E1C2 с использованием стандартного полинома CRC32. Если используемый алгоритм не является стандартным, его можно заменить. Я буду придерживаться стандарта для демонстрационных целей.
Сначала внесите необходимые изменения в файл. Например, я меняю байт посередине:
11223344FF667788
Первый шаг для восстановления CRC — заполнить файл четырьмя нулевыми байтами:
11223344FF66778800000000
Контрольная сумма CRC теперь 0x6BBE83C9.
Шаг второй, XOR две контрольные суммы:
0x9118E1C2 XOR 0x6BBE83C9 = 0xFAA6620B
Шаг третий, немного поменять результат:
Bit reverse of 0xFAA6620B = 0xD046655F
Шаг четвертый, и это немного странно, так что смотрите ниже, выполните обратный расчет CRC32:
0xD046655F * inverse(x32) mod crc_poly = 0xe4c7d232
Шаг пятый, побитовый результат, побайтно на этот раз:
0xe4c7d232 bit reversed byte-wise = 0x27E34B4C
Шаг шестой, заменить заполненные байты с результатом
11223344FF66778827E34B4C
Вуаля, значение контрольной суммы CRC32 теперь вернулось к 0x9118E1C2.
Самый простой способ сделать обратный расчет CRC — это пакет BitVector в Python:
>>> import BitVector as bv
>>> poly = bv.BitVector(intVal = 0x104C11DB7) # "standard" CRC32 polynomial
>>> inv = bv.BitVector(intVal = 0x100000000).gf_MI(poly, 32)
>>> k = 0xD046655F
>>> p = bv.BitVector(intVal = k).gf_multiply_modular(inv, poly, 32)
>>> print(p.getHexStringFromBitVector())
e4c7d232
Этот алгоритм от Redditor / u / supersaw7 опубликован в этой теме, Я не сталкивался с лучшей, несмотря на то, что возможна более простая версия.
4
Heath Raftery
3 Май 2019 в 00:19
Если размер файла не обязательно должен быть постоянным, вы можете просто изменить его содержимое столько, сколько захотите, и добавить несколько байтов (4) для исправления контрольной суммы.
Какие байты добавить можно
А) рассчитывается, если вы понимаете используемый алгоритм CRC или
Б) Попытка грубой силы найти подходящие байты (может занять некоторое время, но если вам не нужно делать это часто, это все же выполнимая попытка
1
MrSmith42
14 Янв 2018 в 08:21
Используйте обман . После того, как вы изменили свой файл, вам нужно будет определить набор битовых положений, которые вы бы позволили изменить, чтобы вернуть CRC к исходному значению. Вам нужно будет предоставить поддельный эксклюзивный или исходный CRC, к которому вы хотите вернуться, и текущий CRC, а также битовые местоположения, которые вам не нужны, например, в символьных строках, вместе с некоторой информацией о самом CRC и длине файла. Затем spoof решит, какой из этих битов перевернуть, чтобы получить желаемый CRC. Документация дает руководство о том, сколько изменяемых битовых позиций вам нужно предложить.
Вы можете оставить файл такой же длины или добавить байты в файл, чтобы создать позиции, которые вы считаете изменяемыми.
1
Mark Adler
14 Янв 2018 в 16:29
Содержание
- Что такое MD5, SHA-1 и SHA-256
- Что такое хеш-суммы и для чего они нужны
- Как проверить хеш в Windows 10
- Как узнать хеш в PowerShell
- Как проверить хеш-сумму через Командную строку
- Как проверить хеш через HasTab
- Для чего проверяются хэш-суммы файлов и как это сделать?
- Что такое целостность файла?
- Зачем проверять целостность файла?
- Как можно проверить целостность файла?
- Что такое хэш суммы md5?
- Как проверить хэш-сумму MD5 с помощью программы Solid Explorer?
- Есть ли другие подобные решения
- Советы и выводы
- Контрольные суммы файла
- Проверка контрольных сумм файлов в Windows
- Проверка хеша файла в командной строке Windows
- Проверка хеша в программе MD5 File Checker
- Расчет контрольных сумм в программе HashTab
- Проверка хешей в Linux
- Как проверить MD5 хеш-сумму файла в Windows
- Вариант через расширение для проводника
- Вариант через командную строку (без установки программ)
- Вариант через командную строку (с установкой программы)
- Комментарии к статье (9)
- Как узнать контрольную сумму файла в Windows
- Для чего нужны контрольные суммы
- Как вычислить контрольную сумму он-лайн
- Как узнать контрольную сумму файла в Windows
- Файловый менеджер Total Commander
- Файловый архиватор 7-Zip
- Как подсчитать контрольную сумму файла из консоли Windows
- Считаем контрольную сумму в PowerShell
- Какой алгоритм вычисления контрольных сумм самый правильный
- Выводы
Что такое MD5, SHA-1 и SHA-256
В процессе исследования интернета или перед загрузкой определенных файлов вы можете столкнуться с загадочными параметрами MD5, SHA-1 и SHA-256, также известными как хеш-суммы. То, что сначала кажется просто случайным набором букв и цифр, на самом деле является уникальным ключом, который позволяет проверить подлинность файлов и узнать, не были ли они изменены или подделаны.
Что такое хеш-суммы и для чего они нужны
Хеш – это результат работы криптографических алгоритмов, разработанных для создания набора цифр и букв. Его еще называют «цифровым отпечатком». Обычно эти наборы имеют фиксированную длину и количество знаков, вне зависимости от размера входной информации. К примеру, у “WP” и “WP-SEVEN” будут хеш-суммы абсолютно одинакового размера. Длина суммы зависит только от того, какой алгоритм хеширования вы проверяете. К примеру, SHA1 выдаст сумму размером 40 знаков, а MD5 только 32.

Кроме того, обратите внимание, что, несмотря на минимальное различие между “WP-SEVEN” и “WP-SEVEM”, хеш-суммы полностью разные и не имеют ничего общего. Это значит, что, даже если кто-то изменит файл хоть на 1 бит (грубо говоря), конечный результат получит совершенно другую хеш-сумму. Это и делает хеш удобным способом проверки подлинности файла. Издатель указывает оригинальную сумму, а пользователь проверяет полученный результат и сравнивает его с оригиналом.
Хеширование осуществляется при помощи различных стандартов. Зачастую это MD5, SHA-1 и SHA-256. Все три алгоритма работают по-разному, но концепция у них одинакова. Мы не будем здесь внедряться в принцип работы каждого алгоритма, поскольку это весьма сложная информация, а только приведем общие сведения, необходимые для обычного пользователя.
Как проверить хеш в Windows 10
Любая настольная операционная система, будь то Windows 10, Linux или MacOS, имеет стандартные механизмы проверки хеш-сумм любых файлов на вашем диске.
Как узнать хеш в PowerShell
PowerShell выдаст вам хеш-сумму вашего файла. По умолчанию Windows генерирует хеш SHA-265, но вы можете указать, что вам нужен хеш другого алгоритма. Для этого используйте следующие команды:
Как проверить хеш-сумму через Командную строку
Множество действий, которые вы выполняете в PowerShell, можно сделать и в классической командной строке. Проверка хеша через Командную строку делается следующим образом.
По умолчанию Командная строка выводит на экран хеш-сумму SHA1, но вы можете изменить это, указав системе, какой именно хеш вы хотите получить. Для этого используйте следующие команды:
Как проверить хеш через HasTab
HashTab – это отличная небольшая утилита, которая упростит проверку хеш-сумм. Вам не надо будет каждый раз вводить сложные команды для проверки. Достаточно будет только зайти в свойства файла, где уже будут собраны все суммы.
Кроме того, HashTab позволяет легко сравнить хеш-суммы двух файлов. Для этого по первому файлу кликните правой кнопкой мыши, выберите Свойства, а затем откройте вкладку Хеш-суммы файлов. Нажмите Сравнить файл и укажите путь к второму файлу.
Хеш-сумма второго файла отобразится в поле Сравнение хеша, и, если суммы совпадают, возле иконки решетки будет зеленая галочка. Если не совпадают – красный крестик.
Источник
Для чего проверяются хэш-суммы файлов и как это сделать?
Для проверки целостности файлов применяются хэш-суммы, позволяющие путем сравнения отследить изменения или повреждения в файле.
Что такое целостность файла?
Хэш сумма представляет собой простую последовательность символов, которая должна совпадать у проверяемых объектов. В случае несовпадения контрольных сумм становится понятно, что файл подвергался изменению или повреждению.
Зачем проверять целостность файла?
Полная идентичность контрольной суммы гарантирует, что файл не был несанкционированным образом изменен посторонним пользователем, а также является подтверждением того, что скачиваемые файлы являются точной копией исходных.
Проведение данной процедуры необходимо для проверки целостности загружаемых файлов, чтобы обезопасить свое устройство и убедиться в том, что злоумышленники их не модифицировали, заразив вирусами. Хэш-функция применяется для файлов любых типов, включая установщики EXE и архивы ZIP.
Хакеры могут взломать интернет-ресурс, на котором размещен файл для скачивания, а затем подменить его на зараженный и изменить контрольные суммы, указанные разработчиком программы.
Как можно проверить целостность файла?
Для проверки контрольных сумм файлов можно воспользоваться специальными программами. Можно проверить целостность файла онлайн или прибегнуть к использованию встроенного инструмента в командной строке Windows, который называется CertUtil.
Чтобы выполнить проверку по алгоритму MD5, нужно ввести в командную строку следующее:
после чего указать путь к файлу, который необходимо проверить. После этого останется запустить выполнение команды с помощью клавиши Enter.
Что такое хэш суммы md5?
Это специальный криптографический алгоритм хэширования, состоящий из 32 шестнадцатеричных цифр и букв. Используется во многих файлах и сервисах. Существуют другие подобные алгоритмы, например, SHA.
Как проверить хэш-сумму MD5 с помощью программы Solid Explorer?
Данная программа предназначена для удобного управления файлами. Этот файловый менеджер имеет расширенный функционал, позволяющий выполнять различные действия с файлами. С его помощью можно обеспечить защиту файлов на основе надежного шифрования с помощью пароля и отпечатка пальца.
Данное приложение поддерживает основные сетевые протоколы и подключение к облачным хранилищам. Также можно получить Root-права для доступа к корневому каталогу. Есть функции группировки файлов по папкам и индексированный поиск.
Процесс установки на Android выглядит следующим образом:
Есть ли другие подобные решения
Если требуется быстро проверить целостность файла, но нет доступа к специализированному программному обеспечению, можно открыть вкладку « Свойства » двух сверяемых файлов и провести сравнение величины их размера в байтах. Если величины совпадают, то файл, скорее всего, не подвергался внесению каких-либо изменений.
Также можно инсталлировать бесплатную программу Hashtab с официального сайта разработчика. Для этого необходимо выполнить следующие действия:
Еще одним способом проверки совпадения хэш-суммы является использование языков веб-программирования для написания специализированного скрипта.
Советы и выводы
Подводя итоги можно сказать, что проверка хэш-сумм позволяет максимально достоверно определить отсутствие модификаций в проверяемых файлах. Для ее проведения можно прибегнуть к использованию стандартных средств операционной системы Windows или установить стороннюю специализированную программу.
Дайте знать, что вы думаете по этой теме материала в комментариях. За комментарии, дизлайки, отклики, лайки, подписки огромное вам спасибо!
Источник
Контрольные суммы файла
Во время копирования информации или передачи ее по сети не гарантируется ее целостность, что особенно актуально для больших объемов информации. Представьте себе, что вы скачивали из интернета установочный файл размером 900 мегабайт, как убедиться, что он загрузился полностью и без ошибок. Ведь если в нем есть ошибки, то программа может просто не установиться или во время ее работы будут возникать сбои.
Конечно можно сравнить размер полученного файла с исходным, но этого не достаточно, чтобы утверждать об идентичности двух файлов. Поэтому были разработаны специальные алгоритмы позволяющие решить эту задачу.
Мы не будем углубляться в техническую реализацию, достаточно знать, что применяя определенный алгоритм высчитывает некое значение однозначно описывающее данный файл. Оно всегда одинаковое для одних и тех же данных и называется контрольной суммой или хешем. Хотя самих алгоритмов хеширования существует множество, вот некоторые из наиболее часто встречающихся: MD5, CRC32, SHA-1, SHA256, BTIH.
Поэтому очень часто на странице загрузки указаны хеши оригинальных файлов, чтобы пользователи могли выполнить проверку после скачивания. Таким образом зная контрольную сумму оригинального файла рассчитанную по какому-либо алгоритму, мы можем проверить идентичность его копии, рассчитав для нее соответствующий хеш и сравнив с оригинальным, если они не совпадут, значит в данных есть разница. Это можно использовать не только для проверки целостности данных загруженных из интернета, но и для сравнения двух файлов в компьютере или, например для проверки корректности записи данных на Узнав о необходимости выполнить проверку, начинающие пользователи компьютера часто не знают, как проверить хеш файлов, хотя это делается очень просто. В разных операционных системах данная операция выполняется по-разному.
Проверка контрольных сумм файлов в Windows
В операционной системе Windows существует множество способов выполнить данную проверку, поэтому рассмотрим только несколько из них, а вы уже сами выберите наиболее удобный вам.
Проверка хеша файла в командной строке Windows
Начнем с самого простого способа не требующего установки дополнительного программного обеспечения. Начиная с Windows 7 есть возможность рассчитать контрольную сумму в командной строке используя встроенную утилиту certutil среди прочего умеющую вычислять хеш файлов. Просто запускаете командную строку и вводите следующую команду:
где [HashAlgorithm] может принимать одно из следующих значений: MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512. Таким образом, чтобы узнать контрольную сумму файла Win10_1511_1_Russian_x32.iso расположенного в корне диска D: по алгоритму SHA-1 команда будет выглядеть так:
Результатом выполнения команды будет строка содержащая хэш-код в виде шестнадцатеричных чисел. Кстати, чтобы не вводить путь до файла руками, можно воспользоваться хитростью. Результат вычислений выделен красным. Осталось сравнить его с оригинальным, для этого удобно вставить их рядом в блокноте. Причем если использовать продвинутый блокнот типа Notepad++, то и сверять визуально не придется, если хеши будут одинаковы, то они подсветятся.
Способ довольно простой, но некоторых неопытных пользователей пугает интерфейс командной строки, да и сравнивать контрольные суммы конечно не очень удобно. Поэтому существует множество сторонних программ умеющих вычислять хэши. Рассмотрим некоторые из них.
Проверка хеша в программе MD5 File Checker
Очень простая программа не требующая установки и имеющая графический интерфейс. Состоит всего из одного окна в котором нужно сначала выбрать файл в верхнем поле, затем вставить в самое нижнее правильный хеш и нажать кнопку «Проверить».
Через некоторое время программа выдаст вердикт. Основной минус программы, что она умеет использовать только алгоритм MD5, что иногда бывает недостаточно. Скачать MD5 File Checker можно здесь.
Расчет контрольных сумм в программе HashTab
Здесь уже используется немного другой подход, причем есть версия как для Windows так и для Mac OS. В Windows программа является расширением проводника, а на Mac является плагином для Finder. Покажем работу программы на примере Windows.
Если после установки программы HashTab щелкнуть правой кнопкой мыши по проверяемому файлу и выбрать в контекстном меню «Свойства», то мы обнаружим новую вкладку «Хеш-суммы файлов» и одновременно запустится расчет контрольных сумм этого файла.
Причем программа умеет вычислять хеш по множеству алгоритмов, а какой будет использоваться, можно выбрать, щелкнув «Настройки». Так же есть возможность указать оригинальную контрольную сумму, если хеши совпадут, то появится зеленая галочка. Скачать HashTab и узнать последние новости можно с сайта программы.
Представленных вариантов вполне достаточно, для проверки целостности файлов в Windows. Единственное пожалуй упомянем, что Total Commander так же умеет вычислять CRC-суммы, соответствующие возможности находятся в меню «Файл».
Проверка хешей в Linux
Здесь так же можно воспользоваться консолью. В случае алгоритма MD5 достаточно выполнив команду.
Для хеш-сумм по алгоритму SHA-1 команда выглядит немного иначе.
В случае необходимости рассчитать циклическую контрольную сумму (CRC) используется команда
Кто не хочет связываться с консолью, может поставить программу Gtkhash с графическим интерфейсом и проверять целостность файлов в ней. Для установки программы выполнить в консоли:
Напоследок расскажем о том, как можно убедиться, что скачанный с торрента или доставшейся из другого ненадежного источника дистрибутив Windows оригинальный и его не изменял кто-либо. Для этого идем на сайт Майкрософт где подписчики MSDN могут скачивать ее продукты. Находим нужный нам образ, обращая внимание на версию, дату, разрядность и язык. Когда нужный продукт будет найден, нажимаем на «Сведения» рядом с ним.
В нижней части раскрывшейся области будет указана хеш сумма рассчитанная по алгоритму SHA1. Не смотрите на название вашего файла, его могли переименовать, главное это содержимое. Кроме того не стоит тратить время на проверки контрольных сумм образа, если это сборка, репак и подобное народное творчество, а не образ MSDN.
Источник
Как проверить MD5 хеш-сумму файла в Windows
В некоторых ситуациях, может быть необходимо, посчитать MD5 хеш-сумму для файла, который вы скачали на свой компьютер. Например, чтобы быть уверенным в том, что вы скачали именно тот файл, который хотели и злоумышленник его не модифицировал. В этой статье мы рассмотрим 2 разных способа это сделать: через расширение для проводника, а также через командную строку.
Вариант через расширение для проводника
Для проводника Windows существует замечательная программа Hashtab, которая бесплатна для некоммерческого использования. Скачать ее можно с официального сайта. Выбираем бесплатную (Free) версию и жмем на кнопку «Download».
После установки программы, в контекстном меню проводника появится новая вкладка «Хеш-суммы файлов», выбрав которую, программа автоматически посчитает хеш-суммы для выбранного файла в зависимости от того, какие алгоритмы выбраны в ее настройках.
Вариант через командную строку (без установки программ)
В том случае, если вам не хочется устанавливать какие-либо программы, то можно обойтись встроенными средствами Windows, для этого можно воспользоваться утилитой CertUtil.
Для проверки MD5 хеша, достаточно ввести следующую команду:
Как видно на скриншоте, хеш-сумма нашего файла 62130c3964. полностью идентична той, которую мы получили с помощью первого способа.
Вариант через командную строку (с установкой программы)
В случае, если необходимо посчитать хеш-сумму файла через командную строку, мы можем воспользоваться утилитой от Microsoft, которая годится как раз для таких случаев. Скачиваем ее с официального сайта Microsoft и устанавливаем. Для этого надо будет создать какую-либо папку на жестком диске и указать ее в процессе установки. В нашем примере, программа была установлена в папку C:Program Files (x86)FCIV. Для того, чтобы посчитать MD5 хеш-сумму файла, нам необходимо запусить командную строку и в ней набрать следующую команду:
Как видите, MD5 хеш-сумма одинакова как для всех трех способов, которые рассмотрены в данной статье.
Была ли эта статья Вам полезна?
Комментарии к статье (9)
[мат удален] не работают команды.
Доброе время суток, подскажите пожалуйста, где и какими способами можно дешефрировать число из 20-30 цифр. Вот пример:
ba18c0a0c200eb9c4cf3cdb27806eb61
число зашивровано по MD5
В интернете достаточно материалов на эту тематику (как пример), к данной статье это не имеет отношения.
Этот вопрос сильно не по теме статьи 😉
Основной плюс хеш-функций, это то, что они работают только в одну сторону.
1) Можно поискать в интернете сервисы с радужными таблицами (rainbow tables) по алгоритму md5 и попытать счастья там, вводя этот хеш. Но очень вряд ли что кто-нибудь делал вычисления для таких огромных чисел.
2) Можно установить hashcat, который позволяет в том числе искать хеши с помощью CPU и GPU для различных алгоритмов, включая MD5 и методом bruteforce атаки по маске просто пытаться подобрать такое число, которое даст такой хеш. Но этот способ вряд ли подойдет для таких огромных чисел. Для примера на GTX 2080 Ti на перебор всех возможных хешей для числа из 18 цифр требуется чуть меньше 2-х лет.
Источник
Как узнать контрольную сумму файла в Windows
При скачивании ISO образов и архивов больших размеров всегда есть вероятность получить «битый» файл. Во времена Dial-UP такое было сплошь и рядом. И хотя сейчас такое случается намного реже, чтобы убедиться, что перед вами «оригинальный» файл придумали контрольные суммы, которые вычисляются на основе содержимого и позволяют заметить несоответствие даже одного байта.
То есть, если вы измените один байт в проверяемом файле, то и контрольная сумма такого файла так же изменится.
Для чего нужны контрольные суммы
У контрольных сумм две задачи:
Зная контрольную сумму оригинала, можно проверить является ли ваша копия подлинной.
Как вычислить контрольную сумму он-лайн
Контрольную сумму можно проверить он-лайн. Но я не буду рекомендовать этот способ, так как если размер вашего файла несколько ГигаБайт, то это займет много времени и всегда есть вероятность ошибки при передаче файла. Кроме того делиться своими файлами со сторонними сервисами не правильно.
Как узнать контрольную сумму файла в Windows
Разумнее вычислить контрольную сумму локально на своем компьютере. Это быстро и конфиденциально. В этой статье я опишу несколько способов получения контрольных сумм, как с помощью сторонних программ, так и непосредственно с помощью самой операционной системы Виндовс.
Файловый менеджер Total Commander
Total Commander — это популярный файловый менеджер, работающий на платформах Microsoft Windows и Android. В нем есть встроенная функция вычисления контрольных сумм.
После чего вы можете выбрать один из алгоритмом вычисления контрольных сумм.
По-умолчанию Total Commander создает файл с именем проверяемого и с расширением по имени выбранного алгоритма расчета контрольной суммы.
Файловый архиватор 7-Zip
7-Zip — свободный, бесплатный файловый архиватор с высокой степенью сжатия данных. Он поддерживает несколько алгоритмов сжатия и множество форматов данных, включая собственный формат 7z c высокоэффективным алгоритмом сжатия LZMA.
Этот архиватор имеет встроенную функцию вычисления контрольных сумм. Запустить ее можно прямо из контекстного меню Windows:
Если выбрать «звездочку», то программа подсчитает сразу несколько контрольных сумм:
Полученные данные можно выделить и скопировать в текстовый документ.
Как подсчитать контрольную сумму файла из консоли Windows
Чтобы посчитать контрольную сумму совсем не обязательно устанавливать специальные программы. И если вы не пользуетесь упомянутыми выше, то можете рассчитать контрольную сумму прямо из командной строки операционной системы.
Например, чтобы посчитать контрольную сумму SHA1 с помощью утилиты CertUtil нужно запустить командную строку Windows 10, 8 или Windows 7 и ввести следующую команду:
Вот пример ее работы через несколько минут:
Считаем контрольную сумму в PowerShell
PowerShell — это средство автоматизации от Microsoft, с интерфейсом командной строки и языка сценариев, работает и включена в состав Windows 8 и новее.
Чтобы вычислить контрольную сумму файла необходимо выполнить команду Get-FileHash указав через пробел имя файла и алгоритм вычисления контрольной суммы:
Обратите внимание, что полный путь и имя файла лучше заключить в двойные кавычки.
По-умолчанию, если не указать тип контрольной суммы, то будет посчитана SHA-256.
Для алгоритмов вычисления контрольной суммы в Windows PowerShell поддерживаются следующие значения:
Для оформления вывода в виде списка можно использовать параметр | Format-List. Например:
Тогда результат работы будет выглядеть так:
Подробнее об использовании команды Get-FileHash можно прочитать на официальном сайте Microsoft — https://docs.microsoft.com/ru-ru/powershell/module/microsoft.powershell.utility/get-filehash
Какой алгоритм вычисления контрольных сумм самый правильный
MD5, SHA-1, SHA-256 и прочие – это разные алгоритмы хеш-функции. Хэши являются результатом работы криптографических алгоритмов, и представляют собой строку символов. Часто эти строки имеют фиксированную длину, независимо от размера входных данных.
MD5 самый быстрый, считается устаревшим, а SHA-256 имеет наименьшую вероятность коллизии, когда два разных файла имеют одинаковую контрольную сумму.
Для проверки целостности файла вам следует использовать тот, который предоставляет издатель. Если у вас на выбор есть несколько контрольных сумм, то лучше выбрать в следующей последовательности MD5, SHA-1, SHA-256, последний вариант является более предпочтительным.
Выводы
Если вы сомневаетесь в целостности скаченных файлов из интернета, особенно когда это касается оригинальных образов операционных систем, то проверьте их контрольную сумму. Сделать это можно как с помощью уже имеющихся у вас программ, так и воспользовавшись встроенными средствами операционной системы Windows.
Источник
Забавляемся с хешами
Время прочтения
5 мин
Просмотры 82K
Привет. Я хочу показать вам небольшой фокус. Для начала вам потребуется скачать архив с двумя файлами. Оба имеют одинаковый размер и одну и ту же md5 сумму. Проверьте никакого обмана нет. Md5 хеш обоих равен ecea96a6fea9a1744adcc9802ab7590d. Теперь запустите программу good.exe и вы увидите на экране следующее.
Попробуйте запустить программу evil.exe.
Что-то пошло не так? Хотите попробовать сами?
О хешах и колллизиях
На самом деле ничего нового во всем этом нет. В действительности данный эффект достигается за счет методов быстрого поиска коллизий для хеш функции разработанных еще в 2004-2006 годах. Если кто не знает, коллизия это два разных набора данных, имеющих одно и тоже хеш-значение. Так вот, в 2004 году группа китайских исследователей разработала алгоритм, основанный на дифференциальном криптоанализе, позволяющий за относительно небольшое время находить два различных случайных блока данных, размером по 128 байт каждый, имеющих одну и ту же md5 сумму. И хотя алгоритм этот в свое время произвел эффект взорвавшейся бомбы быстродействие его оставляло желать лучшего. Но уже в 2006 году чешский криптограф Властимил Клима предложил для поиска коллизий новый метод, позволяющий найти разную пару случайных 128 байтных блоков с одной md5 суммой на персональном компьютере меньше чем за минуту.
Вы спросите, но что нам даст обладание такой парой сообщений, мало того что они короткие(всего 128 байт), так еще, в добавок, и случайные, т.е. метод не позволяет для заданного сообщения подобрать другое, с идентичным хешем. Однако это открывает огромный простор для различного рода атак на выполняемые файлы. И виной тому служит следующая особенность работы любой хеш функции: Хеш функция по своей природе итеративна. Это означает, что при подсчете хеша сообщение разбивается на блоки, к каждому блоку применяется функция сжатия, зависящая от некоторой переменной, называемой вектор инициализации. Результат этой функции будет являться вектором инициализации для следующего блока. Результат функции после работы с последним блоком и будет окончательным хеш значением нашего сообщения.
Схематично это можно представить следующим образом:
si+1 = f(si, Mi), где si вектор инициализации для i-го блока.
Метод Властимила Клима позволяет для любого заданного значения si подобрать два 128-байтных блока M,M` и N,N` таких, что f(f(s, M), M’) = f(f(s, N), N’).
Таким образом, с помощью данной методики можно сконструировать два файла с одинаковой md5 суммой, но имеющих различные 128 байт в середине.
M0, M1, …, Mi-1, Mi, Mi+1, Mi+2, …, Mn,
M0, M1, …, Mi-1, Ni, Ni+1, Mi+2, …, Mn.
Обратите внимание что хеши обоих этих файлов совпадут, т.к. различающиеся блоки Mi, Mi+1 и
Ni, Ni+1 вернут в качестве si+2 одно и тоже значение, т.к. f(f(s, Mi), Mi+1) = f(f(s, Ni), Ni+1), а поскольку все последующие данные идентичны то последующие значения функции сжатия для обоих файлов будут совпадать.
Что это нам дает
Теперь перейдем от вещей абстрактных и отдаленных к вопросу практическому. Предположим, что у нас есть исполняемый файл M0, M1, X, X, …, Mn. Но его основе мы можем создать два разных файла M0, M1, N1, N1, …, Mn и M0, M1, N2, N1,…, Mn(просто меняем блоки X на N1 и N2). Если блоки N1 и N2 – это коллизии то хеш-сумма этих файлов будет совпадать.
Теперь представим, что этот исполняемый файл имеет следующую структуру:
if (X == X) then { good_program } else { evil_program }
Вот собственно и весь секрет данного фокуса.
Как сделать самостоятельно
Теперь немного поговорим о том как это сделать самому.
Шаг первый: пишем программу с двойным дном.
#include <stdafx.h>
#include<iostream>
#include <string>
using namespace std;
//переменные str1 и str2 в данном примере являются теми самыми элементами X.
static char *str1="qwertyuioplkjhgfdaszxcvbnmkjhgfdsaqwertyuikjh"
"gbvfdsazxdcvgbhnjikmjhbgfvcdsazxdcfrewqikolkjnhgfqwertyuioplkjh"
"gfdaszxcvbnmkjhgfdsaqwertyuikjhgbvfdsazxdcvgbhnjikmjhbgfvcdsa"
"zxdcfrewqikolkjnhgfq123";
static char *str2="qaswderftgyhujikolpmnbvcxzasxdcfvgbhnjmkijuy"
"gtfdeswaqscfvgyjqaswderftgyhujikolpmnbvcxzasxdcfvgbhnjmkijuyg"
"tfdeswaqscfvgyjqaswderftgyhujikolpmnbvcxzasxdcfvgbhnjmkijuygt"
"fdeswaqscfvgyjqwertyuikja2";int good()
{
int a;
std::cout<<"Good, nice programme!";
std::cin>>a;
return 0;
}
int bed()
{
int a;
for(int i=0; i<1000; i++)
{
std::cout<<"Evil, evil code!";
}
std::cin>>a;
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
//строки s и s2 содержат только блоки с коллизиями без лишних элементов
string s=str1;
string s2=str2;
s.erase(0,56);
s.erase(128,8);
s2.erase(0,64);
if (s==s2) {
return good();
} else {
return bed();
}
return 0;
}
* This source code was highlighted with Source Code Highlighter.
Особое внимание прошу обратить на переменные str1 и str2. Они служат для того, чтобы их можно было быстро найти в hex-редакторе и заменить нужными данными.
Функция main в зависимости от содержимого переменных s вызывает хорошую или плохую версию программы.
Шаг второй: После компиляции программы нужно будет немного поработать с hex-редактором для того чтобы найти в .exe файле наши строки str1 и str2. Скопируй полученный .exe файл. Пусть копия будет называется «обрезанная версия». Откройте копию в hex-редакторе и найди в ней строки str1 и str2. Удалите все данные идущие после первых 64 байт первой из строк. Последние строки полученного файла будут выглядеть вот таким образом: 
Шаг третий: Созданный на втором шаге файл будет служить так называемым префиксом для поиска коллизий. Чтобы найти коллизию с заданным префиксом нужно скачать отсюда программу fastcoll(Спасибо ее автору Marc Stevens). Исходники лежат тут.
Запустите программу с параметром –p. В качестве префикса укажите «обрезанную версию». В результате работы программы будут созданы два файла «обрезанная версия_msg1» и «обрезанная версия_msg2».
Шаг четвертый: создайте еще одну копию вашей программы. Пусть оригинал будет называться good.exe, а копия evil.exe. Откройте файлы msg1 и msg2 в hex редакторе. Сперва замените блок в котором хранится str2 данными из блока str1. Пусть теперь в них будет одинаковая информация. После этого скопируйте из файла msg1 последние 128 байт и вставьте их в ваш good файл так как показано на рисунке.
Обратите внимание, отступы должны соответствовать следующим параметрам: первый блок вставляется прямо в том месте где заканчивается файл «обрезанная версия», второй блок располагается в 96 байтах от первого. Важно: блоки вставлять одни и те же. Это будет доброй версией нашей программы. Сохраняем файл good.exe и открываем файл evil.exe. Блоки в файл evil.exe нужно будет вставить в те же места, что и в good.exe, единственное отличие заключается в том, что первый блок мы берем из файла msg2, а второй из файла msg1. Это различие и обеспечит нам невыполнение условия программы if (s==s2) и соответственно запустит злую версию программы.
Шаг пятый: Profit! Сравниваем md5 суммы файлов, наслаждаемся полученным результатом.
Список литературы:
1. Замечательный сайт с описанием данного метода
2. Сайт Властимила Клима
3. Сайт автора программы findcoll















*щёлк*





































Как проверить MD5 хеш-сумму файла в Windows













