AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nachrichten vollkommen abfangen

Ein Thema von OrallY · begonnen am 11. Mär 2005 · letzter Beitrag vom 30. Mär 2005
Antwort Antwort
Seite 3 von 3     123   
Mephistopheles
(Gast)

n/a Beiträge
 
#21

Re: Nachrichten vollkommen abfangen

  Alt 28. Mär 2005, 13:44
Subclassing ist nichts anderes, als daß du für (jeweils) ein bestimmtes Fenster die Fensterfunktion durch eine eigene austauscht und so wahlweise vor der Bearbeitung durch die alte Fensterfunktion oder danach deine Bearbeitung vornimmst. Alternativ kannst du natürlich auch einfach die orginale Fensterfunktion nicht mehr aufrufen, wodurch die Mausnachrichten z.B. abgefangen werden können.

Das Gegenteil davon ist Superclassing, wo die Fensterfunktion einer kompletten Fensterklasse ausgetauscht wird.

Für DLL-Injection gibt es dutzende Methoden. Die leichteste ist auf NT-basierten Systemen in einem ganz bestimmten Schlüssel den Namen deiner DLL abzulegen. Damit wird deine DLL in jeden gestarteten Prozess geladen.
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#22

Re: Nachrichten vollkommen abfangen

  Alt 28. Mär 2005, 17:16
Nach einigem rumstöbern im Inet und im PSDK bin ich wieder auf den GetMsg-Hook gestoßen. Und was sehen meine entzückten Äuglein in er Beschreibung? "...or modify the message...". Bingo!

Tritt irgendwo eine WM_RBUTTONDOWN-Nachricht auf, setzt der Hook sie auf WM_NULL. Funktioniert fast alles wunderbar, bis auf eine ziemlich nervende Tatsache:

Drückt man irgendwo die rechte Maustaste wird das darunterliegende Fenster trotz Hook aktiviert. Die Nachrichten werden erfolgreich geblockt. Jedoch erhält das Fenster, wenn es nicht aktiv ist und mit rechts ein Klick darauf erfolgt die Nachricht (dezimal) 45056 und beim Verlust des Fokuses 45057.
Diese Nachrichten scheinen nicht durch den Hook zu gehen und können daher auch nicht blockiert werden. Ich denke aber, dass sie irgendwas damit zu tun haben.

Interessanterweise zeigt ein Fenster keine Reaktion, wenn ich eine solche Nachricht schicke.

Was sind das für Nachrichten? $B000=45056 ist niergends aufgelistet .

greez

Edit: Habe gerade eine Fund gemacht: http://groups.google.de/groups?hl=de...enetserver.com

45056 scheint eine VCL-Interne Nachricht zu sein (CM_ACTIVATE). Dann hat das wohl nichts mit dem Problem zu tun .
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#23

Re: Nachrichten vollkommen abfangen

  Alt 28. Mär 2005, 19:39
Es könnte einerseits schon mit dem Problem zu tun haben, andererseits wäre das aber nur auf VCL-Programme anwendbar. Bei anderen dürfte das Problem ja dann nicht auftauchen, oder?
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#24

Re: Nachrichten vollkommen abfangen

  Alt 29. Mär 2005, 22:32
Zitat von Mephistopheles:
Es könnte einerseits schon mit dem Problem zu tun haben, andererseits wäre das aber nur auf VCL-Programme anwendbar. Bei anderen dürfte das Problem ja dann nicht auftauchen, oder?
Doch, dieses Problem tritt leider bei allen Anwendungen auf. Dem Anschein nach, ist es einfach nur eine VCL-interne Control-Message die irgendwas in den unendlichen Weiten der VCL bewirkt.

Vermutlich wertet das OS die Mausnachrichten noch vor meinem GetMsg-Hook aus und setzt dann gegebenenfalls Fenster aktiv, bevor dies mein Hook hätte verhindern können . Ein LowLevel-MH scheint vor dieser Auswertung zu sitzen . Dort jedoch habe ich keinerlei Möglichkeiten die Nachrichten zu manipulieren, außer die Hook-Chain zu unterbrechen.

Momentan bin ich mit meinem Latein ziemlich am Ende. Es muss jedoch irgendwie funktionieren, da ich ein Programm kenne, das genau dies macht. Die Entwickler scheinen allerdings nicht besonders Kommunikativ zu sein, wenn es um ihren Source geht...

Bin für alle Idee nach wie vor offen .

greez
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#25

Re: Nachrichten vollkommen abfangen

  Alt 30. Mär 2005, 07:43
Zitat von OrallY:
Momentan bin ich mit meinem Latein ziemlich am Ende. Es muss jedoch irgendwie funktionieren, da ich ein Programm kenne, das genau dies macht. Die Entwickler scheinen allerdings nicht besonders Kommunikativ zu sein, wenn es um ihren Source geht...

Bin für alle Idee nach wie vor offen .
Ich habe aktuell keine Ideen mehr.
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#26

Re: Nachrichten vollkommen abfangen

  Alt 30. Mär 2005, 21:53
Der o.g. Entwickler hat sich nun doch noch gemeldet.
Er hat das Problem ebenfalls mit Unterbrechen der HookChain gelöst (Ist bei näherer Betrachtung eigentlich das Naheliegendste, da dies ja eigentlich genau die Absicht ist, die das Programm verfolgt: Das Durchstellen von Mausnachrichten verhindern.). Allerdings habe ich festgestellt, dass ein LL-Mousehook doch nicht notwendig ist, um die Hook-Chain zu unterbrechen! Ein einfacher Mousehook reicht durchaus . Und dank dem Tipp von Mephistopheles (SetCapture) ist nun auch das Highlighting kein Problem mehr.

Vielen Dank an alle die mir geholfen haben!
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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:25 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