Как изменить checksum

How to modify checksum of a binary? Specifically, I want to edit embedded checksum in a dll/exe. Are there any tools available?

How to modify checksum of a binary?
Specifically, I want to edit embedded checksum in a dll/exe.

Are there any tools available?

mjv's user avatar

mjv

72.1k14 gold badges111 silver badges156 bronze badges

asked Apr 30, 2010 at 11:39

anand's user avatar

4

Windows only requires the checksum to be != 0 for kernel modules, you don’t need to set it for usermode modules. If you really want to set the checksum, run EDITBIN /RELEASE yourapp.exe, or call CheckSumMappedFile(). See this article for an analysis of the checksum algorithm.

answered Apr 30, 2010 at 15:33

Anders's user avatar

AndersAnders

95.9k12 gold badges109 silver badges163 bronze badges

You can use a «hex editor» to modify a dll/exe, but unless you know how to reverse calculate your checksum, its not going to be much help.

answered Apr 30, 2010 at 12:01

NeuroScr's user avatar

NeuroScrNeuroScr

3221 silver badge7 bronze badges

3

OK, this link gives you the file format of Windows DLLs/Executables:
http://www.openrce.org/reference_library/files/reference/PE%20Format.pdf

You can see there are several possible palces in the headers were checksums can be stored, some of which are optional, so you’d need to parse the image to find out what’s in there. There are tools like Python PE parsers (google for options) to help with this.

Once you know which bytes you want to change, pick a hex editor and do it. You can even edit binaries in Visual Studio.

[Edit: But, as I commented above, I think Windows might barf on it if it doesn’t match the expected value]

answered Apr 30, 2010 at 12:28

Vicky's user avatar

VickyVicky

12.8k4 gold badges47 silver badges53 bronze badges

На чтение 11 мин Просмотров 2.1к. Обновлено 26.03.2021

Что такое контрольная сумма

Вы собираетесь нажать кнопку загрузки и замечаете рядом с ней странный код. Кажется, не имеет никакого отношения к тому, насколько велик файл или на что вы должны обратить внимание. Так что вперед, получите файл и беда! Это не похоже на то, что вы ожидали.

Если бы только был быстрый способ узнать, совпадает ли только что загруженный вами элемент с файлом, который был на веб-сайте. Что ж, есть. Добро пожаловать в мир контрольных сумм!

Содержание

  1. Что за контрольная сумма (Checksum)?
  2. Технология
  3. Так что же делать с контрольной суммой (Checksum)?
  4. Выполните свою контрольную сумму
  5. Windows
  6. macOS
  7. Linux
  8. Заключение

Что за контрольная сумма (Checksum)?

Rонтрольная сумма (Checksum) — это число в форме двоичного или шестнадцатеричного значения, полученное из источника данных. Важные моменты, которые следует знать: контрольная сумма обычно намного меньше, чем источник данных, а также почти полностью уникальна. Это означает, что вероятность того, что некоторые другие данные дадут точно такую ​​же контрольную сумму, крайне маловероятна.

Давайте рассмотрим несколько примеров, первый из которых — это простой текстовый файл (ниже), содержащий важную информацию! Все файлы содержат данные, которые охватывают не только, скажем, текст, который мы видим — будут выделены биты, чтобы сообщить нам, какой это тип файла, как данные расположены и так далее…

Все это обрабатывается в процессе создания контрольной суммы

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

Но пока давайте посмотрим на значение, которое мы получаем:

798B38084999FA50E7D1861E07E45F4E3AA39668DC6A12A84A058CAAA32DE0EB

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

Изображение выше ясно показывает

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

22698AA81AFF43B48ADA1BCC7E26D641F0077C0AA24B5B19C8C801147A41B30D

Обратите внимание, что это одинаковая длина — это ключевой аспект процесса получения кода, но это совершенно другая контрольная сумма. Те же данные, другой порядок, совершенно новая контрольная сумма.

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

Наблюдайте за барабанной дробью на заднем плане

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

790DD6BF0733981E4EBF9BA116970D943D91C2CDD3531CF877E30F3E92F29453

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

Разобравшись с этим, давайте посмотрим, как все это работает!

Технология

В основе контрольной суммы лежит программный алгоритм, который используется для создания кодов, которые мы видели. В случае наших примеров мы использовали очень распространенный алгоритм, известный как SHA-256 ( алгоритм безопасного хеширования — 256 бит ). Этот алгоритм представляет собой тип криптографической хэш — функции (CHF), с исходными данными, меченных в качестве сообщения, а выход которого называют значение хеш — функции или просто хэш (контрольная сумма, в данном случае).

SHA-256, разработанный АНБ и выпущенный почти 20 лет назад, относится к классу CHF, широко используемых во всем мире. Их популярность сводится к тому, что они работают быстро и устойчивы к попыткам «взломать» код, хотя в наши дни доступны гораздо лучшие варианты.

У каждого алгоритма свой способ работы

У каждого алгоритма свой способ работы, но мы сосредоточимся только на том, что делает SHA-256. Процесс всегда дает хэш фиксированной длины (в данном случае 256 бит), независимо от размера сообщения, хотя технически это фактически 8 значений, каждое размером 32 бита.

Таким образом, контрольная сумма для нашего файла test1 на самом деле 798B3808 4999FA50 E7D1861E 07E45F4E 3AA39668 DC6A12A8 4A058CAA A32DE0EB. Это было записано в шестнадцатеричном формате — записать его как строку из 256 единиц и нулей было бы очень утомительно!

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

Например, предположим, что мы пытаемся найти

Например, предположим, что мы пытаемся найти контрольную сумму файла, общий размер которого составляет 10145 бит. Это будет разделено на 19 целых блоков, оставив 417 бит для заполнения. Чтобы указать, где заканчиваются данные и начинается заполнение, к концу строки битов, составляющей источник, добавляется 1. Итак, здесь заполнение добавит 352 нуля.

Погодите, а почему это не 416? Самая последняя часть последнего блока — это особое 64-битное число: длина исходного файла. Это означает, что в нашем примере 20-й блок должен заканчиваться двоичным значением 10145, в результате чего сообщение требует для заполнения только 402 бита пустого пространства.

Как только это будет сделано, алгоритм берет самый первый 512-битный блок и разбивает его на 16 частей, каждая из которых имеет длину 32 бита; каждое из этих значений будет использоваться в процессе вычисления хэша.

До этого момента это самая простая часть: остальная часть процесса включает в себя много математики.

Производители микросхем, такие как Intel,

Производители микросхем, такие как Intel, предлагают архитектурные решения для устройств FPGA для расчета хэш-значений SHA-256.

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

Звучит ужасно сложно, да? Однако для современного процессора это совсем несложно.

Для генерации хэша требуется не более дюжины или около того циклов процессора для каждого байта исходных данных.

Так что же делать с контрольной суммой (Checksum)?

Контрольная сумма позволяет легко проверить целостность данных, составляющих файл.

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

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

И это основное использование контрольной суммы

И это основное использование контрольной суммы: проверка целостности данных, составляющих файл. Это можно сделать вручную, как мы вскоре увидим, или это может быть часть автоматизированной операции. Valve использует контрольные суммы на платформе Steam как часть процесса проверки файлов.

Выполните свою контрольную сумму

Все основные операционные системы также имеют встроенный инструмент контрольной суммы.

Windows

Чтобы запустить контрольную сумму в Windows, проще всего использовать PowerShell: щелкните правой кнопкой мыши кнопку меню «Пуск» или нажмите Win + X. Если вы используете более старую версию Windows, вы можете скачать PowerShell отсюда.

Введите команду get-filehash, а затем укажите местоположение файла. Либо введите команду, а затем перетащите файл в окно PowerShell. Вот как был создан наш первый тестовый файл.

По умолчанию PowerShell использует

По умолчанию PowerShell использует SHA-256 для получения контрольной суммы, но вы можете использовать другие, например SHA-512 или MD5. Все они создадут другой хэш, но он все равно будет уникальным для этого файла. Чтобы использовать другую функцию, добавьте команду -algorithm, а затем ее код.

Для контрольных сумм использование другой хеш-функции не приносит каких-либо значительных преимуществ, хотя было показано, что некоторые из более старых (например, MD5, SHA-1) создают одинаковый хеш для разных файлов — проблема, известная как коллизия.. Новые алгоритмы более устойчивы к конфликтам, поэтому PowerShell по умолчанию использует SHA-256.

Основная причина необходимости переключения на другую функцию

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

Сравнивать две длинные строки цифр и букв может быть немного сложно, но с небольшим программированием вы можете заставить PowerShell вычислять контрольные суммы за вас. Давайте возьмем приведенный выше код MD5 в качестве примера и представим, что хеш исходного файла на самом деле заканчивается цифрой 8.

На изображении ниже показаны строки кода, которые необходимо ввести, используя Shift + Enter после каждой.

Видите, как написано

Видите, как написано «Ложь»? Это говорит вам, что файл не тот. Если вы уверены, что у вас есть правильный хеш для нужного файла, то все подозрения ложатся на данные.

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

Microsoft сделала PowerShell доступным для macOS 10.13 или новее, а также для Linux, но если мысль об использовании чего-то, созданного с помощью Windows, вызывает у вас неприятные ощущения, знайте, что вы можете сделать то же самое в любой ОС.

macOS

Пользователям Mac необходимо запустить приложение «Терминал», которое находится в папке «Служебные программы» приложения. Введите команду shasum -a 256, за которой следует адрес файла, который вы хотите проверить (или просто перетащите в окно терминала).

Инструкция shasum эквивалентна Get-FileHash

Инструкция shasum эквивалентна Get-FileHash в PowerShell, а часть «-a 256» указывает, какой алгоритм использовать: 1 для SHA-1, 256 для SHA-256 и 512 для SHA-512.

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

Linux

Если вам нравятся прелести Linux, вам будет приятно узнать, что это тот же процесс, что и выше — запустите Терминал и введите sha1sum, sha256sum или sha512sum, а затем адрес файла, чтобы сгенерировать требуемый хэш.

И снова вы можете видеть, что у нас такая же контрольная сумма

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

Заключение

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

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

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

  1. Главная
  2. Форум
  3. Личные форумы.
  4. Полезности от nikzzzz



[Цитировать]

  • 215
  • Стаж: 8 лет
  • Сообщений: 3114
  • Репутация:127[+] [-]


Часто исполняемые файлы (exe,dll.sys,efi и прочие) редактируются hex редактором, при этом контрольная сумма изменяется, но не все hex редакторы могут ее скорректировать.
Результат — сообщение «файл испорчен» или просто его неработоспособность.
CheckSumPe.exe
Выводит информацию о PE файле и корректирует контрольную сумму.
Синтаксис:
CheckSumPe.exe — хелп
CheckSumPe.exe ИмяФайла — информация.
CheckSumPe.exe /c ИмяФайла — информация и коррекция контрольной суммы.
Рекомендую использовать при правке bootmgr, bootmgr.efi ,grub.efi и т.п.

Последний раз редактировалось: nikzzzz (2017-09-30 18:20), всего редактировалось 3 раз(а)


[Цитировать]

Отправлено: 18-Окт-2016 03:28
(спустя 1 месяц 1 день)

    nikzzzz

  • 215
  • Стаж: 8 лет
  • Сообщений: 3114
  • Репутация:127[+] [-]


Обновил утилиту, добавлен вывод информации о сертификате.


[Цитировать]

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

    KottoSOFT

  • 206
  • Стаж: 8 лет
  • Сообщений: 562
  • Репутация:64[+] [-]


nikzzzz, Привет, а как пользоваться этим? У меня она просто моргнула в виде командной строки и исчезла.


[Цитировать]

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

    vovan1982

  • 214
  • Стаж: 8 лет
  • Сообщений: 1021
  • Репутация:70[+] [-]
  • Откуда: Ростов-на-Дону


KottoSOFT, в коммандной строке checksumpe.exe /c pecmd.exe например.


[Цитировать]

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

    Joker-2013

  • 1039
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 2053
  • Репутация:118[+] [-]
  • Откуда: из прошлого


nikzzzz, Подскажите пожалуйста…
Нужно ли корректировать контрольную сумму при создании 7zip SFX?
В стабе меняются иконка и информация о версии, приклеивается конфиг и архив.
Контрольная сумма должна быть в стабе корректна или в готовом проекте?
На каком этапе её корректировать?
Если подписывать проект цифровой подписью, контрольная сумма становится корректной… (наверное в утилите подписания, встроена корректировка)
Если файл большого размера — придется долго ждать исправления контрольной суммы?
Для чего я это… Реакция Вирус Тотал, на файл подписанный (пусть даже самописной подписью) и не подписанный разные…
Может если корректировать контрольную сумму, вирустотал будет более снисходителен к файлу…


[Цитировать]

Отправлено: 23-Сен-2017 22:42
(спустя 35 минут)

    nikzzzz

  • 215
  • Стаж: 8 лет
  • Сообщений: 3114
  • Репутация:127[+] [-]


Joker-2013,
Ресурсы не учитываются при подсчете кс, их можно изменять, удалять, добавлять — кс не изменется.
7zip SFX — кс подсчитывается только для стаба, если он не изменяется каким нибудь патчером, то и кс можно не обновлять.
По поводу файлов большого размера, утилита сначала полностью читает файл в память, правит его и сохраняет.
Для небольших файлов < 100 Mb это нормально, в принципе, утилиту можно и подправить и для больших файлов, что-бы она правила файл напрямую на диске, не знаю на сколько это необходимо.
По скорости — время на чтение файла + время на его перезапись, время на подсчет кс можно не учитывать, повторюсь, кс подсчитывается только для стаба.

45269

Может если корректировать контрольную сумму, вирустотал будет более снисходителен к файлу?

А черт их знает, в принципе коррекция кс никак не повредит.

45269

Если подписывать проект цифровой подписью, контрольная сумма становится корректной… (наверное в утилите подписания, встроена корректировка)

Это само-собой, иначе подпись будет не действительна.


[Цитировать]

Отправлено: 23-Сен-2017 22:51
(спустя 8 минут)

    Adler

  • 1708
  • Стаж: 7 лет 4 месяца
  • Сообщений: 1164
  • Репутация:65[+] [-]
  • Откуда: Луганск


45269

Может если корректировать контрольную сумму, вирустотал будет более снисходителен к файлу…

Небольшая разница, но есть:

Не корректированная КС —
Корректированная КС —


[Цитировать]

Отправлено: 23-Сен-2017 22:52
(спустя 56 секунд)

    Joker-2013

  • 1039
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 2053
  • Репутация:118[+] [-]
  • Откуда: из прошлого


nikzzzz, понял…. После патчинга, лучше подправить контрольную сумму (только стаба)
Спасибо!


[Цитировать]

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

    Joker-2013

  • 1039
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 2053
  • Репутация:118[+] [-]
  • Откуда: из прошлого


Adler, разве это разница… Если бы детект поменьше хоть был…
Но в любом случае сделаю. Люблю что бы все было правильно.


[Цитировать]

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

    Adler

  • 1708
  • Стаж: 7 лет 4 месяца
  • Сообщений: 1164
  • Репутация:65[+] [-]
  • Откуда: Луганск


Joker-2013, ну в каких то случаях может и меньше будет. Я взял первый попавшийся файл проверить есть ли вообще какая то реакция на правильную и неправильную КС.

Последний раз редактировалось: Adler (2017-09-23 23:16), всего редактировалось 1 раз


[Цитировать]

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

    nikzzzz

  • 215
  • Стаж: 8 лет
  • Сообщений: 3114
  • Репутация:127[+] [-]


Joker-2013,
Провел эксперимент на BootInst , результаты поразили, на время написания вирустотал показывал порядка пяти срабатываний (27.07.2017), теперь уже 21.
Результаты теста
Неверная кс.
Правильная кс
При правильной кс число срабатываний упало с 21 до 14 !!! ae


[Цитировать]

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

    Joker-2013

  • 1039
  • Стаж: 7 лет 7 месяцев
  • Сообщений: 2053
  • Репутация:118[+] [-]
  • Откуда: из прошлого


nikzzzz, в BootInst и с ресурсами что то не так, как то смотрел, но не написал сразу и забыл…
Неблагодарное дело, от Вирус Тотал прятаться…
Значится, результат есть, будем поправлять KC


[Цитировать]

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

    Adler

  • 1708
  • Стаж: 7 лет 4 месяца
  • Сообщений: 1164
  • Репутация:65[+] [-]
  • Откуда: Луганск


45275

Провел эксперимент на BootInst , результаты поразили, на время написания вирустотал показывал порядка пяти срабатываний (27.07.2017), теперь уже 21.

22 и 15 ab


45276

в BootInst и с ресурсами что то не так

А что там не так?

Последний раз редактировалось: Adler (2017-09-23 23:28), всего редактировалось 1 раз


[Цитировать]

Отправлено: 23-Сен-2017 23:28
(спустя 4 минуты)

    nikzzzz

  • 215
  • Стаж: 8 лет
  • Сообщений: 3114
  • Репутация:127[+] [-]


Очень огорчил Nod32, никогда не считал его параноиком, а тут вон оно как, на кс срабатывает.


[Цитировать]

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

    Ander_73

  • 15549
  • Стаж: 6 лет
  • Сообщений: 3147
  • Репутация:127[+] [-]


nikzzzz, у меня родился смешной вопрос, просто в порядке отвлечённой дискуссии.
Вот мы пользуемся правленным bootia32.efi (BCD->B32). CRC при этом, разумеется, слетела. Имеет смысл корректировать CRC? (я намеренно не поднимаю вопрос, а что происходит при этом с ЦП)

Страница 1 из 2

Текущее время: 10-Фев 13:37

Часовой пояс: UTC + 3

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы

Обновлено: 09.02.2023

If anyone is in debug mode that changes the checksum, they need to exit that mode.

That aside, are mods involved or not?

Forum Rules | AARland Rules | Sync Your Account with Steam | File a Support Ticket
Tech Support: HoI IV | CK III | EU IV | Stellaris | Imperator Bug Reports: HoI IV | CK III | EU IV | Stellaris | Imperator
(Never quote or otherwise publicly respond to moderation posts. If you have a problem PM a moderator.)

Mankind fears thought as they fear nothing else on earth — more than ruin — more even than death . Thought is subversive and revolutionary, destructive and terrible, thought is merciless to privilege, established institutions, and comfortable habit. Thought looks into the pit of hell and is not afraid. Thought is great and swift and free, the light of the world, and the chief glory of mankind. Bertrand Russell

BovisQ
Recruit

If anyone is in debug mode that changes the checksum, they need to exit that mode.

That aside, are mods involved or not?

I have never entered the debug mode but me and my friend do have mods.

AndrewT
The Full Monty Python

Have everyone load the game up with no mods at all active. You should all see 1.03 935c . Anyone who does not see that needs to do a full **clean** re-install:

— move any valued save games elsewhere
— «uninstall» in Steam-CK3
— manually delete both the Steam/SteamApps/common/CK3 AND Documents/Paradox/CK3 folders
— re-install game in Steam, run a Steam Verify when done.
— add CK3.exe to the exceptions list of your antivirus app; ESPECIALLY if you have Windows Defender, add it to the Ransomware «Apps Allowed Through» list.
— start the game with no mods active and test

In particular make sure there are no files or folders left under either the Steam CK3 or Documents CK3 locations, before installing again.

IF you all see that checksum unmodded, then the issue is in the mods themselves. You may be loading them in a different order, have different mods or different versions of the same mod.

Forum Rules | AARland Rules | Sync Your Account with Steam | File a Support Ticket
Tech Support: HoI IV | CK III | EU IV | Stellaris | Imperator Bug Reports: HoI IV | CK III | EU IV | Stellaris | Imperator
(Never quote or otherwise publicly respond to moderation posts. If you have a problem PM a moderator.)

Mankind fears thought as they fear nothing else on earth — more than ruin — more even than death . Thought is subversive and revolutionary, destructive and terrible, thought is merciless to privilege, established institutions, and comfortable habit. Thought looks into the pit of hell and is not afraid. Thought is great and swift and free, the light of the world, and the chief glory of mankind. Bertrand Russell

Как изменить контрольную сумму в crusader kings 3

Александр Богданов

Александр Богданов

Кирилл Минченко

Александр, одинаковые версии и моды, что-то еще может быть?(у нас лицухи)

Александр Богданов

Александр Богданов ответил Кириллу

Кирилл Минченко

Александр, кореш перезагрузил стим и заработало,я хз как это работает.но спасибо за советы

Лука Енисеев

Лука Енисеев ответил Кириллу

Как изменить контрольную сумму в crusader kings 3

Crusader Kings 3 / Крестоносцы 3

Марк Шербаков

Марк Шербаков запись закреплена

Что такое контрольная сумма и почему она не совпадает и я не могу играть по мультиплееру?

Роман Орлов

Моды вносят правки в файлы игры, файлы у тебя с другими людьми не совпадают — вот тебе и ответ, почему не получается

Виктор Буньков

Виктор Буньков

Роман, с одинаковым модом тоже ошибку выдаёт,хотя даже чек сумма одинаковая. А ошибка что разная чек сумма, фак логик

Как изменить контрольную сумму в crusader kings 3

Тимур Михайлов

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

Тимур Михайлов

Тимур Михайлов

Александр, интриги- высвободить из тюрьмы, как вариант) Вообще, отданные замуж дочери это уже собственность мужа, отомстить повода нет типа

Марк Пегушин

Дайте пожалуйста ссылку на конвертер сохранений с crusader kings 2 в europa 4. Гугл не помог. Тольок в стиме брать.

Никита Гольнев

Есть способ вылечить «любовную болезнь»? Даже читы. У меня пол мира ей болеют. хуже чумы

Дмитро Шарагов

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

Денис Гареев

Как тайно сменить религию в бета версии патча 2.7.1. или надо ждать фулл?

Андрей Томин

Как поставить нормально руссификатор, чтобы работали ачивки?
Ставлю лайт-версию, всё равно при начале игры пишет, если создаю персонажа — «убедитесь, что ни один из активных пользовательских модов не меняет контрольную сумму «

Александр Карамах

Вопрос по преодолению Великого Раскола. Великая Римская Империя восстановлена. Нужные провинции имеют патриархов. Но чего-то не хватает. И преодолеть схизму не получается. Пункт такой в интригах есть, но серый. В чём проблема?

DELETED

Артём Чижов

скачал версию 2.7.0.2. и мод russian kings 2.7. в лаунчере добавилось три файла Patrum Scuta [PS], russian kings 2 7 global и Novgorod 2.7.0.2. первые два не работаю с третьим — вылетает. если без третьего работает, но слабый перевод и нельзя играть за православие и католиков. на иконке play высвечивается not allowed to play secret religion visibility trigger. что делать.

Павел Хвалин

Читайте также:

      

  • Как зайти в дом в геншин импакт
  •   

  • Cube support что это
  •   

  • В одну сторону головы наши как мы и хотели
  •   

  • Как играть в настольную игру матч
  •   

  • Сколько весит варфейс на пс4

Вопрос:

В старой игре, которую я пытаюсь использовать, есть проверка 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. В документации дается руководство по количеству изменяемых позиций бит, которые вам нужно будет предложить.

Вы можете оставить файл той же длины или добавить байты в файл для создания позиций, которые считаются изменчивыми.

Понравилась статья? Поделить с друзьями:
  • Как изменить bin файл прошивки
  • Как изменить caps lock на другую клавишу
  • Как изменить bin прошивку
  • Как изменить access list cisco
  • Как изменить capicom на крипто про