Strona 1 z 1

Blokada pliku i dostępu do stron www - Windows

: 04 kwietnia 2010, 21:18
autor: bagsiur
Witam.
Mam nie lada wyzwanie, zmuszony jestem zablokować na pewnym stanowisku plik:

Kod: Zaznacz cały

C:\WINDOWS\system32\drivers\etc\hosts
Chodzi o blokadę kilku stron na stanowisku pracy, tak aby osoby które wykonują swoje obowiązki nie marnowały czasu.

Problem polega na tym, że są to osoby dość kumate (informatycy) i niestety wiedzą co i jak edytować aby uzyskać dostęp do swoich ulubionych stron. Dlatego stawiam pytanie w jaki sposób mogę definitywnie zablokować ten plik (zaawansowane udostępnianie plików nie zdaje egzaminu). Dodam też, że osoby te muszą posiadać konto administratora co utrudnia sprawę oraz dostęp do sieci pochodzi bezpośrednio od dostawcy (żadnych serwerów z Debianem pomiędzy).

Jeśli macie jakieś pomysły to piszcie :)

: 04 kwietnia 2010, 21:36
autor: tremor
Pierwsza myśl - napisać programik, który będzie cały czas trzymał ten plik otwarty. To może być np. usługa startująca automatycznie albo proces niewidoczny w standardowym Zarządcy Systemu a sterowany (w razie potrzeby wyłączenia) jakimś magicznym wpisem w rejestrze a uruchamiany z Run albo w jakiś inny, mniej widoczny sposób jeśli taki znasz.

: 04 kwietnia 2010, 22:08
autor: fnmirk
Są różne poziomy ustawienia praw dostępu dla administratorów systemu. Nie każdy administrator musi mieć dostęp do całego systemu.

: 06 kwietnia 2010, 16:28
autor: bagsiur
swietna myśl tremor dzieki tobie rozwiązałem problem :) proces nazwałem svchost.exe (jest ich wiele), oraz dodałem do autostartu poprzez klucze rejestru.

Gdyby w przyszłości komuś sie przydało to podaje przykładowy kodzik takiego programu:

Kod: Zaznacz cały

#include <windows.h>
#include <string>

// nazwa klasy okna
std::string aplikacja = "program";

// ------------------- procedura zdarzeniowa okna ------------------------

LRESULT CALLBACK WindowEventProc(HWND hWindow, UINT uMsg,
                                 WPARAM wParam, LPARAM lParam){
     switch (uMsg){
         case WM_DESTROY: PostQuitMessage (0);   // kończymy program
         return 0;
         }
return DefWindowProc(hWindow, uMsg, wParam, lParam);
}

// ------------------------funkcja WinMain() ----------------------------

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow){

                       /* rejestrujemy klasę okna */
                       WNDCLASSEX KlasaOkna;
                       // wypełniamy strukturę WNDCLASSEX
                       ZeroMemory (&KlasaOkna, sizeof(WNDCLASSEX));
                       KlasaOkna.cbSize = sizeof(WNDCLASSEX);
                       KlasaOkna.hInstance = hInstance;
                       KlasaOkna.lpfnWndProc = WindowEventProc;
                       KlasaOkna.lpszClassName = aplikacja.c_str();
                       KlasaOkna.hCursor = LoadCursor(NULL, IDC_ARROW);
                       KlasaOkna.hIcon = LoadIcon(NULL, IDI_HAND);
                       KlasaOkna.hbrBackground = (HBRUSH) COLOR_WINDOW;
                       KlasaOkna.style = CS_SAVEBITS;
                       // rejestrujemy klasę okna
                       RegisterClassEx (&KlasaOkna);
                       
std::string sciezka = "C:\\WINDOWS\\system32\\drivers\\etc\\hosts";

HANDLE uchwyt = CreateFile(sciezka.c_str(), 
                    GENERIC_WRITE, 
                    0,                             //ważne dla celu misji plik nie może być współdzielony
                    NULL, 
                    OPEN_EXISTING, 
                    FILE_ATTRIBUTE_NORMAL, 
                    NULL);

/* pętla komunikatów */
MSG msgKomunikat;

while (GetMessage(&msgKomunikat, NULL, 0, 0)){
      
TranslateMessage (&msgKomunikat);
DispatchMessage (&msgKomunikat);

}

// zwracamy kod wyjścia
return static_cast<int>(msgKomunikat.wParam);
}

: 06 kwietnia 2010, 19:09
autor: darkwater
Jeśli ci użytkownicy to faktycznie informatycy, takie "zabezpieczenie" co najwyżej poprawi im humor na resztę dnia. :)

: 07 kwietnia 2010, 18:44
autor: bagsiur
Aż tak dobrzy nie są, to kobiety :p choć wiadomo że głupia bramka proxy załatwiłaby sprawę.