![]() |
Fernzugriff auf eigenes Programm unterbinden
Hallo,
nach langer Abstinenz habe ich mal wieder eine Frage. Und zwar dreht es sich dabei um das Problem der Fernzugriffs, welchen ich unterbinden bzw. verhindern möchte. Bestes Beispiel dafür sind z.B. die aktuellen Versionen von Kaspersky Anti-Virus (v7 & v8). Diese erkennen scheinbar fast alle Remote Control-Programme und man kann mit diesen einfach nicht auf die GUI des Programms zugreifen (z.B. mit UltraVNC). Das einzige was noch klappt ist das Öffnen des Programms durch einen Doppelklick auf das Tray-Icon. Die Fähigkeit wird als "Selbstschutz" in den Optionen benannt und lässt sich nur durch komplettes Deaktivieren dieser Option verhindern, oder in dem man den VNC-Server in die Ausnahmeliste des Scanners steckt. Hat jemand irgendeine Idee, wie das bewerkstelligt worden könnte? Ich habs probiert mit nem Maus-Hook, aber da kann ich nicht zwischen echter Eingabe und Ferneingabe unterscheiden. Im Netz findet sich auch absolut nichts, außer Hinweise im Kaspersky-Forum, wie man den Zugriff wieder erlaubt. Es geht dabei nicht um die direkte Remotedesktopverbindung, da man sich dazu ja richtig am PC einloggt, und das selbst Kaspersky nicht mitbekommt. Aber Schutz vor den gebräuchlichsten Programmen wie RemoteAdmin oder VNC eben würde reichen. |
Re: Fernzugriff auf eigenes Programm unterbinden
Hast du mal Teamviewer.de ausprobiert? Geht das?
|
Re: Fernzugriff auf eigenes Programm unterbinden
Zitat:
Edit: PCVisit 4 funktioniert ebenfalls nicht. |
Re: Fernzugriff auf eigenes Programm unterbinden
Dann vermute ich mal, dass es ein Tastaturhook oder Treiber ist. Damit kann man wirklich unterscheiden, ob die Eingabe durch Hardware oder Software kommt.
|
Re: Fernzugriff auf eigenes Programm unterbinden
Du könntest mal einen Screenshot machen und gucken ob die GUI da sichtbar ist, wenn ja funktioniert
![]() |
Re: Fernzugriff auf eigenes Programm unterbinden
Hallo,
Sorry für die späte Antwort, ich war aber letzte Woche in der Berufsschule und hab Donnerstag Prüfung... Zum Theme LAN.FS - das bring ich nicht richtig zum Laufen in der VM, da es anscheinend nicht mit der IP-Struktur klar kommt. Dateitransfer und Chat klappt, aber wenn ich auf Administration klicke, dann passiert ewig nix und wenn dann doch das Fenster auf geht bleibt alles leer (Remote Desktop, TaskManager, etc.). Ob Screenshots gehen kann ich nicht testen, da keins der Programme den Tastendruck richtig durchleitet, sondern auf dem Host den Screenshot erstellt statt auf dem Remote-PC. Aber das dürfte eh nix an der Situation ändern, da ich ja Kaspersky AntiVirus sehen kann, nur eben nix anklicken. Werde mich dann wohl mal über Treiber-Hooks belesen, was da möglich ist. |
Re: Fernzugriff auf eigenes Programm unterbinden
So, nachdem ich nochmal einen halben Tag lang intensiv gesucht habe, konnte ich endliche eine Lösung finden!
Es gibt noch zwei Hook-Arten, die ich bisher übersehen oder schlicht nicht gefunden habe: WH_KEYBOARD_LL sowie WH_MOUSE_LL Diese beiden Low Level Hooks bieten in ihrem Flags einen Parameter an, welcher verrät, ob der Input "real" (Treiberebene) oder "Injected" (API-Ebene) ist. Einzige Möglichkeit diesen Hook auszutricksen ist der Einsatz eines "Fake"-HID-Treibers, welcher den Input generiert oder man benutzt den Microsoft Remote Desktop. Den muss man sepperat über GetSystemMetrics abfragen. Hier die entsprechenden MSDN-Seiten:
![]()
Delphi-Quellcode:
Vielen Dank an alle Helfer.
{ Structure used by WH_KEYBOARD_LL }
KBDLLHOOKSTRUCT = record vkCode: DWORD; scanCode: DWORD; flags: DWORD; time: DWORD; dwExtraInfo: DWORD; end; PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT; { Structure used by WH_MOUSE_LL } POINT = record x,y: longint; end; MSLLHOOKSTRUCT = record pt: POINT; mouseData: DWORD; flags: DWORD; time: DWORD; dwExtraInfo: DWORD; end; PMSLLHOOKSTRUCT = ^MSLLHOOKSTRUCT; const LLMHF_INJECTED = 1; {...} procedure TfrmLLHookMain.KeyboardHookPreExecute(Hook: THook; var Hookmsg: THookMsg); var pKeyHookStruct: PKBDLLHOOKSTRUCT; KeyHookStruct: KBDLLHOOKSTRUCT; begin pKeyHookStruct := PKBDLLHOOKSTRUCT(Hookmsg.LParam); KeyHookStruct := pKeyHookStruct^; if KeyHookStruct.flags = LLKHF_INJECTED then begin lblKeyInjected.Caption := 'Keyboard: Is Injected Input'; lblKeyInjected.Font.Color := clRed; end else begin lblKeyInjected.Caption := 'Keyboard: Is Real Input'; lblKeyInjected.Font.Color := clGreen; end; end; procedure TfrmLLHookMain.MouseHookPreExecute(Hook: THook; var Hookmsg: THookMsg); var pMouseHookStruct: PMSLLHOOKSTRUCT; MouseHookStruct: MSLLHOOKSTRUCT; begin pMouseHookStruct := PMSLLHOOKSTRUCT(Hookmsg.LParam); MouseHookStruct := pMouseHookStruct^; if MouseHookStruct.flags = LLMHF_INJECTED then begin lblMouseInjected.Caption := 'Mouse: Is Injected Input'; lblMouseInjected.Font.Color := clRed; end else begin lblMouseInjected.Caption := 'Mouse: Is Real Input'; lblMouseInjected.Font.Color := clGreen; end; end; Die DP hat sich mal wieder bewährt ^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 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