Пятница, 26 Апреля 2024, 05:34

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Программирование » C/C++ » Защита процесса. Защита файла (Создание защиты для неигрового проекта)
Защита процесса. Защита файла
ArchidoДата: Вторник, 04 Декабря 2012, 16:08 | Сообщение # 21
Сэнсэй
Сейчас нет на сайте
Неправильно вызываешь. Ставить надо так:
Code
RtlSetProcessIsCritical(true, NULL, false);


Снимать так:
Code
RtlSetProcessIsCritical(false, NULL, false);


Quote (fireday)
Заметил вот что - защита работает, только если вызывать ObtenerPrivilegios SE_DEBUG_NAME в событии load (я так понимаю пока форма визуально не загрузилась).

У меня всегда работало без дебаг привилегий, если делать как я выше написал. Но можно для перестраховки и получать энти привилегии smile

Quote (fireday)
Надо сделать две dll-ки, первая делает процесс критическим. Вторая снимает защиту. Так работать будет?

Будет.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Вторник, 04 Декабря 2012, 16:10
firedayДата: Вторник, 04 Декабря 2012, 19:12 | Сообщение # 22
частый гость
Сейчас нет на сайте
Quote (Archido)
Неправильно вызываешь. Ставить надо так:

Code
RtlSetProcessIsCritical(true, NULL, false);

Quote (Archido)
Снимать так:

Code
RtlSetProcessIsCritical(false, NULL, false);

Я так тоже делал (только с дебаг правами). Ошибку выдавал при вызове с "NULL".
Сейчас еще раз попробую.


Сообщение отредактировал fireday - Вторник, 04 Декабря 2012, 19:12
ArchidoДата: Вторник, 04 Декабря 2012, 19:32 | Сообщение # 23
Сэнсэй
Сейчас нет на сайте
А соглашение вызова то для "RtlSetProcessIsCritical" правильное стоит? WinApi - stdcall же cool Хотя в VB наверное stdcall по умолчанию, тогда мимо

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Вторник, 04 Декабря 2012, 19:37
firedayДата: Вторник, 04 Декабря 2012, 21:02 | Сообщение # 24
частый гость
Сейчас нет на сайте
Что еще за соглашение вызова? Если, как вы выразились WinApi - stdcall - значит не вариант?
Code
Private Declare Function RtlSetProcessIsCritical Lib "ntdll.dll" (ByVal NewValue As Boolean, ByVal OldValue As Boolean, ByVal WinLogon As Boolean)
вызов:  
RtlSetProcessIsCritical True, Null, False
/
RtlSetProcessIsCritical False, Null, False
ArchidoДата: Среда, 05 Декабря 2012, 08:26 | Сообщение # 25
Сэнсэй
Сейчас нет на сайте
Quote (fireday)
Что еще за соглашение вызова?

Определяет как параметры передаются в ф-цию и кто занимается приведением стека в порядок после вызова. Вот подробнее.

Quote (fireday)
Если, как вы выразились WinApi - stdcall - значит не вариант?

Не, как выяснилось в Basic'e тоже stdcall, поэтому все должно работать. В других языках обычно эти соглашения отличны от майкрософта, а бейсик (как и WinApi) - является разработкой последнего - поэтому у них все совпадает. Сорри, что запутал smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Декабря 2012, 08:29
firedayДата: Среда, 05 Декабря 2012, 17:14 | Сообщение # 26
частый гость
Сейчас нет на сайте
Ясно, спасибо за ссылку, почитаю.
Почему то все равно при вызове с null выдает ошибку. Мб это из-за того что древняя версия vb? visual basic 6.0
ArchidoДата: Среда, 05 Декабря 2012, 17:22 | Сообщение # 27
Сэнсэй
Сейчас нет на сайте
Quote (fireday)
Почему то все равно при вызове с null выдает ошибку

Мм, я в бейсике полный нуль smile , но вообще вторым параметром идет указатель. Возможно нужно декларировать ф-цию как-нить так:
Code

Private Declare Function RtlSetProcessIsCritical Lib "ntdll.dll" (ByVal NewValue As Boolean, ByVal OldValue As Long, ByVal WinLogon As Boolean)


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Декабря 2012, 17:22
ARRAYBOWДата: Среда, 22 Марта 2023, 20:32 | Сообщение # 28
уже был
Сейчас нет на сайте
Что бы не удалили можно во-первых:
Код
attr +h +s

а во-вторых поменять владельца файла на TrustedInstaller, в основном бесит, а в этом случае помоает :)
Форум игроделов » Программирование » C/C++ » Защита процесса. Защита файла (Создание защиты для неигрового проекта)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг