Код: Выделить всё
0xC000000DКод: Выделить всё
HANDLE hSection;
LARGE_INTEGER sectionSize = {0x8000};
NtCreateSection(&hSection, SECTION_ALL_ACCESS, nullptr,
§ionSize, PAGE_EXECUTE_READWRITE, SEC_COMMIT, nullptr);
MEM_EXTENDED_PARAMETER extParam = {0};
extParam.Type = MemExtendedParameterAttributeFlags; // Value is 5
extParam.ULong64 = MEM_EXTENDED_PARAMETER_EC_CODE; // 0x40
PVOID baseAddress = nullptr;
LARGE_INTEGER sectionOffset = {0};
SIZE_T viewSize = 0x8000;
NTSTATUS status = NtMapViewOfSectionEx(
hSection,
targetProcess,
&baseAddress,
§ionOffset,
&viewSize,
0, // AllocationType
PAGE_EXECUTE_READWRITE,
&extParam,
1 // ExtendedParameterCount
);
< /code>
используется подпись: < /p>
typedef NTSTATUS(NTAPI* NtMapViewOfSectionEx)(HANDLE SectionHandle, HANDLE ProcessHandle, PVOID* BaseAddress, PLARGE_INTEGER SectionOffset, PSIZE_T ViewSize, ULONG AllocationType, ULONG Win32Protect, PMEM_EXTENDED_PARAMETER ExtendedParameters, ULONG ExtendedParameterCount);
Код: Выделить всё
NtMapViewOfSectionExПодробнее здесь: https://stackoverflow.com/questions/797 ... -for-arm64
Мобильная версия