|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
Как узнать уровень защиты процесса не используя GetProcessInformation (эта функция минимум для Windows 8)?24.12.2021, 11:05. Показов 4908. Ответов 45
Метки нет (Все метки)
У меня тут такой вопрос, нигде не нашёл ответа в Интернете. Как узнать уровень защищённости процесса, например системный он или нет, ну там есть несколько уровней разной защиты. Использование GetProcessInformation мне не подходит там для Win 8. Мне надо для семёрки хотя бы. А лучше и для XP. Рекомендовали функцию NtQueryInformationProcess или ZwQueryInformationProcess с кодом ProcessProtectionInformation (61). Но когда я пробовал и долго мучился у меня ничего не получилось, лично у меня, что в XP, что в Win 7 выдаёт ошибку &HC0000003 короче мол такого параметра нету, хотя даже в MSDN есть описание для ZwQueryInformationProcess, но у меня не работает. И нигде не нашёл рабочих примеров для NtQueryInformationProcess с кодом ProcessProtectionInformation именно. Может, что подскажете!?
0
|
|
| 24.12.2021, 11:05 | |
|
Ответы с готовыми решениями:
45
Как узнать уровень громкости Windows 7 ? Обход UAC на Windows 10 pro (Максимальный уровень защиты) Можно ли, используя библиотеку BASS, узнать уровень входного сигнала? |
|
Модератор
|
|
| 24.12.2021, 18:58 | |
|
Узнать уровень не получится, т.к. уровни были введены в 8.1, но можно узнать защищен ли процесс или нет. Для этого нужно запросить ZwQueryInformationProcess(ProcessBasicIn formation, PROCESS_EXTENDED_BASIC_INFORMATION).
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 24.12.2021, 21:35 [ТС] | ||||||
|
Спасибо конечно за направление, но как обычно для VB нигде ничего не найти. Теперь не могу найти описание структуры PROCESS_EXTENDED_BASIC_INFORMATION. Как объявить эту структуру даже не понимаю.
Такой вариант не прошёл, сам придумывал...
0
|
||||||
|
|
|||||||
| 24.12.2021, 21:58 | |||||||
|
IsProtectedProcess и то что ниже исключите из структуры, а данные битовых полей извлекайте логическими операторами из поля Flags. Кстати, где поля Size и Flags? Структура
0
|
|||||||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 24.12.2021, 22:10 [ТС] | ||||||
|
Да, и эту структуру я не смог переписать на VB. Этот код на С++ я видел.
Но и не только в этом загвоздка. Любая структура, как известно это лишь какое-то заранее определённое количество байт в памяти отведённое и зарезервированное. Может быть таким образом наплевать как описывается структура, если скармливать байтовый массив, это самый простой способ, как я решил и поступить в своих испытаниях. И вот что вышло. Функция ZwQueryInformationProcess с параметром класса ProcessBasicInformation (ноль) подходит только структура в 24 байта. Специально перебирал циклом несколько тысяч и с успехом выдало только 24 байта если. Структура в 24 байта это только структура PROCESS_BASIC_INFORMATION Её легко найти в Интернете
Суть в том, что с параметром ProcessBasicInformation подходит только эта структура PROCESS_BASIC_INFORMATION, но не PROCESS_EXTENDED_BASIC_INFORMATION. И вот тут я не понимаю.
0
|
||||||
|
Модератор
|
||||||
| 24.12.2021, 22:56 | ||||||
0
|
||||||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||||||||||||||||||||||
| 24.12.2021, 22:59 [ТС] | ||||||||||||||||||||||||||
|
Беру свои слова обратно насчёт напутано со смещениями, то что я сказал, я просто столкнулся с чудесами.
Вот написал функцию для получения процесса родителя, это очень простая функция
То тогда, если я вызываю
и тогда Pbi.ParentProcessId ничем не наполняется (вместо процесса-родителя) а тогда Pbi.UniqueProcessId получает процесс родителя вместо своего процесса. Как только я написал ByVal, только потом я заметил эту ошибку так сразу структура начала заполняться правильно. И тогда надо правильно было мне написать
Так что извиняюсь. Вот кому если надо, хотя сто раз все это знают. Функция определения процесса родителя (правильный вариант):
Извините что отвлёкся от темы. Всё равно не понимаю как использовать PROCESS_EXTENDED_BASIC_INFORMATION. Добавлено через 51 секунду Спасибо за новый код, сейчас попробую.
0
|
||||||||||||||||||||||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
|
|
| 24.12.2021, 23:18 | |
|
Структуры кстати неправильно объявлены, т.к. не учитывается их различие в 64-х битных процессах.
Для 32 бит может и совпадают смещения полей, а для 64 бит - нет.
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 24.12.2021, 23:20 [ТС] | ||||||
|
точно, я об этом не подумал, это только если объявлено As Long.
тогда будет правильно без VarPtr даже, если As Any:
0
|
||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
|
|
| 24.12.2021, 23:21 | |
|
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 24.12.2021, 23:35 [ТС] | |
|
Уважаемый The trick, а можете, пожалуйста, объяснить для меня, для незнающего человека что значит OLE_HANDLE, очень удивился что не Long
0
|
|
|
Модератор
|
||
| 24.12.2021, 23:42 | ||
|
Но в VB6 нельзя объявлять их, только в TLB.
0
|
||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 25.12.2021, 00:06 [ТС] | |
|
Спасибо большое за помощь, я бы никогда не догадался объявить такую структуру и вызвать её без ошибки.
Особенно шокировало, что структура эта занимает 32 байта, не 24 и работает оказывается без ошибки. Оказывается есть волшебная строчка tInf.Size = Len(tInf) куда заносится информация, я очень удивился, хотя думал что я хороший программист))) Подведём итоги. tInf.Flags возвращает число, с которым нужно дальше работать, которое может показать ни только IsProtectedProcess проверяя единичку но и все остальные флаги. Я всё правильно понял надеюсь. Вообще я всё это затеял, чтобы написать функцию которая определит является ли какой-то процесс системным даже с включенными привилегиями.
0
|
|
|
Модератор
|
||
| 25.12.2021, 00:10 | ||
|
0
|
||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 25.12.2021, 00:15 [ТС] | |
|
А ProcessProtectionInformation (61) только для минимум Windows 8.1?
0
|
|
|
Модератор
|
||
| 25.12.2021, 00:18 | ||
|
0
|
||
| 25.12.2021, 00:34 | |
|
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 25.12.2021, 01:04 [ТС] | ||||||
|
Самое смешное, что своей цели я так и не добился, оказывается у меня в системе (Windows 7) абсолютно все процессы не защищённые. Написал функцию, вот она:
Но зато если поменять на If (tInf.Flags And 2) Then то тогда например правильно выдаёт какой процесс 32-битный (IsWow64Process (0x002)). Больше полезности тут я пока не нашёл. В этой структуре нету информации о том, является ли процесс системным?
0
|
||||||
| 25.12.2021, 01:04 | |
|
Помогаю со студенческими работами здесь
20
Драйвер для защиты процесса Защита книги макросом. Разный уровень защиты на листах. Как реализовать? Связь процесса-родителя и процесса-ребенка через pipe, используя для синхронизации семафоры Создание процесса из программы для защиты основного от несанкционированного завершения Организуйте двустороннюю поочередную связь процесса-родителя и процесса-ребенка через pipe, используя для синх Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
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
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|