jnbrunet
Messages postés258Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention13 novembre 2012
-
19 janv. 2008 à 07:01
jnbrunet
Messages postés258Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention13 novembre 2012
-
21 janv. 2008 à 05:50
Bonjour, j'essai depuis quelques temps de réaliser un petit sniffer personnel. J'utilise visual studio 2005. J'ai installé correctement winpcap. Lorsque j'essai de créer un petit projet à l'aide d'une source très simple utilisant winpcap (qui d'ailleurs est sur ce site), visual studio me lance "fatal error C1083: Impossible d'ouvrir le fichier include : 'pcap.h' : No suck file or directory." . Pourtant j'inclus bien la librairie wpcap.lib au début de mon code.
#include "pcap.h" // must be writing after the defines
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
};
/* 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++);
Voilà, si quelqu'un peu me guider un petit peu, je suis complètement perdu ! Les bons tutoriaux...de préférence en français sur le sujet sont très rares, voire presque inexistant !
cs_omnia
Messages postés240Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention22 mars 2009 19 janv. 2008 à 10:50
salut,
Impossible d'ouvrir le fichier include : 'pcap.h' : No suck file or directory. <<< tu as mis le fichier pcap.h avec les ressources dans le répertoire du projet, ou tu as ajouter le répertoire le contenant a ton projet ?
jnbrunet
Messages postés258Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention13 novembre 2012 20 janv. 2008 à 02:56
Effectivement je n'avais pas fais ca, mais maintenant j'ai un autre problème. J'arrive à compiler le programme, lorsque je l'exécute, il m,affiche bien les devices possibles, je choisis le bon, et lorsqu'il commence la capture, le programme plante avant meme d'afficher un packet....
Voici l'erreur :
Debug Assertion Failed!
Program: ...
File: loctim64.c
Line: 78
Expression: (*ptime <=_Max__TIME64_T)
For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.
Pourtant, lorsque j'utilise l'exemple compiler que l'on retrouve sur ce site, le programme marche parfaitement ! les packets s'affichent sans que le programme ne plante!