BAB 4
IMPLEMENTASI DAN HASIL PERANCANGAN
4.1 Spesifikasi Kebutuhan Sarana
Untuk dapat menjalankan program aplikasi obfuskator ActionScript ini, dibutuhkan perangkat keras dan lunak yang spesifikasinya sebagai berikut ini:
4.1.1 Spesifikasi Perangkat Keras Yang Dibutuhkan
Spesifikasi dari perangkat keras yang digunakan dalam pengembangan dan pengujian program aplikasi obfuskator ActionScript ini adalah sebagai berikut:
CPU Intel Pentium 4 3.0E GHz Hyper-Threading Technology Memory 1024 MB DDRAM
Hard Disk 80 GB SATA
Resolusi monitor 1024 x 768 pixels
4.1.2 Spesifikasi Perangkat Lunak Yang Dibutuhkan
Selain spesifikasi kebutuhan perangkat keras seperti disebutkan diatas, dibutuhkan pula spesifikasi piranti lunak sebagai berikut:
Operating System: Microsoft Windows XP / 2000 / NT Compiler Software: Borland Delphi 7.0
4.2 Persiapan Data
Pada awal proses pengoperasian program aplikasi obfuskator ActionScript ini, data yang harus dipersiapkan adalah sebuah file SWF, yang merupakan hasil kompilasi file FLA oleh program Macromedia Flash. File SWF ini harus memiliki kriteria-kriteria sebagai berikut:
- Terdapat kode-kode ActionScript didalam file tersebut, dan didalam ActionScript tersebut harus mengandung nama-nama variabel atau nama-nama objek.
- User harus mengetahui secara garis besar nama-nama variabel atau objek yang ada untuk mencegah terjadinya proses obfuskasi pada variabel atau objek yang salah, misal: pesan dalam bentuk string. - Tidak mengandung variabel-variabel yang di-load dari file
eksternal, misal: php, asp, XML. Hal ini akan menyebabkan integrasi dengan bahasa-bahasa tersebut tidak berjalan dengan baik.
- Untuk penggunaan component, tidak semua property atau attributes dapat diobfuskasi, sehingga bila user tidak ingat nama variabel atau objek yang pernah dibuatnya, sebaiknya variabel atau objek tersebut tidak diobfuskasi.
4.3 Pengujian Program Aplikasi Obfuskator ActionScript
Program Aplikasi Obfuskator ActionScript ini dapat dioperasikan dengan menjalankan file blobfuscator.exe. Pada saat program dijalankan, akan tampil menu utama dengan tampilan SWF Details. Pada saat ini user dapat memilih file SWF yang ingin diobfuskasi dengan memilih menu File>Open.
Sebagai contoh, file yang akan dibuka adalah tester.swf yang memiliki tampilan seperti berikut ini:
Gambar 4.2 Tampilan Contoh File SWF
Ini adalah animasi sederhana dengan ActionScript didalamnya yang memberi sifat pada objek kotak abu-abu ditengah layer untuk mengikuti arah gerakan mouse yang dilakukan oleh user. Gerakan itu terbatas pada jarak tertentu sampai kira-kira mendekati tepi layar.
Isi dari ActionScript yang terdapat pada file SWF tersebut terbagi dalam 2 bagian, yaitu yang terdapat pada frame, dan yang terdapat pada objek kotak abu-abu tersebut.
- ActionScript pada frame: friction = 0.800000; ratio = 0.200000; maxDistance = 2.2;
- ActionScript pada objek: onClipEvent (load) { defaultX = this._x; defaultY = this._y; newXpos = defaultX; newYpos = defaultY; } onClipEvent (enterFrame) { var newX:Number = 0; var newY:Number = 0;
if (this.hitTest(_root._xmouse, _root._ymouse, true)) { xDifference = _root._xmouse-defaultX; yDifference = _root._ymouse-defaultY; newXpos = _root._xmouse-xDifference/_root.maxDistance; newYpos = _root._ymouse-yDifference/_root.maxDistance; } else { newXpos = defaultX; newYpos = defaultY; } newX = newX*_root.friction+(newXpos-this._x)*_root.ratio; newY = newY*_root.friction+(newYpos-this._y)*_root.ratio; this._x = this._x+newX; this._y = this._y+newY; this._x = int(this._x)+0.500000; this._y = int(this._y)+0.100000; }
4.3.1 SWF Details
Setelah user memilih file SWF yang diinginkan, maka program secara otomatis akan membaca dan menampilkan informasi yang terdapat didalam header file SWF tersebut serta informasi-informasi yang ada didalam body file tersebut seperti tag-tag yang ada serta member-member dari file SWF tersebut.
4.3.2 Parse AS
Setelah user membaca informasi file SWF yang ada, maka user dapat melanjutkan ke menu Parse AS, dimana menu ini akan menampilkan uraian file SWF menjadi tag dan variabel.
Gambar 4.4 Menu Parse AS Sebelum Proses Parse
Setelah user memilih file SWF input pada menu utama, maka segala urutan action yang terdapat dalam file tersebut akan ditampilkan pada tabel ”Action Report” sedangkan seluruh variabel yang terdapat dalam file tersebut akan ditampilkan pada tabel “Variable(s)”.
Gambar 4.5 Menu Parse AS Setelah Proses Parse
4.3.3 Obfuscate
Setelah sebuah file SWF diurai secara keseluruhan, maka user dapat melanjutkan dengan memilih modul Obfuscate. Pada menu ini, akan ditampilkan input box dimana user dapat memasukkan encryption key yang diinginkan atau dapat dengan mudah menekan tombol “Randomize Key” yang akan menghasilkan encryption key secara acak. Pada tampilan sebelah kanan, akan tampak nama-nama variabel dan objek yang dapat diobfuskasi. Pada menu ini user dapat memilih variabel atau objek mana yang ingin diobfuskasi atau yang tidak ingin diobfuskasi dengan cara meng-klik tanda | V | disamping nomor. Jika tanda | V | diklik, maka akan
berubah menjadi | X | yang berarti variabel atau objek tersebut tidak akan diobfuskasi, sedangkan tanda | V | berarti variabel atau objek tersebut akan terobfuskasi.
Gambar 4.6 Menu Obfuscate Sebelum Proses Obfuscate
Setelah user selesai memilih variabel-variabel dan objek-objek yang ingin diobfuskasi, selanjutnya user dapat memulai proses obfuskasi dengan menekan tombol “Obfuscate”. Setelah itu akan ditampilkan nama-nama variabel dan objek yang telah terobfuskasi pada kolom “Obfuscated Name”, kemudian tombol “Make Obfuscated SWF” akan aktif.
Gambar 4.7 Menu Obfuscate Setelah Proses Obfuscate
Setelah proses obfuskasi selesai, user dapat memilih untuk membuat atau tidak file SWF yang telah terobfuskasi. Jika user ingin membuat file SWF tersebut, maka cukup dengan menekan tombol “Make Obfuscated SWF” akan ditampilkan kotak dialog “Save As”.
Gambar 4.8 Kotak Dialog Save As
Setelah user meng-klik “Save”, maka file SWF baru yang telah terobfuskasi akan segera dibuat dan dapat digunakan.
4.3.4 Logs
Setelah file SWF baru dibuat, maka program akan membuat laporan yang berisi informasi proses obfuskasi, yaitu apakah file berhasil diobfuskasi atau tidak, encryption key yang digunakan serta perubahan nama-nama variabel dan objek yang ada. Informasi ini semua dapat dilihat oleh user pada menu Logs.
Gambar 4.9 Menu Logs
Pada menu Logs ini user dapat memilih untuk menyimpan file log tersebut kedalam bentuk Rich Text Format dengan menekan tombol “Save Log”. Sedangkan file SWF hasil obfuskasi akan memiliki ActionScript seperti berikut ini bila didekompilasi:
// Action script...
// [onClipEvent of sprite 2 in frame 1] onClipEvent (load) { zAFXXuEj = this._x; zAFXXuEi = this._y; pMoANOg = zAFXXuEj; pMoBwSy = zAFXXuEi; } onClipEvent (enterFrame) { var pMoA = 0; var pMoB = 0;
DEcFgODLjos = _root._xmouse - zAFXXuEj; CUtOqUZpDXy = _root._ymouse - zAFXXuEi; pMoANOg = _root._xmouse - DEcFgODLjos / _root.qCyyyCCbeEG;
pMoBwSy = _root._ymouse - CUtOqUZpDXy / _root.qCyyyCCbeEG; } else { pMoANOg = zAFXXuEj; pMoBwSy = zAFXXuEi; } // end if
pMoA = pMoA * _root.xITYPqtP + (pMoANOg - this._x) * _root.Judgz;
pMoB = pMoB * _root.xITYPqtP + (pMoBwSy - this._y) * _root.Judgz;
this._x = this._x + pMoA; this._y = this._y + pMoB;
this._x = int(this._x) + 0.500000; this._y = int(this._y) + 0.100000; } // [Action in Frame 1] xITYPqtP = 0.800000; Judgz = 0.200000; qCyyyCCbeEG = 2.200000;
4.4 Kelebihan dan Kekurangan Program Aplikasi yang Dirancang
Program aplikasi obfuskator ActionScript ini memiliki beberapa kelebihan dan kekurangan didalamnya. Kelebihan-kelebihan dari program aplikasi ini antara lain:
- Menggunakan algoritma enkripsi Blowfish yang sangat kuat dalam pengobfuskasian, sehingga hasil obfuskasi akan jauh lebih aman. - Algoritma enkripsi Blowfish dapat mengenkripsi nama-nama
- User dapat memilih variabel atau objek mana yang ingin diobfuskasi, sehingga berjalannya file SWF hasil obfuskasi lebih terjamin.
- Dapat menbuat file log atau report dari proses obfuskasi yang dilakukan, sehingga user memiliki record dari encryption key yang digunakan serta informasi dari perubahan nama-nama variabel atau objek yang ada sebagai data acuan.
- Tidak memberikan perubahan terhadap ukuran file SWF baik sebelum maupun sesudah proses obfuskasi.
Beberapa kekurangan yang dimiliki program aplikasi ini antara lain:
- Belum dapat mengobfuskasi file SWF yang menggunakan variabel-variabel yang diperoleh dari file eksternal, seperti: PHP, ASP dan XML.
- Belum dapat mengobfuskasi file SWF yang menggunakan component karena dapat menyebabkan perbedaan nama identifier. - User yang ingin menggunakan program ini harus mengerti betul
prinsip-prinsip dan cara kerja ActionScript, karena bila terjadi kesalahan dalam proses obfuskasi, akan berakibat file SWF tersebut tidak berjalan dengan normal.