AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Daten verbindung von einem Programm abhöhren?
Thema durchsuchen
Ansicht
Themen-Optionen

Daten verbindung von einem Programm abhöhren?

Ein Thema von Kedariodakon · begonnen am 1. Jan 2005 · letzter Beitrag vom 7. Jan 2005
 
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#35

Re: Daten verbindung von einem Programm abhöhren?

  Alt 7. Jan 2005, 13:30
Sicher, fürs API-Hooking in fremden anwendungen brauchst du im normalfall eine DLL. Ich hab zwar schon leute gesehen, die das mit einer exe gemacht haben, aber ich hab gehört, dass dies nicht zu empfehlen sei.
Diese DLL musst du dann in dein Zielprogramm "injezieren", sprich, du musst das programm dazu bringen, die dll zu laden. Das geht bei MadCodeHook per InjectLibrary.

Nun, sobald die DLL dann im Speicher ist, wird die DLL-Main ausgeführt, sprich das, was zwischen "begin" und "end." steht. Dort musst du nun die Funktionen hooken. Das tust du ganz einfach per
HookAPI('dllname', 'funktionsname', @pointer_auf_callbackfunc, @pointer_auf_nextfunc); Dieser aufruf ersetzt die funktion 'funktionsname' die von der 'dllname'-DLL exportiert wird durch @pointer_auf_callbackfunc, speichert aber die originalfunktion unter @pointer_auf_nextfunc .
D.h. du brauchst eine funktionen, die exakt die gleichen parameter aufweist, wie die originale (welche das sind, kannst du entweder in einer headerdatei nachschauen, oder in der PSDK), und eine variable, in der du den pointer der originalfunktion (aufrufbar) abspeicherst.
Dann musst du nurnoch in der callback funktion, die immer anstatt der originalfunktion aufgerufen wird, mitloggen, und die originalfunktion aufrufen, damit das was passieren sollte, dann auch funktioniert ... ^^.

Ich hänge mal 2 beispiele (die waren eigentlich für mein Hooking-Tut, das ich aber leider bis jetzt nicht fertiggekriegt hab ) an, ich hoffe die erklären sich vom quellcode her und der obigen beschreibung von allein ... das eine beispiel zeigt, wie man funktionen in einer eigenen anwendungen hooken kann, anhand eines MessageBoxA-Hooks. Das andere beispiel ist eine DLL, die man in ein anderes programm "injezieren" muss (injector liegt bei; bitte per PID in einzelne programme injezieren (PID im taskmanager nachschaun), und das uninjezieren (nach dem testen) nicht vergessen!). Diese DLL ersetzt den Text jeder MessageBoxA (des programms in welches die dll injeziert wurde) durch 'geänderter text'.

Und ich glaube, du musst nicht die wsock32.dll hooken, sondern die ws2_32.dll , was da genau der unterschied ist, weis ich nicht, aber appsniff macht das auch so. Achja, für dein vorhaben, kann dir der quellcode von AppSniff ziemlich weiter helfen, denn dieses Programm tut ja auch nichts anderes ... ^^

ok, bei fragen, fragen!
ciao, Philipp

[edit]oops, anhang vergessen [/edit]
Angehängte Dateien
Dateityp: zip functionhooking_197.zip (239,4 KB, 35x aufgerufen)
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
 


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 09:39 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