Инъекция кода также обычно называется инъекцией 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.
Как сотрудник Microsoft поместил его в блог разработчика с 2004 года:
DLL injection is never safe. You’re talking about squirting code into a process that was never designed, built, or tested by the process’s author, and co-opting or creating a thread to run that code. You run the risk of creating timing, synchronization, or resource issues that weren’t there before or exacerbating issues that were there.
Другими словами, инъекция кода - это своего рода грязный хак. В идеальном мире был бы более безопасный способ достичь этого, который не вызвал бы потенциальную нестабильность. Тем не менее, инъекция кода сегодня является обычной частью платформы приложений Windows. Это постоянно происходит в фоновом режиме на вашем ПК с ОС Windows. Вы могли бы назвать это необходимым злом.
Как проверить внедренные DLL-файлы
Вы можете проверить внедрение кода в своей системе с помощью мощного приложения Process Explorer от Microsoft. Это в основном расширенная версия диспетчера задач, дополненная дополнительными функциями.
Загрузите и запустите Process Explorer, если хотите сделать это. Нажмите «Просмотр»> «Вид нижней панели»> «DLL» или нажмите Ctrl + D.
Например, это нормально видеть множество DLL, созданных корпорацией Microsoft, здесь, поскольку они являются частью Windows. Также нормально видеть библиотеки DLL, сделанные той же компанией, что и рассматриваемый процесс, - «Google Inc.» в случае Chrome на скриншоте ниже.
Мы также можем найти несколько DLL-файлов, созданных программой AVAST. Это указывает на то, что антивирусное программное обеспечение Avast в нашей системе вводит в Chrome код, подобный «Библиотеке фильтров блокировки Avast Script».
Как работает инъекция кода?
Ввод кода не изменяет основное приложение на вашем диске. Вместо этого он ожидает, что это приложение будет запущено, и оно добавит дополнительный код в этот запущенный процесс, чтобы изменить его функционирование.
Windows включает в себя множество интерфейсов прикладного программирования (API), которые можно использовать для ввода кода. Процесс может присоединяться к целевому процессу, распределять память, записывать DLL или другой код в эту память, а затем инструктировать целевой процесс для выполнения кода. Windows не мешает процессам на вашем компьютере мешать друг другу.
Для получения дополнительной технической информации ознакомьтесь с этим сообщением в блоге, в котором объясняется, как разработчики могут вставлять библиотеки DLL, а также смотреть на другие типы инъекций кода в Windows.
В некоторых случаях кто-то может изменить базовый код на диске, например, заменив DLL-файл, который поставляется с ПК-игрой с измененным, чтобы включить обман или пиратство.Это технически не «инъекция кода». Код не вводится в запущенный процесс, но программа вместо этого обманывается при загрузке другой DLL с тем же именем.