Программа inj dll не работает

Обновлено: 04.07.2024

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

Что такое файлы DLL?

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

Почему появляются ошибки в файлах DLL?

Ошибки DLL, какими бы стойкими они ни казались, к счастью, довольно решаемы.

  1. Перезагрузите компьютер
  2. Обновите свою Windows 7
  3. Изучите свою корзину
  4. Восстановите ваши DLL-файлы с помощью специального программного обеспечения
  5. Переустановите приложение, в котором возникают проблемы с DLL.
  6. Выполните восстановление системы
  7. Запустите сканирование SFC
  8. Обновите ваши драйверы
  9. Просканируйте свой компьютер на наличие вредоносных программ
  10. Выполните чистую установку системы

Рассмотрим подробнее каждое из решений:

1. Перезагрузите компьютер.

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

2. Обновите Windows 7.

Если проблемы с DLL не устранены на вашем компьютере, попробуйте обновить ОС - это может решить проблему.

Используйте Центр обновления Windows для обновления вашей ОС

Вот как это сделать:

  1. Меню Пуск -> Панель управления -> Система и безопасность
  2. Центр обновления Windows -> Проверить наличие обновлений
  3. Вы увидите окно Select Updates to Install -> Нажмите на обновления, которые хотите установить на свой компьютер -> OK -> Установить обновления.

Перезагрузите компьютер и посмотрите, решены ли ваши проблемы.

3. Проверьте свою корзину.

Дело в том, что вы могли случайно удалить некоторые из ваших DLL-файлов. Итак, перейдите в свою корзину и внимательно изучите ее содержимое.

4. Восстановите ваши DLL-файлы с помощью специального программного обеспечения.

Не можете найти ваши DLL-файлы в корзине? Не нужно отчаиваться: их легко восстановить с помощью специального программного обеспечения, например, Auslogics File Recovery.

Восстановите свои файлы с помощью Auslogics File Recovery

5. Переустановите приложение, в котором возникают проблемы с DLL.

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

Просто следуйте инструкциям ниже:

Установите программу еще раз и посмотрите, исчезла ли проблема с DLL.

6. Выполните восстановление системы.

Это может показаться невероятным, но для исправления недостающих DLL-файлов в Win 7. потребуется немного времени. К счастью, функция восстановления восстановления системы предоставит вам полную поддержку и настроит вашу ОС на более раннее состояние:

  1. Пуск -> Введите Восстановление системы в поле поиска -> Восстановление системы
  2. Восстановите системные файлы и настройки -> Нажмите Далее, чтобы продолжить -> Выберите желаемую точку восстановления из списка
  3. Нажмите на опцию Сканировать на наличие уязвимых программ, чтобы узнать, какие изменения произойдут с вашими программами и драйверами.
  4. Затем подтвердите точку восстановления -> Ваш компьютер перезагрузится.
  5. Процесс восстановления начнется автоматически -> Это может занять некоторое время -> После его завершения проверьте, разрешил ли он ваши проблемы

Используйте Восстановление системы, чтобы настроить вашу систему до более раннего состояния

7. Запустите сканирование SFC.

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

Вот как это сделать:

  1. Откройте командную строку с повышенными привилегиями (запустите ее от имени администратора) -> введите sfc / scannow (без кавычек) -> нажмите Enter
  2. SFC просканирует ваши системные файлы на предмет неисправности и при необходимости исправит их -> Это может занять некоторое время

Если проблемы с DLL сохраняются, выполните следующее исправление.

8. Обновите драйверы.

У вас есть 3 варианта сделать это в Win 7:

Воспользуйтесь диспетчером устройств

Диспетчер устройств - это встроенный инструмент, который может автоматически обновлять драйверы.

Чтобы позволить ему выполнять свою работу, выполните следующие действия:

  1. Пуск -> Щелкните правой кнопкой мыши Компьютер -> Выберите Управление
  2. Диспетчер устройств -> Выберите устройство, драйвер которого вы хотите обновить -> Щелкните его правой кнопкой мыши -> Выберите опцию Обновить программное обеспечение драйвера.

Используйте диспетчер устройств для обновления драйверов

Обновите драйверы вручную

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

Используйте специальное программное обеспечение

Достаточно сказать, что обновление драйверов требует много времени и ручной работы. Чтобы сэкономить много усилий, воспользуйтесь специальным инструментом, например, Auslogics Driver Updater одним щелчком мыши, чтобы привести все ваши драйверы в идеальную форму.

9. Просканируйте свой компьютер на наличие вредоносных программ.

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

Вот что можно сделать:

Используйте Защитник Windows

Этот встроенный инструмент Windows предназначен для защиты вашего ПК от вредоносных программ. Так почему бы не использовать его прямо сейчас? Все руки на палубе:

  1. Пуск -> Введите "Защитник" в поле.
  2. Выберите Защитник Windows -> Проверка -> Полная проверка.

Используйте свое основное решение безопасности

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

Используйте специальный инструмент защиты от вредоносных программ

Для нечестивых нет покоя: скорее всего, вашего стороннего антивирусного программного обеспечения недостаточно. Фактически, вам нужен союзник, который будет в курсе последних тенденций и событий в мире вредоносных программ. Auslogics Anti-Malware идеально подходит под это описание: этот инструмент может выследить вредоносных объектов, о которых ваше основное решение безопасности может не знать.

Выполните полное сканирование вашей системы на наличие вредоносных программ.

10. Выполните чистую установку системы.

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

Чтобы дать Win 7 новый старт, загрузитесь с установочного носителя, дождитесь загрузки установочных файлов и следуйте инструкциям на экране, чтобы установить ОС с нуля.

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

Содержание:

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

Почему возникают ошибки с DLL?

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

Из-за ошибок DLL приложение может не корректно работать или вовсе не загружаться, поэтому следует ознакомиться с возможными причинами появления ошибок.

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

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

Решение проблем с DDL файлами

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

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

Если проблема кроется в некорректной работе загрузчика, рекомендуем ознакомиться со способами решения этой проблемы в статье «Как восстановить загрузчик Windows 10».

Недостающие компоненты C++ Runtime Library и DirectX

Чаще всего пользователи сталкиваются с проблемой ошибок DLL, которые связаны с отсутствием необходимых компонентов C++ Runtime Library либо DirectX.

Существует два способа решения проблем с недостающими компонентами DLL. Первый и более правильный – полная переустановка сбойного ПО. Второй – скачивание непосредственно одного компонента, вызывающего ошибку.

Ошибка msvcr100.dll – сбойный компонент в системе безопасности.

Ошибки dxgi.*, d3dx9_25.*, d3d11.*, d3dx9.*, d3dx9_43.*, xinput1_3.*, d3dx9_31.*, xinput1_2.*, d3dx9_31.*, d3dx9_34.*, d3dx9_42.*, x3daudio1_7.*, x3daudio1_6.*, xrsound.* d3dx10_43.*, d3dx9_26.*, d3dx9_30.*, d3dx9_27.*, d3dx11_43.*, d3dcompiler_43.*, d3d10.*.

Ошибка steam_api.dll – распространённая ошибка среди геймеров и пользователей магазина цифровой дистрибуции Steam. Часто возникает при установке пиратских сборок игр и взломанных клиентов Steam.

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

Ошибка xlive – проблемы с файлами цифрового магазина Microsoft.

Ошибка msvcrt.*, msvcr71.*, msvcrt.*, msvcp120.*, msvcp110.* x64 msvcr90.*, msvcr110.*, msvcr100.*, msvcr80.*, msvcr120.*.

Ошибка physxcudart_20.*, physxloader.* и т.д.- проблемы с файлами NVIDIA PHYSX SYSTEM.

Удаление сбойного приложения

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

Чтобы определить сбойное приложение, необходимо:

Шаг 1. Нажимаем левой кнопкой мыши по иконке «Поиск» (изображение лупы возле кнопки «Пуск») и вводим в строку фразу «Панель управления», после чего переходим в непосредственно сам пункт «Панель управления».

Шаг 2. В открывшемся окне выбираем режим отображения «Категория» и переходим в «Удаление программы».

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

Обновление драйверов устройства

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

Помимо этого, рекомендуем проверить драйвера носителей следующим образом:

Шаг 1. Находясь в панели управления выбираем пункт «Оборудование и звук».

Шаг 2. В открывшемся окне переходим в пункт «Диспетчер устройств».

Шаг 3. Переходим во вкладку «Дисковые устройства», выбираем нужный носитель и нажимаем по нему ПКМ, после чего в меню будет доступен пункт «Обновить драйвер».

Другие проблемы с DLL библиотеками

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

Чтобы сделать это из работающей системы, необходимо:

Шаг 1. Нажать ПКМ по кнопке «Пуск» и выбрать пункт «Выполнить». В открывшемся окне вводим команду «rstrui.exe» и нажимаем «Ок».

Что делать, если важный файл или DLL библиотека были случайно удалены?

Библиотеки DLL, как и любые другие данные, могут пострадать по многим причинам: повреждение вирусами, случайное удаление сочетанием клавиш Shift+Delete, форматирование или изменение файловой системы и логической структуры диска и т.д.

В таких случаях незаменимым помощником станет специальная утилита для восстановления данных RS Partition Recovery.

Функционал программы позволяет производить быстрое восстановление удаленных файлов с жестких дисков, карт памяти, флеш-накопителей и других носителей любых типов. Для работы RS Partition Recovery используется два метода анализа диска: полный – для поиска всех возможных для восстановления данных, и быстрый – поверхностный анализ носителя для поиска информации, которая была удалена недавно. Это позволяет выбирать и использовать наиболее эффективный метод, способный вернуть DDL библиотеки, изображения, медиафайлы, компоненты программ и другую информацию независимо от расширения.

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

Причины ошибок в работе библиотек DLL Windows

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

Существуют следующие типы ошибок DLL:

Другие причины появления проблем с файлами DLL:
  • Случайное удаление файла. Часто при попытке очистить жесткий диск Windows от ненужных файлов пользователи по незнанию удаляют файлы библиотек. Также, деинсталлировать файл может другая программа (вредоносное ПО или утилита для автоматической очистки диска);
  • Отказ оборудования. Если для установки или запуска игры вы используете оптический диск и дисковод, при некачественном материале одного из компонентов может появиться фатальная ошибка, которая повреждает файл запуска с расширением DLL;
  • В системе не установлены последние обновления. Разработчики из Майкрософт всегда рекомендуют устанавливать новейшие апдейты ОС. Это позволяет избавиться от проблем не только с библиотеками, но и с ошибками, которые они провоцируют. Также, обновления защищают систему. Она становиться менее подвержена действию вирусов;
  • Проблемы с драйверами. Когда для конкретной программы или внешнего устройства, которое она использует, не установлены последние версии драйверов, пользователь сталкивается со всевозможными ошибками ОС. Одной из таких проблем может стать ошибка msvcp120 – система не может открыть приложение из-за фатальной ошибки совместимости;
  • Несовместимость технических требований игры и характеристик компьютера. В таком случае, нужно выбрать другую более старую версию приложения и переустановить его или же обновить используемую сборку ОС.

Способ 1 — Ошибочное удаление файла DLL

Системное окно с ошибкой выглядит следующим образом:

В случае, если на диске «С» вы не нашли нужный файл, на сайте Майкрософт нужно скачать апдейт для программного пакета Visual C++ 2013. Эта утилита настраивает взаимодействие всех системных файлов и исправляет существующие ошибки.

После инсталляции обновления перезагрузите компьютер и попробуйте повторно запустить программу. Если этот вариант решение не помог, переходите к следующему методу.

Бывают случаи, когда нужна библиотека есть на компьютере пользователя и находится в правильной папке, но программа все равно её «не видит». После установки пакета обновления Visual C++, как правило, тоже ничего не происходит. Как быть в этом случае?

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

Следуйте инструкции:

  • Одновременно нажмите на клавиши Win+R для открытия окна «Выполнить»;
  • Теперь в текстовом поле введите «CMD» и подтвердите действие;
  • В результате, откроется окно командной строки, с помощью которого и будет проводиться регистрация библиотеки. В новой строке введите указанную на рисунке ниже команду. Изменяйте название библиотеке в зависимости от того, какое её имя указано в ошибка запуска приложения.

Важно! Для выполнения регистрации вы должны быть авторизованы в учетной записи администратора системы и компьютер необходимо подключить к интернету.

Способ 3 — Запуск среды восстановления

Еще один способ быстрого исправления всех ошибок системы – это использование утилиты восстановления. Запустить нужное окно можно с помощью среды Виндовс. Откройте окно параметров нажатием клавиш Win-I.

Затем откройте вкладку «Обновление и безопасность»«Восстановление». В правой части окна промотайте страничку вниз и в разделе «Особые варианты загрузки» кликните на «Перезагрузить сейчас».

Заметьте! В этом же окне вы можете сбросить настройки ОС к заводским параметрам. Если вы хотите полностью восстановить систему и готовы к удалению все программ и файлов, выбирайте этот пункт. С его помощью есть больше шансов навсегда избавиться от ошибок, которые связан с системными библиотеками.

После выбора особых вариантов загрузки и повторного запуска компьютера вы увидите не рабочий стол системы, а специальное окно Troubleshooting (решение неполадок). Кликните на указанную ниже плитку, чтобы запустить автоматическое сканирование и исправление:

После повторной перезагрузки ОС система ошибки будут исправлены. Пользовательские файлы удалены не будут.

Владельцам Windows 7 недоступна возможность автоматического исправления в режиме перезагрузки, но можно запустить встроенную утилиту диагностики. Для этого зайдите в окно панели управления и в строке поиска введите «Средство проверки». Кликните на первый результат поисковой выдачи.

Следуйте инструкции в окне встроенного помощника для выявления проблем и их исправления:

Способ 4 — Установка отсутствующих DLL и обновление программ

На веб-сайте разработчика пользователи могут только загрузить пакет программ для комплексного восстановления системных файлов. Если же ваша ОС работает нормально, а проблемы возникли только с одной библиотекой, рекомендуется найти в сети и скачать на компьютер нужный файл вручную.

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

Среди надежных ресурсов для скачивания системных DLL можно выделить:

Пользователю необходимо ввести имя недостающей библиотеки и начать её скачивание. Далее поместите полученный файл в системную папку System32 или SysWOW64, в зависимости от разрядности установленной копии ОС. При следующем открытии программы ошибка исчезнет.

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

Способ 5 — Переустановка приложения

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

Удаляйте приложения только через окно Панель управления — Установка и удаление программ. После деинсталляции советуем также поискать на диске «С» папки с названием игры, которые могли быть не удалены. Затем перезагрузите компьютер, установите ПО ее раз и попробуйте запустить его. Новая библиотека должна распознаться без проблем.

Способ 6 — Обновление драйверного ПО

Необходимо установить последние обновления для всех компонентов ОС. Зайдите в Диспетчер задач Виндовс. В седьмой версии это можно сделать с помощью окна панели управления, в десятой версии нужно воспользоваться окном поиска по системе.

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

Способ 7 — Удаление вирусов

Просканируйте систему встроенным Защитником или другим установленным антивирусом. Если в результате сканирования обнаружится, что вирус — это и есть ошибочная библиотека, удалите её с компьютера и загрузите пакет обновления Visual C++ на сайте Майкрософт.

Windows выдает ошибку с DLL файлом и вы не знаете, что делать? Не переживайте, у вас есть минимум 3 варианта, как устранить любую неполадку подобного характера. Системные документы отвечают за стабильную работу не только самой ОС, но и сторонних программ, так что будет нелишним узнать, как устранить все проблемы

Что такое .DLL файлы

Что такое .DLL файлы

Есть три способа, как устранить:

  • Восстановить систему;
  • Перезаписать необходимый файл;
  • Использовать универсальные программы;

Восстановление

Восстановление системы – это кардинальный метод, который лучше не применять, если у вас всего 1 ошибка. Этот способ хорош лишь в случае, если у вас массовые неполадки, и система работает крайне нестабильно. Чтобы вы могли восстановить систему вам нужно заранее создать точку восстановления, либо иметь резервную копию всей ОС. Если вы читаете этот материал еще в тот день, когда у вас нет ни одной проблемы, то рекомендуем создать резервную копию или точку восстановления прямо сейчас. Это можно сделать с помощью специальных программ или же просто используйте стандартный функционал вашей операционной системы.

Перезапись необходимого файла – это идеальный вариант, если у вас всего лишь одна. В этом случае вам нужно найти необходимую библиотеку в сети Интернет и перезаписать только ее. Когда будете искать библиотеку, заодно уточните, в каком разделе на компьютере она находится. Также не забудьте, что файлы различаются в зависимости от разрядности ОС. Если у вас Windows 32 bit, то и библиотека вам нужна x32, аналогично поступаем и с Windows 64 бита, туда записываем только 64-ех битные библиотеки.

Третий способ – использование специализированных программ, самый простой. Например, вы можете использовать DLLSuite, но есть и другие утилиты. Подобные программы могут проанализировать ваше устройство, найти все и автоматически их устранить. Рекомендуем использовать только бесплатные варианты программ, так как платные аналоги редко чем отличаются. Автоматическое устранение возможно лишь в том случае, если ваши трудности не критические и система в целом продолжает работать корректно.

DLL

Популярные проблемы

Есть несколько проблемных DLL библиотек, которые чаще остальных становятся причиной проблем. К таким библиотекам можно смело отнести следующие:

  • d3d11;
  • dxgi;
  • msvcr100;
  • unarc;
  • xlive;
  • openal32;

Все эти проблемы связаны с пакетом DirectX. Чтобы их устранить достаточно скачать DirectX и переустановить пакет. В результате вы устраните подобные трудности на своем компьютере на Windows. Ниже представлен еще один способ, если ничего из этой статьи вам не помогло:

Внедрение своего кода( динамически ) в чужие процессы — штука достаточно интересная. Это может служить как во благо, так и во зло. Хотя, понятие «зло», местами, весьма абстрактно в информационном мире, я не могу провести точную границу между тем, что «плохо», а что «хорошо», тем более, если это касается внедрения кода…

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

Писать DLL Injector мы будем на C++ в среде Microsoft Visual Studio 2010. Для создания динамически подключаемой библиотеки можно использовать любой инструмент, который вам по душе. Я же для создания библиотеки выбрал CodeGear RAD Studio 2009, язык Delphi( Object Pascal ).

Как же работает DLL Injection ?

Схема работы данного метода проста:

1) поиск и получение дескриптора нужного процесса
2) выделение памяти в процессе и последующая запись пути в DLL`ке по адресу, где произошло выделение памяти
3) создание нового потока в виртуальном пространстве процесса, дескриптор которого был получен.

Начнем с создания DLL.

Как я уже говорил, для этой цели будет использоваться язык Delphi:


Теперь добавим в DLL некоторые ресурсы, а именно — форму и кнопки для управления:


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


Теперь программируем интерфейс формы DLL. На форме есть две кнопки. Первая будет «убивать» родительский процесс( т.е процесс, в виртуальном пространстве которого был создан поток, в котором, в свою очередь, выполняется код DLL ). Вторая — рисовать 10 квадратов размером 25x25px в контексте всех окон приложения, принадлежащих процессу:

Исходный код интерфейсной части можно посмотреть здесь .

Тут все достаточно просто.
Итак, динамическая библиотека написана. Теперь компилируем ее и на выходе получаем скомпилированный файл с расширением ".dll", который можно переименовать для удобства. Я переименую библиотеку в «inj.dll».

Создание DLL завершено.
Осталось лишь скопировать нашу DLL`ку в системную директорию Windows, чтобы любое приложение могло отыскать её лишь по одному имени.

Переходим к разработке инжектора. Идем в Visual Studio и создаем Пустой проект( File->New->Project->Visual C++->General->Empty Project). Вся разработка будет производиться на «чистом» WinApi.

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


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

Для инжекта DLL в адресное пространство процессов понадобятся следующие WinApi функции:

Итак, обдумаем, как же, собственно организовать «умную» архитектуру приложения, которая была бы понятной и простой.
Я предлагаю начать с обработки щелка по кнопке :)

Ок, далее, переходим к реализации функции

которая служит для поиска процесса по его имени:

И, наконец, завершающая процесс инжектирования функция

Полный код инжектора можно посмотреть здесь.

Тестируем работоспособность инжектора:


Сначала инжектимся «сами в себя». При клике на кнопку «Draw» происходит рисование 10 квадратов. При клике на «Crash it!» происходит немедленное завершение «родительского» процесса. Теперь попробуем инжектиться во что-нибудь посерьезнее, например, в браузер Mozilla Firefox. Для этого необходимо поменять лишь имя процесса в первом текстовом поле и нажать на кнопку:


Как видно, инжект успешно удался. Квадраты рисуются во всех окнах, принадлежащих родительскому процессу браузера. При нажатии на кнопку «Crash it!» Mozilla FireFox немедленно закрывается.

Outro

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

Читайте также: