Как я могу редактировать ресурсы в исполняемом файле, используя C ++?

Мне нужен способ редактирования ресурсов (точнее, таблицы строк) скомпилированного исполняемого файла, и мне нужно сделать это в C ++.

Кто-нибудь может предложить какой-либо совет / пример кода о том, как я могу сделать это?

1

Решение

Начать с LoadLibrary() и загрузите исполняемый файл (тот, который вы хотите отредактировать)
затем FindResource() а также UpdateResource() как необходимо.

Прочтите все об этом здесь:

Ресурсные функции формата PE

2

Другие решения

Если вы работаете в Linux или OS X, всегда есть команда «strings», которая распечатает все статические строки в исполняемом файле. Объедините это с чем-то вроде «objdump» и некоторыми знаниями с помощью шестнадцатеричного редактора, и вы сможете что-то совместить.

1

Я не знаю, возможно ли это, если у вас есть скомпилированный исполняемый файл & это просто машинный код, на самом деле нет конкретного способа понять, как его интерпретировать (и, следовательно, найти / отредактировать ресурсы, которые вы ищете) … т.е. имея только исполняемый файл, вы не можете точно знать, является ли слово инструкцией в сборке или просто словом, представляющим число, метку и т. д. в сборке …

Насколько я знаю.

0

Вы можете взглянуть на старый добрый справочник и исходный код PeDump Мэтт Петрек. Он обрабатывает (только для чтения) ресурсы файлов PE в C ++. Может быть, это вдохновит вас на решение вашей проблемы …

0
По вопросам рекламы [email protected]