AGB  ·  Datenschutz  ·  Impressum  







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

ExtTextOut oder DrawText hooken?

Ein Thema von Quetzalcoatl · begonnen am 13. Jun 2010 · letzter Beitrag vom 13. Jun 2010
Antwort Antwort
Quetzalcoatl

Registriert seit: 11. Apr 2007
30 Beiträge
 
#1

ExtTextOut oder DrawText hooken?

  Alt 13. Jun 2010, 03:04
Hallo

Ich versuche Text aus fremden Anwendungen zu lesen. Da alle letztlich wohl mit ExtTextOut oder DrawText oder sowas über die Windows Api schreiben müssen wie ich gelesen hab, müsste man die Funktionsaufrufe also abfangen.
Das scheint mit einem Hook zu gehen, nur wie?
Also ich hab jetzt jede Menge Quellcodes und beispiele zu keyloggern und so weiter gesehen und auch einigermaßen nachvollziehen können. Aber wie hooke ich eine Funktion wie ExtTextOut?
Also grundsätzlich brauch ich eine Dll die ich in die anderen prozesse injiziere und irgendwie die Funktionsaufrufe durch meine eigenen Funktionen ersetze. Aber wie? Wenn jemand noch einen Beispielcode zu einer ähnlichen Sache rumfliegen hätte wäre das auch schön

vielen Dank für eure Hilfe
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: ExtTextOut oder DrawText hooken?

  Alt 13. Jun 2010, 03:21
Beispielcode habe ich gerade keinen (auch wenn ich hier im Forum schon mal welchen gesehen habe), aber die meisten API-Funktionen haben am Anfang etwas "Dummy-Code" (mov edi, edi o.ä.), den man z.B. mit einer JMP-Operation überschreiben kann, um das Hooken zu erleichtern.
Du müsstest also im fremden Prozess einen Speicherbereich alloziieren, in den du deinen Code schreibst, die ausgeführt werden soll, und dann den Dummy-Bereich in der zu hookenden Funktion mit einem JMP- oder CALL-Befehl auf diesen Bereich überschreiben. Natürlich darf am Ende deines Codes ein Rücksprung (bzw. Return) auf den Originalcode nicht fehlen.

Eventuell wäre es noch sinnvoll, den Originalcode, der überschrieben wird, auch noch irgendwo zu sichern und wiederum innerhalb der eigenen Funktion aufzurufen, für den Fall, dass schon ein anderer Hook existiert.
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#3

AW: ExtTextOut oder DrawText hooken?

  Alt 13. Jun 2010, 09:31
Wäre es nicht einfacher, die Objekte, in die die fremde Anwendung den Text schreibt, auszulesen?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

AW: ExtTextOut oder DrawText hooken?

  Alt 13. Jun 2010, 10:10
Das scheint mit einem Hook zu gehen, nur wie?
Ein (etwas älteres) Beispiel findest du in der borland.public.delphi.winapi Group
Thomas
  Mit Zitat antworten Zitat
Quetzalcoatl

Registriert seit: 11. Apr 2007
30 Beiträge
 
#5

AW: ExtTextOut oder DrawText hooken?

  Alt 13. Jun 2010, 14:33
Hmm ich hab den Code jetzt soweit dass er ausgeführ wird. Aber es passiert nichts. Woran könnte das wieder liegen?
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: ExtTextOut oder DrawText hooken?

  Alt 13. Jun 2010, 14:46
Naja, das Beispiel ist für Win95, also ein Betriebssystem, in dem sich alle Programme den gleichen Adressraum teilen. Vermutlich versucht der Code deshalb direkt an die Adresse zu schreiben, was aber unter WinNT-basierten Systemen nicht mehr funktioniert, weil hier jedes Programm seinen eigenen, virtuellen Adressraum hat. Hier musst du mit deshalb WriteProcessMemory o.ä. arbeiten.
  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 12:27 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