Accueil > > > [C/WINPCAP]SNIFFER TCP(ANALYSEUR DE TRAMES) POUR WINDOWS
[C/WINPCAP]SNIFFER TCP(ANALYSEUR DE TRAMES) POUR WINDOWS
Information sur la source
Description
Bonjour voila un sniffer minimaliste pour windows qui utilise la librairie winpcap vous devez donc la télécharger et l'intaller pour faire tourner mon programme. => http://www.winpcap.org/<= Pour le développer j'ai utiliser codeblocks, voila un tutorial que j'ai fait pour ceux qui voudrait tester et recompiler mon code: http://psyphi.zeblog.com/54921-configurer-wi npcap-pour-codeblocks/ Sinon que dire de plus, le sniffer affiche les entêtes ethernet, ip et tcp ainsi que le reste des données contenues dans le paquet. README: Compiled and tested with Code::Blocks and Mingw under Windows XP SP2. You need to install winPcap and configure Code::Blocks to compile this source. Links: ------ Project: http://bores.fr /psyphi/dev/c/network/sniffer_winpcap/ winPcap: http://www.winpcap.org/ Code::Blocks http://ww w.codeblocks.org/ How to configure Code::Blocks for winPcap (french): http://psyphi.zeblog.com/54921-configu rer-winpcap-pour-codeblocks/
Source
- /*
- ************************************************************************************
- * sniffer_winPcap *
- * Last version at http://psyphi.bores.fr/dev/c/network/sniffer_winpcap *
- * Copyright (C) 2006 psyphi psyphi(_at_)gmail(_dot_)com *
- * *
- * sniffer_winPcap program is free software; you can redistribute it and/or *
- * modify it under the terms of the GNU General Public License *
- * as published by the Free Software Foundation; either version 2 *
- * of the License, or (at your option) any later version. *
- * *
- * sniffer_winPcap program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
- ************************************************************************************
- */
-
- #include <stdio.h>
- #include <stdlib.h>
-
- #include <winsock2.h>
-
- #pragma comment(lib,"wpcap.lib")
- #pragma comment(lib,"ws2_32.lib")
-
- #define HAVE_REMOTE
- #define WPCAP
- #define PACKET_SIZE 65536
-
- #include <pcap.h> // must be writing after the defines
-
-
- /*
- * Structures
- */
- struct ethhdr // Ethernet header
- {
- unsigned char h_dest[6]; // Destination host address
- unsigned char h_source[6]; // Source host address
- unsigned short h_proto; // Packet type ID field (IP, ARP ...)
- };
-
- struct iphdr // structure IP Header
- {
- //Pour processeur de type little-endian
- unsigned char ihl:4; // IP header length
- unsigned char version:4;
-
- unsigned char tos; // Type of service
- unsigned short tot_len; // Total length
- unsigned short id; // Identification
- unsigned short frag_off; // Fragment Offset + Flags
- unsigned char ttl; // Time to life
- unsigned char protocol;
- unsigned short check; // Checksum
- unsigned int saddr; // Source address
- unsigned int daddr; // Destination address
- };
-
- struct tcphdr // structure TCP Header
- {
- //Pour processeur de type little-endian
- unsigned short source; // port source
- unsigned short dest; // port de destination
- unsigned int seq; // Sequence number
- unsigned int ack_seq; // acknowledge sequence
-
- unsigned short res1:4, // Reserved 1 : 4 bits
- doff:4, // Data Offset
- fin:1, // Flag FINISH
- syn:1, // Flag SYNCHRONIZE
- rst:1, // Flag RESET
- psh:1, // Flag PUSH
- ack:1, // Flag ACKNOLEDGE
- urg:1, // Flag URGENT
- res2:2; // Reserved 2 : 2 bits (res1 + res2 = 6 bits reserved)
-
- unsigned short window;
- unsigned short check; // checksum
- unsigned short urg_ptr; // urgent
- };
-
- /*
- * Functions
- */
-
- void print_eth_header(struct ethhdr * eth){
- fprintf(stdout,"-------------------[ETH HEADER]-----------\r\n");
- fprintf(stdout,"| %.2X:%.2X:%.2X:%.2X:%.2X:%.2X -> ",eth->h_source[0],eth->h_source[1], eth->h_source[2],eth->h_source[3],eth->h_source[4],eth->h_source[5]);
- fprintf(stdout,"%.2X:%.2X:%.2X:%.2X:%.2X:%.2X |\r\n",eth->h_dest[0],eth->h_dest[1], eth->h_dest[2],eth->h_dest[3],eth->h_dest[4],eth->h_dest[5]);
- fprintf(stdout,"------------------------------------------\r\n");
- fprintf(stdout,"Protocol: 0x%.4X\r\n", htons(eth->h_proto));
- }
-
- void print_ip_header(struct iphdr * ip){
-
- unsigned char * src = (unsigned char *)&(ip->saddr);
- unsigned char * dest = (unsigned char *)&(ip->daddr);
-
- fprintf(stdout,"[ IP : %d.%d.%d.%d -> ",src[0],src[1],src[2],src[3]);
- fprintf(stdout,"%d.%d.%d.%d ]\r\n",dest[0],dest[1],dest[2],dest[3]);
- fprintf(stdout,"--------------------[IP HEADER]----------------------\r\n");
- fprintf(stdout,"| IP header length : %d * 32 bits = %d bytes |\r\n",ip->ihl, ip->ihl * 4);
- fprintf(stdout,"| IP version : %.5d | ",ip->version);
- fprintf(stdout,"Type of service : %.5d |\r\n",ip->tos);
- fprintf(stdout,"| Total length : %.5d | ",htons(ip->tot_len));
- fprintf(stdout,"Identification : %.5d |\r\n",htons(ip->id));
- fprintf(stdout,"| Time to live : %.5d | ",ip->ttl);
- fprintf(stdout,"Protocol : %.5d |\r\n",ip->protocol);
- fprintf(stdout,"| Checksum : %.5d |\r\n",ip->check);
- fprintf(stdout,"-----------------------------------------------------\r\n");
- }
-
- void print_tcp_header(struct tcphdr * tcp){
- fprintf(stdout,"[ Port : %.5d -> %.5d ]\n", ntohs(tcp->source), ntohs(tcp->dest) );
- fprintf(stdout,"--------------------[TCP HEADER]---------------------\r\n");
- fprintf(stdout,"| TCP Header length : %d * 32 bits = %d bytes |\r\n",tcp->doff, tcp->doff * 4);
- fprintf(stdout,"| URG (URGENT) = %d | ",tcp->urg);
- fprintf(stdout,"ACK (ACKNOWLEDGE) = %d |\r\n",tcp->ack);
- fprintf(stdout,"| PSH (PUSH) = %d | ",tcp->psh);
- fprintf(stdout,"RST (RESET) = %d |\r\n",tcp->rst);
- fprintf(stdout,"| SYN (SYNCHRONIZE) = %d | ",tcp->syn);
- fprintf(stdout,"FIN (FINISH) = %d |\r\n",tcp->fin);
- fprintf(stdout,"-----------------------------------------------------\r\n");
- }
-
- void print_data(unsigned char * data, unsigned int size){
- int j = 0, k = 0;
-
- for( j = 0; j < size; j++)
- {
- if( k == 16)
- {
- j -= 16;
- fprintf(stdout," ");
- for(k = 0 ; k < 16 ; k++, j++)
- {
- if(data[j] < 127 && data[j] > 31)
- fprintf(stdout, "%c", data[j]);
- else
- fprintf(stdout, ".");
- }
- j--;
- k = 0;
- fprintf(stdout,"\r\n");
- }
- else
- {
- fprintf(stdout,"%.2x ",data[j]);
- k++;
- }
- }
- j -= k;
- while(k!=0)
- {
- if(data[j] < 127 && data[j] > 31)
- fprintf(stdout, "%c", data[j]);
- else
- fprintf(stdout, ".");
- k--;
- j++;
- }
- fprintf(stdout,"\r\n");
- }
-
- void print_packet(const u_char * packetData){
- struct iphdr * ip;
- struct tcphdr * tcp;
-
- ip = (struct iphdr *)(packetData+sizeof(struct ethhdr));
- print_ip_header(ip);
- switch(ip->protocol){
- case 1 : printf("Internet Control Message Protocol (ICMP)\r\n");
- break;
- case 6 : printf("Transmission Control Protocol (TCP)\r\n");
- tcp = (struct tcphdr *)(packetData+sizeof(struct ethhdr)+sizeof(struct iphdr));
- print_tcp_header(tcp);
- /* Data */
- unsigned char * data = (unsigned char *)(packetData+sizeof(struct ethhdr)+sizeof(struct iphdr)+sizeof(struct tcphdr));
- print_data(data, htons(ip->tot_len)-(ip->ihl * 4)-(tcp->doff * 4));
- break;
- case 17 : printf("User Datagram Protocol (UDP)\r\n");
- break;
- default : printf("Unknow\r\n");
- break;
- }
- }
-
- int main(void){
- // Interfaces
- pcap_if_t * alldevs;
- pcap_if_t * d;
- int ifNum;
- int i=0;
-
- pcap_t * captureHandle;
-
- // Packet
- struct pcap_pkthdr* packetHeader;
- const u_char * packetData;
- struct ethhdr * eth;
-
-
- int res;
-
- char errbuf[PCAP_ERRBUF_SIZE];
-
- /* Retrieve the device list from the local machine */
- if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1)
- {
- fprintf(stderr,"Error in pcap_findalldevs_ex: %s\r\n", errbuf);
- return EXIT_FAILURE;
- }
-
- /* Print the list */
- for(d= alldevs; d != NULL; d= d->next)
- {
- printf("%d.\r\nName:\r\n\t%s\r\n", ++i, d->name);
- if (d->description)
- printf("Descriptions:\r\n\t%s\r\n\r\n", d->description);
- else
- printf(" (No description available)\r\n");
- }
-
- if (i == 0)
- {
- printf("\r\nNo interfaces found! Make sure WinPcap is installed.\r\n");
- return EXIT_FAILURE;
- }else{
- printf("Enter the interface number (1-%d):",i);
- scanf("%d", &ifNum);
- }
-
- if(ifNum < 1 || ifNum > i)
- {
- printf("\nInterface number out of range.\r\n");
- /* Free the device list */
- pcap_freealldevs(alldevs);
- return -1;
- }
-
- /* Jump to the selected adapter */
- for(d=alldevs, i=0; i< ifNum-1 ;d=d->next, i++);
-
- captureHandle = pcap_open(d->name, PACKET_SIZE, 0, 1000, NULL, errbuf);
-
- if( captureHandle == NULL){
- fprintf(stderr, "pcap_open(): %s\r\n", errbuf);
- pcap_freealldevs(alldevs);
- return EXIT_FAILURE;
- }
-
- /* We don't need any more the device list. Free it */
- pcap_freealldevs(alldevs);
-
- /* start the capture */
- while( (res = pcap_next_ex(captureHandle, &packetHeader, &packetData)) >= 0){
- if(res == 0)
- /* Timeout elapsed */
- continue;
- printf("\r\n\r\nPacket length: %d\r\n", packetHeader->len);
- printf("Received at ..... %s\r\n",ctime((const time_t*)&packetHeader->ts.tv_sec));
-
- eth = (struct ethhdr *) packetData;
- print_eth_header(eth);
-
- // Analyse ethernet type
- switch(htons(eth->h_proto)){
- case 0x0800 : fprintf(stdout,"Internet Protocol, Version 4 (IPv4)\r\n");
- print_packet(packetData);
- break;
- case 0x0806 : fprintf(stdout,"Address Resolution Protocol (ARP)\r\n");
- break;
- case 0x8035 : fprintf(stdout,"Reverse Address Resolution Protocol (RARP)\r\n");
- break;
- case 0x809B : fprintf(stdout,"AppleTalk (Ethertalk)\r\n");
- break;
- case 0x80F3 : fprintf(stdout,"AppleTalk Address Resolution Protocol (AARP)\r\n");
- break;
- case 0x8100 : fprintf(stdout,"IEEE 802.1Q-tagged frame\r\n");
- break;
- case 0x8137 : fprintf(stdout,"Novell IPX (alt)\r\n");
- break;
- case 0x8138 : fprintf(stdout,"Novell\r\n");
- break;
- case 0x86DD : fprintf(stdout,"Internet Protocol, Version 6 (IPv6)\r\n");
- print_packet(packetData);
- break;
- case 0x8847 : fprintf(stdout,"MPLS unicast\r\n");
- break;
- case 0x8848 : fprintf(stdout,"MPLS multicast\r\n");
- break;
- case 0x8863 : fprintf(stdout,"PPPoE Discovery Stage\r\n");
- break;
- case 0x8864 : fprintf(stdout,"PPPoE Session Stage\r\n");
- break;
- case 0x88A2 : fprintf(stdout,"ATA over Ethernet\r\n");
- break;
- default : fprintf(stdout,"Unknow packet\r\n");
- break;
- }
- }
-
- if(res == -1){
- printf("Error reading the packets: %s\r\n", pcap_geterr(captureHandle));
- return EXIT_FAILURE;
- }
-
- pcap_close(captureHandle);
- return EXIT_SUCCESS;
- }
/*
************************************************************************************
* sniffer_winPcap *
* Last version at http://psyphi.bores.fr/dev/c/network/sniffer_winpcap *
* Copyright (C) 2006 psyphi psyphi(_at_)gmail(_dot_)com *
* *
* sniffer_winPcap program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* *
* sniffer_winPcap program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
************************************************************************************
*/
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#pragma comment(lib,"wpcap.lib")
#pragma comment(lib,"ws2_32.lib")
#define HAVE_REMOTE
#define WPCAP
#define PACKET_SIZE 65536
#include <pcap.h> // must be writing after the defines
/*
* Structures
*/
struct ethhdr // Ethernet header
{
unsigned char h_dest[6]; // Destination host address
unsigned char h_source[6]; // Source host address
unsigned short h_proto; // Packet type ID field (IP, ARP ...)
};
struct iphdr // structure IP Header
{
//Pour processeur de type little-endian
unsigned char ihl:4; // IP header length
unsigned char version:4;
unsigned char tos; // Type of service
unsigned short tot_len; // Total length
unsigned short id; // Identification
unsigned short frag_off; // Fragment Offset + Flags
unsigned char ttl; // Time to life
unsigned char protocol;
unsigned short check; // Checksum
unsigned int saddr; // Source address
unsigned int daddr; // Destination address
};
struct tcphdr // structure TCP Header
{
//Pour processeur de type little-endian
unsigned short source; // port source
unsigned short dest; // port de destination
unsigned int seq; // Sequence number
unsigned int ack_seq; // acknowledge sequence
unsigned short res1:4, // Reserved 1 : 4 bits
doff:4, // Data Offset
fin:1, // Flag FINISH
syn:1, // Flag SYNCHRONIZE
rst:1, // Flag RESET
psh:1, // Flag PUSH
ack:1, // Flag ACKNOLEDGE
urg:1, // Flag URGENT
res2:2; // Reserved 2 : 2 bits (res1 + res2 = 6 bits reserved)
unsigned short window;
unsigned short check; // checksum
unsigned short urg_ptr; // urgent
};
/*
* Functions
*/
void print_eth_header(struct ethhdr * eth){
fprintf(stdout,"-------------------[ETH HEADER]-----------\r\n");
fprintf(stdout,"| %.2X:%.2X:%.2X:%.2X:%.2X:%.2X -> ",eth->h_source[0],eth->h_source[1], eth->h_source[2],eth->h_source[3],eth->h_source[4],eth->h_source[5]);
fprintf(stdout,"%.2X:%.2X:%.2X:%.2X:%.2X:%.2X |\r\n",eth->h_dest[0],eth->h_dest[1], eth->h_dest[2],eth->h_dest[3],eth->h_dest[4],eth->h_dest[5]);
fprintf(stdout,"------------------------------------------\r\n");
fprintf(stdout,"Protocol: 0x%.4X\r\n", htons(eth->h_proto));
}
void print_ip_header(struct iphdr * ip){
unsigned char * src = (unsigned char *)&(ip->saddr);
unsigned char * dest = (unsigned char *)&(ip->daddr);
fprintf(stdout,"[ IP : %d.%d.%d.%d -> ",src[0],src[1],src[2],src[3]);
fprintf(stdout,"%d.%d.%d.%d ]\r\n",dest[0],dest[1],dest[2],dest[3]);
fprintf(stdout,"--------------------[IP HEADER]----------------------\r\n");
fprintf(stdout,"| IP header length : %d * 32 bits = %d bytes |\r\n",ip->ihl, ip->ihl * 4);
fprintf(stdout,"| IP version : %.5d | ",ip->version);
fprintf(stdout,"Type of service : %.5d |\r\n",ip->tos);
fprintf(stdout,"| Total length : %.5d | ",htons(ip->tot_len));
fprintf(stdout,"Identification : %.5d |\r\n",htons(ip->id));
fprintf(stdout,"| Time to live : %.5d | ",ip->ttl);
fprintf(stdout,"Protocol : %.5d |\r\n",ip->protocol);
fprintf(stdout,"| Checksum : %.5d |\r\n",ip->check);
fprintf(stdout,"-----------------------------------------------------\r\n");
}
void print_tcp_header(struct tcphdr * tcp){
fprintf(stdout,"[ Port : %.5d -> %.5d ]\n", ntohs(tcp->source), ntohs(tcp->dest) );
fprintf(stdout,"--------------------[TCP HEADER]---------------------\r\n");
fprintf(stdout,"| TCP Header length : %d * 32 bits = %d bytes |\r\n",tcp->doff, tcp->doff * 4);
fprintf(stdout,"| URG (URGENT) = %d | ",tcp->urg);
fprintf(stdout,"ACK (ACKNOWLEDGE) = %d |\r\n",tcp->ack);
fprintf(stdout,"| PSH (PUSH) = %d | ",tcp->psh);
fprintf(stdout,"RST (RESET) = %d |\r\n",tcp->rst);
fprintf(stdout,"| SYN (SYNCHRONIZE) = %d | ",tcp->syn);
fprintf(stdout,"FIN (FINISH) = %d |\r\n",tcp->fin);
fprintf(stdout,"-----------------------------------------------------\r\n");
}
void print_data(unsigned char * data, unsigned int size){
int j = 0, k = 0;
for( j = 0; j < size; j++)
{
if( k == 16)
{
j -= 16;
fprintf(stdout," ");
for(k = 0 ; k < 16 ; k++, j++)
{
if(data[j] < 127 && data[j] > 31)
fprintf(stdout, "%c", data[j]);
else
fprintf(stdout, ".");
}
j--;
k = 0;
fprintf(stdout,"\r\n");
}
else
{
fprintf(stdout,"%.2x ",data[j]);
k++;
}
}
j -= k;
while(k!=0)
{
if(data[j] < 127 && data[j] > 31)
fprintf(stdout, "%c", data[j]);
else
fprintf(stdout, ".");
k--;
j++;
}
fprintf(stdout,"\r\n");
}
void print_packet(const u_char * packetData){
struct iphdr * ip;
struct tcphdr * tcp;
ip = (struct iphdr *)(packetData+sizeof(struct ethhdr));
print_ip_header(ip);
switch(ip->protocol){
case 1 : printf("Internet Control Message Protocol (ICMP)\r\n");
break;
case 6 : printf("Transmission Control Protocol (TCP)\r\n");
tcp = (struct tcphdr *)(packetData+sizeof(struct ethhdr)+sizeof(struct iphdr));
print_tcp_header(tcp);
/* Data */
unsigned char * data = (unsigned char *)(packetData+sizeof(struct ethhdr)+sizeof(struct iphdr)+sizeof(struct tcphdr));
print_data(data, htons(ip->tot_len)-(ip->ihl * 4)-(tcp->doff * 4));
break;
case 17 : printf("User Datagram Protocol (UDP)\r\n");
break;
default : printf("Unknow\r\n");
break;
}
}
int main(void){
// Interfaces
pcap_if_t * alldevs;
pcap_if_t * d;
int ifNum;
int i=0;
pcap_t * captureHandle;
// Packet
struct pcap_pkthdr* packetHeader;
const u_char * packetData;
struct ethhdr * eth;
int res;
char errbuf[PCAP_ERRBUF_SIZE];
/* Retrieve the device list from the local machine */
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1)
{
fprintf(stderr,"Error in pcap_findalldevs_ex: %s\r\n", errbuf);
return EXIT_FAILURE;
}
/* Print the list */
for(d= alldevs; d != NULL; d= d->next)
{
printf("%d.\r\nName:\r\n\t%s\r\n", ++i, d->name);
if (d->description)
printf("Descriptions:\r\n\t%s\r\n\r\n", d->description);
else
printf(" (No description available)\r\n");
}
if (i == 0)
{
printf("\r\nNo interfaces found! Make sure WinPcap is installed.\r\n");
return EXIT_FAILURE;
}else{
printf("Enter the interface number (1-%d):",i);
scanf("%d", &ifNum);
}
if(ifNum < 1 || ifNum > i)
{
printf("\nInterface number out of range.\r\n");
/* Free the device list */
pcap_freealldevs(alldevs);
return -1;
}
/* Jump to the selected adapter */
for(d=alldevs, i=0; i< ifNum-1 ;d=d->next, i++);
captureHandle = pcap_open(d->name, PACKET_SIZE, 0, 1000, NULL, errbuf);
if( captureHandle == NULL){
fprintf(stderr, "pcap_open(): %s\r\n", errbuf);
pcap_freealldevs(alldevs);
return EXIT_FAILURE;
}
/* We don't need any more the device list. Free it */
pcap_freealldevs(alldevs);
/* start the capture */
while( (res = pcap_next_ex(captureHandle, &packetHeader, &packetData)) >= 0){
if(res == 0)
/* Timeout elapsed */
continue;
printf("\r\n\r\nPacket length: %d\r\n", packetHeader->len);
printf("Received at ..... %s\r\n",ctime((const time_t*)&packetHeader->ts.tv_sec));
eth = (struct ethhdr *) packetData;
print_eth_header(eth);
// Analyse ethernet type
switch(htons(eth->h_proto)){
case 0x0800 : fprintf(stdout,"Internet Protocol, Version 4 (IPv4)\r\n");
print_packet(packetData);
break;
case 0x0806 : fprintf(stdout,"Address Resolution Protocol (ARP)\r\n");
break;
case 0x8035 : fprintf(stdout,"Reverse Address Resolution Protocol (RARP)\r\n");
break;
case 0x809B : fprintf(stdout,"AppleTalk (Ethertalk)\r\n");
break;
case 0x80F3 : fprintf(stdout,"AppleTalk Address Resolution Protocol (AARP)\r\n");
break;
case 0x8100 : fprintf(stdout,"IEEE 802.1Q-tagged frame\r\n");
break;
case 0x8137 : fprintf(stdout,"Novell IPX (alt)\r\n");
break;
case 0x8138 : fprintf(stdout,"Novell\r\n");
break;
case 0x86DD : fprintf(stdout,"Internet Protocol, Version 6 (IPv6)\r\n");
print_packet(packetData);
break;
case 0x8847 : fprintf(stdout,"MPLS unicast\r\n");
break;
case 0x8848 : fprintf(stdout,"MPLS multicast\r\n");
break;
case 0x8863 : fprintf(stdout,"PPPoE Discovery Stage\r\n");
break;
case 0x8864 : fprintf(stdout,"PPPoE Session Stage\r\n");
break;
case 0x88A2 : fprintf(stdout,"ATA over Ethernet\r\n");
break;
default : fprintf(stdout,"Unknow packet\r\n");
break;
}
}
if(res == -1){
printf("Error reading the packets: %s\r\n", pcap_geterr(captureHandle));
return EXIT_FAILURE;
}
pcap_close(captureHandle);
return EXIT_SUCCESS;
}
Historique
- 04 juillet 2006 10:45:37 :
- Une petit correction pour l'affichage des données et ajout du .exe dans le zip.
- 24 janvier 2007 22:15:46 :
- Légère mise à jour de la source
Ajout d'une capture d'écran
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Analyseur de trame en C++ [ par zebulon88 ]
Bonjour Je cherche à analyser des trames tcp pour cela j'ai récupéré winpcap et un programme en C qui fonctionne très bien et m'affiche les packets s
Sniffer avec WinPcap [ par filou18fr ]
Bonjour, Je vous présente donc mon problème. Dans le cadre d'un projet de fin d'etude je dois développer un sniffer en C avec la librai
Besoin d'aide au dévellopement d'un Sniffer [ par beb30 ]
Bonjour à tous (et à toutes!!),je débute un projet de fin d'étude qui à pour but de réaliser un Sniffer. Ayant peu de co
aide de programmation winpcap [ par kefranc6 ]
bonjour je suis étudiant en informatique et j'ai un projet à faire mes je ne comprend rien en réseau, si vous pouviez m'aider.Il faut que j'écrive un
VC++ WinPcap Sniffer : atteindre la carte réseau du serveur [ par rieppe ]
Bonjour à tous !J'ai deja poser une question sur le forum concernant ce projet.Je vais vous mettre tout dabord dans le contexte : Je suis etudiant à
Ecrire un sniffer Arp [ par jlbrd ]
Existe-t-il un moyen sous Windows avec winsock2 de programmer un sniffer capable de récupérer l'entête arp des paquets. En effet en cr&
analyseur de protocole (capture de trame, sniffer de trame) [ par oukid ]
bonjour dans le cadre de mon PEF , je travail sur les analyseurs de protocoles (capture de desencapsulation des trame) et j'aimerais bien avoir de la
analyseur de trames (Sniffeur) [ par LaTatadu91 ]
Salut,Bon ce sujet n'est pas sur la programmation mais c'est lié a cela ....Voila je cherche a utiliser un sniffeur j'ai DL ethersnoop, j'ai entendu d
Aide Sniffer Wifi [ par cadavor ]
Bonjour,J'ai un problème avec un projet que je n'arrive pas à commencer !Je possède une carte électronique (avec un FPGA, une borne wifi et une caméra
Affichage d'une image [ par cadavor ]
Bonjour,J'ai créé un programme qui récupère des trames ethernet par liaison wifi.Les données contenues dans ces trames sont les pixels d'une image (64
|
Derniers Blogs
WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui l'ont sagement suivi. Je profite de ce poste pour fai...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVéTECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVé par ROMELARD Fabrice
Speaker : Guillaume Rochette Cette session est dédiée à fournir le retour sur la mise en place d'un cloud privé (IaaS) par Osiatis pour son compte ou celui de ses clients. Ce projet s'est déroulé sur 4 mois et a permis de faire évoluer...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|