Не пойму почему выходной файл получается "поломанным" и не запускается. Смысл такой, чтобы php скрипт открыл исходный exe файл, заменил "{data}" на "HeyItsWork" и сохранил его как новый файл.
Для правильного вопроса надо знать половину ответа
Подставляемые данные должны быть такой же длины, как плейсхолдер, или короче. В последнем случае надо ещё добавлять нулевой байт в конце данных и/или править байт/слово длины перед ними, в зависимости от стиля строки.