Изменение контрольной суммы двоичного файла - PullRequest
3 голосов
/ 30 апреля 2010

Как изменить контрольную сумму двоичного файла?
В частности, я хочу редактировать встроенную контрольную сумму в DLL / EXE.
Есть ли в наличии инструменты?

Ответы [ 3 ]

1 голос
/ 30 апреля 2010

Windows требует, чтобы контрольная сумма была! = 0 для модулей ядра, вам не нужно устанавливать ее для модулей пользовательского режима. Если вы действительно хотите установить контрольную сумму, запустите EDITBIN / RELEASE yourapp.exe или вызовите CheckSumMappedFile () . См. эту статью для анализа алгоритма контрольной суммы.

0 голосов
/ 30 апреля 2010

ОК, эта ссылка дает вам формат файла Windows DLL / Исполняемые файлы: http://www.openrce.org/reference_library/files/reference/PE%20Format.pdf

Вы можете видеть, что в заголовках есть несколько возможных мест, где можно хранить контрольные суммы, некоторые из которых являются необязательными, поэтому вам нужно проанализировать изображение, чтобы выяснить, что там. Существуют такие инструменты, как парсеры Python PE (Google для опций), чтобы помочь с этим.

Как только вы знаете, какие байты вы хотите изменить, выберите шестнадцатеричный редактор и сделайте это. Вы даже можете редактировать двоичные файлы в Visual Studio.

[Редактировать: Но, как я прокомментировал выше, я думаю, что Windows может вызвать недовольство, если она не соответствует ожидаемому значению]

0 голосов
/ 30 апреля 2010

Вы можете использовать "hex Editor", чтобы изменить dll / exe, но если вы не знаете, как пересчитать контрольную сумму, это не сильно поможет.

...