Sockets / Sniffer
-
Moin,
ich dachte mir ich schreib mal ein sniffer der alle IP-Packete eines Ports
per printf ausgibt.. Hat jemand da Vorstellungen über die Verfahrensweise ?
Ich weiß nur dass die Socket - Funktionen Recv() .. dazu bestimmt nichts
taugen..
Man könnte sich natürlich auch bei google informieren, aber das Thema fehlt
hier noch bei sockets..mfg
-
RAW Sockets
-
schon mal ein Anfang.. damit kann man das IP-Paket selber zusammenbauen, samt header.. wie man nun fremde pakete zur Analyse erhält werd ich jetzt herausfinden bzw. ein anderer ist schneller
-
.. Ist zwar ein linuxsample, aber sollte zur Verfahrensweise alles klären ..
(ein reiner Textsniffer)
#include <stdio.h> #include <string.h> #include <arpa/inet.h> #include <netinet/in.h> #include <netinet/ip.h> #include <netinet/tcp.h> int main(int argc, char *argv[]) { int s, bytes; char buffer[1024], *data; s = socket(AF_INET, SOCK_RAW, IPPROTO_TCP); if (s == -1) { perror("socket() failed"); return 1; } while( (bytes = recv(s, buffer, sizeof(buffer), 0)) > 0) { data = buffer + sizeof(struct iphdr) + sizeof(struct tcphdr); buffer[bytes] = '\0'; printf("%s", data); fflush(stdout); } return 0; }
mfg
-
[Werbung]Schau mal in meine Sig[/Werbung]
-
, der is aber nicht aus deinem thread.. Wir könnten aber die gleiche quelle haben .. hehe
-
Original erstellt von hardcoreProgramierer:
**.. Ist zwar ein linuxsample, aber sollte zur Verfahrensweise alles klären ..(ein reiner Textsniffer)
#include <stdio.h> #include <string.h> #include <arpa/inet.h> #include <netinet/in.h> #include <netinet/ip.h> #include <netinet/tcp.h> int main(int argc, char *argv[]) { int s, bytes; char buffer[1024], *data; s = socket(AF_INET, SOCK_RAW, IPPROTO_TCP); if (s == -1) { perror("socket() failed"); return 1; } while( (bytes = recv(s, buffer, sizeof(buffer), 0)) > 0) { data = buffer + sizeof(struct iphdr) + sizeof(struct tcphdr); buffer[bytes] = '\0'; printf("%s", data); fflush(stdout); } return 0; }
mfg**
Im allgemeinen find ich es verdammt unfair, dass es mit Linux so easy geht...
cu para
-