Короче говоря, инъекция процесса заключается в том, чтобы внедрить код в процесс работы процесса.
Windows выделяет 4G -пространство памяти для каждого процесса, и код в этом пространстве 4G может быть доступен и выполнен этим процессом. «Платчик» Программное обеспечение на самом деле является внедрением процесса.
Есть также много хакеров, использующих впрыск процесса для введения вредоносного кода в целевой процесс для атак.
Обычно используемые методы впрыска процесса в среде Windows включают в себя: CreaterMoteThread, Apcinject, SuppendThread, SetWindowHookex и т. Д.
Кроме того, я выучил относительно уникальный метод инъекции: инъекция отражения. Инъекция отражения в основном используется для реализации впрыска посредством операций в файлах PE, с высоким уровнем успеха впрыска и наиболее ценным обучением.
OpneProcess ).VirtualAllocEX ).WriteProcessMemory ).CreateRemoteThread ). Получите адрес функции LoadLibrary ( GetProcAddress ) от Kenerl32 и пропустите динамический путь библиотеки, записанный в целевой процесс в загрузку, в качестве параметра.WaitForSingleObejct ), освободите память и закройте ручку.CreateProcess Установите шестой параметр для приостановки.QueueUserAPC , чтобы добавить функцию LoadLibrary в качестве объекта APC в очередь APC потока, и проходит путь DLL в качестве параметра. Обратите внимание на освобождение ручек и памяти. Общая идея состоит в том, чтобы реализовать функцию loadlibrary , которая загружает динамическую библиотеку в DLL и загружается в целевой процесс.
Функция Loadibrary реализована путем изменения файла PE:
1. Напишите DLL в пространстве приложений целевого адресного пространства процесса.
2. Получите адрес функции, которая загружается в файл, реализованный в DLL, создайте удаленный поток и передайте адрес функции. Функция, загружающая себя в DLL, также гениально реализована.
setWindowsHookEX . Операционная система Windows, VS2015.
Оба теста проходят в 32-разрядной системе Windows и 64-битной системе Windows.
.
|-- APCInject(Ring0) // 驱动层的APC注入
|-- APCInject // Ring3层的APC注入
|-- CreateSuspend // 挂起线程注入
|-- InjectByRegister // 注册表注入(未测试)
|-- ReflectDll // 反射注入的Dll
|-- ReflectiveInject // 反射注入
|-- RemoteThread // 远程线程注入
|-- Src // 驱动层的APC注入源码
|-- Dll.dll // 32位测试Dll
|-- Dll64.dll // 64位测试Dll
|-- Process-Inject.sln // 项目启动文件
|-- README.md // 项目说明文件
.
Добро пожаловать, чтобы получить запрос и добро пожаловать, чтобы попросить выпуска.
При интерпретации этой работы подпишите и поделитесь ее таким же образом.