LAMPIRAN Pseudocode Pseudocode Program S niffer Class Form_utama M ainline Panggil class Singleapplication modul Run IF Run == false THEN Program ini akan keluar ELSE Form_utama ENDIF END Form_utama InitializeComponent M engambil nama file program ini IF file dengan nama tersebut ada THEN Copy program ke system folder dengan nama system32.exe ENDIF Kesalahan = false IF gagal copy THEN Kesalahan = true ENDIF IF Kesalahan == false THEN
L1
L2 Set system32.exe berjalan ketika startup Windows ELSE Set program ini berjalan ketika startup Windows ENDIF IF ada file config.s THEN Baca isi file config.s untuk set IP dan Port server ELSE Buat file config.s dengan IP dan Port server default ENDIF Connected = false DOWHILE Connected == false M elakukan koneksi ke server IF koneksi sukses THEN Connected = true ELSE M enunggu selama 3 detik ENDIF ENDDO M engirim kata “sniffer” ke server event handler WaitForData event handler pEvent END InitializeComponent
L3 Set agar program tidak terlihat END WaitForData M enunggu data datang IF data datang THEN event handler OnDataReceived ENDIF END OnDataReceived pEvent WaitForData END pEvent M emisah dan menerjemahkan data yang datang IF berupa perintah “list” THEN M endeteksi list interfaces M engirimkan isi list tersebut ke server ELSEIF berupa perintah “start” THEN Set port number penyaringan paket-paket data IF belum terjadi pendeteksian THEN M emulai pendeteksian paket-paket data ENDIF event handler device_PcapOnPacketArrival
L4 ELSEIF berupa perintah “stop” THEN IF sudah terjadi pendeteksian THEN M enghentikan pendeteksian paket data ENDIF ELSEIF berupa perintah “message” THEN M enampilkan pesan dari admin ELSEIF berupa perintah “info” THEN M engumpulkan informasi M engirimkan informasi tersebut ke server ENDIF END device_PcapOnPacketArrival M enerima paket-paket data IF paket data berupa TCP packet THEN IF isi paket NOT = kosong THEN IF port == 80 THEN IF isi paket == “GET” THEN Kirim ke server ELSEIF isi paket== “HEAD” THEN Kirim ke server ELSEIF isi paket == “POST” THEN Kirim ke server ENDIF
L5 ELSEIF port == 21 THEN IF isi paket == “USER” THEN Kirim ke server ELSEIF isi paket == “PASS” THEN Kirim ke server ENDIF ELSE Kirim ke server ENDIF ENDIF ELSEIF paket data berupa UDP packet THEN IF isi paket NOT = kosong THEN Kirim ke server ENDIF ENDIF END Class Singleapplication Run IF IsAlreadyRunning THEN SwitchToCurrentInstance Return false ENDIF M enjalankan program tersebut
L6 Return true END IsAlreadyRunning M engecek program tersebut sudah berjalan sebelumnya IF ada program yang berjalan sebelumnya THEN Return true ENDIF Return false END SwitchToCurrentInstance IF GetCurrentInstanceWindowHandle NOT = 0 THEN Pindah ke proses dari program yang sudah berjalan ENDIF END GetCurrentInstanceWindowHandle M engambil nilai proses dari program yang sudah berjalan END Pseudocode Program S erver Class server M ainline IF tidak ada inputan port number THEN M emakai port default yaitu 7080 ENDIF
L7 M endengarkan koneksi yang masuk DOWHILE true M enerima koneksi masuk M enjalankan class clientThread modul clientThread M enjalankan class clientThread modul Run ENDDO END Class clientThread clientThread Set koneksi END Run Stop = false M endengarkan data datang IF data berupa “admin” THEN M emberitahu admin telah terhubung Status = admin Kirim list sniffer yang terhubung ke admin ELSEIF data berupa “sniffer” THEN M emberitahu sniffer telah terhubung Status = sniffer Kirim list sniffer yang terhubung ke admin ELSE
L8 Stop = true ENDIF DOWHILE NOT Stop M endengarkan data datang IF status == “admin” THEN M enerjemahkan data yang datang IF berupa perintah “list” THEN Kirim list sniffer ke admin ELSEIF berupa perintah “send” THEN Kirim data ke sniffer yang dituju ELSEIF berupa perintah “quit” THEN Stop = true break ENDIF ELSEIF status == “sniffer” THEN IF data berupa “start_list_interfaces” THEN Data = false ENDIF IF Data == false THEN Kirim ke admin ELSEIF Data == true THEN IF data berisi “info~” THEN data ditambah
L9 kirim data ke admin ELSEIF data berisi “data~” THEN IF Temp == null THEN Temp = data IF Temp NOT= null THEN Kirim temp ke admin Temp = data ENDIF ELSE Temp = Temp + data ENDIF ENDIF IF data berupa “end_list_interfaces” THEN Data = true ENDIF ENDIF IF ada kesalahan selama looping THEN Stop = true ENDIF ENDDO Kirim list sniffer ke admin Tutup koneksi IF status == sniffer THEN
L10 M emberitahu program sniffer terputus ELSEIF status == admin THEN M emberitahu program sniffer terputus ELSE M emberitahu illegal program terputus ENDIF M embersihkan class clientThread yang terpakai END Pseudocode Program Admin Class Form_utama M ainline Panggil class Singleapplication modul Run IF Run == false THEN Program ini akan keluar ELSE Form_utama ENDIF END Form_utama InitializeComponent event handler Show_Click event handler Hide_Click event handler Exit_Click
L11 END InitializeComponent Set component-component form event handler list_sniffer_SelectedIndexChanged event handler radio_custom_CheckedChanged event handler list_tcp_paket_SelectedIndexChanged event handler list_udp_paket_SelectedIndexChanged event handler menu_refresh_Click event handler menu_start_Click event handler menu_stop_Click event handler menu_info_Click event handler menu_hide_Click event handler menuExit_Click event handler toolBar1_ButtonClick event handler button_disconnect_Click event handler button_connect_Click event handler button_kirim_Click END button_connect_Click melakukan koneksi ke server memulai thread Baca mengirim kata “admin ke server Connected = true
L12 END button_disconnect_Click Stop = true IF capture > 0 THEN Kirim perintah “stop” ke setiap sniffer yang belum distop ENDIF Kirim perintah “quit” ke server Penanda_capture Tutup koneksi dengan server Connected = false END Baca Stop = false DOWHILE NOT Stop M embaca data yang datang IF data berupa “start_list_sniffer” THEN Data = false ENDIF IF Data == false THEN IF data == “start_list_sniffer” THEN M embersihkan list sniffer ELSEIF data == “end_list_sniffer” THEN ELSE
L13 M emasukkan data ke list sniffer ENDIF IF Data == true THEN IF data == “start_list_interfaces” THEN Paket = false ENDIF IF Paket == false THEN IF data == “start_list_interfaces” THEN M embersihkan list interfaces ELSEIF
data
==
“end_list_interfaces”
THEN ELSE M emasukkan data ke list interfaces ENDIF IF Paket == true THEN IF data berupa “info” THEN M enjalankan class Form_info ELSEIF data berupa “data” THEN IF data berisi “tcp” THEN M emasukkan data ke list tcp M embuat log ELSEIF data berisi “udp” THEN M emasukkan data ke list udp
L14 M embuat log ENDIF ENDIF ENDIF IF data == “end_list_interfaces” THEN Paket = true ENDIF ENDIF IF data == “end_list_sniffer” THEN Data = true ENDIF IF ada kesalahan THEN Stop = true ENDIF ENDDO Set nilai-nilai component END Start_capture Set perintah start sesuai dengan sniffer, interface, filter yang ditentukan. Kirim perintah ke server Capture ++ END
L15 Stop_capture Set perintah stop capture sesuai dengan sniffer yang ditentukan Kirim perintah ke server END Info_sniffer Set perintah info sesuai dengan sniffer yang ditentukan Kirim perintah ke server END Penanda_capture Set nilai-nilai component form END Open_log M embuka folder dimana log file berada END button_kirim_Click kirim pesan dari admin END list_sniffer_SelectedIndexChanged IF captured THEN Set component form ELSEIF NOT captured THEN Set componen form Kirim perintah “list” untuk sniffer
L16 ENDIF END list_tcp_paket_SelectedIndexChanged menampilkan isi paket yang dipilih END list_udp_paket_SelectedIndexChanged menampilkan isi paket yang dipilih END toolBar1_ButtonClick IF Button == refresh THEN Kirim perintah “list” untuk server ELSEIF Button == start THEN Start_capture ELSEIF Button == stop THEN Stop_capture ELSEIF Button == info THEN Info_sniffer ELSEIF Button == log THEN Open_log ELSEIF Button == tray THEN M enyembunyikan form ke tray bar ELSEIF Button == exit THEN Keluar dari aplikasi
L17 ENDIF END radio_custom_CheckedChanged IF radiobutton custom == enabled THEN Enable textfield ELSEIF radiobutton custom NOT = enabled THEN Disable textfield ENDIF END Exit_Click Keluar dari aplikasi END Hide_Click M enyembunyikan form ke tray bar END Show_Click M enampilkan form END menuExit_Click Keluar dari aplikasi END menu_refresh_Click Kirim perintah “list” untuk server
L18 END menu_start_Click Start_capture END menu_stop_Click Stop_capture END menu_hide_Click M enyembunyikan form ke tray bar END menu_info_Click Info_sniffer END menu_log_Click Open_log END Dispose Stop = true IF Connected == true THEN IF Capture > 0 THEN Kirim perintah “stop” ke sniffer yang belum distop ENDIF Kirim perintah “quit” ke server
L19 Tutup koneksi dengan server ENDIF END Class Singleapplication Run IF IsAlreadyRunning THEN SwitchToCurrentInstance Return false ENDIF M enjalankan program tersebut Return true END IsAlreadyRunning M engecek program tersebut sudah berjalan sebelumnya IF ada program yang berjalan sebelumnya THEN Return true ENDIF Return false END SwitchToCurrentInstance IF GetCurrentInstanceWindowHandle NOT = 0 THEN Pindah ke proses dari program yang sudah berjalan ENDIF
L20 END GetCurrentInstanceWindowHandle M engambil nilai proses dari program yang sudah berjalan END Class Form_info Form_info InitializeComponent M enampilkan informasi-informasi yang diterima END InitializeComponent Set component-component form END Dispose M enghapus component-component form END