Пожалуйста, обратите внимание, что пользователь заблокирован
Есть ли метод инжекта в удаленный процесс без создания rwx памяти (без RW -> RX)?
Я уже не один раз писал тут, что всегда можно создать разделяемую между процессами секцию и в свой процесс отобразить ее как RW, а в чужой процесс отобразить ее как RX.Есть ли метод инжекта в удаленный процесс без создания rwx памяти (без RW -> RX)?
Я не знаю почему так мало примеров использования секций, но они по сути недооценённый топ) Я вроде только раз видел как их используют для мапа dll в память в профессиональном софте, но не более. Так они ещё и почти не палятся.Я уже не один раз писал тут, что всегда можно создать разделяемую между процессами секцию
Статья про инжект через создание двух отображений секции https://phasetw0.com/malware/section-code-injection/Есть ли метод инжекта в удаленный процесс без создания rwx памяти (без RW -> RX)?
Такой говоришь аверу: "бро, не читай, плизь, мою память", а он берет и не читает, вот это был бы идеальный мир для малвари...С такой протекцией (PAGE_EXECUTE), получается, отображение секции в удаленном процессе вообще нельзя будет прочитать(аверу)?
// Process 1 (RW access)
#include <windows.h>
#include <iostream>
int main()
{
HANDLE hSection = CreateFileMappingW(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(int), L"SharedSectionName");
if (hSection == NULL)
{
// Обработка ошибки
return 1;
}
int* pData = (int*)MapViewOfFile(hSection, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(int));
if (pData == NULL)
{
// Обработка ошибки
CloseHandle(hSection);
return 1;
}
// Использование разделяемой секции с RW доступом
*pData = 42;
std::cout << "Variable used successfully. Value: " << *pData << std::endl;
UnmapViewOfFile(pData);
system("pause");
CloseHandle(hSection);
return 0;
}
// Process 2 (RX access)
#include <windows.h>
#include <iostream>
int main()
{
HANDLE hSection = OpenFileMappingW(FILE_MAP_READ, FALSE, L"SharedSectionName");
if (hSection == NULL)
{
// Обработка ошибки
return 1;
}
int* pData = (int*)MapViewOfFile(hSection, FILE_MAP_READ, 0, 0, sizeof(int));
if (pData == NULL)
{
// Обработка ошибки
CloseHandle(hSection);
return 1;
}
// Использование разделяемой секции с RX доступом
int value = *pData;
std::cout << "Variable used successfully. Value: " << value << std::endl;
UnmapViewOfFile(pData);
system("pause");
CloseHandle(hSection);
return 0;
}
а подробнее можноВы используете Windows или Linux? Вам стоит учитывать ROP-цепи. Вы будете использовать существующий законный код только путем написания в виртуальную память процесса, без необходимости использования VirtualAllocEx/VirtualProtectEx/CreateRemoteThread.
Я ж линк кинул выше там тоже самое про что он говорита подробнее можно
Я ж линк кинул выше там тоже самое про что он говорит