3 Các Phương Pháp Xây Dựng
1.2.2 Làm việc với NET Socket
Nếu làm việc với các tầng cao, .NET Socket đã cung cấp sẵn các lớp TcpLis- tener, TcpClient và UdpClient:
Cơ chế làm việc của .NET Socket Để làm việc với tầng thấp hơn, ta phải dùng lớp Socket Khởi tạo Socket
Để khởi tạo 1 Socket ta sử dụng cấu tử: Socket (IPAddress, SocketType, ProtocolType);:
• Kết nối Socket:
Để kết nối Socket, ta sử dụng hàm Connect() với tham số là địa chỉ IP muốn kết nối tới.
Để gửi và nhận dữ liệu thông qua .NET Socket, ta sử dụng hàm Send() và
Receive() với các tham số phù hợp.
1.2.3 Demo
Demo thực hiện bắt gói tin IP sử dụng Socket
1.3 Winpcap
Sử dụng Winpcap để xây dựng sniffer có nghĩa là thực hiện chặn bắt ở mức network adapter.
1.3.1 Khái niệm
Winpcap là một thưu viện mã nguồn mở dành cho việc chặn bắt và phân tích gói tin trên nền hệ thống Win32.
Rất nhiều các ứng dụng mạng hiện nay dựa trên Socket truy cập mạng dựa vào hệ điều hành do hệ điều hành đã thực hiện hầu như các công việc ở mức thấp. Tuy nhiên, đôi khi ta cần truy cập vào dữ liệu nguyên thủy trên mạng mà không quan tâm tới giao thức mà nó sử dụng. Khi đó Winpcap sẽ là sự lựa chọn khi cho phép ta truy cập trực tiếp các gói tin tới mức của network adapter (trong phạm vi đề tài ta chỉ xét Ethernet). Winpcap có các mục tiêu chính sau đây:
• Chặn bắt các gói tin (raw packet), kể cả gói tin gửi/nhận của máy đang chạy ứng dụng chặn bắt lẫn gói tin chia sẻ thông qua nó.
• Lọc gói tin theo những quy luật định trước (giao thức, địa chỉ...). • Gửi raw packet qua mạng.
• Thống kê và báo cáo các thông tin liên quan.
Winpcap giống như những bộ thư viện chặn bắt gói tin khác như libpcap,... gồm có 2 thành phần:
• Packet Capture Driver
• Giao diện lập trình (nằm trong Packet.dll). Hoạt động của Winpcap được miêu tả trong hình sau: