Debug Winsock



  • Hi leute, ich wollte gerne ein Test-Programm debuggen
    um mehr über seine Netzwerkstruktur zu erfahren:

    0479FEE4   0041A62D  /CALL to WSARecv from 0041A62B
    0479FEE8   00002548  |Socket = 2548
    0479FEEC   0479FF0C  |pBuffers = 0479FF0C
    0479FEF0   00000001  |nBuffers = 1
    0479FEF4   0479FF14  |pReceivedCount = 0479FF14
    0479FEF8   0479FF18  |pFlags = 0479FF18
    0479FEFC   090906E4  |pOverlapped = 090906E4
    0479FF00   00000000  \Callback = NULL
    

    Mein Problem ist, dass diese Struktur sau suspekt ist,
    der Pointer der zu pRecievedCount übergeben wird, zeigt
    IMMER auf "0x00" d.h. es müssten immer keine bytes empfangen
    worden sein !? (das stimmt nicht!) außerdem zeigt der Pointer in
    pBuffers immer auf das selbe. Es sollte auf eine Struktur mit
    bytes und Adresse von dem recieve zeigen...

    Grundlage:

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/wsarecv_2.asp
    

    Habt ihr ne Ahnung wie ich jetzt von diesem Call an das Packet komme?
    Oder gar den Aufbau simulieren kann?
    (Also was ich pushen müsste, damit ich ein empfangenes Packet simulieren kann)

    Grüße



  • Warum benutzt du nicht einen Sniffer wie Wireshark (Ethereal)?



  • shark schrieb:

    Warum benutzt du nicht einen Sniffer wie Wireshark (Ethereal)?

    Dann kann ich keine Packete emulieren und keine Flags und so auslesen oder?
    Außerdem will ich den sniffer, wenn ich das nachvollzogen habe ja selbst programmieren 🙂





  • 'net' schrieb:

    http://www.winpcap.org/

    oh, ein fan 😉
    danke, das hätt' ich jetzt auch vorgeschlagen...



  • 048AFF0C  B4 05 00 00 28 01 0C 09 00 00 00 00 00 00 00 00  ´..(..........
    

    <- Dahin zeigt ein Pointer der angeblich zu dieser Struktur gehört:

    typedef struct __WSABUF {
      u_long len;
      char FAR* buf;
    } WSABUF, 
     *LPWSABUF;
    

    Wo wäre denn dann der buffer?



  • was meinst du? der pointer muesste dann denke ich an 048AFF0C + 4 sein also die 4 bytes "28 01 0C 09". die 4 bytes musste du noch umdrehen und dann haste die adresse der speicherstelle des buffer...

    ...denke ich...



  • hae? schrieb:

    was meinst du? der pointer muesste dann denke ich an 048AFF0C + 4 sein also die 4 bytes "28 01 0C 09". die 4 bytes musste du noch umdrehen und dann haste die adresse der speicherstelle des buffer...

    ...denke ich...

    Ja danke so geht es!


Log in to reply