Packet sniffer without driver?

05/03/2007 20:11 mondesser#1
Huhu, ich versuche zur zeit ein kleines tool zu schreiben, das die Packets, die ein bestimmtes Programm sendet, mitließt und bei einem bestimmten Packet reagiert. (An sich also einfach ein extrem abgespecktes wpe ^^)

Leider findet man im Web relativ wenig informationen, wie man sowas realisieren kann. Hab bis jetzt nur nen weg über einen Treiber gefunden und das geht mir eigentlich zu tief für so ein kleines tool.

Deswegen wollt ich euch mal fragen, ob ihr irgendwelche links mit Tutorials, Beispielen o.ä. habt :)
Es müsste doch eigentlich möglich sein, das ganze irgendwie auf socket ebene abzufangen, oder?



-----------------------



Hi, I'm trying to write a little tool, that captures all packes that a specific program sends and reacts to one specific
packet.

I found some infos on how to do this with a special driver. But I don't want to go that deep into the system just to create such a small tool.

Therefore I'm looking for tuts examples etc. that explain how to do this on socket level.




thx in advance :D
05/03/2007 21:20 mr.rattlz#2
Ich könnte mich irren, aber sollte das nicht mit Filtern in rpe gehen :> ?
[Only registered and activated users can see links. Click Here To Register...]
05/03/2007 21:56 mondesser#3
Kann man mit den Custom filtern von rpe msg boxes oder so machen? :)
05/03/2007 22:00 mr.rattlz#4
Quote:
Originally posted by mondesser@May 3 2007, 21:56
Kann man mit den Custom filtern von rpe msg boxes oder so machen? :)
Bei Custom Filter gibs im Menü "Add Functions" doch "ShowMessage".
Ich denke mal, das wirds sein ;)
05/03/2007 22:03 killyou#5
sollte gehn, hab ich noch nie getestet hier sind aber nochmal ein paar infos zu rPE:

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

sind beides anwendungen auf ragnaork online
bei dem tool hat redox ganze arbeit geleistet. kann es nur weiterempfehlen
05/03/2007 22:12 mondesser#6
danke euch beiden :)
Das sollte für mein kleines tool reichen.
Wobei mich immernoch interessieren würde ob man sowas nicht irgendwo auf socket ebene abfangen kann in c/cpp ;)
05/04/2007 13:08 rEdoX#7
Erstmal danke fuer die promotion von meinem tool ;o
In rpe kannst du jede api aufrufen die du willst, somit auch MessageBoxA/W, showmessage ist nur ein wrapper dafuer.

Klar kannst du das auch auf "socket ebene" machen, und zwar mit hilfe von hooks.
Ich kann dir dafuer nur [Only registered and activated users can see links. Click Here To Register...] tutorial empfehlen.

Nachdem du dich damit beschaefftigst hast, kannst du die funktionen send und recv aus wsock32.dll und ws2_32.dll hooken und darin dein vorhaben ausfuehren.

lg
05/06/2007 14:45 wiz#8
Stichwort API-Hooking. rEdoX hat es schon erwähnt, gibt viele Möglichkeiten, Stub-DLL für ws2_32.dll schreiben, IAT-Patching und meines Wissens ein paar Andere.

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
05/06/2007 21:24 mondesser#9
Hab mich da mal reingelesen und bin dabei auf die Microsoft detours bibliothek gestoßen. Werds einfach mal damit probieren :)

edit: hat jemand ne ahnung wie ich mit den detours zwischen dem winsock1.1 und dem winsock2 send unterscheiden kann?
05/07/2007 07:42 rEdoX#10
WS1.1 send funktion wird von der wsock32.dll exportiert,
WS2 send von der ws2_32.dll. Du musste fuer beide funktionen einen eigene hook aufsetzen, sie also getrennt hooken.Somit hast du eine funktion fuer send ws1 und eine fuer send ws2.


lg
05/07/2007 08:33 mondesser#11
jip das weiß ich :) Problem is aber, dass die Funktionen wenn ich M$ Detours benutze einfach nur am namen identifiziert werden, ohne die dll anzugeben, und da sie beide send heißen...

problem gelöst, manchmal sollte man denken bevor man postet :rolleyes: :rolleyes: