Исходник Reverse Injector / x64 architecture / syscalls

kernel32

Новичок
Автор темы
1
6
Reverse Injector

1609840616025.png

Reverse injector копирует целевые процессы PML4E в другой указанный процесс PML4. В настоящее время проект копирует целевые процессы PML4E в текущий процесс PML4 (reverse-injector.exe), но вы можете настроить проект для внедрения процесса в любой процесс, который вы хотите.

Information
VDM ---> PTM ---> injector

В проекте используется PTM, который использует VDM. Хотя в этом проекте используется VDM, вам не нужно подгружать драйвер VDM в ядро, при создании injector_ctx. Как вы можете видеть в демонстрации, я модифицировал VDM, чтобы изменить способ чтения и записи в физическую память, сделав ребилд. Я заставляю VDM использовать объект mem_ctx для чтения / записи физической памяти. (mem_ctx - это PTM). PTM управляет собственным набором таблиц подкачки из пользовательского режима и не нуждается в подгрузке драйвера после его инициализации.

Heap Memory

Вся память в процессе, который подвергается инжекту, отображается в целевой процесс, включая память кучи (отображение НЕ выделяет ее указание на одну и ту же физическую память! Поэтому, если что-то меняется в игре, это изменяется в вашем контексте). Когда память выделяется в PDPT, PD и PT, память также отображается в процесс, в который была введена обратная инъекция. Это потому, что оба процесса PML4E указывают на один и тот же PDPT.


Если другой PML4E вставлен в процесс, который был введен обратно, у меня есть попытка поймать injector_ctx, который скопирует новый PML4E в целевой процесс и, таким образом, синхронизирует PML4.

Calling Functions?

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

DL

translated by: kernel32
credits: mq1n
 

memir

🇷🇺
Всефорумный модератор
339
611
Переводчику советую подтянуть русский, без обид. Если кому-то не понятно что это, советую прочитать оригинал
Если вкратце, инжектор позволяет размапить адресное пространство одного процесса на адресное пространство другого.