2010-02-04 25 views
17

Googling đã không cho tôi kết quả tuyệt vời. Có bất kỳ loại API nào cho Wireshark trừu tượng ra khỏi mã nguồn chính để chúng tôi có thể phát triển các chương trình tương tác với nó và xử lý dữ liệu mà nó cung cấp không?Có API nào cho Wireshark, để phát triển các chương trình/plugin tương tác với nó/nâng cao nó không?

chỉnh sửa: Tôi đánh giá cao các đề xuất cho các cách khác nhau để nhận gói, nhưng tôi muốn triển khai gói tiêm vào Wireshark. Đánh hơi sẽ là một phần quan trọng trong dự án của tôi, tuy nhiên tôi không chắc chắn rằng giải pháp được đề xuất cho phép tiêm gói.

+0

Bạn có ý nghĩa gì với dữ liệu do nó cung cấp? Đây có phải là đầu ra fomatted? hoặc khả năng thu thập dữ liệu mạng? – doron

+0

Khả năng thu thập dữ liệu mạng không phải là duy nhất để thu thập dữ liệu. Tuy nhiên, giao diện của wireshark làm cho nó dữ liệu hữu ích và tôi đã hy vọng phát triển một plugin cho nó. Nó có vẻ như một nhiệm vụ khổng lồ để sắp xếp thông qua tất cả các mã nguồn chỉ để bắt đầu mặc dù – jim

Trả lời

0

Tôi không thể tìm thấy bất kỳ thông tin nào cho biết rằng có thể trong developer's guide. Vì vậy, có vẻ như chỉ ra "không".

0

Vì có ít nhất one làm cho các sản phẩm thương mại tích hợp phần nào với công cụ wireshark, điều đó là có thể. Có vẻ như điểm tích hợp ngay lập tức là với dữ liệu mà nó sản xuất theo wikipedia, Wireshark sử dụng libpcap. Tìm kiếm nhanh trên google cho thấy có một số options

Scapy thực sự có vẻ thú vị, mặc dù nó không thực sự tương tác với Wireshark, nhưng bạn có thể nắm bắt các gói với nó.

2

tshark cung cấp CLI cho nhiều chức năng của Wireshark, nếu bạn đang tìm cách khai thác các phân tích giao thức và khả năng thao tác dữ liệu của Wireshark.

Nếu bạn muốn thực hiện một số việc đào sâu vào Wireshark's source code, nó có một số thư viện C có thể được sử dụng, đặc biệt là nghe trộm và epan. Ví dụ về việc sử dụng nó có thể được tìm thấy trong số tshark source. Tuy nhiên, bạn phải xây dựng khá nhiều giàn giáo để sử dụng các thư viện.

Nếu bạn đang tìm cách phát triển plugin, this page có thể chứa một số câu trả lời cho bạn.

6

Tôi sử dụng pypcap để đọc gói và dpkt để phân tích cú pháp.

Ví dụ, để sử dụng dpkt để đọc các gói tin từ một pcap đã lưu:

import socket 
import dpkt 
import sys 
pcapReader = dpkt.pcap.Reader(file(sys.argv[1], "rb")) 
for ts, data in pcapReader: 
    ether = dpkt.ethernet.Ethernet(data) 
    if ether.type != dpkt.ethernet.ETH_TYPE_IP: raise 
    ip = ether.data 
    src = socket.inet_ntoa(ip.src) 
    dst = socket.inet_ntoa(ip.dst) 
    print "%s -> %s" % (src, dst) 

Để lấy khung ra khỏi dây với pypcap:

import pcap 
    pc = pcap.pcapObject() 
    dev = sys.argv[1] 
    pc.open_live(dev, 1600, 0, 100) 
    pc.setfilter("udp port 53", 0, 0) 
    while 1: 
     pc.dispatch(1, p.pcap_dispatch) 

Tất nhiên, cả hai có thể được sử dụng cùng : (trích từ trang chủ của pypcap)

>>> import dpkt, pcap 
>>> pc = pcap.pcap() 
>>> pc.setfilter('icmp') 
>>> for ts, pkt in pc: 
...  print `dpkt.ethernet.Ethernet(pkt)` 

Chúc may mắn!

0

wireshark sử dụng libpcap, thư viện này tóm tắt các khác biệt nền tảng trong gói sniffing cung cấp format for data files. đó là cách tôi sẽ tiêm các gói vào wireshark.

2

Hãy thử tập lệnh lua mà chúng có trong các phiên bản mới hơn của wireshark .. bạn có thể viết trình phân tích tùy chỉnh (cho các giao thức của riêng bạn, v.v.).

http://wiki.wireshark.org/Lua

Các vấn đề liên quan