информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
обман функции NtQuerySystemInformation 24.11.01 14:41  Число просмотров: 1828
Автор: SerpentFly <Vadim Smirnov> Статус: Member
<"чистая" ссылка>
А где это везде? Что-то я не встречал такого... Можно даже посильнее извратиться и перехватить соответсвующий сервис в System Service Descriptor Table, так даже пожалуй лучше....
<programming>
обман функции NtQuerySystemInformation 24.11.01 14:07  
Автор: researcher Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Довольно странно, что везде пишут про невозможность обмана функции NtQuerySystemInformation. Я с этим делом мучился довольно долго, а все оказалось очень просто. Думаю, многие из вас читали книгу Рихтера или что-то подобное. Главное знать как перехватываются вызовы функций и этого вполне достаточно.
Далее следует сама перехваченная функция:

NTAPI Hook_NtQuerySystemInformation(
LONG type,
PVOID SystemInformation,
LONG SystemInformationLength,
PLONG ReturnLength
)
{
SYSTEM_PROCESS_INFORMATION *pinfo, *pinfo_last;

// вызываем оригинальную функцию
((PFNNtQuerySystemInformation)(PROC) g_NtQuerySystemInformation)
(type, SystemInformation, SystemInformationLength, ReturnLength);

// если получается информация о процессах
if(type == 5)
{
if(SystemInformationLength > 20000)
{
pinfo = (SYSTEM_PROCESS_INFORMATION*)SystemInformation;
for(;;)
{
// если идентификатор процесса равен идентификатору нашего процесса
if(pinfo->ProcessID == progProcessId)
{
if(pinfo->NextOffest == 0)
{
pinfo_last->NextOffest = 0;
}
else
{
pinfo_last->NextOffest += pinfo->NextOffest;
}
}
if(pinfo->NextOffest == 0) break;
pinfo_last = pinfo;
pinfo = (SYSTEM_PROCESS_INFORMATION*)((char *)pinfo + pinfo->NextOffest);
}
}
}
}

Думаю, объяснять больше нечего, но все же интересно, почему эта информация не была доступна в интернете.
обман функции NtQuerySystemInformation 24.11.01 14:41  
Автор: SerpentFly <Vadim Smirnov> Статус: Member
<"чистая" ссылка>
А где это везде? Что-то я не встречал такого... Можно даже посильнее извратиться и перехватить соответсвующий сервис в System Service Descriptor Table, так даже пожалуй лучше....
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach