Введение

Техника компьютерного программирования В компьютерном программировании DLL-инъекция - это техника, используемая для запуска кода в адресном пространстве другого процесса, заставляя его загружать библиотеку динамических ссылок. DLL-инъекция часто используется внешними программами для влияния на поведение другой программы таким образом, который ее авторы не ожидали или не намеревались. Например, введенный код может подключать вызовы системных функций или читать содержимое текстовых ящиков паролей, что не может быть сделано обычным способом. Программа, используемая для ввода произвольного кода в произвольные процессы, называется инжектором DLL.

Подходы на Unix-подобных системах

На Unix-подобных операционных системах с динамическим линкером на основе id. Так (на BSD) и LD Linux. Так (на Linux), произвольные библиотеки могут быть связаны с новым процессом, указав имя пути библиотеки в переменной среды LD PRELOAD, которая может быть установлена глобально или индивидуально для одного процесса. Например, в системе Linux эта команда запускает команду "prog" с общей библиотекой из файла "test. Так что" присоединился к нему во время запуска: LD PRELOAD="./test. Такая библиотека может быть создана таким же образом, как и другие общие объекты. В случае GCC это включает в себя составление исходного файла, содержащего новые глобальные, которые будут связаны с опцией or, и связывание с опцией. Библиотека имеет доступ к внешним символам, объявленным в программе, как и любая другая библиотека. На macOS следующая команда запускает команду "prog" с общей библиотекой из файла "test. dylib" при запуске: DYLD INSERT LIBRARIES="./test. dylib" DYLD FORCE FLAT NAMESPACE=1 prog Также можно использовать методы, основанные на отладке, в Unix-подобных системах.