http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=8600 [º¹»ç]

#include <pcap.h>
#include <stdio.h>
// Äݹé ÇÔ¼ö (ÆÐŶÀ» ĸÃÄÇÒ ¶§¸¶´Ù È£ÃâµÊ)
void packet_handler(u_char *user_data, const struct pcap_pkthdr *pkthdr, const u_char *packet)
{
u_char c;
int i, j;
printf("Packet catured: \n");
printf("Packet length: %d bytes\n", pkthdr->len);
for(i = 0; i < pkthdr->len; i += 16)
{
// 16Áø¼ö ºÎºÐ Ãâ·Â
for(j = 0; j < 16; j++)
{
if(i + j < pkthdr->len)
printf("%02x ", packet[i + j]);
else
printf(" "); // ÆÐµù
}
printf(" ");
// ¾Æ½ºÅ° ºÎºÐ Ãâ·Â
for(j = 0; j < 16; j++)
{
if(i + j < pkthdr->len)
{
c = packet[i + j];
if(c >= 32 && c <= 126)
printf("%c", c);
else
printf(".");
}
}
printf("\n");
}
printf("\n");
}
int main(void)
{
pcap_t *handle;
char errbuf[PCAP_ERRBUF_SIZE];
char *dev;
// ³×Æ®¿öÅ© ÀåÄ¡ ¾ò±â
dev = pcap_lookupdev(errbuf);
if(dev == NULL)
{
printf("Device not found: %s\n", errbuf);
return -1;
}
// ÆÐŶ ĸÃÄ ½ÃÀÛ
handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
if(handle == NULL)
{
printf("Error opening device: %s\n", errbuf);
return -1;
}
// ÆÐŶ ĸÃÄ ½ÃÀÛ, ÆÐŶÀ» Çϳª¾¿ ó¸®ÇÏ´Â Äݹé ÇÔ¼ö ÁöÁ¤
if(pcap_loop(handle, 0, packet_handler, NULL) < 0)
{
printf("Error capturing packets: %s\n", pcap_geterr(handle));
return -1;
}
pcap_close(handle); // ĸÃÄ Á¾·á
return 0;
}
libpcap-dev°¡ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß »ç¿ëÇÒ ¼ö ÀÖ´Ù...
$sudo apt-get install libpcap-dev
ÄÄÆÄÀÏÇÒ ¶§ ÁÖÀÇÇÒ Á¡...
$gcc -o [ÆÄÀÏ] [¼Ò½ºÆÄÀÏ] -lpcap
¸Ç µÚ¿¡ -lpcapÀ» ºÙ¿©¾ß ÄÄÆÄÀÏ ¿¡·¯°¡ ¾È ¶ä...
|
Hit : 286 Date : 2025/04/20 08:53
|