Diskuze: C# - Odebrání položky DACL u terminate
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Toto bylo řešení u nižších verzí windowsu, u windows 7 ani 8 už toto řešení nefunguje, protože si systém hlídá plné cesty k souborům. Ale před pár dny jsem to zkoušel v xp, a fungovalo, ovšem ale potřebuji poradit, jak to udělat pro novější OS
Je to sice prasárna, ale nešlo by udělat, aby proces při vypnutí spustil jiný proces, který by ho zase zapnul?
Něco podobného jsem taky potřeboval a nepodařilo se mi to vyřešit tímto způsobem, tak jsem na to šel z jiné strany. Daný proces jsem označil jako kritický což má za následek že systém spadne a objeví se modrá smrt. Asi to není úplně ideální, ale v mém případě to posloužilo dobře, protože každý uživatel zkusil shodit aplikaci maximálně jednou a pak si to už nedovolil
Popis jak na to je zde: http://www.dotnetportal.cz/…cesy-systemu
Nápad to je zajímavý, ale je otázka jestli při zavolání TERMINATE bude vůbec čas na spuštění vedlejšího procesu. Další věci je že i kdyby se to podařilo, neuložená data budou nejspíš v tahu.
Tohoto bych se chtěl vyvarovat právě. Napadlo mě udělat to jako službu, ale toho bych se chtěl také vyvarovat. Co jsem vygooglil a dověděl se, je opravdu odebrání DACL položky terminate, ovšem jak to udělat v C# to už se nikde nedočteme. Zmíněný processExplorer toto dokáže i bez administrátorských práv. Takže předpokládám, pokud něco jde udělat v C++ (nebo v čem je psaný processExplorer), tak to pravděpodobně půjde i v C#.
Když to zkusíš v tom processExploreru, tak to nastavíš a zakážeš terminate, a pak už ten proces prostě neukončíš. Ti to bude psát, že nemáš oprávnění ukončit proces, a žádný vedleješí proces se při tom nepouští právě. Jak si to přesně myslel?
Zobrazeno 8 zpráv z 8.