Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Stealth

1.8K
01 октября 2007 года
CilCatblack
251 / / 20.09.2007
Как сделать программу на С# не видимой в диспечере задач???:confused:
2.9K
02 октября 2007 года
Ation
96 / / 27.07.2004
wasm.ru. Но только про C# можешь забыть :)
370
02 октября 2007 года
koval
443 / / 29.08.2005
Для исключения процесса из task manager необходим хук, хранимый в ДЛЛ, который будет перехватывать NtQuerySystemInformation из библиотеки ntdll.dll. Функция недокументированая, но в интернете про нее написано много. Как утвеждает компания майкрософт "Global hooks are not supported in the .NET Framework".
http://support.microsoft.com/kb/318804. Поэтому я считаю что для написания ДЛЛ надо использовать язык более низкого уровня.
16K
04 октября 2007 года
OlbanyRok
75 / / 14.07.2007
Интересно, а для чего это нужно? :)
Я примерно представляю себе, что нужно для перехвата. Но конструкция очень уж хрупкая...
5
04 октября 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: CilCatblack
Как сделать программу на С# не видимой в диспечере задач???:confused:

Подгрузить новый домен приложения в какомнить другом .NET процессе, и запустить в нем твою программу.

370
19 октября 2007 года
koval
443 / / 29.08.2005
Естьхорошая идея, что бы не писать никакого руткита можно сделать так

Код Dll на С:
Код:
BOOL CALLBACK EnumChildProcedure(HWND hWnd,LPARAM lParam)
{
    char name[256];
    GetWindowText(hWnd,name,256);

    char ClassName[256];
    GetClassName(hWnd,ClassName,256);

    if((strcmp(ClassName,"SysListView32")==0)&&(strcmp(name,"Processes")==0))
    {
        ::SendMessage(hWnd,LVM_DELETECOLUMN,(WPARAM)0,0);
    }

    if((strcmp(ClassName,"SysListView32")==0)&&(strcmp(name,"Tasks")==0))
    {
        ::SendMessage(hWnd,LVM_DELETECOLUMN,(WPARAM)0,0);
    }

    if(name==NULL)
        return FALSE;
    return TRUE;

}

extern "C" __declspec(dllexport) void Hook()
{
    HWND hWnd = NULL;
   
    hWnd = ::FindWindow(NULL,"Windows Task Manager");

    EnumChildWindows(hWnd,EnumChildProcedure,NULL);
}


просто в таймере постоянно вызывать Hook() и task manager пустой! Это годится если пользователь не пользуется сторонней программой для получения списка процессов. Грязный но простой способ. Интересно а можно ли в .NET получить доступ к чужому окну и контролам на нем?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог