Folk Acid Если имеешь в виду стандарты в плане оформления кода, то они такие же как и везде, они определяются внутренним стандартом, принятым в...
ZwReadVirtualMemory нужен доступ PROCESS_VM_READ, а не PROCESS_QUERY_INFORMATION
Вызвать функцию Windows API, написать драйвер, двинуть мышью, нажать кнопку на клавиатуре. В чем суть вопроса? ЗЫ: Lol
Эта функция просто берет указатель по индексу ProcessID из таблицы PspCidTable. Про эту таблицу что-то было в статьях Ms-Rem`а. А зачем хочешь...
Все функции Win32 API могут работать только в юзер-модных приложениях. Причем к приложению должна быть подлинкована библиотека kernel32.dll и оно...
Вызвать DuplicateHandle(), передав параметром этот хэндл, и проверить возвращаемое значение на STATUS_INVALID_HANDLE.
Пожалуй действительно проблемы нет. Система держит всего одну копию PDT и таблиц страниц для всех процессоров. Получается, что и изменить эту...
Ok, спасибо, покопаю там
Who is Linice?
В том то и дело, что таблица страниц может находиться в подкачиваемой памяти. А так как код по модификации PTE должен быть выполнен на всех...
Функция NTSTATUS PsLookupProcessByProcessId(IN PVOID ProcessId, OUT PEPROCESS *Process) Херь какую-то я сказал, бррр, сам теперь понять не могу...
http://www.wasm.ru/article.php?article=apihook_3 Глава "А что можно без драйвера?". Чтобы упростить пример, можно запускать его из-под (system в...
Какое полное название у этих функций?
Можно. Но у меня возникли проблемы на SMP машинах (см http://www.wasm.ru/forum/viewtopic.php?id=16449). С GDT и IDT проблем вообще нет, можно...
До последних версий Windows (кажется до Win64 но точно не помню) PhysicalMemory можно было маппить и из юзер-мода. Нужны только Debug Privilegies....
Что-то вроде этого. Вначале в одном из процессов инициализируется секция и событие: #define MAX_BUF_SIZE 0x1000 #define SECTION_NAME...
Поиск по форуму. Исходники неоднократно выкладывались.
Проще может быть послать сообщение (SendMessage()), послать APC (QueueUserApc()), создать разделяемую область памяти. Любое из этих решений будет...
Чтобы обновить PTE для активного процессора блокирую все остальные с помощью DPC (по рекомендации Intel manual), изменяю PTE, снимаю блокировку....
while (name2->NextEntryOffset > 0) (ULONG)name2 += name2->NextEntryOffset; Здесь точно ошибка, потому что для последней записи нельзя узнать ее...
Имена участников (разделяйте запятой).