Функция привязки - это именно то, что я искал!
Это надежнее, чем замена строк в исполняемом + может быть легко использована в скриптах...[119342]
Третьим способом сделать это [118666]может быть [118667] создание chrooted sandbox окружения для запуска исполняемого файла, в котором все, кроме исполняемых файлов, которые вы хотите вернуть, направлено на реальную вещь. Но это было бы сложно.
но я бы посоветовал получить исходный код и перекомпилировать его. (Или, если это несвободный код, заплатив поставщику за то, чтобы он раскрутил для вас какие-нибудь пользовательские исполняемые файлы ...)[118125].
Если исполняемый файл содержит фиксированные пути, их часто можно переопределить переменными окружения (например, TMPDIR, EDITOR/VISUAL или подобные). или давая одобренные аргументы. Когда путь действительно фиксирован, я бы спросил причину. Могут быть объяснения по поводу безопасности или конфигурации, которые просто не должны быть переопределены. Конечно, это может быть просто [118562]лень [118563], но это маловероятно с программным обеспечением, упакованным вашим дистрибутивом, и предположительно проверенным...[118071].
Первый включает в себя создание ссылки в месте, которое было жестко закодировано в исполняемый файл. Поэтому в вашем примере ссылка должна быть создана по адресу [118664]/usr/share/nmap/[118665] с переуказанием на любое другое место. Этот подход потребует привилегий root'а и использования символических ссылок в этом месте.
Второй метод предполагает использование шестнадцатиричного редактора, в котором вы заходите в предварительно скомпилированные исполняемые файлы и хирургически изменяете двоичные файлы, добавляя их по своим собственным путям, вместо предварительно скомпилированных. [118119]