Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Programm vor Taskmgr "verstecken"?!


Delete - Fr 16.06.06 18:43
Titel: Programm vor Taskmgr "verstecken"?!
Hallo,

Also wie aus der Überschrift hervorgeht würde ich gern ein Programm nicht im Taskmgr anzeigen lassen. Dazu hab ich folgendes gefunden: http://www.dsdt.info/tipps/?id=32

Allerdings wenn ich debugge hält der Debugger an und wenn ich nur Compiliere (Str+F9) und dann die exe so ausführe dann zeigt es eine Fehlermeldung dass der Prozedureisprungspunkt "RegisterServiceProcess" in "Kernel32.dll" nicht gefunden wurde!

Vlt. hat schon mal jemand geschafft ein Prog vor dem Taskmgr zu verstecken dann wäre ich sehr dankbar wenn sich dieser meldet.

Danke schon mal!


Born-to-Frag - Fr 16.06.06 18:45

http://www.dsdt.info/tipps/?id=32 hat folgendes geschrieben:
...
Hinweis: Das nachfolgende Beispiel funktioniert nur unter Windows 95, Windows 98 und Windows Me.


Marco D. - Fr 16.06.06 18:51

Such mal bei http://www.hackerboard.de, dort hatte ich eine Routine gefunden, die sowas auch unter 2000 und XP kann. Natürlich wird die DLL bzw. deine EXE als Trojaner identifiziert und du solltest dir überlegen, wie das beim Endbenutzer ankommt :roll:


Delete - Sa 17.06.06 00:11
Titel: Re: Programm vor Taskmgr "verstecken"?!
user profile iconmartin_gnoe hat folgendes geschrieben:
Also wie aus der Überschrift hervorgeht würde ich gern ein Programm nicht im Taskmgr anzeigen lassen.

Warum?

BTW sollte die Forensuche nach dem Thema mehr als genug Diskussionen dazu ergeben.


Delete - So 18.06.06 11:32

Danke erstmal für die schnellen antworten!

[http://www.dsdt.info/tipps/?id=32 hat folgendes geschrieben:
...
Hinweis: Das nachfolgende Beispiel funktioniert nur unter Windows 95, Windows 98 und Windows Me.]

Tut mir leid hab ich wohl übersehen!



[Such mal bei http://www.hackerboard.de, dort hatte ich eine Routine gefunden, die sowas auch unter 2000 und XP kann.]

Ja hab ich probiert und zeigt allerdings ein Fehlermeldung an: Die Anwendung konnte nicht richtig initialisiert werden...

Also bis dann!


Green - So 18.06.06 12:39

um noch etwas zu der 'vor dem tm verstecken duskussion einzuwerfen'

es gibt seeeeeeeeeeehr viele programme die im moment bei euch laufen von denen ihr keine ahnung habt und die ihr im TM nicht seht was auch gut so ist... man würde sofort den überblick verlieren. alleine die ganzen progs die rechts unten neben der uhr laufen...
also lieber froh sein das es sowas überhaupt gibt -.-

mfG Green


Born-to-Frag - So 18.06.06 12:58

user profile iconGreen hat folgendes geschrieben:
es gibt seeeeeeeeeeehr viele programme die im moment bei euch laufen von denen ihr keine ahnung habt und die ihr im TM nicht seht was auch gut so ist... man würde sofort den überblick verlieren. alleine die ganzen progs die rechts unten neben der uhr laufen...


:shock: :shock: :shock: Ist das dein ernst? Ich sehe alle Programme im TM die neben der Uhr laufen...
und ich fände es schlehct wenn das nicht so wäre...

greetz


fidionael - So 18.06.06 13:05

Ein Programm im TM nicht unter Anwendungen anzeigen zu lassen ist sehr trivial und auch unproblematisch. Das ist es denke ich, was user profile iconGreen meint. Was man jedoch nicht tun sollte (hier meldet sich sonst jeder Virenscanner) und auch mal gar nicht einfach ist, ist ein Programm nicht in der Prozesse-Liste anzeigen zu lassen.

Um ein Programm vor der Anwendungen-Liste und der Task-Leiste zu verbergen genügt soweit ich weiß ein Application.ShowMainForm:=False; (funktioniert jedenfalls bei mir und ich habe Windows XP Prof. SP2).

Mfg


Marco D. - So 18.06.06 13:07

user profile iconfidionael hat folgendes geschrieben:
und auch mal gar nicht einfach ist

Es ist einfach! Hier kannst findet du eine DLL dafür: http://www.hackerboard.de/thread.php?threadid=18268&hilight=verstecken


fidionael - So 18.06.06 13:09

Zitat:
Schon öfters bin ich der Frage begegnet, wie man Prozesse unter Windows XP vor dem Taskmanager verstecken kann. Es erweist sich als wirklich schwieriges unterfangen. Da man die API hooken muss. (Habo-Wiki: Windows API)

Um das zu vereinfachen, habe ich in Delphi eine DLL geschrieben, die eine Funktion exportiert, die diese Aufgabe erledigt


Eigentlich eben nicht einfach - er hat es nur vereinfacht ;)


Marco D. - So 18.06.06 13:12

user profile iconfidionael hat folgendes geschrieben:
Eigentlich eben nicht einfach - er hat es nur vereinfacht ;)

Für den Benutzer dieser DLL ist es einfach ;) Hinweis: Anti-Viren-Programme schlagen auf diese DLL an!


BenBE - So 18.06.06 13:44

Wer was auf sich hält, schreibt sich solche Funktionen eh selber. Die dort gezeigte Version ist IMHO noch sehr unausgereift und kann relativ einfach optimiert werden. Wenn man Lust hat, kann man (mit ein wenig Ahnung) die gezeigte DLL-Funktion sogar vollständig OHNE Assembler schreiben.

Da ich aber generell von dieser Diskussion nichts halte, werd ich der Letzte sein, der eine entsprechend optimierte Fassung, sofern ich sie überhaupt schreiben würde, veröffentlicht. Hier im Forum gibt's genug, die sich diese Routine problemlos selber schreiben könnten, keiner von den mir bekannten, würde dies aber für die Öffentlichkeit tun, ohne davor noch 20000 Gründe zu nennen, warum man's nicht machen sollte.

Das jedes gute AV-Programm früher oder später drauf anschlagen wird, ist nur ein Grund...
Weitere Gründe beinhalten:
1. Suspektes Verhalten
2. Umgehen des Betriebssystems
3. Probleme im Notfall, sollte man das Programm wirklich mal beenden müssen
4. Nicht-Windows-Utilities können's trotzdem anzeigen (Process Explorer, HijackThis, ...)
5. Probleme in Bezug auf Prozess-Berechtigungen
6. Hooking ist generell sehr instabil
...

Naja, gibt's alles bereits im Forum nachzulesen.

Programme, die sowas auf meinem Rechner versuchen, fliegen sofort runter (nach dem sie an den nächsten AV-Hersteller gemeldet wurden).

Also:
Lasst einfach die Finger davon!

P.S.: Hab bereits erfolgreich ein Programm von einem Rechner eliminiert, was sich selbst vor dem Löschen und seiner Deinstallation geschützt hat, indem es jegliche Dateien seines Namens ausgeblendet oder deren Löschung verhindert hat ... War ne Arbeit von 15 Minuten, wo ich den Schutz raus hatte ;-) Kopie ging sofort an Symantec ...


Marco D. - So 18.06.06 13:48

Bedenke, dass es auch Softwarelösungen für Bildungseinrichtungen gibt, die dem Dozenten erlauben, die Bildschirme der Studenten/Schüler zu überwachen oder ähnliches. Dort wäre es gut, wenn der Task verschwinden würde. In der Schule kann ich ohne Probleme das Programm über den Task-Manager ausschalten und der Lehrer ist machtlos.


BenBE - So 18.06.06 14:06

Die meiste Schulsoftware ist absolut diletantisch programmiert, als aob's mal eben fertig werden musste. In MasterEye gab's ne lange Zeit mal Sicherheitslücken, die's Clients erlaubt haben, den Server fernzusteuern (und ähnliche Späße). Wenn man die Rechte-Verteilung richtig setzt und die Software was taugt, brauch man sowas nicht, weil eh die Stellen, die sowas versuchen würden, nicht die Berechtigungen dazu haben ...


fidionael - So 18.06.06 14:14

Ich denke auch, dass solche Fragen immer über Zugriffsrechtsetzungen zu lösen sein sollten. Falls dies unter Windows nicht wie gewünscht möglich ist, muss man für den Schulrechner halt ein anderes Betriebssystem benutzen - aber ich halte es doch für sehr bedenklich zur Schülerüberwachung Trojaner zu installieren.

Wenn der Schüler schon überwacht wird, dann sollte er es wenigstens auch mitkriegen.


Delete - So 18.06.06 14:25

user profile iconMarco D. hat folgendes geschrieben:
In der Schule kann ich ohne Probleme das Programm über den Task-Manager ausschalten und der Lehrer ist machtlos.

Dann läuft da was grundsätzliches falsch. So ein Programm hat als Dienst zu laufen und dann kann ein Unberechtigter diesen Prozess auch nicht beenden. Ivh gehe mal davon aus, dass ihr Schüler keine Administratorenrechte habt.


Marco D. - So 18.06.06 14:33

user profile iconLuckie hat folgendes geschrieben:
user profile iconMarco D. hat folgendes geschrieben:
In der Schule kann ich ohne Probleme das Programm über den Task-Manager ausschalten und der Lehrer ist machtlos.

Dann läuft da was grundsätzliches falsch. So ein Programm hat als Dienst zu laufen und dann kann ein Unberechtigter diesen Prozess auch nicht beenden. Ivh gehe mal davon aus, dass ihr Schüler keine Administratorenrechte habt.

Nein, haben wir nicht. Smiles.exe lässt sich mit einem Klick auf 'Prozess beenden' abschießen - das wars :mrgreen:


Green - So 18.06.06 18:24

LEUTE wir kommen OT ;)

user profile iconfidionael hat folgendes geschrieben:
Ein Programm im TM nicht unter Anwendungen anzeigen zu lassen ist sehr trivial und auch unproblematisch. Das ist es denke ich, was user profile iconGreen meint. Was man jedoch nicht tun sollte (hier meldet sich sonst jeder Virenscanner) und auch mal gar nicht einfach ist, ist ein Programm nicht in der Prozesse-Liste anzeigen zu lassen.

Um ein Programm vor der Anwendungen-Liste und der Task-Leiste zu verbergen genügt soweit ich weiß ein Application.ShowMainForm:=False; (funktioniert jedenfalls bei mir und ich habe Windows XP Prof. SP2).

Mfg


also genau das meinte ich, ich meine natürlich nicht das es nicht als prozess angezeigt wird, denn das hätte ja schon schlimme folgen an sich. aber das verstecken der mainform an sich is deshalb von nutzen weil so verhindert wird das leute die keine ahnung ham solche progs abschissen, denn die meisten 0815 user ham keine ahnung was ihnen in dem prozess fenster gezeigt wird geschweige denn würde einer von denen einen prozess abschiessen.


Delete - Di 20.06.06 19:58

Thx erstmal für die Antworten,

ich denke dieses Application.ShowMainForm:=false reicht für meine Zwecke.

Mfg


Delete - Mi 21.06.06 12:50

user profile iconGreen hat folgendes geschrieben:
es gibt seeeeeeeeeeehr viele programme die im moment bei euch laufen von denen ihr keine ahnung habt und die ihr im TM nicht seht was auch gut so ist... man würde sofort den überblick verlieren. alleine die ganzen progs die rechts unten neben der uhr laufen...
also lieber froh sein das es sowas überhaupt gibt -.-

Ich sehe alle Prozesse, die auf meinem Rechner laufen im Taskmanager. Was ich nicht sehe ist jedes Fenster, welches zu den Prozessen gehört, sondern nur jeweils das Hauptfenster.

user profile iconGreen hat folgendes geschrieben:

also genau das meinte ich, ich meine natürlich nicht das es nicht als prozess angezeigt wird, denn das hätte ja schon schlimme folgen an sich. aber das verstecken der mainform an sich is deshalb von nutzen weil so verhindert wird das leute die keine ahnung ham solche progs abschissen, denn die meisten 0815 user ham keine ahnung was ihnen in dem prozess fenster gezeigt wird geschweige denn würde einer von denen einen prozess abschiessen.

Das ist Quark. Leute die keine Ahnung haben, sind sich aber bewußt, dass das Abschießen über den Taskmanager nicht der normale Weg ist ein Programm zu beenden. Ich du solltest den Nutzern deines Programmes zu mindest so viel Intelligenz zugestehen, dass ihnen bewußt sein sollte, dass es zu Datenverlust oder Schlimmeren kommen kann, wenn ein Programm so beendet wird. Und was wenn deine Benutzer mal etwas mehr Computerwissen erwerben sollten und sie wissen, was sie tun, weil es eifach mal nötig ist, da sich dein Programm aufgehängt hat? Mit welchem Recht betsimmst du über das Wissen und Intelligenz der Benutzer? Würdest du so bevormundet werden?

Ich verstehe von Autos auch nichts, wäre aber bestimmt in der Lage die Bremsscheiben auszubauen. Und bisher ist mir kein Autohersteller bekannt, der versuchen würde zu verhindern, dass man dies tun kann. Und auch wenn ich von Autos nichts verstehe, ist mir bewußt, dass das Rumwurschteln an der Bremsanlage gefährlich ist, wenn man keine Ahnung davon hat.


Green - Fr 23.06.06 15:59

ich hab ja auch geschrieben:
Zitat:
geschweige denn würde einer von denen einen prozess abschiessen.

ich meine halt, es gibt 2 arten von programmen: tools etc, die im hintergrund laufen und m
'benutz' programme wie spiele und so, und natürlich wäre es sinnlos ein chat programm vor dem TM zu verstecken, aber beispielweise ein programm zum regulieren der ausgänge einer 5.1 soundkarte würde ich im TM nicht bei Anwendungen, sondern eher bei Prozesse eintragen und als benutzer würde ich dieses auch nicht bei den anwendungen suchen