| 
				
				Защита процесса. Защита файла
				 | 
 | 
| Archido | Дата: Вторник, 04 Декабря 2012, 16:08 | Сообщение # 21 |  
 
Сэнсэй 
Сейчас нет на сайте 
 
 | Неправильно вызываешь. Ставить надо так:   Code RtlSetProcessIsCritical(true, NULL, false);   
   Снимать так:   Code RtlSetProcessIsCritical(false, NULL, false);   
   Quote (fireday) Заметил вот что - защита работает, только если вызывать ObtenerPrivilegios SE_DEBUG_NAME в событии load (я так понимаю пока форма визуально не загрузилась).     У меня всегда работало без дебаг привилегий, если делать как я выше написал. Но можно для перестраховки и получать энти привилегии   
   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 же   Хотя в 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) - является разработкой последнего - поэтому у них все совпадает. Сорри, что запутал  
  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 выдает ошибку     Мм, я в бейсике полный нуль   , но вообще вторым параметром идет указатель. Возможно нужно декларировать ф-цию как-нить так:   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 |  
| 
 уже был 
Сейчас нет на сайте 
 
 | Что бы не удалили можно во-первых:
  а во-вторых поменять владельца файла на TrustedInstaller, в основном бесит, а в этом случае помоает  
 |  
| 
 | 
 |    | 
| Искусительница | Дата: Вторник, 22 Июля 2025, 23:52 | Сообщение # 29 |  
| 
 почетный гость 
Сейчас нет на сайте 
 
 | Ха закодируй его своей таблицей и все создай ключи и не кто кроме тебя если не будет разбираться кодировке не сможет сломать но опять же что значит сломать. Если у них есть доступ к файлам как бы ты не кодировал это бесполезно. Просто сломают программу и все. Так что тут те не кодировка нужна =) а способ прятать файлы на компе.
 |  
| 
 | 
 |    | 
| Искусительница | Дата: Среда, 23 Июля 2025, 00:01 | Сообщение # 30 |  
| 
 почетный гость 
Сейчас нет на сайте 
 
 | А вызов ошибки это ошибка в программе это не решение проблемы - ошибка дает только возможность не запустить процесс инициализации и все. Сделай просто видимые и не видимые объекты и вся твоя проблема решена. windows такая функция сейчас есть. И создание ошибки влияет на систему и создает загрузку твоей памяти и может быть такая ошибка что закрыть не сможешь и она еще идет в память - числовой формат измени и тогда программа может и не запускаться. Для этого те не нужно так глубоко пытаться просто поставить преобразование в скобки перед числом
 
 Сообщение отредактировал Искусительница - Среда, 23 Июля 2025, 00:03  |  
| 
 | 
 |    |