|
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132
|
||||||
Как получить хэндлы системного процесса?12.06.2016, 23:18. Показов 3546. Ответов 16
Метки нет (Все метки)
Добрый день. Пытаюсь получить handle какого-нибудь системного процесса. Нашел в инете пример, который выставляет своему процессу привилегию SE_DEBUG_NAME. Ошибок при установке этой привилегии не пишет. Однако хэндл системного процесса получить не дает - ошибка доступа при OpenProcess. В чем может быть дело? PID ввожу вручную. Пишу под 10-й виндой в VS.
0
|
||||||
| 12.06.2016, 23:18 | |
|
Ответы с готовыми решениями:
16
Как получить имя каждого процесса? Как получить контекст чужого процесса ?
|
|
Ушел с форума
|
|
| 13.06.2016, 10:37 | |
Сообщение было отмечено _lunar_ как решение
Решение
Начиная с Windows Vista и выше, некоторые процессы могут быть "защищенными", т.е.
их не удастся открыть с некоторыми правами ни под администратором, ни под системой, и даже SE_DEBUG_NAME здесь не поможет. В Windows 8.1 этот механизм был еще больше усилен - "Protected Processes Light" (информация есть в блоге A. Ionescu). И я советую на Vista и выше использовать PROCESS_QUERY_LIMITED_INFORMATION - больше шансов, что этот флаг не фильтруется защитой для некоторых процессов.
2
|
|
|
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132
|
|
| 13.06.2016, 16:51 [ТС] | |
|
Я врубил в цикле попытки открыть все непользовательские процессы, перебирая по очереди права. Так вот у меня из около 50 процессов только 2 вернули дескриптор с правом SINHRONIZE. Все остальное - ошибка доступа. Получается, что тут не некоторые процессы защищены, а все и почти от всего. Если можно открыть процесс с правом SINHRONIZE, можно ли теоретически сделать deadlock с участием этого процесса?
0
|
|
|
Ушел с форума
|
||
| 13.06.2016, 18:48 | ||
|
Можно Process Explorer-ом посмотреть, например. Дело в том, что TRUE на AdjustTokenPrivileges еще ничего не означает, надо GetLastError еще звать и проверять, что он ERROR_SUCCESS (см. AdjustTokenPrivileges в MSDN - там это есть).
2
|
||
|
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132
|
|
| 13.06.2016, 19:46 [ТС] | |
|
Точняк, не устанавливается. 1300 возвращает, а это fail. Получается нет доступа к структуре TOKEN PRIVILEGES. А его нет, потому что в маркере к ней нет доступа. Тут гостевая учетка. В каком же направлении тут копать дальше?
0
|
|
|
Ушел с форума
|
|
| 13.06.2016, 19:51 | |
|
Под гостевой учеткой ты никак не откроешь системные процессы.
Если они только сами не разрешат.
0
|
|
|
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132
|
|
| 13.06.2016, 20:22 [ТС] | |
|
Самое интересное, что и из группы "Администраторы" не удается получить SE_DEBUG
0
|
|
|
Ушел с форума
|
|
| 13.06.2016, 21:09 | |
|
0
|
|
|
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132
|
|
| 13.06.2016, 21:13 [ТС] | |
|
Никак. Предположение, что он в маркере наследует информацию от группы. А процесс запущен из группы "Администраторы"
0
|
|
|
Ушел с форума
|
||
| 13.06.2016, 21:14 | ||
|
Кстати,
И процесс запускать от имени администратора (правой кнопкой мыши клик на exe файле, далее в контекстном меню выбрать "Запуск от имени Администратора").
1
|
||
|
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132
|
||||||
| 14.06.2016, 16:57 [ТС] | ||||||
|
Заработало) Спасибо. Теперь открывает кучу хэндлов на процессы с правами. И AdjustToken возвращает нуль в качестве кода ошибки. Надо еще реализовать в коде запуск от админа, ну... чтоб не мышкой)
Добавлено через 19 часов 26 минут Пытаюсь вот такой манифест подключить к проекту. Сохранил его в UTF-8, добавил в проекте в Resourse Files. В опциях линкера отключил Generate Manifest и поставил там highestAvailable. Не работает, файл запускается в обычном режиме. Пробовал в код вставить 1 24 "C:\\addon.xml", тоже без реакции. Что может быть не так?
0
|
||||||
|
Ушел с форума
|
|
| 14.06.2016, 17:43 | |
|
Exe в студию!
0
|
|
|
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132
|
|
| 14.06.2016, 17:54 [ТС] | |
|
Вот.
0
|
|
|
Ушел с форума
|
|
| 14.06.2016, 19:10 | |
|
В этом exe вообще нет манифеста.
0
|
|
|
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132
|
|
| 16.06.2016, 13:25 [ТС] | |
|
А в этом?
0
|
|
|
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132
|
|
| 17.06.2016, 13:46 [ТС] | |
|
Убежденный, в ресурсах вроде появился файл rights.xml, и в окошке появился rights.rc в двоичном виде. Может его еще где-то указать надо?
0
|
|
|
75 / 9 / 1
Регистрация: 07.06.2016
Сообщений: 132
|
|
| 22.06.2016, 15:05 [ТС] | |
|
Разобрался! Нужно было включить Generate Manifest:yes в опциях линкера. Теперь при запуске выводится окошко UAC.
0
|
|
| 22.06.2016, 15:05 | |
|
Помогаю со студенческими работами здесь
17
Как получить HWND окна/процесса/консоли Различные хэндлы Хэндлы hProcess и hThread
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|