Поместите переменную в исходный код и позже измените скомпилированный бинарный файл - PullRequest
0 голосов
/ 17 января 2020

Я в настоящее время ищу лучшее решение для решения моего "запроса". Я использую структуру в источнике, как:

В заголовке:

struct my_struct
{
  unsigned int val;
  char *name;
};

в c файлах:

struct my_struct variable =
{
  .val = 0xffffffff
  .name = "config_variable_name",
};

Теперь после компиляции у меня есть двоичный файл, и я могу найти строку "config_variable_name" там. Теперь другой инструмент использует этот двоичный файл и любит модифицировать этот .val. Таким образом, инструмент ищет также двоичный файл для строки "config_variable_name" и, когда он найден, помещает новый беззнаковый int в найденное position - 4 == location из .val.

. Это работает без каких-либо проблем. Есть ли лучший способ сделать такую ​​вещь? У меня есть несколько переменных, которые модифицируются с помощью инструмента, поэтому каждой переменной нужен собственный «идентификатор», чтобы инструмент мог найти правильную позицию в двоичном файле.

Может быть, шаблон вместо char *name лучше? Как unsingend int 0x38372829 или что-то еще? Но это должно быть уникальным в двоичном коде ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...