22 BAB 3 PERANCANGAN PROGRAM APLIKASI 3.1. Spesifikasi Rumusan Rancangan Perancangan program aplikasi ini terbagi menjadi 3 bagian yaitu proses parsing, proses perhitungan obfuskasi, dan proses pembentukan obfuscated SWF file. Ketiga proses tersebut dilakukan secara berurutan. Proses parsing Proses ini harus dilakukan terlebih dahulu guna memilah informasi yang tidak diperlukan dan hanya membaca informasi yang diperlukan. Terdapat dua metode parsing, yakni tags parsing yang digunakan untuk mendapatkan informasi file SWF terkait, dan action parsing yang bertugas mencari dan menyaring variabel-variabel maupun nama objek yang terdapat di dalam ActionScript. Proses perhitungan obfuskasi Dengan menggunakan metode enkripsi RSA, perhitungan hasil pengacakan dilakukan. Hasil pengacakan untuk setiap variabel dan nama objek akan selalu berbeda, tergantung dari input key yang dimasukkan. Proses pembentukan obfuscated SWF file Setelah didapat hasil perhitungan obfuskasi maka file SWF yang terobfuskasi dapat dibuat. User dapat membandingkan hasil sebelum dan sesudah obfuskasi dengan bantuan program decompiler.
23 3.2. Perancangan Modul Terdapat enam modul yang dirancang khusus untuk proses obfuskasi file SWF. Modul-modul tersebut adalah modul menu utama, modul SWF Info, modul SWF Sprite Member, modul Parse Action, modul Obfuscation, dan modul Report. Semua modul tersebut tergabung dalam modul menu utama. User hanya cukup memilih modul-modul tersebut dalam bentuk tampilan tab seperti layaknya tampilan screen display properties pada sistem operasi Windows. 3.2.1 Modul menu utama Modul menu utama digunakan sebagai tempat untuk menampilkan semua modul yang ada. Secara default, modul menu utama ini pertama kali menampilkan modul SWF info. Modul menu utama mempunyai fungsi-fungsi umum yang dibutuhkan baik oleh setiap modul yang ada maupun keseluruhan aplikasi. Fungsi-fungsi tersebut yakni, open file, exit, serta beberapa menu item sebagai tambahan menu berkaitan dengan program aplikasi ini. Dengan demikian, modul apapun yang sedang user aktifkan tetap dapat mengakses fungsi-fungsi tersebut tanpa perlu kembali ke modul tertentu. Hal ini mengurangi ketergantungan terhadap modul lainnya serta mempercepat aksesibilitas program. Khusus pada fungsi open file, setelah user selesai menentukan file input SWF, secara otomatis file input SWF tersebut akan di-parsing dengan metode tags parsing. Hasil parsing tersebut dapat dilihat pada modul SWF Info.
24 Open File Exit SWF Info SWF Member List Parse Action Obfuscation Report Gambar 3.1 Rancangan layar menu utama
25 Menunggu Proses Tampil menu utama Pilihan Menu Utama Pilih Report Tampil Modul Report Pilih SWF Info Tampil Modul SWF Info Pilih SWF Member List Tampil Modul SWF Member List Pilih Parse Action Tampil Modul Parse Action Pilih Obfuscation Tampil Modul Obfuscation SWF Info SWF Member List Parse Action Obfuscation Report Gambar 3.2 Diagram Transisi dari menu utama 3.2.2 Modul SWF Info Modul SWF Info berfungsi menampilkan informasi yang berkaitan dengan file input SWF yang telah ditentukan oleh user sebelumnya. Informasi ini secara otomatis akan muncul setelah proses tags parsing selesai.
26 Pada tabel Tags List dapat dilihat tag-tag apa saja yang terdapat pada file input SWF. Terdapat 49 tag yang tersedia sampai saat ini dan kombinasi tag-tag tersebut tergantung dari file input SWF. Pada bagian SWF Information, user dapat melihat informasi mengenai SWF Type (compressed SWF atau uncompressed SWF), Version (1 sampai 7), File Size (dalam satuan byte dan kilobyte), Movie Dimension (dalam satuan pixel), Frame Rate (dalam satuan frame per second / FPS), dan Background Color (hexadecimal color format) dari file SWF terkait. Informasi ini tersimpan di dalam header pada struktur file SWF. Open File Exit SWF Info SWF Information SWF Type : Version : File Size : SWF Member List Movie Dimension : Parse Action Frame Rate : Total Frames : Obfuscation Background Color : Report Tag List No SWF Tags Size Position Hex Start Tag Tag Length Gambar 3.3 Rancangan layar modul SWF Info
27 Gambar 3.4 Diagram Transisi modul SWF Info 3.2.3 Modul SWF Member List Modul ini hanya khusus menampilkan informasi mengenai member object yang terdapat di dalam file SWF. Yang tergolong dalam member object adalah sprite (baik movie clip maupun button), edit text (baik input text maupun dynamic text), dan frame label. Di dalam source code ActionScript nanti, nama objek yang dipanggil merupakan
28 salah satu member object yang dipanggil. Informasi ini juga berguna saat user memilih variabel atau nama objek yang ingin diacak pada modul obfuscation. Apabila file SWF terdapat penggunaan komponen (seperti scrollbar, combo box, progress bar, dll) maka modul ini berfungsi sebagai panduan user untuk melihat nama-nama objek yang digunakan oleh komponen tersebut. Khusus untuk komponen, nama objek yang berkenaan dengan komponen tersebut tidak boleh diacak dikarenakan adanya validasi khusus bagi komponen terkait. Apabila terjadi pengacakan salah satu nama objek komponen tersebut maka komponen tersebut tidak akan berjalan sebagaimana mestinya. Open File Exit SWF Info SWF Member List Parse Action Obfuscation Report SWF Member List SWF Member Type Gambar 3.5 Rancangan layar modul SWF Member List
29 Gambar 3.6 Diagram Transisi modul SWF Member List 3.2.4 Modul Parse Action Modul ini merupakan inti dari metode parsing. Dengan modul ini user dapat mengetahui variabel/nama objek apa saja yang terdapat di dalam file SWF. Modul ini juga mempunyai fungsi sebagai filter untuk membedakan reserved-word dan identifier dari bahasa pemrograman ActionScript agar tidak dianggap sebagai variabel / nama objek. Rancangan layar dapat dilihat pada gambar 3.7. Fungsi yang terdapat pada modul ini adalah parse action. Fungsi ini digunakan untuk mencari dan menyaring variabel/nama objek dari reserved-word maupun identifier bahasa pemrograman ActionScript. Hasil parsing ini dapat dilihat pada bagian Action Report. Action Report merepresentasikan urutan berjalannya bahasa pemrograman
30 ActionScript ketika user menjalankan file SWF. Juga dapat dikatakan sebagai urutan pembacaan komputer dengan bahasa mesinnya. Variabel/nama objek yang berhasil disaring dapat dilihat pada bagian Variable(s). Fungsi parse action ini juga memberikan informasi detil untuk setiap variabel/nama objek, yang dapat dilihat pada modul Obfuscation. Dengan demikian, file input SWF telah siap untuk diobfuskasi. Open File Exit SWF Info SWF Member List Parse Action Obfuscation Report Parse Action Action Report Variable(s) No Variable(s) Gambar 3.7 Rancangan layar modul Parse Action
31 Gambar 3.8 Diagram Transisi modul Parse Action 3.2.5 Modul Obfuscation Modul Obfuscation mempunyai tugas untuk melakukan perhitungan enkripsi dengan metode enkrilpsi RSA berdasarkan input key yang ada. Input key dapat diperoleh dengan dua cara, yakni diacak atau diisi secara manual oleh user. Pada tabel yang
32 tersedia, user dapat melihat informasi detil untuk setiap variabel/nama objek, yang diperoleh setelah user melakukan proses action parse pada modul parse action. Fungsi-fungsi yang terdapat pada modul ini adalah Generate Key, Clear, Obfuscate, dan Generate Obfuscated SWF. Pertama-tama, user memasukkan nilai input key baik secara acak maupun dimasukkan secara manual. Tombol Generate Key berfungsi untuk menghitung nilai modulus, totient, dan encryption exponent possibility number berdasarkan input key user. Tombol Clear digunakan untuk menghapus nilainilai tadi yang telah dihitung untuk kemudian dilakukan proses perhitungan ulang sehingga user dapat memasukkan nilai-nilai baru pada input key. Tombol Obfuscate berfungsi sebagai penghitung pengacakan setiap variabel/nama objek, yang kemudian hasilnya dapat dilihat pada tabel yang tersedia. User dapat memilih variabel/nama objek mana saja yang ingin diacak dengan mencentangkan label pada tabel. Tidak semua variabel yang tersedia merupakan variabel murni. Hal ini bertujuan agar hasil pengacakan file SWF nanti dapat berjalan dengan semestinya. Tombol Generate Obfuscated SWF berfungsi untuk membuat file SWF yang telah diacak berdasarkan proses Obfuscate sebelumnya. Pembentukan file SWF yang baru ini tidak akan menimpa file SWF yang asli, sehingga dengan demikian keberadaan file SWF yang asli tetap terjaga. Jika file telah berhasil dibuat maka user dapat melihat informasi pengacakan yang tersedia pada modul Report.
Gambar 3.9 Rancangan layar modul Obfuscation 33
34 Menunggu Proses Pilih Insert Own Prime Number Tampil Key Pair Pilih Generate Random Prime Number Tampil Key Pair Display hasil input Pilih Clear Hapus hasil perhitungan dan kembali ke menu utama Pilih Generate Key Tampil hasil perhitungan Display hasil perhitungan Pilih Exponent Number Tampil Exponent Number Display exponent number Pilih Obfuscate Tampil hasil obfuskasi Display variabel terobfuskasi Pilih Cancel Kembali ke menu utama Pilih Create Obfuscated SWF Tampil kotak dialog Save File Pilih Save Kembali ke menu utama Display Save Dialog Gambar 3.10 Diagram Transisi modul Obfuscation
35 3.2.6 Modul Report Modul Report berfungsi untuk menampilkan laporan mengenai hasil obfuskasi yang telah dilakukan sebelumnya pada modul Obfuscation. Informasi tersebut mencakup path directory dari obfuscated SWF file, RSA Keys, dan perbandingan variabel/nama objek apa saja yang telah berhasil diacak. Fungsi yang tersedia adalah Save Log, yang berfungsi untuk menyimpan hasil Report tersebut sebagai file teks berformat.rtf guna kebutuhan user tersendiri. Open File Exit SWF Info SWF Member List Parse Action Obfuscation Report Obfuscation Report Save Log Gambar 3.11 Rancangan layar modul Report
36 Menunggu Proses Pilih Cancel Kembali ke menu utama Display hasil proses obfuskasi Pilih Save Kembali ke menu utama Pilih Save Log Tampil Kotak Dialog Save Display Save Dialog Gambar 3.12 Diagram Transisi modul Report
37 Gambar 3.13 berikut merupakan flowchart dari program aplikasi obfuskasi pada source code ActionScript dengan algoritma enkripsi RSA. Gambar 3.13 Flowchart Program Aplikasi Obfuskasi Source Code ActionScript dengan Metode Enkripsi RSA