2016-04-20 2 views
0

В настоящее время я пытаюсь прочитать некоторые файлы PCAP с помощью WinPCAP-API. С this example Мне удалось прочитать данные, временную метку и длину. Но я не понимаю, как читать исходные и целевые IP-адреса и порты?Как читать порты и ip-адреса из PCAP-файла с помощью WinPCAP Api?

ответ

1

Но я не понимаю, как читать исходные и целевые IP-адреса и порты?

Разбирая необработанные данные пакета, которые дает WinPcap; libpcap/WinPcap не предоставляют API для анализа необработанных пакетных данных (поскольку разные приложения libpcap/WinPcap имеют разные потребности - приложение обнаружения вторжений, такое как Snort, и анализатор пакетов, такой как tcpdump или Wireshark, делают разные вещи с данными).

См., Например, libtins как библиотеку C++ для проведения вскрытия пакетов, или libpcap tutorial для примера того, как делать рассечение самостоятельно.

+0

Спасибо, я попробую! – honiahaka10

+0

После некоторых изменений 'sniffex.c' из' libpcap tutorial' был успешно скомпилирован. Но я не понимаю, какие изменения нужно сделать для чтения моего pcap-файла? Я пробовал 'dev =" D: \ path \ to \ udp.pcap ", но это приводит к сбою программы. Я также попробовал 'dev =" port 4321 "' просто прочитать мой файл, пока он переигрывается с 'Colasoft-Player', но я получаю тот же самый крах (вывод консоли): _Device: port 4321; Число пакетов: 10; Выражение фильтра: ip; Не удалось открыть порт устройства 4321: Ошибка открытия адаптера: система не может найти устройство. (20); _ – honiahaka10

+1

Это не сбои, это сообщения об ошибках. ['sniffex.c'] (http://www.tcpdump.org/sniffex.c) - это * не * программа, которая читает файлы pcap, это программа, которая захватывает любые устройства, поддерживаемые libpcap, - которые не включают в себя сеть портов, таких как «порт 4321». Вы должны изменить его, чтобы использовать 'pcap_open_offline()', а не 'pcap_open_live()', чтобы он считывал файлы захвата. –