|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
Как узнать уровень защиты процесса не используя GetProcessInformation (эта функция минимум для Windows 8)?24.12.2021, 11:05. Показов 4844. Ответов 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
|
|
|
Испарился
1741 / 637 / 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
|
|||||||
|
Испарился
1741 / 637 / 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
|
||||||
|
Испарился
1741 / 637 / 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,574
|
|
| 24.12.2021, 23:18 | |
|
Структуры кстати неправильно объявлены, т.к. не учитывается их различие в 64-х битных процессах.
Для 32 бит может и совпадают смещения полей, а для 64 бит - нет.
0
|
|
|
Испарился
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 24.12.2021, 23:20 [ТС] | ||||||
|
точно, я об этом не подумал, это только если объявлено As Long.
тогда будет правильно без VarPtr даже, если As Any:
0
|
||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 24.12.2021, 23:21 | |
|
0
|
|
|
Испарился
1741 / 637 / 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
|
||
|
Испарился
1741 / 637 / 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
|
||
|
Испарился
1741 / 637 / 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
|
|
|
Испарился
1741 / 637 / 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, используя для синх Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|