Файл .exe необходимо настроить так, чтобы при определенных загрузках он вел себя по-разному.
Пропустите ниже, чтобы найти решение, которое я нашел приемлемым.
Добавление раздела в файл .EXE - Не идеально.
.exe-файл имеет разделы один за другим. Вы можете добавить раздел с вашими данными в нем, который затем будет читать исполняемый файл. Это требует, чтобы вы изменили (имели доступ к) исходный код исполняемого файла, чтобы он мог что-либо значимое использовать с данными. Кроме того, знакомство с форматом файла .exe и его изменение на стороне веб-сервера, а также игра с ним в исходном коде программы несколько утомительна.
Изменение ресурсов раздела .EXE-файла - Не идеально.
В исполняемом файле имеется выделенный раздел «ресурсы». Вы можете добавить к нему пользовательские строки или данные. Те же минусы, что и у первого.
Перезаписать данные в .EXE в фиксированной позиции - Passable.
Пусть исполняемый файл считывает данные из себя с фиксированной позиции в файле, которая перезаписывается данными настройки при обслуживании файла .exe. Требуется изменить исходный код исполняемого файла.
Добавить данные в .EXE - Passable.
Добавить данные в исполняемый файл. Опять же, чтобы прочитать его и сделать с ним что-то особенное, требуется сам исполняемый файл.
☑ Обернуть .EXE в другой .EXE и добавить к нему ваши данные - Допустимо.
Создайте программу, к которой будут добавляться исходный исполняемый файл и пользовательские данные. Когда эта пользовательская программа затем выполняется, она извлекает встроенный исполняемый файл и запускает его с пользовательскими данными в качестве аргументов.
Этот вид исполняемого пакета также легко создавать на большинстве серверных (скриптовых) языков. Когда запрашивается загрузка, сервер отправляет exe-упаковщик, исходный exe-файл, настроенные данные и, конечно, некоторые поля данных статического размера, обозначающие размеры обоих этих блоков данных, чтобы он мог их извлечь.
Минусы: требует создания такой программы-обертки, если у кого-то ее нет.
Ссылки по теме:
1. Лучшие практики, позволяющие пользователям сети загружать пользовательские .exe с моего сайта с использованием PHP
2. Изменение исполняемого файла при загрузке (например, Ninite)