Globaler KeyboardHook zur kompletten Tastaturabfrage
- orderinchaos
- Beiträge: 49
- Registriert: 20.06.2008 16:19
Globaler KeyboardHook zur kompletten Tastaturabfrage
Hi Zusammen,
War schon lange nicht mehr hier auf dem Board, aber ich benötige wieder einemal eure Hilfe.
Es geht um einen globalen KeyboardHook zum kompletten Tastataturabfrage. Das Ziel ist ein Keylogger und das möchte ich auch gleich sagen, bevor irgendwelche Fragen auftauchen.
Schon seit langer Zeit möchte ich es endlich schaffen einen selbst zu programmieren oder wenigstens zu verstehen wie er funktioniert. Meine kläglichen Versuche mit getasynckeystate_ sind gescheitert oder erfüllen den Zweck nur bedingt...
Deshalb möchte ich mich nun mit einem Hook versuchen, jedoch habe ich, trotz Studieren von den KeyboardHook- Codes hier auf dem Board, keine Ahnung wie ein solcher Funktioniert.
Ich versichere hiermit, dass mein Keylogger Niemandem einen Schaden anrichten wird, sondern lediglich meinem Wissenshunger dienen!!
Ist es möglich, dass mir hier jemand ein Code- Beispiel zur Verfügung stellt, welches einen KeyBoardHook für die komplette Tastaturabfrage bereitstellt?
Versteht mich nicht falsch: Ich möchte eigentlich nicht, dass mir hier jemand die Arbeit macht, aber selbst schaff ich es einfach nicht und mit einem Code- Beispiel und eventuell entsprechenden Kommentaren, sind die Chancen gut, dass auch ich verstehe wie das abgeht.
Natürlich nur wenn das nicht gegen die Board- Regeln verstösst! Es wäre mir aber echt eine unheimlich grosse Hilfe!
Schon Mal besten Dank für alle Antworten!
- OrderInChaos -
War schon lange nicht mehr hier auf dem Board, aber ich benötige wieder einemal eure Hilfe.
Es geht um einen globalen KeyboardHook zum kompletten Tastataturabfrage. Das Ziel ist ein Keylogger und das möchte ich auch gleich sagen, bevor irgendwelche Fragen auftauchen.
Schon seit langer Zeit möchte ich es endlich schaffen einen selbst zu programmieren oder wenigstens zu verstehen wie er funktioniert. Meine kläglichen Versuche mit getasynckeystate_ sind gescheitert oder erfüllen den Zweck nur bedingt...
Deshalb möchte ich mich nun mit einem Hook versuchen, jedoch habe ich, trotz Studieren von den KeyboardHook- Codes hier auf dem Board, keine Ahnung wie ein solcher Funktioniert.
Ich versichere hiermit, dass mein Keylogger Niemandem einen Schaden anrichten wird, sondern lediglich meinem Wissenshunger dienen!!
Ist es möglich, dass mir hier jemand ein Code- Beispiel zur Verfügung stellt, welches einen KeyBoardHook für die komplette Tastaturabfrage bereitstellt?
Versteht mich nicht falsch: Ich möchte eigentlich nicht, dass mir hier jemand die Arbeit macht, aber selbst schaff ich es einfach nicht und mit einem Code- Beispiel und eventuell entsprechenden Kommentaren, sind die Chancen gut, dass auch ich verstehe wie das abgeht.
Natürlich nur wenn das nicht gegen die Board- Regeln verstösst! Es wäre mir aber echt eine unheimlich grosse Hilfe!
Schon Mal besten Dank für alle Antworten!
- OrderInChaos -
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Re: Globaler KeyboardHook zur kompletten Tastaturabfrage
orderinchaos hat geschrieben:Ich versichere hiermit, dass mein Keylogger Niemandem einen Schaden anrichten wird, sondern lediglich meinem Wissenshunger dienen!!

orderinchaos hat geschrieben:Ist es möglich, dass mir hier jemand ein Code- Beispiel zur Verfügung stellt, welches einen KeyBoardHook für die komplette Tastaturabfrage bereitstellt?

Was dich nicht abhält es trotzdem zu versuchen.orderinchaos hat geschrieben:Versteht mich nicht falsch: Ich möchte eigentlich nicht, dass mir hier jemand die Arbeit macht, ...

Dafür nicht!orderinchaos hat geschrieben:Schon Mal besten Dank für alle Antworten!

Windows 10 Pro, 64-Bit / Outtakes | Derek
Re: Globaler KeyboardHook zur kompletten Tastaturabfrage
das Problem wird wohl sein, dass dieser Code nicht viel anders sein wirdorderinchaos hat geschrieben:Ist es möglich, dass mir hier jemand ein Code- Beispiel zur Verfügung stellt, welches einen KeyBoardHook für die komplette Tastaturabfrage bereitstellt?
als die, die hier und im englischen Forum zahlreich vorhanden sind.
Und diese Codes verstehst Du ja lt. Deinen Ausführungen nicht.
Wo können wir Dir denn konkret helfen?
Grüße ... Kiffi
a²+b²=mc²
- orderinchaos
- Beiträge: 49
- Registriert: 20.06.2008 16:19
okay, konkret: ich verstehe nicht wie ich diesen code
so umbauen kann, dass er mir das zeichen (ascii oder änlich) zurückliefert... es soll ja genau das zeichen ausgegeben werden, welches auch ein textprogramm empfangen würde, wenn die entsprechende tastenkombination (oder eben nur taste) gedrückt wurde. und da komm ich nicht drauf...
kann mir da einer weiterhelfen?
danke schon mal
Code: Alles auswählen
Procedure.l myKeyboardHook(nCode, wParam, *p.KBDLLHOOKSTRUCT)
If nCode = #HC_ACTION
If wParam = #WM_KEYDOWN Or wParam = #WM_SYSKEYDOWN Or wParam = #WM_KEYUP Or wParam = #WM_SYSKEYUP
#LLKHF_ALTDOWN = $20
If *p\vkCode = #VK_LWIN Or *p\vkCode = #VK_RWIN
ProcedureReturn 1
EndIf
EndIf
EndIf
ProcedureReturn CallNextHookEx_(0, nCode, wParam, *p)
EndProcedure
kann mir da einer weiterhelfen?
danke schon mal

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Tasten sind keine Buchstaben.
wenn du die Taste #VK_F drückst, kommt ein "F" oder ein "f" als Text an,
je nachdem ob gleichzeitig #VK_SHIFT gedrückt ist oder nicht.
wenn du #VK_F1 drückst, kommt gar kein Zeichen im Text an.
du müßtest dir also eine Routine basteln, die Tastatureingaben in Text übersetzt.
... und wozu soll das gut sein?
wenn du die Taste #VK_F drückst, kommt ein "F" oder ein "f" als Text an,
je nachdem ob gleichzeitig #VK_SHIFT gedrückt ist oder nicht.
wenn du #VK_F1 drückst, kommt gar kein Zeichen im Text an.
du müßtest dir also eine Routine basteln, die Tastatureingaben in Text übersetzt.
... und wozu soll das gut sein?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- orderinchaos
- Beiträge: 49
- Registriert: 20.06.2008 16:19
richtig, aber ich verstehe nicht wie ich überhaupt an die tastatureingaben komme.... ich habs mal per getasynckeystate_ versucht, aber auf vielen boards werden keyboardhooks empfohlen... und da hakt es bei mir...
wozu das gut sein soll? ich denk mal, dass das gebraucht wird um einen keylogger zu realisieren, oder seh ich das falsch?
wozu das gut sein soll? ich denk mal, dass das gebraucht wird um einen keylogger zu realisieren, oder seh ich das falsch?

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ein keylogger ist kein charlogger...
> wie ich überhaupt an die tastatureingaben komme.... ich habs mal per getasynckeystate_ versucht
öh.. ja und? das ist es doch.
> aber auf vielen boards werden keyboardhooks empfohlen
und wo soll der Unterschied sein?
wie Kiffi sagte
> das Problem wird wohl sein, dass dieser Code nicht viel anders sein wird
> als die, die hier und im englischen Forum zahlreich vorhanden sind.
> wie ich überhaupt an die tastatureingaben komme.... ich habs mal per getasynckeystate_ versucht
öh.. ja und? das ist es doch.
> aber auf vielen boards werden keyboardhooks empfohlen
und wo soll der Unterschied sein?
wie Kiffi sagte
> das Problem wird wohl sein, dass dieser Code nicht viel anders sein wird
> als die, die hier und im englischen Forum zahlreich vorhanden sind.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- orderinchaos
- Beiträge: 49
- Registriert: 20.06.2008 16:19
- orderinchaos
- Beiträge: 49
- Registriert: 20.06.2008 16:19
nun gut, kann mir einer sagen weshalb das nicht geht :
thx
Code: Alles auswählen
Procedure.l myKeyboardHook(nCode, wParam, *p.KBDLLHOOKSTRUCT)
If nCode = #HC_ACTION
If wParam = #WM_KEYDOWN Or wParam = #WM_SYSKEYDOWN Or wParam = #WM_KEYUP Or wParam = #WM_SYSKEYUP
#LLKHF_ALTDOWN = $20
If *p\vkCode = #VK_A
Debug "A"
ProcedureReturn 1
ElseIf *p\vkCode = #VK_B
Debug "B"
ProcedureReturn 1
ElseIf *p\vkCode = #VK_C
Debug "C"
ProcedureReturn 1
ElseIf *p\vkCode = #VK_ESCAPE
Exit = 1
ProcedureReturn 1
EndIf
EndIf
EndIf
ProcedureReturn CallNextHookEx_(0, nCode, wParam, *p)
EndProcedure
was heißt 'nicht geht'? Gibt es einen Programmfehler oder werden dieorderinchaos hat geschrieben:nun gut, kann mir einer sagen weshalb das nicht geht :
Ausgaben nicht via Debug geschrieben?
Ich würde testweise mal ein
Code: Alles auswählen
Debug *p\vkCode
Code: Alles auswählen
If wParam = #WM_KEYDOWN ...
Grüße ... Kiffi
a²+b²=mc²