|
|
Capture de paquets avec libpcap
 |
| Auteur |
Message |
riadh
Inscrit le: 12 Oct 2008 Messages: 1 Localisation: Tunisie
|
Posté le: Ven Avr 10, 2009 7:47 pm Sujet du message: Capture de paquets avec libpcap |
|
|
/* partie declaration */
pcap_t *handle;
u_char *packet;
struct pcap_pkthdr *header;
pcap_dumper_t *dumpdesc;
. . . .
/* fonction callback */
pcap_loop(handle,-1, got_packet, NULL);
/* fonction de dump */
dumpdesc = pcap_dump_open(handle, fichier);
while (1)
{
packet = (u_char *) pcap_next(handle, header);
pcap_dump((u_char *) dumpdesc, header, packet);
}
Je veut afficher les paquets el les enregistrer au même temps.
J'ai appelé la fonction callback qui permet d'afficher les paquets (got_packet) dans un pcap_loop().
Pour l'enregistrement de paquets, j'ai ouvert un descripteur de fichier (dumpdesc) et j'ai appelé pcap_dump dans un loop.
Usage: ./nids -i wlan0 -d dumped.cap
Quand j'exécute j'obtient:
Périphérique: wlan0
Réseau: 192.168.1.0
Masque: 255.255.255.0
Erreur de segmentation
Avez vous une idée comment résoudre se problème ?
Merci _________________ The quieter you become, the more you are able to hear |
|
| Revenir en haut |
|
| Auteur |
Message |
analyzer

Inscrit le: 20 Déc 2004 Messages: 86 Localisation: Lyon
|
Posté le: Jeu Mai 28, 2009 9:47 pm Sujet du message: :) |
|
|
hmm, y a une fonction que j'utilise pour les dumps:
| Code: |
if (m_dumpEnabled)
{
if ((m_AdapterIP == m_ThirdPartyIP) && !bDumpActivated)
{
LogThread = fnDump(m_AdapterNAME.GetBuffer(), m_AdapterIP.GetBuffer(), m_TargetIP.GetBuffer(), m_AdapterGATEWAY.GetBuffer());
if (LogThread == NULL)
{
AfxMessageBox("Failed to create a thread for dump.");
}
bDumpActivated = true;
}
} |
Je peux te filer ma dll pour gérer les dumps si tu en as besoin (y a l'export de la fonction fnDump).
Sinon, jte conseille de regarder plutot la:
| Code: |
/* start the capture */
pcap_loop(adhandle, 0, packet_handler, (unsigned char *)dumpfile);
/* Callback function invoked by libpcap for every incoming packet */
void packet_handler(u_char *dumpfile, const struct pcap_pkthdr *header, const u_char *pkt_data)
{
/* save the packet on the dump file */
pcap_dump(dumpfile, header, pkt_data);
} |
|
|
| Revenir en haut |
|
|
Page 1 sur 1
|
|
|