| |
|
|
- Seite 1 - |
|
ToM | Hi!
habe schon überall geschaut jedoch mit nichts einen Erfolg gehabt, hab grad mehrere Projekte am laufen unter anderen ein AntiCheat Tool für Spiele, alles klappt, Ports werden gesperrt etc nur is das Problem, mann kan das Programm mim Taskmanager beenden und dass ist nich so toll.
habs bis jetzt mit Set_process_ace_in_dacl GuardSheep,System,-,PROCESS_TERMINATE
unter anderen Benutzernamen gehts auch nicht leider.
wie kann man das realisieren ?! möchte nur nen Tipp ... verwende Profan 7.
sonnige Grüße aus Österreich |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 05.06.2006 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
| Ah, ich sehs grad. Du must das Recht für den Account Jeder verbiten znd für den Account Administratoren. Schreib dir gleich mal Quelltext - bis gleich... |
|
|
| |
|
|
|
| Andreas unser Tokemon |
|
|
| |
|
|
|
| KompilierenMarkierenSeparieren $I DACL_SET.INC
Def @SetProcessShutdownParameters(2) !"Kernel32","SetProcessShutdownParameters"
ASSIGN #1,"C:TEST.TXT"
CHDIR "C:"
IF @FINDFIRST$("TEST.TXT")=""
REWRITE #1
Close #1
endif
Declare KILL&,ENDE%,ProgrammPfad$,Übergabe$,AT&,TIME&,TIME$
Windowtitle "Kleiner Abschalttest"
Windowstyle 31+512
Window 0,0-640,440
USERMESSAGES $10,$44 $0044=WM_COMMNOTIFY = obsolete in Win32
Case @Left$($WINVER,1)="5" : @SetProcessShutdownParameters($100,0)
GET_Group_Name "Jeder",1,Log_Einträge& Aufruf der DACL_SET.INC zum Ermitteln des Gruppennamens des "Jeder" SIDs.
Set_Process_ACE_IN_DACL "",@$(0),"-UCN","PROCESS_TERMINATE _DELETE",1,Log_Einträge& Die Rechte zum Fremdbeenden eines Processes werden entzogen.
GET_Group_Name "Administratoren",1,Log_Einträge& Aufruf der DACL_SET.INC zum Ermitteln des Gruppennamens des "Jeder" SIDs.
Set_Process_ACE_IN_DACL "",@$(0),"-UCN","PROCESS_TERMINATE _DELETE",1,Log_Einträge& Die Rechte zum Fremdbeenden eines Processes werden entzogen.
Whilenot %MENUITEM=-2
WAITINPUT
Wend
Mit [...] kannst du überprüfen, was da passiert... |
|
|
| |
|
|
|
ToM | Hi!
100 mal danke für deine bemühung, vor dir muss man echt respekt haben, wenn wer windows neu schreibt, dann du ;)
aber leider funzt das nicht. an was kann das liegen ?! der prozess soll sich ja beim taskmanager nich beenden lassen, aber ich kanns beenden.
lg tom |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 11.09.2006 ▲ |
|
|
|
|
| Ach ja! Windows2000 reagiert da anders als der XP Taskmanager. Unter XP werden die jeweiligen Rechte wieder zurückgesetzt (wie man es auch bei TNT tun kann) - das geht deshalb, weil der Taskmanager im Account des eingeloggten Users läuft und Eigentumsrechte auf den jeweiligen Prozess hat und so die Rechte immer wieder ändern kann.
Abhilfe: Dein Sicherheitsprogramm muß in einem anderen Account laufen als der Taskmanager, d.h. es muß als Service (vorzugsweise im Systemaccount) gestartet werden. Werden in diesem Programm dann die Rechte verboten, hat der Taskmanager keinen Zugriff mehr darauf. Einen richtigen Service zu schreiben ist nicht ganz so einfach (ich habs noch nicht hinbekommen ). Warum ist das schwierig? Das OS wartet laufend auf Rückmeldungen des Services - kommt irgendwann keine mehr, wird der Service beendet. Einen Trick kann man aber anwenden: Man registriert ein kleines Programm über die API als Service. Sofort nach dem Start ruft dieses Programm ein weiteres Programm auf. Das neue Programm wird dann mit dem gleichen Token versehen, wie der Service. Windows wartet eine Augenblick - da keine Rückmeldung vom Service kommt, wird dein erstes Programm beendet. Vom zweiten Programm weiß Windows nichts und es läuft lüstig weiter. Eine weiter Möglichkeit, einen Service zu starten, wäre über den DOS-Befehl AT .
Ein Service mit einem Fenster ist immer ein riesengroßes Sicherheitsrisiko, also besser die Finger davon lassen - denn XProfan (ab Version 9) erzeugt in jedem Fall Fenster. |
|
|
| |
|
|
|
ToM | hmm wow is das kompliziert
ich hab jetzt also nen service gemacht mittls instsrv.exe, und der service startet schnell ne andere datei, wie du gesagt hast, und wird dann unter dem systemaccount ausgeführt. jetzt kann man wenn man die dacl verwendet, den prozess nichmehr beenden danke vielmals!
wie meintest du das mit den befehl AT ?!
achja, wieso das so ist, dass er gleich wieda beendet und wie mans lösen kann steht hier: [...]
nur versteh ichs nich *g* viell was für dich
danke nochmal ;)
greets Tom |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 12.09.2006 ▲ |
|
|
|
| |
|
- Seite 2 - |
|
|
| Wie gesagt, Sicherheitsrisiko bedenken! Da ein Profanprogramm immer Fenster hat, ist es - je nach Servicepack - evtl. möglich, mittels Messages an das Servicefenster diesen Service zu kapern - fremde Anwendungen könnten sich recht einfach mit erhöhten Privilegien ausstatten und sonstwas auf dem Rechner tun... Evtl. den Service mit einer kleineren Profanversion compilieren und darauf achten, das er keine Fenster hat. |
|
|
| |
|
|
|
ToM | benuzte profan 7. und wenn man kein cls oder print befehl eingibt, ist ja kein fenster da oder ?! |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 12.09.2006 ▲ |
|
|
|
|
| Hallo Tom...
Genauso meinte ich das. Sowas nicht mit XProfan machen.
Gruß
Andreas |
|
|
| |
|
|
|
| |
|
| |
|
|
|
| Hallo IF...
Verstehe dich nicht so ganz . |
|
|
| |
|
|
|
| Diese Fenster meine ich (Anhang).
@Tom: Habs mir gerade nochmal angesehen: Wenn der Taskmanager das wollte, könnte er den Prozess auch weiterhin beenden, da der Eigentümer des Prozesses die Gruppe Administratoren ist. Hier müßte evtl. noch der Eigentümer angepaßt werden, nämlich auf den Account System, dann wirds schwierig mit dem Beenden (aber vollkommene Sicherheit gegen das Abschalten in einem Adminaccount gibts sowieso nicht). |
|
|
| |
|
|