вот код Код (Text): NTSTATUS Status1; ULONG RetLen; ULONG Size=sizeof(PROCESS_BASIC_INFORMATION); Info=(PPROCESS_BASIC_INFORMATION)ExAllocatePool(NonPagedPool,Size); Status1 = ZwQueryInformationProcess(ProcessHandle,ProcessBasicInformation,Info,Size,&RetLen); if(NT_SUCCESS(Status1)) { PPEB Peb = (PPEB)ExAllocatePool(NonPagedPool,sizeof(PEB)); Status1 = ZwReadVirtualMemory(ProcessHandle,Info->PebBaseAddress,Peb,sizeof(PEB),&RetLen); ZwReadVirtualMemory возвращает STATUS_ACCESS_VIOLATION(0xc000005) (я видел подобное в ринг3 - у меня почемуто извне читалась память которая принадлежит пространству самого процесса, а память присоединенных дллок не читалась), а если внедрить свою длл в процесс - то можно прочитать его память по любому адресу ниже ядра вопрос - есть ли возможность прочесть PEB процесса без внедрения в него дллок?
кстати тутже ещё вопрос - в какой либе есть функция _wcscmp (сравнение строк без учета регистра) в ДДК она есть но при сборке вылезает анрезолвед экстернал символ
1. попробуй промапить Peb перед чтением. 2. просто вроде экспортируется из ntoskrnl.exe как wcscmp (без подчеркивания). Для сравнения без учета регистра _wcsicmp, _wcsnicmp.