nadzorowanie uruchamianie .exe

0

potrzebuje nadzorowac uruchamianie WSZYSTKICH plikow .exe. wiem ze jest takie cos w rejestrze co pozwala nadzorowac uruchamianie poszczegolnych plikow .exe np: notepad.exe ale wystarczy zmienic nazwe tego pliku aby juz nie byl on nadzorowany. Jest na to jakas metoda ??

0

Musiałbyś jakoś przejąć wywołanie funkcji CreateProcess() (i być może jeszcze jakichś), po czym sprawdzić jej parametry i wywołać (lub nie) oryginalną jej wersję. Do zrobienia np. za pomocą pakietu madcollection - http://madshi.net .

0

dzieki :) a nie ma przypadkiem jakiejs darmowej metody ? ;>

0

A madcollection nie jest przypadkiem darmowe? Przynajmniej kiedyś było. Co do innych metod, to jest jeszcze cała masa innych bibliotek pozwalających na "hookowanie" funkcji API, ale generalnie są trudniejsze w użyciu. W ostateczności można też sprawdzać listę procesów (tylko nie pytaj mnie jak :P) i automatycznie zabijać te niepożądane.

0

bylo darmowe. Tzn nadal jest reszta rzeczy z madCollection darmowa ale ten madCodeHook nie jest juz darmowy ;( jakbys mial gdzies wersje darmowa to bylbym wdzieczny za nią bardzo :)

0

Niestety, dawno się tym już nie bawiłem. W takim razie szukaj na google czegoś w rodzaju "api hooks".

0

wiem ze tego mam szukac :) szukam ale nie ma nic konkretnego ;/

0

Spróbuj z tą nieszczęsną listą procesów - pobranie a później weryfikacja wg Twojego kryterium nazwy. Może w wątku to umieścić ... - trzeba sprawdzić. Oczywiście hook byłby lepszy.. - ale jak nie znajdziesz to może się przyda.

procedure TForm1.ShowTaskList;
var
  Uchwyt: THandle;
  Proces: TProcessEntry32;
  s: string; // Procesy
begin
  Uchwyt := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
  Proces.dwSize := SizeOf(Proces);
  if Integer(Process32First(Uchwyt, Proces)) <> 0 then
    repeat
      s := s + #13#10 + Proces.szExeFile;
    until Integer(Process32Next(Uchwyt, Proces)) = 0;
  Closehandle(Uchwyt);
end;
0

Tutaj coś masz:

http://www.apihooks.com/

O ile dobrze pamiętam, to kiedyś się tym bawiłem i użycie jest dosyć trudne (a właściwie ciężko się dokopać do najprostszych przykładów i ruszyć samemu), ale działa. Możesz też spróbować tego:

http://www.softaward.com/4312.html

Zapewne prostsze, ale to shareware i nie wiem, jakie ograniczenia ma wersja "ściągalna".

0

dzieki ale chce napisac troche inny program :) chce troche kompa zablokowac siostrze bo przegina pałke ;) zrobie tak aby po np 1 godz uzywania kompa trzeba bylo hasla do uruchomienia jakiegos programu :) i wlasnie do tego tego hooka potrzebuje :)

0
ArO87 napisał(a)

dzieki ale chce napisac troche inny program :) chce troche kompa zablokowac siostrze bo przegina pałke ;) zrobie tak aby po np 1 godz uzywania kompa trzeba bylo hasla do uruchomienia jakiegos programu :) i wlasnie do tego tego hooka potrzebuje :)

Rozwiązanie Detiego też może być, choć to takie pójście na łatwiznę. Jeśli będziesz okresowo (np. co sekundę) sprawdzał listę procesów, to nic, że program się uruchomi, jeśli od razu zostanie zamknięty. Na tej zasadzie musiałoby to działać.

// Do postu puchi:
Ale to zadziała chyba tylko dla programów otwieranych z poziomu explorera?

0

napisz program co będzie uruchamiał pliki exe i wzuć do rejestru że wszystkie pliki exe będą otwierane za pomocą twojego programu a jak będziesz miał nazwę pliku to będziesz mogł zrobić co chcesz. Ja tak kiedyś robiłem jak pisałem program do blokowania uruchamiania programów znajdujących się na liście mojej aplikacji.

0

Wiem ze moge enumerowac liste procesow.. kiedys juz zrobilem taki programik i potem je zamykac ktore mi sie nie podobaja.. ale to musialoby enumerowac co jakis czas. A to troszke system by obciazalo. Ale jednak chyba tak zrobie w zwiazku z brakiem odpowiedniego hooka

0

Nie sądzę, żeby pobieranie listy procesów aż tak obciążyło system. A co do hooków, to dałem ci linka do odpowiedniej biblioteki. Spróbuj z nią, może załapiesz, o co w tym chodzi.

// Do postu poniżej:
Nie jest tak źle, tylko trzeba się w nią trochę wgryźć :P

0

thenkles, oj uzywanie tamtej biblioteki to czysty horror ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1