L1
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
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
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
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
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
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
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
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
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
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
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
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
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
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 ++
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
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
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
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
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
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