![]() |
Hook soll virtuelle Tastencodes zurückliefern
Also, ich habe die Hook-dll von Aya, die bei LuckieSpy dabei war.
Nun siehtihr code aber so aus:
Delphi-Quellcode:
Nun dachte ich, man könnte die ganzen Abfragen einfach wegmachen und das dann so schreiben:
function KeyboardProc(nCode: Integer; wParam: LongWord; lParam: LongWord): LongWord; stdcall;
var LastKey: Char; KeyState: TKeyboardState; begin Result:=CallNextHookEx(hHook,nCode,wParam,lParam); if nCode<0 then Exit else begin KeyboardLayout:=GetKeyboardLayout(0); GetKeyboardState(KeyState); if ToAsciiEx(wParam,MapVirtualKeyEx(wParam,2,KeyboardLayout),KeyState,@LastKey,0,KeyboardLayout)>0 then Key:=Ord(LastKey) // Hier wird ein ASCII-Wert zurückgegeben else Key:=wParam; // Und hier ein virtueller Tastencode if (lParam and $80000000)=0 then if not (wParam in [16,17,18]) or GetShiftKeys then PostMessage(hwndBuffer^,WM_KEYBOARD_HOOK,Key,GetActiveWindow); end; end;
Delphi-Quellcode:
Nur ist jetzt folgendes Problem: sobald ich die dll kompiliere, und verwende gibt's immer beim Loslassen einer Taste einen Runtime-Error XXX
Result:=CallNextHookEx(hHook,nCode,wParam,lParam);
if nCode<0 then Exit else begin if (lParam and $80000000)=0 then if not (wParam in [16,17,18]) or GetShiftKeys then PostMessage(hwndBuffer^,WM_KEYBOARD_HOOK,wParam,GetActiveWindow); end; Sogar, wenn ich einfach nur den Source ohne Änderungen kompiliere. Außerdem ist die erzeugte dll größer als die, die beim LuckieSpy dabei war, selbst wenn ich letztere mit upx entpacke ... Ich brauche die VK', weil ich nachher die Tastenfolge wiedergeben möchte, und Keybd_Event einen VK will ... |
Re: Hook soll virtuelle Tastencodes zurückliefern
Zitat:
Zitat:
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "alcaeus" von "Sonstige Fragen zu Delphi" nach "Windows API / MS.NET Framework API" verschoben.
|
Re: Hook soll virtuelle Tastencodes zurückliefern
Zitat:
|
Re: Hook soll virtuelle Tastencodes zurückliefern
@Esolit: In diesem Fall extrahierst du ja die DLL aus der Exe bevor du diese mit LoadLibrary lädst und durch das extrahieren ist diese ja dann nicht mehr in der UPX Anwendung.
|
Re: Hook soll virtuelle Tastencodes zurückliefern
Zitat:
|
Re: Hook soll virtuelle Tastencodes zurückliefern
Zitat:
Natürlich wird die DLL damit implizit auch gepackt. Allerdings ist sie ja vorher ungepackt als Ressource eingefügt worden. Logischerweise wird sie also bspw. zur Laufzeit der EXE auch wieder ungepackt extrahiert. Somit besteht kein Risiko. Hingegen bei EXE-Packern mit denen man DLLs richtig explizit bearbeitet, zieht der Mechanismus von Windows nicht mehr, welcher es erlaubt die gleiche DLL im Speicher zwischen mehreren Prozessen zu teilen (im Sinne von "to share", nicht "to divide"). |
Re: Hook soll virtuelle Tastencodes zurückliefern
Zitat:
Projekt ? Ja, ok, such ich gleich mal. Bis dahin: Irgendwas muss doch an dem DLL-Sourcecode falsch sein, oder ? Ich meine, zwischen D7 (ich) und D6 (Aya) dürften doch nicht derartige Unterschiede liegen... :? (imho entspricht der Quellcode nicht der DLL ...) Ich brauche es zwar inzwischen nicht mehr so dringend, aber nützlich ist's allemal :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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