Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как узнать какими правами владеет поток


Автор: Insendio 11.3.2015, 10:47
Здравствуйте уважаемые форумчане.
Не знаю, может для кого та звучит как бред. Но я об этом только вчера узнал 
Потоки для потоков оказывается можно назначить права..
Поиски по форуму как и гугл не не дали результатов может не так искал..
Прошу объясните как можно узнать какими права владеет поток?
Если для кого та не понятно что я написал, прошу посмотрите скрины.

user posted image
user posted image

Хочу написать программу которая будет проверят эти права .. если они изменились то программа закроется.

Автор: Illusion Dolphin 11.3.2015, 10:51
Ну я не знаю, но есть такие интересные ссылки:
1) Thread Security and Access Rights https://msdn.microsoft.com/en-us/library/windows/desktop/ms686769%28v=vs.85%29.aspx
2) SetSecurityInfo https://msdn.microsoft.com/en-us/library/windows/desktop/aa379588%28v=vs.85%29.aspx
3) GetSecurityInfo  https://msdn.microsoft.com/en-us/library/windows/desktop/aa446654%28v=vs.85%29.aspx

Автор: Insendio 12.3.2015, 00:27
Нашел аналогичное решения проблемы) На Google Code оказывается лежать исходники этого ProcessHacker'a. Он написан на C.
http://processhacker.googlecode.com/...r-2.33-src.zip
Кто нибудь может посмотреть и сказать какие там функции/процедуры используются для работы с потоками? 
А то в руках нету MVS'а .. и на С не шарю)

Автор: Illusion Dolphin 12.3.2015, 07:37
Цитата

http://processhacker.googlecode.com/...r-2.33-src.zip

404
Цитата

Кто нибудь может посмотреть и сказать какие там функции/процедуры используются для работы с потоками? 

А те функции, что я указал - не подходят?

Автор: Insendio 12.3.2015, 10:39
Illusion Dolphin, привет спасибо за помощь) забыл вчера написать т.к был в сонном состоянии)
Не-а, у меня с той функцией не получилось и мне сказали копать в сторону привилегии пользователя.

http://processhacker.googlecode.com/files/processhacker-2.33-src.zip

так же запасным вариантом является это ссылка что выше но пока MVS в руках нет.
Спасибо еще раз за отзыв)

Автор: Insendio 12.3.2015, 12:03
Ладно пока обойдусь блокировкой этой программы, потом как скачаю MVS напишу какие функции использует это программа.
Спасибо Illusion Dolphin. 

Автор: Illusion Dolphin 12.3.2015, 22:04
В ProcessHacker:
Код

 case ID_THREAD_PERMISSIONS:
                {
                  ...
                        if (PhGetAccessEntries(L"Thread", &accessEntries, &numberOfAccessEntries))
                        {
                            PhEditSecurity(
                                hwndDlg,
                                PhaFormatString(L"Thread %u", (ULONG)threadItem->ThreadId)->Buffer,
                                PhStdGetObjectSecurity,
                                PhStdSetObjectSecurity,
                                &stdObjectSecurity,
                                accessEntries,
                                numberOfAccessEntries
                                );
                            PhFree(accessEntries);
                        }
                    }

PhStdGetObjectSecurity

Код

_Callback_ NTSTATUS PhStdGetObjectSecurity(
    _Out_ PSECURITY_DESCRIPTOR *SecurityDescriptor,
    _In_ SECURITY_INFORMATION SecurityInformation,
    _In_opt_ PVOID Context
    )
{
...
        status = PhGetObjectSecurity(handle, SecurityInformation, SecurityDescriptor);
        NtClose(handle);
    }

    return status;
}


И всё базируется на NtQuerySecurityObject

Автор: Insendio 13.3.2015, 19:44
Illusion Dolphin, Спасибо большое!)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)