AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
Thema durchsuchen
Ansicht
Themen-Optionen

SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?

Ein Thema von Daniel · begonnen am 7. Okt 2010 · letzter Beitrag vom 9. Okt 2010
Antwort Antwort
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#1

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?

  Alt 7. Okt 2010, 22:03
Es ging schon immer ohne DLL mit _LL nur gabs das nicht unter Win98 wenn ich mich net irre.
http://forum.madshi.net/viewtopic.ph...d1a7145923104f
von 2007 für Keyboard_LL

Geändert von brechi ( 7. Okt 2010 um 22:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?

  Alt 7. Okt 2010, 22:32
Und wie ist dann das Windows SDK zu verstehen? Die entsprechende Stelle wurde ja schon zitiert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?

  Alt 8. Okt 2010, 06:02
Also ich kann bestätigen, dass ein globaler Tastaturhook mit SetWindowsHookEx() auch ohne DLL funktioniert. Hatte vor ewigen Zeiten schonmal ein Beispiel für einen einfachen Keylogger gesehen, der diese Methode verwendete.

Das MSDN Zitat bezieht sich nicht zufällig auf API Hooks oder dergleichen? Das würde die Sache ja erklären.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.869 Beiträge
 
Delphi 12 Athens
 
#4

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?

  Alt 8. Okt 2010, 06:12
Es gibt verschiedene Arten von Hooks und dementsprechend verschiedene Stellen, an denen diese installiert werden. Deshalb funktionieren manche auch außerhalb einer DLL. Das sind genau die, deren aufzurufender Code aufgrund ihrer Funktionsweise einfach gesagt nicht von überall aus dem System erreichbar sein muss.

Dazu gehören die Hooks für das Abfangen von Tastatureingaben und der Maus, da diese über den Desktop Window Manager abgehandelt werden können. Andere Hooks müssen aber in den Speicherbereich anderer Prozesse eingeblendet werden und das geht nur mit Code, der in einer DLL liegt.

Deshalb gilt diese Restriktion nicht für alle Hooks. Es kann aber durchaus sein, dass sich dies in späteren Windowsversionen ändert, wenn das Handling geändert wird.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#5

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?

  Alt 8. Okt 2010, 08:43
hook.pas D3+ bzw. hier

Welche Hooks gehen so denn nicht?
Ich dachte bisher immer der Trick liegt an der ASM-Prozedur:
Delphi-Quellcode:
function StdHookProc(Code, WParam: WPARAM; LParam: LPARAM): LResult; stdcall; assembler;
asm
  XOR EAX,EAX
  PUSH EAX
  PUSH LParam
  PUSH WParam
  PUSH Code
  MOV EDX,ESP
  MOV EAX,[ECX].Longint[4]
  CALL [ECX].Pointer
  ADD ESP,12
  POP EAX
end;
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?

  Alt 8. Okt 2010, 08:48
Welche Hooks gehen so denn nicht?
Diese drei Hooks müsen sich nicht in einer dll befinden, all anderen Hooks schon (IIRC)
  • WH_MOUSE_LL
  • WH_KEYBOARD_LL
  • WH_JOURNAL
RECORD
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?

  Alt 8. Okt 2010, 09:02
Das heißt, die Dokumentation ist an diesem Punkt unvollständig bzw. ungenau?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.869 Beiträge
 
Delphi 12 Athens
 
#8

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?

  Alt 8. Okt 2010, 09:05
Diese drei Hooks müsen sich nicht in einer dll befinden, all anderen Hooks schon (IIRC)
Richtig, eben genau die Hooks, die für Maus- und Tastatureingaben bzw. deren Aufzeichnung zuständig sind, gehen auf diese Weise.

Das heißt, die Dokumentation ist an diesem Punkt unvollständig bzw. ungenau?
Ich vermute MS wollte hier dann keine Ausnahmen für diese Fälle in die Doku schreiben, da es mit DLLs eben immer funktioniert. Und wie gesagt, das mag sich für diese Hooks ja auch einmal ändern.
Sebastian Jänicke
AppCentral
  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 10:09 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 by Thomas Breitkreuz