С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651

Ограничение доступа к памяти

27.04.2019, 10:44. Показов 4354. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Нужно ограничить доступ программе к памяти с помощью работы с реестром. Не очень понимаю, в каком именно направлении копать. Не подскажите?)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.04.2019, 10:44
Ответы с готовыми решениями:

Ограничение доступа в IE.
Активирован этот компонент, нет доступа вообще ни на какой сайт, требует ввести пароль, а где его взять если пароли НЕ устанавливались....

Ограничение доступа
Можно ли как то с помощью Visual Basic.NET ограничить доступ к процессу программы ?

Ограничение доступа
Здравствуйте! Прошу вас помочь мне с решением одной поставленной мне задачи. Есть локальная сеть(беспроводная). В сети есть компьютер,...

57
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
27.04.2019, 22:15
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
Нужно ограничить доступ программе к памяти
К какой памяти?
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
29.04.2019, 00:09  [ТС]
nonedark2008, оперативной. Т.е. при запуске программы должно выйти сообщение о том, что ей запрещен доступ к памяти
0
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
29.04.2019, 09:14
Вопрос сильно размыт. К своему адресному пространству или другого приложения?
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
29.04.2019, 11:27  [ТС]
ISergey, да по-видимому, с своему пространству. Смысл в следующем: ставится блок на доступ программы к памяти. При ее запуске выскакивает соответствующая ошибка. Какая именно - неизвестно =)
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
29.04.2019, 19:20
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
Смысл в следующем: ставится блок на доступ программы к памяти
Если брать в расчет тот факт, что при работе сама программа, ее стек и подключаемые системные библиотеки располагаются в оперативной памяти, то какой именно блок предполагается ставить?
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
29.04.2019, 20:44  [ТС]
nonedark2008, какие варианты вообще возможны? Я пытался взять pid процесса и на него ставить блок. Можно ли по имени регистрируемого класса ставить блок?
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
29.04.2019, 21:53
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
какие варианты вообще возможны?
Зависит от того, какую ты задачу решаешь. Какой конечный результат должен быть? Как я уже сказал ранее, любая программа требует доступа к оперативной памяти. Если этот доступ заблокировать (неизвестным пока способом), то ничего не будет работать, включая ключевые компоненты ОС.

Добавлено через 9 минут
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
Можно ли по имени регистрируемого класса ставить блок?
У тебя есть внятное описание поставленной перед тобой задачи?
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
29.04.2019, 22:35
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
какие варианты вообще возможны?
для своего процесса VirtualProtect с флагом PAGE_NOACCESS (PAGE_GUARD ?)

с реестром ничем не подскажу (копать инет не охота), но стоит начать с AppInit_DLLs
1
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
29.04.2019, 23:57
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
ISergey, да по-видимому, с своему пространству. Смысл в следующем: ставится блок на доступ программы к памяти.
далее
Я пытался взять pid процесса и на него ставить блок. Можно ли по имени регистрируемого класса ставить блок?
и здесь вы противоречите ... своему процессу это проще сделать как выше описали (под словом свой процесс понимаем приложение которое вы сами пишете и можете свободно менять код. )

для чужого процесса это не прокатит (под чужим имеем в виду все что работает не по вашему желанию), не прокатит по той причине что ос дает каждому приложению свое адресное пространоство и не мешает его особо использовать.
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
30.04.2019, 00:35
Цитата Сообщение от ISergey Посмотреть сообщение
для чужого процесса это не прокатит
VirtualProtectEx вполне себе прокатит и для чужого. Вопрос только в том, какие страницы памяти нужно трогать, а какие ненужно. Если запретить доступ ко всему, то DEP скорее всего сразу убьет приложение.
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
30.04.2019, 05:21  [ТС]
Цитата Сообщение от nonedark2008 Посмотреть сообщение
У тебя есть внятное описание поставленной перед тобой задачи?
Ограничение доступа к памяти с помощью работы с реестром Windows. Не особо-то и внятное)

Цитата Сообщение от ISergey Посмотреть сообщение
и здесь вы противоречите
Почему? Я имел в виду класс, который регистрирует сама программа. Если Вы об этом

Цитата Сообщение от nonedark2008 Посмотреть сообщение
какие страницы памяти нужно трогать
Если делать так, то как понять какие страницы трогать?)
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
30.04.2019, 10:50
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
Если делать так, то как понять какие страницы трогать?)
вы объясните, доступ блокировать нужно в момент запуска программы (функция main -> entry point), или же всё таки при исполнении какой-то внутренней функции (foo -> entry point + offset)?
просто непонятна ваша фраза
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
Смысл в следующем: ставится блок на доступ программы к памяти. При ее запуске выскакивает соответствующая ошибка.
1
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
30.04.2019, 13:00  [ТС]
Цитата Сообщение от _lunar_ Посмотреть сообщение
доступ блокировать нужно в момент запуска программы (функция main -> entry point), или же всё таки при исполнении какой-то внутренней функции
Об этом ни слова. Думаю, важен сам факт того, что запуск будет запрещен
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
30.04.2019, 13:41
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
Если делать так, то как понять какие страницы трогать?)
Неизвестно. Практически любое приложение выделяет память в куче, ее расположение заведомо неизвестно.

Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
Не особо-то и внятное)
Тогда уточни постановку задачи там, где ее взял. Пока звучит как какая-то белиберда. Я пока не вижу никакой взаимосвязи между реестром и памятью процесса.
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
30.04.2019, 14:16  [ТС]
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Я пока не вижу никакой взаимосвязи между реестром и памятью процесса.
Странно. Тогда Вы можете объяснить как работает аналогичная функция в антивирусе? У него же обычно есть возможность блокировать запуск
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
30.04.2019, 14:38
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
Тогда Вы можете объяснить как работает аналогичная функция в антивирусе? У него же обычно есть возможность блокировать запуск
Наверняка в ядре винды ставится какой-то pre-хук на функцию запуска процессов, и перед запуском процесса происходит проверка... Причем тут реестр и память процесса не понятно...
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
30.04.2019, 14:39  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
в ядре винды ставится какой-то pre-хук на функцию запуска процессов
Можно подробнее?
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
30.04.2019, 15:46
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
У него же обычно есть возможность блокировать запуск
Это совсем другой вопрос, и к блокировке доступа к оперативной памяти не имеет никакого отношения. Если необходим перехват запускаемых процессов, то это можно, например, сделать из своего драйвера ядра через вызов PsSetCreateProcessNotifyRoutine - вариантов тут много.

Если нужно перехватывать регистрацию класса, то это тоже возможно. Достаточно лишь для каждого создаваемого процесса перехватывать из драйвера момент загрузки системной dll, которая экспортирует функцию регистрации класса. После этого любым удобным способом на эту функцию вешается трамплин.
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
30.04.2019, 16:01  [ТС]
Цитата Сообщение от nonedark2008 Посмотреть сообщение
сделать из своего драйвера ядра
Т.е. драйвер отлавливает запуск процесса и блокирует его?

Цитата Сообщение от nonedark2008 Посмотреть сообщение
PsSetCreateProcessNotifyRoutine - вариантов тут много.
Не очень понял как использовать ее. Да и вообще, созданием драйверов никогда не занимался)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2019, 16:01
Помогаю со студенческими работами здесь

Ограничение доступа
А вот как сделать ограничение в базе данных для некоторых пользователей? Иерархия состоит из трех категорий пользователей и как правильно...

Ограничение доступа
На компе установлена Windows 7.Нужно следующее:Что-бы можно было оставить компьютер включенным и быть уверенным что никто его не испортит в...

Ограничение доступа
Создал роль для просмотра некоторых справочников и отчета ОСВ по счету. Как можно ограничить доступ к ОСВ, чтоб пользователь мог выбрать...

Ограничение Доступа По Ip
Возможно ли на domino 6 настройками разрешить пользователю подключаться к серверу только с определённого IP-адреса? Или как-то фильтровать...

ограничение доступа
Как ограничить доступ к одной из папок на сервере таким образом, чтобы к файлам и поддиректориям этой папки имели доступ только скрипты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
изучаю 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. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru