Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.01;
Скачать: CL | DM;

Вниз

Запрет запуска   Найти похожие ветки 

 
Просто зашел   (2007-01-23 13:02) [0]

Прошу помощи.

Как, (желательно "малой кровью") запретить запуск конкретного приложения пользователю.
Пример:
Есть общедоступный компьютер. Один юзер знает "волшебное слово" и запускает IE. Другой не знает и ему выскакивает ругательная надпись.

Можно ли это реализовать CreateFile(.....) ???


 
clickmaker ©   (2007-01-23 13:06) [1]

Если NTFS, то права на запуск iexplore.exe разным логинам.
а "волшебным словом" будет этот самый логин и пароль


 
Просто зашел   (2007-01-23 14:10) [2]


> clickmaker ©   (23.01.07 13:06) [1]
> Если NTFS, то права на запуск iexplore.exe разным логинам.
>
> а "волшебным словом" будет этот самый логин и пароль


NTFS, но логин-пароль один ;)


 
tesseract ©   (2007-01-23 14:13) [3]


> NTFS, но логин-пароль один ;)


Сделай два.


 
Игорь Шевченко ©   (2007-01-23 16:18) [4]


> Есть общедоступный компьютер. Один юзер знает "волшебное
> слово" и запускает IE. Другой не знает и ему выскакивает
> ругательная надпись.


В реестре создаешь ключ в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options с именем того EXEшника, который надо запускать.
У этого ключа устанавливаешь строковое значение Debugger в котором указываешь путь к запускалке и имя запускалки.

Пишешь собственно запускалку, для теста я написал примерно так:

unit main;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   emPassword: TEdit;
   Go: TButton;
   lbPassword: TLabel;
   procedure GoClick(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.GoClick(Sender: TObject);
var
 pi: PROCESS_INFORMATION;
 si: STARTUPINFOA;
 Result: Boolean;
 de: DEBUG_EVENT;
begin
 if emPassword.Text = "validpassword" then begin
   FillChar(pi,sizeof(pi), 0);
   FillChar(si,sizeof(si), 0);
   si.cb := sizeof(si);
   Result := CreateProcessA(PChar(ParamStr(1)),
     PChar(ParamStr(1)), nil, nil,
     false, DEBUG_PROCESS or DEBUG_ONLY_THIS_PROCESS, nil,
     nil, si, pi);
   if Result then begin
     CloseHandle(pi.hProcess);
     CloseHandle(pi.hThread);
     while True do begin
       WaitForDebugEvent(de, INFINITE);
       ContinueDebugEvent(de.dwProcessId, de.dwThreadId,
         DBG_CONTINUE);
       if de.dwDebugEventCode = EXIT_PROCESS_DEBUG_EVENT then
         Break;
     end;
     Close;
   end else
     RaiseLastOSError;
 end;
end;

end.


Проверялось это на тестовом же примере, был создан еще один EXEшник, с именем AppTest, был создан ключ в реестре
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\AppTest.EXE, у него параметр Debugger равный C:\BIN\AppDbg.exe.

При запуске AppTest появлялось окошко с предложением ввести пароль и после ввода запускался нужный мне EXEшник.

Удачи.

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


 
властелин колхоза   (2007-01-23 17:10) [5]

> [0] Просто зашел   (23.01.07 13:02)
Если украинский разумеешь, http://tau-systems.org.ua/personalization.php

ЗЫ. Маленькая самореклама... :-D


 
властелин колхоза   (2007-01-23 17:12) [6]

Пардон... Тут http://bik-bak.com/personalization.php на русском.


 
BiN   (2007-01-23 23:56) [7]


> Просто зашел   (23.01.07 13:02)

Для таких вещей наряду с контролем NTFS придуманы правила хеша, сертификата или пути.



Страницы: 1 вся ветка

Текущий архив: 2007.07.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
1-1177924142
denissoft
2007-04-30 13:09
2007.07.01
что делать если отображение картинок выключено в IE


2-1181140831
Bora_ru
2007-06-06 18:40
2007.07.01
Handle окна по неполному названию


3-1175702027
spyrytus
2007-04-04 19:53
2007.07.01
Как найти список всех драйверов ODBC ?


2-1181198499
Solbon
2007-06-07 10:41
2007.07.01
Системный журнал


2-1181222942
webpauk
2007-06-07 17:29
2007.07.01
Array of TmyRec