Домашняя » как » Что такое внедрение кода в Windows?

    Что такое внедрение кода в Windows?

    Внедрение кода распространено в Windows. Приложения «внедряют» части своего кода в другой работающий процесс, чтобы изменить его поведение. Эта техника может использоваться для добра или зла, но в любом случае это может вызвать проблемы.

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

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

    Внедрение кода используется для выполнения всевозможных трюков и функций в Windows. Хотя легальные программы используют его, он также используется вредоносным ПО. Например:

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

    Внедрение кода плохо?

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

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

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

    Как сказал сотрудник Microsoft в блоге для разработчиков с 2004 года:

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

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

    Как проверить наличие внедренных библиотек DLL

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

    Загрузите и запустите Process Explorer, если вы хотите это сделать. Нажмите Вид> Вид нижней панели> DLL или нажмите Ctrl + D.

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

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

    Мы также можем найти несколько DLL-файлов, созданных «AVAST Software» здесь. Это указывает на то, что программное обеспечение Avast для защиты от вредоносных программ в нашей системе внедряет такой код, как «библиотека фильтров Avast Script Blocking» в Chrome.

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

    Как работает внедрение кода?

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

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

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

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

    Изображение предоставлено: Lukatme / Shutterstock.com.