![]() |
Daten verbindung von einem Programm abhöhren?
Also ich hab nen Client der ist verbunden mit einem Server...
Nun möchte ich den Datenverkehr vom Server und vom Client sehen, is das irgendwie möglich? Ich will nur wissen was das Programm sendet und empfängt, um es noch extra wo visuell darzustellen :zwinker: Wo fang ich da am besten an? Hat jemand sowas vielleicht schon gemacht? Kann man sowas mit Delphi überhaupt realisieren, oder muss ich da auf c/c++ umsteigen fuer, oder besser auch benutzen :gruebel: Wer nett wen wer einen Rat hätte... Bye |
Re: Daten verbindung von einem Programm abhöhren?
Das was du brauchst ist wohl ein Sniffer.
Dieser fängt alle Daten ab die die Netzwerkkarte sendet oder empfängt. Im Netz findest z.b. bei chip.de solltest du einige gute finden, ob man das (oder besser wie man das) programmiert weiß ich allerdings nicht. |
Re: Daten verbindung von einem Programm abhöhren?
sowas will ich ja net, ich brauch nur die eine verbindung und net alle Packete ^^
Außerdem will ich das in einem eigenem Programm realisieren, da genau besteht das Prob :angel2: Bye |
Re: Daten verbindung von einem Programm abhöhren?
|
Re: Daten verbindung von einem Programm abhöhren?
Hmm das sollte wenn möglich keine Extra Treiber benötigen =/
Vielleicht sollte ich direkt am Client ansetzen? Bye |
Re: Daten verbindung von einem Programm abhöhren?
ohne extra treiber kannst du keine lückenlose sniffing aktion durchführen
|
Re: Daten verbindung von einem Programm abhöhren?
Wenn du einfach nur die Daten die zwischen Client & Server gesendet werden haben willst,
dann mach das doch einfach ! Mach einfach ein neues Memo-Feld, und sobald dein Client etwas sendet oder empfängt, packst du es in das Memo ! (Wenn ich das so richtig verstanden habe was du machen willst). Mit den Statistiken müsstest du dann ma gucken..... |
Re: Daten verbindung von einem Programm abhöhren?
Also wenn man das nicht auf packetabene machen will geht das soweit ich weis ohne treiber. Man muss bestimmte interfaces implementieren und registrieren, sowie eine personal firewall. Das ganze ist ist im SDK dokumentiert.
|
Re: Daten verbindung von einem Programm abhöhren?
und was meinste was die personal firewall macht ?
die installiert ebenso einen treiber oder macht sonst was mit dem system, was kein normalsterblicher, der sein selbstgebauten internetverkehr abhören möchte, coden wird und ausserdem blick ich net ganz für was man eine personal firewall braucht, um seinen selbst gesendeten traffic aus dem eigenen programm zu sehen o_O ich würde einfach die indys nehmen und noch ein wenig im source rumfummeln, damit da evtl auf applicationlayer eine schnittstelle kriegst. auf tcp, ip, ethernetlayer kannst ohne sniffen nicht rankommen und da ist bisweilen nur mit treiber eine lückenlose überwachung aller pakete möglich |
Re: Daten verbindung von einem Programm abhöhren?
Du könntest auch einfach die IP und den Port so umändern, dass das Programm zu einem anderen Programm (von dir geschrieben) auf deinem Computer connected.
Dieses Programm connected dann zum eigentlichen Ziel und sendet dann die Daten weiter und Antworten zurück. Diese kannst du dir dann in Memos anzeigen lassen. So ein Programm habe ich schon einmal geschrieben. Funktioniert auch ganz gut, so lange das Programm nur einen Port benutzt und man weiß wie die Daten gesendet werden. |
Re: Daten verbindung von einem Programm abhöhren?
das wäre aber nonsense, weil das kann er ja ultra einfach selbst in seinem programm mitloggen
aber vermutlich will er halt auch noch den tcp, ip und ethernet layer haben, den er aber auch mit deiner methode nicht ohne sniffing bekommt |
Re: Daten verbindung von einem Programm abhöhren?
Vielleicht ist es ja nicht sein Programm :)
|
Re: Daten verbindung von einem Programm abhöhren?
jop
irgendwie denk ich grad zuviel nach ;) |
Re: Daten verbindung von einem Programm abhöhren?
1. Weil ihr hier so einen Auf(st/w)and gemacht habt, hab das so verstanden, dass die Client/server anwendungen Fremdprogramme wären und es hier ums generelle abhören einer solchen Verbindung geht.
2. Ich weiss definitiv, dass es auf oben von mir genannte art geht ( eigene erfahrung ;-)). 3. Eine personal firewall könnte diesen ansatz nutzen oder über einen treiber gehen 4. Auch personal firewalls wurden von menschen entwickelt ( und ( andere ) treiber auch )! |
Re: Daten verbindung von einem Programm abhöhren?
OT:
Zitat:
/OT |
Re: Daten verbindung von einem Programm abhöhren?
ööhm, ja, so ziemlich jede funktion, die aus irgendeiner DLL exportiert wird, ist abfangbar, per API-Hooking. D.h. wenn du die richtigen funktionen abfängst, mit welchen der client die daten empfängt, bzw. sendet, kannst du da problemlos mithören ... ;)
Das ganze ist, soweit ich das weis, nicht allzu einfach, aber es gibt anscheinend leute, die das schon gemacht haben. Eine gute API-Hooking-Lib (madCodeHook) findest du unter ![]() Du wirst da warscheinlich ein paar funktionen aus Winsock hooken müssen, und das haben schon mehrere versucht, vielleicht findest du ja deshalb unter ![]() ciao, Philipp |
Re: Daten verbindung von einem Programm abhöhren?
Hallo,
ich sehe da drei mögliche Wege: - alles mit ethereal sniffen, sich ein Packet suchen welches zur Verbindung gehört und dann den gesamten Verbindungsablauf verfolgen lassen - Programm schreiben welches als man-in-the-middle arbeitet - die winsock überladen oder per API-Hook die aufrufe umlenken |
Re: Daten verbindung von einem Programm abhöhren?
Morgen ^^
Ok, dann werde ich mal alle Spekulationen beseitigen! Also Das Programm was ich abhören/weiterleiten möchte ist nicht von mir! Das Ziel des Programms ist bekannt! Um dem Programm handelt es sich um ein Client zu einem MMORPG… Was will ich tun? 1. Den Client auf einen anderen Server umleiten, OHNE den Client zu verändern, da das gegen die Eula verstoßen würde… Und dies so einfach wie möglich, und mit auswählbaren Zielen… 2. Ich möchte alle gesendeten Daten Pakete dieses Clients protokollieren um bei der Programmierung eines Server-Emulators zu unterstützen und auch was dabei zu lernen… Es gibt schon ein Programm um die Pakete zu sammeln und es wurde in Java geschrieben, also wird es sich nicht um einen Treiber handeln, aber ich bekomme dafür nicht den Source um das WIE zu begreifen… Also ich hoffe es hat mich nun jeder verstanden und ich hoffe das jemand nun einen guten Tip hat, welchem ich nachgehen kann. Bye |
Re: Daten verbindung von einem Programm abhöhren?
Wenn du dir mal die EULA anschaust wirst du wahrscheinlich auch eine Klausel finden die das Manipulieren der Verbindung oder den Daten zwischen Client und Server verbietet... Z.B. bei Warcraft III <--> Battle.net ist das so.
|
Re: Daten verbindung von einem Programm abhöhren?
java solltest du eigentlich ohne weiteres decompilieren können,
gibt dazu sogar einige online-decompiler, ob dich das dann weiter bringt ist natürlich eine andere frage |
Re: Daten verbindung von einem Programm abhöhren?
Zitat:
Den Server betreiben ist nicht verboten, dass Spielen, naja ist dem Spieler seine Sache :zwinker: Aber als Betreiber des Servers, darf ich die Inf-File nicht anbieten, den damit mach ich mich strafbar! Mit dem Anbieten dieses Programmes nicht! Aber das wird nun OT ^^ Bye |
Re: Daten verbindung von einem Programm abhöhren?
Zitat:
Jedenfalls zum sniffen... Ob ich damit alles umleiten kannm ist eine andere Frage... Für weitere Tips wär ich dankbar! :) Bye |
Re: Daten verbindung von einem Programm abhöhren?
Zitat:
|
Re: Daten verbindung von einem Programm abhöhren?
es gibt einen sehr schönen universellen Packetsniffer, der die madCodeHookLibrary von
![]() AppSniffer ![]() da die Quellen da sind, steht kreativen Erweiterungen nicht mehr im Wege :-) |
Re: Daten verbindung von einem Programm abhöhren?
Zitat:
Daraus folgt, es muß was her was nicht die Software verändert! :zwinker: Zitat:
Wenn man packete umlenken will, hat man da irgendwas zu beachten? Bye |
Re: Daten verbindung von einem Programm abhöhren?
Zitat:
wird das der begriff localhost auf 127.0.0.1 verweist 127.0.0.1 localhost 127.0.0.1 toolbarqueries.google.com |
Re: Daten verbindung von einem Programm abhöhren?
Es wäre sicher hilfreich, wenn Du noch sagst um welches MMORPG es sich da handelt, zu jedem gibt es genug Leute die sich damit schonmal beschäftigt haben. Auch hier ;) Seinen es nun Serveremulatoren, Clienterweiterungen oder Packetbeschreibungen. Oft finden sich irgendwo noch gut versteckte Foren etc. in denen so einiges an Ideen und Informationen ausgetauscht wird :-)
Das Analysieren der Packete verstößt nicht gegen die EULA ? Seltsam *G* Erfahrungsgemäß kommt man wohl kaum darum herum, des Client zu disassemblieren, was lt. vielen Eulas auch nicht gerade zulässig, aber auch schwer nachzuweisen ist. Zitat:
|
Re: Daten verbindung von einem Programm abhöhren?
Zitat:
Zitat:
Aber das was ich hier tu ist eher zum lernen, und soll eher allen Emu-Entwicklern/Hostern helfen ^^ Bye |
Re: Daten verbindung von einem Programm abhöhren?
Zitat:
![]() Natürlich kommst Du an den Source, ist ja Open-Source *g* entweder einen CVS-Client installieren (Links und Beschreibung auf sf.net) oder das Archiv runterladen, was von jedem Projekt nächtlich erstellt wird: ![]() |
Re: Daten verbindung von einem Programm abhöhren?
hehe Ich will aber net den Source vom Server, ich will eher verstehen wie ich Datenpackete Sammeln und wie ich sie manipulieren kann (Anderes Ziel)...
Leider haben sie bei L2j nur den Server os :roll: Und dann kommt noch hinzu das meine Java Kenntnisse begrenzt sind :P Bin gerade dabei mich in die Sache Hooks einzuarbeiten, aber zum Thema Socket Hooks kann ich keine Lektüre finden, welche das einfach beschreibt, für jemanden der davon 0 Plan hat :zwinker: Asbarat (oder ähnlich) hat da ja son feines Tutorrial, aber Thema von dem sind Maus und Tastatur Hooks, jedenfalls der größte Teil... Jedenfalls bin ich net sehr viel weiter gekommen... Jedenfalls zum Thema verstehen... Es gibt zwar edliche Komponenten zum Hooken, aber leider mal wieder ohne Source und ohne den versteh ich ja nix vom eigendlichen Hook prozess... naja zumindest suche ich noch information, mal wieder :coder: Bye |
Re: Daten verbindung von einem Programm abhöhren?
API-Hooking ist eigentlich vom Prinzip her einfach zu verstehen:
Du ersetzt eine Funktion in einem (meist fremden) Prozess, durch eine andere, eigene (die in einer dll steht, welche "gezwungenermaßen" vom fremden prozess geladen wird ("DLL-Injection")). Diese eigene Funktion kann dann ggf. die Parameter verändern, die original-funktion aufrufen, und den return-value verändern (man kann natürlich auch irgendetwas anderes machen ...). Wie das im detail funktioniert, kannst du dir anhand des Source-codes der AfxCodeHook API-Hook-Library von ![]() Ich beschäftige mich mit API-Hooking schon seit längerem, also, wenn ich dir irgendwie weiterhelfen soll, frag mich, und ich werde es versuchen ;) . ciao, Philipp |
Re: Daten verbindung von einem Programm abhöhren?
hi,
1. @ supermukl ich denk er bezieht sich auf firewalls, weil dort im soganannten lernprozess, auch alle programme erkannt werden, die eine verbindung zum internet ueber einen speziellen port herstellen wollen. meines wissens, setzen alle firewalls dafür spezielle NDIS-Treiber ein. es gibt glaube ich aber auch eine winapi funktion, die so etwas ähnliches erlaubt. aber ich glaube erst ab Win XP. dort sollst du angeblich abfragen koennen, welche Anwendung ein entsprechendes tcp ip Paket gesendet hatt. |
Re: Daten verbindung von einem Programm abhöhren?
Dann müst ich ja erstmal wissen, welche dlls er benutzt :gruebel:
Wie bekomm ich das am einfachsten raus? Bye |
Re: Daten verbindung von einem Programm abhöhren?
Ok habe mnich gestern Abend mal mit einem Api Hook beschäftigt... :stupid:
So wenn ich nun die Verbindung abhören will, reicht es, wenn ich im meinem Programm auf die Funktionen der wsock32.dll hooke und dann von meinem Programm aus das abzuhörende starte? oder muß ich ne dll schreiben, zum hooken? :wall: Für was neue dlls gut sind, hab ich noch net so ganz verstanden, aber wie hook ich nun am besten auf der Socket verbindung? Wär doch so ein API Hook nicht war? :gruebel: Bye |
Re: Daten verbindung von einem Programm abhöhren?
Liste der Anhänge anzeigen (Anzahl: 1)
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
Delphi-Quellcode:
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 .
HookAPI('dllname', 'funktionsname', @pointer_auf_callbackfunc, @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 :oops: [/edit] |
Re: Daten verbindung von einem Programm abhöhren?
Ich danke dir, werde am WE reinschaun, falls ich Fragen hab, meld ich mich wieder :zwinker:
Bye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:51 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