Изменить имя переменной env внутри библиотеки с помощью шестнадцатеричного редактора? - PullRequest
1 голос
/ 29 апреля 2011

Можно ли изменить имя переменной среды внутри библиотеки с помощью какого-либо редактора.Я думаю, что может быть шестнадцатеричный редактор?

Я хочу изменить имя, но не меняя его длины: envfoobar (9 символов) yellowbar (9 символов)

Очевидно, что перекомпиляция была бы идеальной, ноЯ не знаю, какие именно флаги использовались для компиляции этой библиотеки.

Ответы [ 2 ]

4 голосов
/ 29 апреля 2011

Что вам мешает?Вы даже можете использовать текстовый редактор (если он приличный редактор и знает, как обрабатывать двоичные данные, как это делает vim).Если библиотека ссылается на имя переменной среды через строку, и строка находится в библиотеке в сегменте данных (т. Е. Это не строка, созданная во время выполнения), то редактировать библиотеку таким способом тривиально.Только не удаляйте и не вводите новых персонажей.Я сделал это под Linux.Некоторые другие операционные системы могут подписывать двоичные файлы цифровой подписью и препятствовать ее работе.Некоторые ОС используют стандартную контрольную сумму или хэш, и в этом случае вам придется пересчитать ее.

0 голосов
/ 29 апреля 2011

Если вы можете найти имя с помощью команды strings в библиотеке, оно может работать. Вы можете загрузить библиотеку в своем любимом шестнадцатеричном редакторе, изменить строку и дать ей шанс.

Это хакерская вещь, но это может сработать. Дайте нам знать.

...