![]() |
Prozess verstecken / Win7x64
Nabend!
Wir haben einige Panel-PCs bei unseren Kunden hängen, die nur und ausschließlich unser Programm zeigen sollen. Da die Panels zum Teil auch für Personen zugänglich sind, die daran nichts machen können sollen (innerhalb des Programms ist das durch Passwörter geschützt), haben wir das Problem, dass ein jeder daher kommen könnte, und unser Programm einfach via Taskmanager abschießt. Und somit Dinge tun könnte, die er/sie/es nicht tun können dürfen soll. Ich habe bereits ein wenig recherchiert, und wie es scheint, ist es unter Win7x64 nicht mehr so ganz so trivial wie unter Win98 einen Prozess aus dem Taskmanager verschwinden zu lassen. Was ich bisher fand, waren Links zu dubiosen Programmen und DLLs, die ich nur mit großen Bauchschmerzen anfassen wollen würde. Wenig ließ sich darüber finden, ob und wie diese das Ziel erreichen. Hiervon hängt auch ab, ob ein potenzieller Kunde unsere Lösung akzeptieren würde, so dass ich doch sehr an einer Lösung interessiert wäre. Wenn also Bedenken bzgl. der mit so etwas anrichtbaren Schäden existieren, wäre ich im Zweifel auch an einer Konversation via PM interessiert. (In diesem Falle würde ich hier zumindest den Forschungsstatus ohne zu viele technische Details wiedergeben, damit der Thread an sich nicht völlig über ist.) Ich bin mir darüber im Klaren, dass so etwas in böser Absicht einsetzbar wäre. In unserem Fall würde es der Sicherheit einer Industrieanlage dienen, die sicherlich keiner von uns gerne in falschen Händen sehen würde. (Ich sage das nur um potenziellen Unkenrufen vorzubeugen.) Klar ist, dass man eine Menge via Policies abdecken kann. Wird auch gemacht. Aber gerade die neueren Windows versionen sind (glücklicherweise) ja deutlich weniger angreifbar, so dass ein Strg-Alt-Entf über eine Tastatur immer geht. Genau das ist unser Problem. Wer eine Tasta anstöpselt, kommt weiter. Und die Mainboards haben nun Mal USB, und die USB Subsysteme können wir nicht ganz abschießen, da u.a. der Touch-Screen daran hängt. Das Gehäuse bekommt man trotz Edelstahl sicherlich auch auf um etwas anzuschließen, wenn man es denn wirklich will. Ich suche händeringend nach einer Lösung dafür. Besten Dank im Voraus! |
AW: Prozess verstecken / Win7x64
Trotzdem Policies...
Code:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=1 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableTaskMgr"=1 |
AW: Prozess verstecken / Win7x64
Naja, also zuerst gilt: Wer ungehinderten Zugriff auf die Hardware hat, dem kannst du nichts mehr entgegensetzen.
Danach: :arrow: Registriere dein programm als shell. Der Windows Explorer wird nicht mehr gestartet, keien Autostart mehr und dein programm ist das erste und einzige was läuft. :arrow: Gruppenrichtlinien können Einfluss auf den Sperrbildschirm nehmen. Benutzerkonfiguration -> Administrative Vorlagen -> System -> Strg+Alt+Entf (Optionen) Da kannst du alles einstellen. Dann muss "nur noch" dein Programm sicher sein :mrgreen: |
AW: Prozess verstecken / Win7x64
Falls du absolut keine saubere Lösung findest, kannst du das ganze ja dreckig lösen.
Du setzt einen globalen DLL-Hook, der per API-Hook bestimmte APIs überwacht. Du müsstest dann alle Möglichkeiten bedenken, wie man eine Anwendung schließen kann - angefangen von TerminateProcess() bis zu CreateRemoteThread mit ExitProcess usw.. Wie schon gesagt - das ist nicht der beste Weg, funktionieren tuts aber.. Du kannst auch Enumerierungs-APIs hooken um so gar nicht erst im TaskMgr oÄ. zu erscheinen.. Hab das letztere selber mal implementiert.. Machbar ist es! |
AW: Prozess verstecken / Win7x64
Danke für die Ideen!
Den Taskmanager ganz zu sperren wäre ... zumindest mittelfristig etwas blöd, da wir via Fernzugriff über eine gesicherte Verbindung diesen doch ganz gut gebrauchen könnten. Was sich da via Policies noch weiter fein-einstellen ließe werde ich mal recherchieren. Da Prgoramm als Shell laufen zu lassen, daran hatte ich auch schon mal gedacht. Wie schaut es da aus mit der Benutzung von weiteren Programmen und Diensten? Wir müssten z.B. Acrobat Reader starten, und auch drucken können. Inklusive der Dialoge und allem. Das habe ich nicht probiert - geht sowas dann alles noch? Oder anders: Kann ich dann noch immer alles so machen wie als wenn mein Programm "normal" läuft? ShellExecute, CreateProcess, Interaktion mit Diensten und der ganze Kladderedatsch? Wird ein PC-Anywhere Host dann auch immer noch gestartet beim Boot? Bisher habe ich mich immer davor gescheut die Shell zu ersetzten. |
AW: Prozess verstecken / Win7x64
Vielleicht solltest Du unter dem Stichwort
![]() |
AW: Prozess verstecken / Win7x64
![]() Nachdem ich das gesagt habe... ![]() |
AW: Prozess verstecken / Win7x64
Dass das an sich keine 100%ige Nummer ist, sollte klar sein. Der Kunde hat allerdings da sehr rigide Werksvorschriften, und seiner Aussage nach würde ein Verschwinden aus der Liste diese dann ausreichend erfüllen. (Ich hätte da an ganz anderen Stellen angesetzt, und viele der Anforderungen sind auch meiner Meinung nach Mumpitz. Man müsste sich halt wirklich erst an der richtigen Stelle zerstörungsfrei durch ein Edelstahgehäuse sägen um eine Tastatur dran zu bekommen...)
AV Software müsste im Zweifel entsprechend konfiguriert werden, sprich Rootkit Schutz raus. Das Panel ist diesbzgl. auch nicht sonderlich gefährdet, da sind sich die Netzwerker des Kunden wieder sehr sicher. (Sie meinten sogar ein AV müsste überhaupt nicht drauf.) Verstehen muss ich da auch nicht alles, aber wenn sie es so haben müssen, dann müssen wir das eben so bauen. (Sonst macht's ein anderer.) Danke für die Ideen! Ich werde mal mit den Optionen spielen. |
AW: Prozess verstecken / Win7x64
Mal ganz quer gedacht: Würde es nicht ausreichen, wenn das Programm unter einem anderen Benutzerkonto ausgeführt wird, sinnvollerweise einem mit höheren Rechten? Dann kann man gar nichts mehr killen, selbst wenn man wollte, denn anderer Benutzer Prozesse töten, dürfen nur Admins oder höher.
Dazu kommt, dass die Prozesse anderer Benutzer gar nicht im Taskmanager von Win7 auftauchen, dafür müsste man den Button "Prozesse aller Nutzer" klicken (was dann eine UAC-Meldung auslöst, sofern eingeschaltet). MfG Dalai |
AW: Prozess verstecken / Win7x64
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe dir ja schon unzählige PMs geschrieben und in einem dir ne kleine Demo mit Src gegeben..
Ich hab nun rausgefunden, wie genau TaskMgr die Prozesse ermittelt, die Demo angepasst - sie versteckt sich nun ^_^ Die Demo spuckt zu Anfang 2 ShowMessage Fenster aus... Ich möchte nur ergänzen, dass es sehr wohl auch mit 64 bit funktioniert - dafür muss halt die Dll als 64 bit kompiliert werden, was mein Kompiler aber nicht kann :P Edit: Getestet unter Windows 7 Starter 32 bit |
AW: Prozess verstecken / Win7x64
Sahne, da hab' ich jemanden angefixt :mrgreen: Nochmals heissen Dank!
Mit 64bit. Wie ist das da? Kann ich nur 32bit Prozesse verstecken, oder kann ich nur auf einem 32bit Windows Dinge damit verstecken? Also an welcher Seite schlägt da die Einschränkung zu? |
AW: Prozess verstecken / Win7x64
Zitat:
Falls dein Kompiler 64 kompilieren kann und letzendlich die Dll 64 bit ist, funktioniert es (nur) mit 64 bit Prozessen. |
AW: Prozess verstecken / Win7x64
Was ich meine ist: Unser Programm ist 32bit. Es läuft aber auf einem 64bit Windows. Kann ich das Programm dann hiermit verstecken?
|
AW: Prozess verstecken / Win7x64
Kurz: Jein!
Ein 32 Bit Prozess kann keine 64 Bit Dynamic-Link-Libraries (Dlls) laden, das muss aber geschehen, damit die Anwendung die Hooks installieren kann! Du könntest das ganze "überbrücken" - du kannst einen Hook-installer (ne 64 Bit Exe) programmieren, der das System hookt. Das ginge - dafür müsstest du nicht einmal großartig viel an eurem Projekt/Produkt ändern. [Euer Produkt |32 Bit] - ruft auf - [HookInstaller mit best. Parametern|64 Bit] >setzt globalen hook Ach noch etwas, was du unbedingt berücksichtgen solltest. Dieser Hook modifiziert nur die zur Ausgabe ermittelten Prozesse! Man kann immernoch locker per Cmd Befehl ala~ cmd /C taskkill /F /IM IrgendEinProzess.exe Prozesse killen. Ich hab halt rausgefunden, wie man den Prozess ausm TaskMgr wegbekommt, du müsstest, sofern du es nicht killbar machen willst, rausfinden, welche APIs da systemintern verwendet werden und diese dann hooken und modifizieren! |
AW: Prozess verstecken / Win7x64
Okay, dann brauche ich nur noch einen 64bit Compiler :D (Könnte das eine .NET Anwendung machen?) Wenn ich zu viel frage, hau mir ruhig auf die Finger.
|
AW: Prozess verstecken / Win7x64
Ich habe absolut keine Erfahrung mit .NET. Sry :(
Google sagt mir, dass es Unterschiede zwischen normalen & .Net Dlls gibt. Vlt. kennt sich da jem. besser aus? |
AW: Prozess verstecken / Win7x64
Zitat:
![]() In Codetyphon ist unteranderem Lazarus 1.1 enthalten. Und das besotzt auch einen 64Bit Compiler. Einfach runterladen, entpacken und dann das Setup starten. Hilfe dazu gibt ess auch auf der Seite. |
AW: Prozess verstecken / Win7x64
Zitat:
![]() Gruß, Sven |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz