Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi internet befehle abfangen (https://www.delphipraxis.net/37515-internet-befehle-abfangen.html)

FlinkerFinger 6. Jan 2005 18:25


internet befehle abfangen
 
hi

ich bin ein begeisterter online-kartenspieler. Nun ist es für das spiel was ich online zogge wichtig, dass mir merke welche karten raus sind. Nun zu meiner Frage:

gibt es die möglichkeit mit Delphi die Karten die gespielt werden abzufangen. leider habe ich noch keine Erfahrung mit internet Komponenten in Delphi und könnte daher ein tutorial zur einführung gut gebrauchen... aber am einfachsten wäre es , wenn es irgenwie die möglich gäbe die gesendeten und empfangenden Daten zu erfassen und dann dementsprächend einen counter zu erhoehen.

danke für jede hilfe im vorruas ; )

FlinkerFinger 8. Jan 2005 18:18

Re: internet befehle abfangen
 
kann mir den echt niemand weiterhelfen :cry: ? ich will doch nur wissen wie man mit einer einfachen methode das was raus und reingeht bei meine leitung abfangen, entschlüßeln und dann den entsprechend counter hochzaehlen lassen bei dem richtigem integer wert... oder ist das unmöglich ? :witch:

endeffects 9. Jan 2005 20:11

Re: internet befehle abfangen
 
nunja, ersteinmal solltest du dir einen packetsniffer besorgen
(etheral oder etherdetect), damit weißt du dann schonmal ob
die gesendeten packete verschlüsselt sind oder nicht,
hier stellte sich dann die frage ob der aufwand eine
mögliche verschlüsselung zu knacken den nutzen überwiegt,
des weiteren musst du schauen welches protokoll verwendet wird,
am einfachsten hättest du es hier sicher mit dem http protokoll,
da könntest du dich relativ einfach einklinken, z.B. über
die Windowseigene HOSTS bzw. über einen Proxy sofern dass das
Spiel unterstützt.

Sollte es sich allerdings um das TCP/IP oder UDP Protokoll handeln
wirst Du es schwer haben die Traffic mitzuloggen. Am einfachsten
wäre es auch hier wenn das Spiel einen Proxy Support anbietet.
Du musstest dann also Deinen eigenen Proxy schreiben der zwischen
dem Spiel und dem anderen Mitspieler/Server mithört.

Alternativ hast Du natürlich noch die Möglichkeit Dir einen
eigenen Packetsniffer/Analyzer zu schreiben. Dazu findest
Du sicherlich was hier im Forum.

Und als letzte Möglichkeit könntest Du versuchen Dich in das Spiel
selbst einzuklinken (z.B. das Auslesen von Fenstertiteln und -inhalten).
Hängt allerdings davon ab wie das Spiel aufgebaut ist.

Im Großen und Ganzen hast Du Dir da viel vorgenommen ;)

SirThornberry 9. Jan 2005 20:13

Re: internet befehle abfangen
 
ich denke in dem fall wäre es einfacher eine art "Trainer" für das Programm zu schreiben. Also den Speicher des Programmes aulesen, denn irgendwo wird dir ja gezeigt das die karte gespielt wurde und somite sollte eventuell im Arbeitsspeicher da auch kurzzeitig was passieren woran man das erkennt.

c113plpbr 9. Jan 2005 21:04

Re: internet befehle abfangen
 
Wenn du die "Verbindung-Mitloggen"-Methode verwenden willst, kann dir AppSniff und dessen Quellcode von http://www.blad3.ro/ bestimmt weiterhelfen.
Aber ich denke mal, dass dies bestimmt nicht die einfachste Methode ist.

ciao, Philipp

chkdsk 10. Jan 2005 00:35

Re: internet befehle abfangen
 
Thx, sowas hab ich auch schon immer als Delphi-Code gesucht!

FlinkerFinger 11. Jan 2005 11:35

Re: internet befehle abfangen
 
Also ich weis nicht ob es hilft, aber das spiel verfügt über ein ClientProgram mit dem man dann auf den server connecten kann und sich halt dort mit anderen Leuten trifft und gemütlich zoggen kann. also muesste man irgendwie auf den Server connecten koennen oder ? wie finde ich raus welcher weg der beste ist ?

Ultimator 11. Jan 2005 12:30

Re: internet befehle abfangen
 
Du könntest dir VOR Spielstart einmal in der Konsole anzeigen lassen, was dir netstat sagt und einmal NACH Spielstart.

Dann müsstest du wissen, WOHIN der Client verbindet (Port und Host).

Dann noch per Sniffer die Pakete auslesen und schon hast du die übertragenen Daten (sofern unverschlüsselte Übertragung ;-))

FlinkerFinger 11. Jan 2005 17:09

Re: internet befehle abfangen
 
ultimator so hatte ich mir das vorgestellt ... die ip und host habe ich jetzt rausgefunden :-D

jetzt kommt der schwierige Teil ... wie genau mache ich das mit dem sniffen, muss doch auch ein wenig einfacher gehen als in dem code dem man soch von c113plpbr saugen konnte , oder ?! ne kleine anleitung im groben wäre mir echt ne super hilfe ^^

danke an alle die mir geholfen haben und noch helfen werden , leute wie ihr machen es möglich nicht nur gelernten informatikern ein sinnvolles Program zu schreiben. DANKE :P

Ultimator 11. Jan 2005 17:16

Re: internet befehle abfangen
 
Hmmm, ich frage mich die ganze Zeit eins:
Kann man in dem Programm angeben, zu welchem Server man connecten möchte, oder ist das fest vorgegeben?

Sollte es frei einstellbar sein, dann öffne doch einfach nen ServerSocket auf dem Port, den du rausgefunden hast, gib im Spiel localhost als Server an und schau, was der Client schreibt.

Wenn du dann das hast, was dein Spiel schicken will, kannst du es nach belieben modifizieren und dann per ClientSocket oder Indy oder so an den ECHTEN spielserver weiterschicken.
Ggf. musst du aber zum Senden der Daten an den echten Serverdein "Zwischenprogramm" disconnecten, damit der Port wieder frei wird.

Sollte der Host jedoch NICHT frei einstellbar sein, wüsste ich im Moment auch kiene Lösung :-?

FlinkerFinger 11. Jan 2005 18:30

Re: internet befehle abfangen
 
ich bin gerade die ganze zeit am sniffen und überwachen mit dem Program von c113plpbr
was ich da entdeckt habe ist aber denke ich mal codiert ...

das sieht alles so aus :

sbrowser.exe, size=616, sock=888, proto=tcp, remIP=81.209.184.99, remPort=80, oper=Send
sbrowser.exe, size=326, sock=712, proto=tcp, remIP=81.209.184.99, remPort=80, oper=WSARecv
sbrowser.exe, size=326, sock=1072, proto=tcp, remIP=81.209.184.99, remPort=80, oper=WSARecv
sbrowser.exe, size=326, sock=1684, proto=tcp, remIP=81.209.184.99, remPort=80, oper=WSARecv
sbrowser.exe, size=327, sock=1744, proto=tcp, remIP=81.209.184.99, remPort=80, oper=WSARecv
sbrowser.exe, size=327, sock=1308, proto=tcp, remIP=81.209.184.99, remPort=80, oper=WSARecv
sbrowser.exe, size=327, sock=1296, proto=tcp, remIP=81.209.184.99, remPort=80, oper=WSARecv
sbrowser.exe, size=326, sock=1344, proto=tcp, remIP=81.209.184.99, remPort=80, oper=WSARecv
sbrowser.exe, size=326, sock=888, proto=tcp, remIP=81.209.184.99, remPort=80, oper=WSARecv
BrettspielWelt.exe, size=99, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=78, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=60, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=60, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=105, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=111, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=62, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=119, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=48, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=71, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=101, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=67, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=43, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=44, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=5, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Send
BrettspielWelt.exe, size=2, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=75, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv
BrettspielWelt.exe, size=117, sock=1340, proto=tcp, remIP=213.155.73.107, remPort=7670, oper=Recv

...nur die size ändert sich und ich glaube die karten haben damit nichts zu tun

was kann ich jetzt machen ??

FlinkerFinger 11. Jan 2005 18:31

Re: internet befehle abfangen
 
hups das
sbrowser.exe, size=616, sock=888, proto=tcp, remIP=81.209.184.99, remPort=80, oper=Send
gehoert nicht dazu ...

c113plpbr 11. Jan 2005 18:58

Re: internet befehle abfangen
 
Danke, dass du mich mit den Lorbeeren dieses Programmes schmückst, aber ich habs ned geschrieben ... ;) , ich kenne mich zwar mit methode die es benutzt recht gut aus, und könnte warscheinlich sowas auch schreiben, aber dennoch ist es nicht von mir ...

Dies was du da kopiert hast, ist nur der "grobe" log, welches programm was gemacht hat, um aber an die daten zu kommen, musst du die datenpackete schauen, die die einzelnen programme senden. AppSniff kann das, über den "baum" links oben.

ciao, Philipp

FlinkerFinger 11. Jan 2005 19:09

Re: internet befehle abfangen
 
ahh ja :-D danke ... das ist ja super ... also nun glaube ich das es möglisch ist ! :mrgreen:
da sehe ich zwar , wie schon hier erwähnt, ein ganzes stück arbeit auf mich zu kommen. danke nochmal an alle =D

FlinkerFinger 18. Jan 2005 19:31

Re: internet befehle abfangen
 
Puh , der quellcode sieht aber sehr umständlich aus :( ... hat vielleicht jmd. einen link mit einem etwas einfacheren sniff-programm (mit code).
das wäre sehr hilfreich.

c113plpbr 19. Jan 2005 12:28

Re: internet befehle abfangen
 
Zitat:

Zitat von FlinkerFinger
Puh , der quellcode sieht aber sehr umständlich aus :( ... hat vielleicht jmd. einen link mit einem etwas einfacheren sniff-programm (mit code).
das wäre sehr hilfreich.

ööhm ... eigentlich ist das programm doch gaaanz einfach ... :mrgreen: ... ich zumindest blicke durch ... löl ... ich mein ja nur, wenn du sowas machen willst, musst du auch damit rechnen "neuland" zu betreten. Einfachere methoden gibt es oft, aber nicht immer. Die einfachste methode wäre natürlich immernoch einen proxy dazwischen zu schalten, und wenn dies nicht geht, dann kannst du immernoch mit z.B. WinPCap die packete sniffen. Ob dies aber einfacher ist, sei mal dahingestellt ...

ciao, Philipp

Kedariodakon 19. Jan 2005 13:13

Re: internet befehle abfangen
 
Moin...

AppSniff ist leider ein klein wenig überladen und sehr sehr undurchsichtig geschrieben, da kann man einiges vereinfachen, verkürzen...

Dann is nen Nachteil, dass einige Sources fehlen und nicht aufzutreiben sind...
Aber die meisten konnte ich finden :zwinker:
Suche Units, aus Fremd Source....

Wenn du dich mit Hooks schon auskennst, is ja alles in Sahne, wenn nicht versteht man nicht viel vom Programm...

Meiner einer hat zumindest AppSniff komplett zerlegt um es zu verstehen und nachzubauen ^^

Ich arbeite ja gerade an was ähnlichem:
Daten verbindung von einem Programm abhöhren?


Bye

FlinkerFinger 20. Jan 2005 08:59

Re: internet befehle abfangen
 
ich bin jetzt an dem punkt angelangt, wo ich am liebsten aufgebe würde ... ich habe mir nochmal den code von appSniff angesehen :shock: und habe soviel unerklärliches gesehen, wo ich in den nächsten 10 jahren bestimmt nicht mehr hinter steigen werde ...

welche befehle fangen denn die gesendeten packete auf, die dann in dem Hexfenster stehen und wie genau kommen die da rein :gruebel:

ich müsste ja eigentlich nur die pakete von einem server sniffen und die daten dann irgednwie sichtbar machen. gibt es sowas nicht einfacher? nen Programm(mit code) wo man die ip eingibt und alles was der server einem sendet fängt man auf und protocoliert die daten?

ich würde es ja auch selbst Probieren , aber woher bekomme ich die die Befehle. Gibt es keine komponente die ich aufs form packen kann, die mir eventuell weiterhelfen kann ? wenn ja wie heist diese. Probieren was ich damit machen kann schaffe ich meist allein ;)

Kedariodakon 20. Jan 2005 09:24

Re: internet befehle abfangen
 
Zitat:

Zitat von FlinkerFinger
ich bin jetzt an dem punkt angelangt, wo ich am liebsten aufgebe würde ... ich habe mir nochmal den code von appSniff angesehen :shock: und habe soviel unerklärliches gesehen, wo ich in den nächsten 10 jahren bestimmt nicht mehr hinter steigen werde ...

:zwinker:

Zitat:

Zitat von FlinkerFinger
welche befehle fangen denn die gesendeten packete auf, die dann in dem Hexfenster stehen und wie genau kommen die da rein :gruebel:

1. In der Dll wird gehookt, auf die Socket-Api-Funktionen...
2. Bei FormCreate glaub ich, wird das FensterHandle in die Dll übergeben als ClientWindow oder so (jedenfalls zu umständlich :zwinker: )
3. Wenn nun ne SocketFunktion aufgerufen wird, werden die Daten in der dll kopiert und per SendMessage an die Form gesendet...
4. in der Form gibt es einen MEssageHandler, welcher nun die Daten trennt, auswertet und in Nodes speichert und sie dann an den Virtual-Treeview übergibt.
5. Wenn du nun auf so ein Node klickst steht der Inhalt im Hexfeld ^^

Zitat:

Zitat von FlinkerFinger
ich müsste ja eigentlich nur die pakete von einem server sniffen und die daten dann irgednwie sichtbar machen. gibt es sowas nicht einfacher? nen Programm(mit code) wo man die ip eingibt und alles was der server einem sendet fängt man auf und protocoliert die daten?

Ka Prinzip wär das selbe, entweder trennst die Daten in der DLL oder im Programm...
Ich würd Methode 1 benutzen, dann werden keine Unnötigen Daten versendet :zwinker:
Sprich IP an Dll übergeben, die Filtert dann und sendet dann erst.

Zitat:

Zitat von FlinkerFinger
ich würde es ja auch selbst Probieren , aber woher bekomme ich die die Befehle. Gibt es keine komponente die ich aufs form packen kann, die mir eventuell weiterhelfen kann ? wenn ja wie heist diese. Probieren was ich damit machen kann schaffe ich meist allein ;)

Ich kann dir meine Vereinfachte Version zuschicken, die sendet zur Form nur die benutzte Api-Funktion...
Den Rest kannst dir ja bei AppSniff anschaun.
Aber erst Morgen Früh, vorher bin ich nicht an meinem Rechner :angel:



Bye

FlinkerFinger 20. Jan 2005 09:55

Re: internet befehle abfangen
 
óh ja das wäre echt super von dir, danke :lol:

Kedariodakon 21. Jan 2005 08:28

Re: internet befehle abfangen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Büdde, wenn du fragen zum Source hast, einfach fragen, irgendwer weiß schon ne Antwort :zwinker:

Der Dource sollte die Grundzüge gut erklären.
Viel Spass beim :coder:

Bye


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 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