I. Apa itu SnifferFox.
II.Cara kerja SnifferFox
III.Struktur direktori SnifferFox
IV.Deskripsi fungsi SnifferFox.
V. Fitur SnifferFox
VI.Perpanjang SnifferFox
VII.Penulis
VIII.Kesimpulan
I. Apa itu SnifferFox
SnifferFox adalah sniffer (Sniffer) yang berjalan pada platform Windows. Digunakan untuk mencegat semua paket data yang melewati kartu jaringan tertentu dari komputer lokal, dan menganalisis serta mengumpulkan statistik pada paket-paket ini.
SnifferFox dikembangkan berdasarkan Winpcap yang merupakan proyek open source. Untuk mendapatkan paket data asli, kami memilihnya (karena Socket bekerja pada lapisan IP dan tidak bisa mendapatkan paket ARP dan RARP, jadi kami tidak menggunakannya). Oleh karena itu, silakan instal Winpcap sebelum Anda menginstal SnifferFox, jika tidak, Anda akan ditanya bahwa kartu jaringan tidak dapat ditemukan.
Kami memilih Borland C++Builder untuk mengembangkan Sniffer ini Setelah hampir 2 bulan kerja keras, kami menulis hampir 6.000 baris kode (file docs/codestat.txt memiliki statistik terperinci), dan perangkat lunak pada dasarnya telah dikembangkan. sekarang kami dapat merilis versi Alpha-nya. Namun, mungkin masih banyak kesalahan yang belum kami temukan, dan ini mungkin diperbaiki di versi mendatang.
SnifferFox adalah perangkat lunak gratis dan ramah lingkungan yang tidak memerlukan instalasi atau registrasi. Kami berjanji bahwa kami tidak akan pernah mengubah registri komputer Anda dan dapat dijalankan secara langsung (tentu saja, untuk kenyamanan Anda, kami telah membuat paket instalasi).
II. Prinsip Kerja SnifferFox Perangkat lunak pertama-tama mengatur kartu jaringan ke mode promiscuous, kemudian memperoleh data yang diterima oleh kartu jaringan, menganalisis paket data sesuai dengan protokol TCP/IP, menyaring beberapa paket sesuai dengan kebutuhan pengguna, dan kemudian menyaring paket yang tersisa. Paket data ditulis ke dalam buffer (blok memori dengan ukuran tertentu, yang dapat diatur secara manual sesuai dengan ukuran memori komputer pengguna), dan ditampilkan pada antarmuka pengguna buffer penuh, sistem akan secara otomatis menulis data di buffer.
Gambar di bawah ini adalah ilustrasi sederhana.
SnifferFox adalah sistem multi-thread, yang secara kasar dapat dibagi menjadi 3 thread (hanya 2 yang benar-benar digunakan selama implementasi), thread penangkapan paket (Sniffer Thread), thread analisis dan pemfilteran protokol, dan antarmuka pengguna. Bekerja pada lapisan data link, ia dapat memperoleh bingkai data asli, sehingga SnifferFox dapat mendukung protokol dasar seperti ARP dan RARP.
Karena jumlah data dalam paket yang dicegat oleh Sniffer cukup besar, tidak realistis untuk menyimpan semua paket ini di memori, jadi di sini kami memperkenalkan dua konsep dalam sistem operasi, Cache dan Buffer. Cache merupakan linked list yang menyimpan paket data untuk sementara. Agar tidak terlalu membebani komputer pengguna, kami membatasi panjang maksimum daftar tertaut ini hingga 5000. Ketika panjang linked list ini mencapai batas atas yang ditetapkan oleh pengguna, sistem akan secara otomatis menulis data dalam linked list ke Buffer dan kemudian menghapus Cache.
Buffer adalah file biner yang terdiri dari paket data satu per satu. Sebaiknya kita menyebut setiap paket sebagai rekor. Panjangnya tidak tetap, terutama karena tidak ada cara untuk menentukan ukuran paket data.
Terdiri dari 4 bagian, ID (4 byte), offset segmen (4 byte), informasi terkait bingkai data (16 byte), data (panjangnya bervariasi, tetapi dapat dihitung sesuai rumus perhitungan pada gambar). Offset segmen adalah panjang rekaman, yang terutama digunakan untuk menentukan posisi akhir rekaman dan posisi awal rekaman berikutnya.
III.Struktur Direktori SnifferFox Tentu saja yang harus kami jelaskan di sini adalah struktur direktori versi rilis dan versi pengembangan berbeda semuanya ada dalam versi rilis, jadi di sini kami hanya memperkenalkan direktori versi pengembangan, yang dapat dibandingkan dengan versi rilis (lihat docs/dir.txt).
+Snifferfox
+Bin File biner yang dikompilasi oleh kompiler memiliki file perpustakaan tautan dinamis
+ Konfigurasi file konfigurasi
+ Gambar gambar
+ File perantara Obj yang dihasilkan oleh kompiler
+Direktori dokumen Dokumen
+Direktori proyek proyek
+Kode inti inti, terutama struktur data yang ditentukan sendiri dan implementasinya
+Kode Gui untuk mengimplementasikan antarmuka grafis
+Dukungan multi-bahasa Lang
+Direktori cache cache, digunakan untuk menyimpan file-file sementara
+ Kontrol pihak ketiga yang digunakan dalam sistem 3Com
+Simpan direktori pengguna, digunakan untuk menyimpan file pengguna
IV.Deskripsi fungsi SnifferFox
1. Intersepsi paket data Pengguna dapat menentukan kartu jaringan komputer, lalu menggunakan SnifferFox untuk mencegat semua paket data yang melewati kartu jaringan tersebut. Setelah mencegat paket-paket tersebut, sistem akan menampilkan ringkasan informasi paket dalam bentuk daftar dan informasi spesifik paket dalam bentuk panel sesuai kebutuhan.
2. Pemfilteran paket: Setelah kami mendapatkan paket yang memenuhi persyaratan kami, kami dapat memfilter paket yang dicegat. Menurut persyaratan yang berbeda, kami dapat menentukan 2 filter berbeda: filter protokol dan filter alamat IP. Kedua filter ini bekerja secara bersamaan. Hanya paket yang memenuhi kedua persyaratan ini yang akan dipertahankan, dan paket lain yang tidak memenuhi persyaratan akan dibuang.
3. Statistik paket Untuk memudahkan pengguna memahami distribusi paket yang disadap, kami menyediakan fungsi statistik paket data, yang menghitung persentase dan jumlah paket menurut tingkat protokol yang berbeda. Tampilkan dalam bentuk diagram.
4. Analisis protokol Menurut jenis paketnya, kami akan menganalisis dan menampilkan data paket sesuai dengan situasi yang berbeda. SnifferFox mendukung sejumlah besar jenis protokol, mulai dari lapisan data link hingga lapisan aplikasi.
Protokol di bawah lapisan aplikasi dianalisis secara rinci dan setiap bidang dalam paket data dikeluarkan. Sedangkan untuk lapisan aplikasi, saat ini baru teridentifikasi sebanyak 112 protokol. Namun karena banyaknya protokol lapisan aplikasi dan masing-masing protokol cukup kompleks, kami belum melakukan analisis mendalam.
5. Penyortiran cerdas Untuk memudahkan pengguna menemukan paket tertentu dengan cepat, kami menyediakan fungsi penyortiran cerdas. Ketika pengguna berhenti mencegat paket data, ia hanya perlu mengklik salah satu kolom dalam daftar, dan sistem akan secara otomatis mengurutkan. data dalam daftar. Untuk mengurutkan dalam urutan menaik, klik lagi untuk mengganti metode pengurutan.
6. Mendeteksi informasi kartu jaringan Sistem dapat secara otomatis mendeteksi jumlah kartu jaringan dalam sistem (termasuk kartu jaringan virtual) dan secara dinamis menampilkannya dalam daftar menu. Pada saat yang sama, ia dapat mendeteksi informasi yang relevan dari kartu jaringan.
7. Setelah diuji sebagai proses daemon untuk mencegat paket, SnifferFox dapat berjalan di komputer selama beberapa hari tanpa crash. Oleh karena itu, kita dapat menggunakannya sebagai program intersepsi paket khusus dan menjalankannya seperti proses daemon (tentu saja, ini sudah pasti keterbatasan. Ketika ketika ada terlalu banyak paket yang disadap, seperti beberapa gigabyte, itu agak sulit, karena dalam versi ini, kami belum membagi file Buffer menjadi beberapa bagian.
8. Tampilan status dinamis Agar tidak mempengaruhi pekerjaan pengguna lainnya saat mencegat paket, kita dapat meminimalkan SnifferFox, dan kemudian secara otomatis akan hilang di taskbar dan hanya menampilkan ikon baki kecil. Saat berfungsi, ikonnya akan berkedip secara dinamis dan membeku ketika dihentikan. Selain itu, kami juga membuat jendela mengambang kecil untuk menampilkan status sistem, yang secara default ditempatkan di bagian atas jendela.
9. Menyimpan dan memuat paket data. Pengguna dapat menyimpan paket yang disadap ke file tertentu (ekstensi *.sni), dan kemudian memuatnya melalui SnifferFox bila diperlukan. Dengan cara ini, paket data dan paket yang disadap dapat dilihat di sana tidak ada perbedaan sama sekali, dan Anda juga dapat secara dinamis memutuskan halaman mana yang akan dilihat (sistem sudah memiliki fungsi paging, dan ini adalah paging dinamis. Kita dapat menentukan sendiri jumlah record pada setiap halaman).
10. Konten opsi pengguna yang disimpan dan opsi sistem disimpan di config/config.ini, yang merupakan file dalam. Setelah pengaturan pengguna (seperti antarmuka, bahasa, dll.) diubah, perubahan tersebut akan dicatat di file dan akan digunakan saat sistem dijalankan lagi. Secara otomatis akan merespons berdasarkan pengaturan ini.
V. Fitur SnifferFox
1. Sederhana dan praktis. Kesederhanaan adalah tujuan kami. Meskipun desain dan implementasi sistem relatif rumit, kami lebih suka pengguna melihat sistem yang sederhana dan sistem yang praktis.
2. Antarmuka yang indah
Tidak ada yang perlu dikatakan tentang antarmuka SnifferFox. Sistem ini berisi 5 set antarmuka standar (Winxp, MacOS, Protein, DeepBlue, BlueGrass). Antarmuka sistem dapat diganti tepat waktu tanpa memulai ulang sistem, dan ini merupakan pengganti yang lengkap (Tentu saja ini berkat kontrol pihak ketiga kami).
3. Dukungan multi-bahasa Kami mempertimbangkan masalah ini saat merancang sistem, jadi SnifferFox sendiri mendukung multi-bahasa. Kami dapat dengan mudah memperluasnya. Kami hanya perlu menerjemahkan Bahasa/Bahasa Inggris ke dalam bahasa yang sesuai . Sistem sudah menyediakan dukungan untuk bahasa Cina dan Inggris, yang dapat dengan mudah dialihkan.
4. Memiliki skalabilitas yang relatif baik. Kami telah sepenuhnya mempertimbangkan skalabilitasnya dalam hal bahasa, antarmuka, dan protokol. Oleh karena itu, relatif mudah untuk mengembangkan versi baru berdasarkan versi ini. Ini memungkinkan Anda untuk menggunakan kembali kode yang ada dengan sangat baik.
5. Kenyamanan pengoperasian Ini adalah masalah yang banyak kami pertimbangkan. Kami berusaha semaksimal mungkin untuk membuat metode pengoperasian sistem sesuai dengan kebiasaan masyarakat, sehingga pengguna merasa nyaman dan mudah digunakan.
6. Mendukung sejumlah besar protokol. Di Ethernet, SnifferFox telah menganalisis hampir semua protokol di bawah lapisan aplikasi keluarga TCP/IP, dan dapat mengenali 112 protokol lapisan aplikasi.
VI.Perpanjang SnifferFox
Memperluas SnifferFox bukanlah tugas yang mudah kecuali Anda mengetahui strukturnya dengan baik. Tentu saja, sulit untuk melakukannya hanya dengan membaca dokumen ini sekarang. Kita dapat memperluasnya dalam 3 aspek:
1. Ekstensi protokol
SnifferFox menggunakan metode berorientasi objek untuk menganalisis desain dan implementasi, jadi untuk memperluasnya, Anda perlu menulis kelas analisis protokol yang sesuai untuk menyelesaikan masalah, dan kemudian menghubungkannya ke program utama. Hal ini memerlukan pemahaman rinci tentang struktur sistem saat ini.
2. Perluasan antarmuka dicapai dengan mengubah kontrol pihak ketiga SUIPack (direktori 3com).
3. Perluasan bahasa Ini adalah bagian paling sederhana dari fungsi perluasan di SnifferFox. Cukup terjemahkan file Lang/Inggris secara langsung.
VII.Penulis
Tim FoxBackBone: zhengsh, gourf
VIII.Kesimpulan Walaupun SnifferFox hanyalah sebuah software kecil, namun kita hanya dapat memahami sebagian kecilnya melalui dokumen ini, jadi jika ingin memahaminya secara detail, melalui dokumen ini saja tentu tidak cukup. Bacaan selanjutnya hanya source codenya saja, karena kita tidak mempunyai banyak waktu untuk menuliskan desain sistem secara detail.
Jika Anda mempunyai saran atau ide tentang SnifferFox setelah menggunakannya, baik itu pujian, kritik atau aspek lainnya, silakan berikan tanggapan ke email kami: shaohui_1983#163.com, gouruifeng_529#sohu.com, terima kasih atas dukungan Anda.
Selain itu, komponen Suipack dan WinPcap digunakan dalam program ini, silakan unduh dari situs ini