AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi WH_MOUSE_LL, WH_KEYBOARD_LL austricksen!
Thema durchsuchen
Ansicht
Themen-Optionen

WH_MOUSE_LL, WH_KEYBOARD_LL austricksen!

Ein Thema von Hedge · begonnen am 24. Feb 2009 · letzter Beitrag vom 25. Feb 2009
Antwort Antwort
Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#1

WH_MOUSE_LL, WH_KEYBOARD_LL austricksen!

  Alt 24. Feb 2009, 15:19
Hallo ist es möglich ohne einen Treiber dafür zu programmieren bei den folgendenen Hooks einen Mausklick bzw. Tastaturanschlag zu simulieren: WH_MOUSE_LL, WH_KEYBOARD_LL (oder einen Journalhook)?

Natürlich könnte man auch die Callback-Funktion auslösen die im Falle eines Mausklicks oder Tastenanschlags ausgelöst wird. Wie kann man das verhindern (erschweren?) oder ermitteln wenn das geschehen ist?
  Mit Zitat antworten Zitat
Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#2

Re: WH_MOUSE_LL, WH_KEYBOARD_LL austricksen!

  Alt 25. Feb 2009, 08:45
ok ein Kumpel meinte, dass man das kaum verhindern kann, dass Jemand die Funktion sich sucht und sie selbst auslöst, aber kann man ermitteln von wo ein Funktionsaufruf getätigt wurde?

Wenn er aus einem fremden Prozess stammt, dann müsste man das doch rauskriegen können oder?

Selbst dann könnte ja derjenige die Adresse mit dieser Überprüfung einfach überspringen, könnte man dann dagegen noch etwas tun?

Ich weiß dass es keine Sicherheit gibt, aber ich will den bösen Buben das Handwerk nur erschweren.
Das Programm soll dann auch nicht abstürzen, derjenige wird erst Tage oder Wochen später merken, dass er ertappt wurde.
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#3

Re: WH_MOUSE_LL, WH_KEYBOARD_LL austricksen!

  Alt 25. Feb 2009, 09:03
von einem Fremdprozeß aus wird man eine interne Funktion wohl nicht direkt anspringen können, dafür wird er schon deinen Prozeß verändern müssen (evtl. Code einschleusen)

Wenn du weißt von wo aus deine Funktion aufgerufen wird, könntest du den Stack prüfen.
(z.B. wohin zurückgesprungen wird, nachdem deine Funktion abgerbeitet wurde)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#4

Re: WH_MOUSE_LL, WH_KEYBOARD_LL austricksen!

  Alt 25. Feb 2009, 10:21
Lässt sich Code einschleusen mit Exe-Cryptern wie Thermida verhindern?
Ich weiß ja mittlerweile, dass es relativ einfach geht Thermida zu umgehen und es da oft schon vorgefertigte Plugins für Olly und co. gibt, also wie kann ich das einschleusen erschweren?

Ja, ich weiß von wo die Funktion aufgerufen wird (vom Hook-Objekt), aber wie prüfe ich wohin zurückgesprunge wird?
Habe gerade danach gesucht, aber nichts passendes gefunden, 1-2 Stichwörter wären also sehr gut.

Und letztendlich noch:
Kann man irgendwas auf User-Ebene machen um Mausklicks etc. von einem Programm zu verursachen, die dann von einem systemweiten Hook erkannt werden? Bisher sind meine Erfahrungen so, dass keine API-Funktion dazu in der Lage ist.
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#5

Re: WH_MOUSE_LL, WH_KEYBOARD_LL austricksen!

  Alt 25. Feb 2009, 10:33
man schleüßt ja meinst den Code in das laufende Programm ein
und Exe-Crypter verschlüsseln nur die Exe, aber das laufende Programm muß ja entschlüsselt sein, sonst läuft es nicht.
Und selbst wenn, bestellt man sich bei Windows etwas Speicher, copiert seinen Code dort rein und läßt ihn ausführen.

Du müßtest also irgendwie den Remote-Zugriff anderer Programme verhindern.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#6

Re: WH_MOUSE_LL, WH_KEYBOARD_LL austricksen!

  Alt 25. Feb 2009, 10:40
also verhindern ist nicht so gut, weil die Leute dann so lange rumspielen wie sie es doch hinkriegen.
Erkenne wäre hilfreicher, weil mein Programm ab und zu ein Script auf nem Server aufrufen muss. Die erkannten Leute würden dann geflagged sein und ich könnt mir überlegen was ich mit denen anstelle

Aber was hilft einem sowas zu erkennen...
Alle Methoden die ich kenne wie als einfaches Beispiel IsDebuggerPresent von Luckie (hier) können mit mehr oder weniger Geschick umgegangen werden.

Wenn ein User zum 3. Mal gekicked wurde, dann wird er schon auf die Idee kommen, dass ich da was gemacht habe und suchen.

Hast du also eine gute Idee das relativ schwer zu machen?
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#7

Re: WH_MOUSE_LL, WH_KEYBOARD_LL austricksen!

  Alt 25. Feb 2009, 11:15
Sagen wir es mal so, ich hab aufgehört was dagegen zu machen, da es für alles (irgendwann) Wege gibt dieses zum umgehn.

"Luckie's", nja eigentlich mehr Olli's/Windows's IsDebuggerPresent kann man leicht umbauen und in verschiedenen Varianten mehrfach im Code verstecken, aber mit "etwas" arbeit ließe sich dieses dennoch finden und umgehn.

in einem Programm hatte ich das mal (so zum Üben) an vielen Stellen in Code versteckt und, damit man diese Stellen nicht gleich findet, den Wert erstmal irgendwo abgelegt (auch an verschiedenen Stellen) oder irgendwo mit eingerechnet, und dieses dann erst später ausgewertet und entsprechend behandelt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#8

Re: WH_MOUSE_LL, WH_KEYBOARD_LL austricksen!

  Alt 25. Feb 2009, 12:03
OK, das wird dann auch der beste Weg sein die Sache zu behandeln.

Ich werd dann einige zusätzliche Daten zum Userverhalten (nichts dramatisches also keine Windows-Keys oder Liste der installierten Programme) übertragen müssen (natürlich werden ich die User ungefähr wissen lassen um was es sich handelt, da ich nicht mit gezinkten Karten spiele) um vernünftig inhaltlich zu checken ob das was der User macht mit rechten Dingen zugeht.

Was mich aber noch interessieren würde ist wie ich nun den Stack überprüfen kann?
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz