Показать сообщение отдельно

  #2  
Старый 15.10.2009, 21:25
Hiro Protagonist
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
Провел на форуме:
193434

Репутация: 79
Отправить сообщение для Hiro Protagonist с помощью ICQ
По умолчанию

PHP код:

#undef UNICODE
#undef _UNICODE

#include <windows.h>
#include <stdio.h>
#include "ntdll.h" //в сети найдешь.

#define MAX_PATH 1000

SYSTEM_HANDLE_INFORMATION *GetHandlezInfo(void);

void main(void)
{

    
SYSTEM_HANDLE_INFORMATION *shiHz;
    
int i;
    
HANDLE hProcesshand;
    
shiHz GetHandlezInfo();            
    if(
shiHz)
    {                                    
        for(
0shiHz->uCount; ++i)
        {                                        
            
                
hProcess OpenProcess(PROCESS_DUP_HANDLEFALSEshiHz->aSH[i].uIdProcess);
                if(
hProcess)
                {
                    if(
DuplicateHandle(hProcessshiHz->aSH[i].HandleGetCurrentProcess(), &hand0FALSEDUPLICATE_SAME_ACCESS))
                    {
                        
printf("%d\n"hand);
                    }
                    
CloseHandle(hProcess);
                }


            
        }
        
free(shiHz);

    }

    
getch();
    return;
    

}

SYSTEM_HANDLE_INFORMATION *GetHandlezInfo(void)
{
    
HMODULE hNtDll;
    
SYSTEM_HANDLE_INFORMATION *shiHandleInfo NULL;
    
//Размер структуры с одним хэндлом (16 - размер структуры описывающий хэндл)
    
DWORD dwLen sizeof(SYSTEM_HANDLE_INFORMATION) + 16;
    
DWORD dwRetLen;

    
hNtDll GetModuleHandle("ntdll.dll");
    
_ZwQuerySystemInformation GetProcAddress(hNtDll"ZwQuerySystemInformation");
    
    
//Этот класс требует для возврата необходимого размера, чтобы ему передалась структура по размеру готовая вместить
    //один или более хэндлов
    
shiHandleInfo malloc(dwLen);
    
_ZwQuerySystemInformation(SystemHandleInformationshiHandleInfodwLen, &dwLen);
    
shiHandleInfo realloc(shiHandleInfodwLen);
    if(
_ZwQuerySystemInformation(SystemHandleInformationshiHandleInfodwLen, &dwLen) == STATUS_SUCCESS)
        return 
shiHandleInfo;
    else
        return 
NULL;

както так )
 
Ответить с цитированием