Предоставляю вам немного отредаченный софт из паблика, вот он, полумое творение.
Написан на С. Его суть заключается в том что вы можете видеть все пакеты которые передаются по интернет трафику из подсетей.
Пишите ./netw <namefile>
и он выдает откуда исходит данный файл на сервер (отправка файла)
вот спойлер самого скрпита :
Написан на С. Его суть заключается в том что вы можете видеть все пакеты которые передаются по интернет трафику из подсетей.
Пишите ./netw <namefile>
и он выдает откуда исходит данный файл на сервер (отправка файла)
вот спойлер самого скрпита :
C:
#include <stdio.h>
#include <stdlib.h>
#include <pcap.h>
#include <netinet/ip.h>
#include <netinet/udp.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <time.h>
#define SNAP_LEN 65535
#define TIMESTAMP_SIZE 20
void packet_handler(u_char *user_data, const struct pcap_pkthdr *pkthdr, const u_char *packet) {
struct ip *ip_header;
struct udphdr *udp_header;
struct tcphdr *tcp_header;
u_int ip_len;
time_t current_time;
char timestamp[TIMESTAMP_SIZE];
ip_header = (struct ip *)(packet + 14);
ip_len = ip_header->ip_hl * 4;
if (ip_header->ip_p == IPPROTO_UDP) {
udp_header = (struct udphdr *)(packet + 14 + ip_len);
printf("%s > %s > ", inet_ntoa(ip_header->ip_src), user_data);
time(¤t_time);
strftime(timestamp, TIMESTAMP_SIZE, "%Y-%m-%d %H:%M:%S", localtime(¤t_time));
printf("%s\n", timestamp);
} else if (ip_header->ip_p == IPPROTO_TCP) {
tcp_header = (struct tcphdr *)(packet + 14 + ip_len);
printf("%s > %s > ", inet_ntoa(ip_header->ip_src), user_data);
time(¤t_time);
strftime(timestamp, TIMESTAMP_SIZE, "%Y-%m-%d %H:%M:%S", localtime(¤t_time));
printf("%s\n", timestamp);
}
}
int main(int argc, char *argv[]) {
char errbuf[PCAP_ERRBUF_SIZE];
pcap_if_t *alldevs;
pcap_if_t *dev;
pcap_t *handle;
struct pcap_pkthdr header;
const u_char *packet;
char *filename;
if (argc != 2) {
printf("Usage: %s <filename>\n", argv[0]);
return 1;
}
filename = argv[1];
if (pcap_findalldevs(&alldevs, errbuf) == -1) {
printf("Error finding devices: %s\n", errbuf);
return 1;
}
dev = alldevs;
handle = pcap_open_live(dev->name, SNAP_LEN, 1, 1000, errbuf);
if (handle == NULL) {
printf("Error opening device %s: %s\n", dev->name, errbuf);
pcap_freealldevs(alldevs);
return 1;
}
printf("Listening on device: %s\n", dev->name);
pcap_loop(handle, -1, packet_handler, filename);
pcap_freealldevs(alldevs);
pcap_close(handle);
return 0;
}
Последнее редактирование: