Как правильно изменять exe файлы собранные под win 8.1?
Здравствуйте, есть следующая проблема, решения которой нигде пока найти не удалось. Суть:
Есть консольное приложение на C++ собранное с помощью VS 2015, оно выполняет проверку
введенного пароля, и выводит правильный он или нет. Пароль читается с STDIN, потом вызывается функция,
которая возвращает true если пароль верный, false иначе. Собственно, с помощью x64dbg нашел место, где обнуляется регистр eax перед выходом из функции проверки пароля (xor al, al) и заменил эту команду на mov al, 1, собственно 2 байта заменил на 2 байта - 32 02 заменил на B0 01. Приложение доработало до конца в x64dbg и вывела правильный результат - приняла неправильный пароль. Вычислил смещение. Закрыл файл, с помощью HxD перешел на нужное смещение, там действительно были эти 2 байта (32 02), я их заменил, файл сохранил. После этого exe перестал запускаться, валится с ошибкой "Невозможно запустить приложение на вашем пк".
Собственно вопрос - а в чем может быть проблема? Размер файла не должен был измениться, никаких лишних сдвигов появится не должно было, однако не запускается и всё. Может дело в контрольной сумме, которая вроде как есть в PE заголовке, но я пока не понял как ее пересчитывать - от всего файла или от какой-то его части.
Контрольную сумму можно тупо занулить, например. Вообще вам бы надо сравнить файлы до и после редактирования побайтно, вдруг все-таки есть другие изменения...