WinAPI Wrapper - TextOut?
-
Nabend,
ich hab mir überlegt, wie ich am Besten einen Win-API Wrapper funktion schreibe - Hatte mir mal vor langer Zeit einen OpenGL Wrapper angeschaut und denke mir dass es evt. genau das gleiche sein muss.
Hat jemand damit schon erfahrungen sammel können?
viele Grüße aus Köln
-
Wo liegt den dein Problem? Hast du ein Problem mit TextOut?

-
Grundlegend möchte ich einen text abfangen, der an einer bestimmten Stelle über TextOut ausgegeben wird!
-
Wenn Du den Source dazu hast, ist es doch kein Problem, oder?
Falls nicht, schau Dir mal "detours" an...
http://research.microsoft.com/sn/detours/
-
Hm, könntest du das evt. etwas näher erläutern?
-
FrEak33 schrieb:
Hm, könntest du das evt. etwas näher erläutern?
Was meinst Du? Den Source-Code ändern?
Replace "TextOut" durch "MyTextOut".Mit detours kannst Du API Funktionen "Hooken" und kannst somit jeden Aufruf der "TextOut" Funktion mitbekommen...
Oder was willst Du noch genau wissen?
-
Jep das hat mir gereicht. Besten Dank!
Wäre es nicht auch möglich direkt GetProcAddress(), womit TexOut geladen wird, zu hooken?
-
FrEak33 schrieb:
Wäre es nicht auch möglich direkt GetProcAddress(), womit TexOut geladen wird, zu hooken?
Es gibt bestimmte Fälle, wo es auch mittels IAT geht...
-
Hm .. zu welchem Ansatzpunkt würdes du raten?
-
FrEak33 schrieb:
Hm .. zu welchem Ansatzpunkt würdes du raten?
Source-Code ändern.
-
Hab jetzt mal den ein oder anderen Text darüber gelesen, nur sind ein paar Abläufe mir nicht so ganz klar.
1.) Ist die "Detour-Function" bereits meine eigene Injection oder eine von Detour implementierte Kontrollfunktion, die mich erst zu meiner eig. Funktion weiterleitet?
Ist es richtig, dass die orginal funktion "Source-Funktion" mich zur Detourfunction weiterleitet, und hier erst durch die Trampoline-Funktion zur eigenen Target-Funktion (Inject-Funktion) weiterleitet?
-
Ok:
also die Targetfunction ist die orginal API-Funktion. Zuerst werden die ersten Instruktionen der Target funktion in der Trampoline-function gespeichert um den rücksprung zu ermöglichen. Die Detourfunction bereitet alles vor um die eingenen Inject funktion aufzurufen. Die Detourfunction ruf hiermit die Tampoline function auf und ruft die "normale" API funktion auf.
So richtig?

-
Kann jemand was die folgendem Fehler anfangen?:
....\WINAPI_HOOK.dll : fatal error LNK1169: one or more multiply defined symbols found
-
FrEak33 schrieb:
Kann jemand was die folgendem Fehler anfangen?:
Du hast irgendwas (z.B.: ne Funktion) mehrfach definiert.
-
Also es funktioniert alles wunderbar. Nur habe ich ein Problem - die TextOut Nachricht wird nur vom eigenen Prozess gehook. Möchte dies jedoch auf Systemweiterbasis realisieren.
Habe auch in den Dokuments gelesen:
The Detours library intercepts target functions
by rewriting their in-process binary image. For
each target function, Detours actual rewrites two
functions: the target function and the matching
trampoline function. The trampoline function can
be allocated either dynamically or statically. A
statically allocated trampoline always invokes the
target function without the detour. Prior to
insertion of a detour, the static trampoline
contains a single jump to the target.Es müsste doch auch möglich sein, diese Nachricht general zu modifizieren?
PS: Gibt es nicht von Microsoft eine Doku für alle Funktionen??
-
FrEak33 schrieb:
PS: Gibt es nicht von Microsoft eine Doku für alle Funktionen??
? MSDN-Library? Diese ist auch Online!
-
Jope. hab ich dann auch gefunden. Und zu meiner anderen Frage?
-
FrEak33 schrieb:
Und zu meiner anderen Frage?
Da kenn ich mich mit detours zu wenig aus...
-
Wenn ich meinen Po ganz schnell hin und her auf Parkett reibe tut das weh.
-
Naja, da hast du nicht ganz unrecht:)
Sonst kann mir keiner helfen
