Инъекция кода в систему Windows – как это осуществляется

Россия+7 (910) 990-43-11
Обновлено: 2023-12-04

Инъекция кода – распространенное явление в Windows. Приложения «вводят» фрагменты своего собственного кода в другой запущенный процесс, чтобы изменить его поведение.

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

Для чего используется инъекция кода

Инъекция кода используется для выполнения всех видов трюков и реализации функциональных возможностей в Windows. Хотя это предназначено для законных программ, этим также пользуются вредоносные программы.

Например:

  • Антивирусные программы часто вводят код в веб-браузеры. Например, они могут использовать его для мониторинга сетевого трафика и блокирования опасного веб-контента.
  • Вредоносные программы могут добавить код в ваш веб-браузер, чтобы отслеживать просмотры, украсть защищенную информацию, такую как пароли и номера кредитных карт, или изменить настройки браузера.
  • Stardock's WindowBlinds, который предназначен для вашего рабочего стола, вводит код, чтобы изменить способ отрисовки окон.
  • Stardock's Fences вводит код, чтобы изменить способ работы рабочего стола Windows .
  • AutoHotkey использует инъекцию кода чтобы создавать сценарии и назначать для них системные горячие клавиши.
  • Графический драйвер, такой как NVIDIA, вставляет DLL для выполнения различных задач, связанных с графикой.
  • Некоторые программы вводят библиотеки DLL для добавления дополнительных параметров меню в приложении.
  • Инструменты читеров часто вводят код в игры, чтобы изменить её поведение и получить несправедливое преимущество перед другими игроками.

Является ли инъекция кода плохим действием

Этот метод постоянно используется широким спектром приложений в Windows. Это единственный реальный способ выполнить множество задач. По сравнению с современной мобильной платформой, такой как iOS от Apple или Android от Google, рабочий стол Windows настолько мощный, что способен предлагать разработчикам большую гибкость.

Конечно, со всей этой силой возникает определенная опасность. Инъекция кода может вызвать проблемы и ошибки в приложениях. Google говорит, что пользователи Windows, у которых есть код, введённый в браузер Chrome, на 15% чаще сталкиваются со сбоям Chrome, поэтому Google работает над блокировкой возможности инъекции кода. Корпорация Майкрософт отмечает, что вредоносное приложение может использовать инъекцию кода для вмешательства в настройки браузера, что является одной из причин, по которым они уже заблокировали эту возможность в Edge.

Microsoft даже предоставляет инструкции по проверке сторонних DLL в Microsoft Outlook, поскольку они вызывают много сбоев Outlook.

Другими словами, инъекция кода – это, своего рода, грязный хак. В идеальном мире существовал бы более безопасный способ достичь этого, который не создавал бы потенциальной нестабильности. Тем не менее, инъекция кода сегодня является обычной практикой платформы приложений Windows. Это постоянно происходит в фоновом режиме на вашем ПК с ОС Windows. Можно назвать это необходимым злом.

Как проверить внедренные DLL-файлы

Вы можете проверить внедрение кода в своей системе с помощью мощного приложения Process Explorer от Microsoft. Это, по сути, расширенная версия диспетчера задач с дополнительными функциями.

Загрузите и запустите Process Explorer, если хотите сделать это. Нажмите «Просмотр» → «Вид нижней панели» → «DLLs» или нажмите Ctrl + D.

Запуск проверки внедренных DLL в Process Explorer

Выберите процесс в верхней панели и посмотрите в нижней панели, чтобы увидеть загруженные DLL. Столбец «Название компании» предоставляет полезный способ фильтрации этого списка.

Просмотр уже загруженных DLL-библиотек в Process Explorer

Например, нормально видеть множество DLL, созданных корпорацией Microsoft, поскольку они являются частью Windows. Также нормально видеть библиотеки DLL, сделанные той же компанией, что и рассматриваемый процесс, – «Google Inc.» в случае браузера Chrome.

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

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

Как работает инъекция кода

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

Windows включает в себя множество интерфейсов прикладного программирования (API), которые можно использовать для инъекции кода. Процесс может присоединяться к целевому процессу, перераспределить память, записать DLL или другой код в эту память, а затем инструктировать целевой процесс для выполнения кода. Windows не мешает процессам на вашем компьютере «мешать друг другу».

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


4.1/7