Intereting Posts

PHP / C ++: ввод значений в EXE-файл

Я хотел бы добавить значение в EXE-файл на лету.

Компания, с которой я раньше занималась, дала мне EXE-заглушку, которую я могу использовать PHP для ввода значения на лету, прежде чем пользователь загрузит его.

Я не могу найти что-либо в Google, поскольку я не знаю названия этого процесса, может ли кто-нибудь указать мне в правильном направлении? В идеале это будет C ++ / PHP, но может быть гибким, или даже просто общая информация о том, как это будет работать, станет отличным началом.

Они даже сделали это с EXE, который они мне прислали, я подписал свой сертификат, затем они «заполнили» файл, и я смог ввести значения «на лету».

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

Я могу предложить несколько разных подходов:

  • Включите магическую строку в исполняемый файл, например, static const char magic[] = "magic marker goes here"' . Вам придется ссылаться на это из другого места в вашем коде, чтобы он не оптимизировался. Затем вы можете открыть файл .exe с php и найти магическую строку и перезаписать ее с любым желанием в пределах лимита размера.
  • Если вы хотите вставить несколько значений, более структурированный подход заключается в использовании ресурсов PE в исполняемом файле. Существует хороший модуль Python для анализа ресурсов PE , возможно, есть эквивалент PHP.
  • Изменение чего-либо в исполняемом файле приведет к поломке любого кода. Одна вещь, которая исключена из хэша аутентификации, – это контрольная сумма PE (пояснение здесь ). Контрольная сумма PE имеет фиксированное смещение в исполняемом файле, поэтому вы можете найти это в своем PHP-скрипте и исправить его как угодно. Исправление этого значения не нарушит подпись подлинника.