E-BOOK SERIES 04 KOMPRESI DENGAN UPX
Kenapa e-Book ini ada? Kompresi merupakan hal yang penting baik untuk file program biasa dan terlebih lagi untuk suatu file worm, karena dengan kompresi, ukuran suatu file executable bisa dikecilkan sehingga lebih mudah untuk didistribusikan J. Suatu aplikasi yang melakukan kegiatan kompresi pada file executable umumnya disebut dengan istilah Executable Packer, Compactor atau Compressor. Banyak keuntungan yang bisa diperoleh dari aplikasi ini, tidak hanya berguna untuk menyusutkan ukuran file tetapi juga sekaligus mengenkripsi file tersebut, adapun file executable yang terkompresi tetap dapat berjalan dengan normal tanpa perlu adanya file program tambahan. Banyak sekali aplikasi Compressor yang bisa kita peroleh, antara lain: 1. UPX Achmad Darmal
Kompresi Dengan UPX
1
2. 3. 4. 5. 6. 7. 8. 9. 10.
ASPack Petite FSG (Fast Small Good) PECompact PE-Pack Pack Master WWPack32 Packman Packer NeoLite Executable Compressor
Namun yang paling populer dikalangan worm writer adalah aplikasi UPX, hal ini disebabkan karena aplikasi tersebut tetap mampu melakukan kompresi dengan ratio tinggi pada file berukuran kecil, proses dekompresi sangat cepat dan memiliki ratio kompresi yang lebih baik dari Zip maupun GZip, selain itu pada versi 1.25 UPX sudah dapat mengkompresi beberapa format executable sebagai berikut: 1. 2. 3. 4. 5.
atari/tos dos/exe dos/sys dos/com djgpp2/coff
6. 7. 8. 9. 10.
linux/386 rtm32/pe tmt/adam watcom/le win32/pe
Sebagai perbandingan, berikut ini penulis sertakan tabel hasil kompresi dari tiga aplikasi Compressor, yaitu UPX 1.25, ASPack 2.12, Petite 2.2 dan masing-masing menggunakan ratio kompresi yang tertinggi. FILE Name Size(KB) WSar.1 32,768 WSar.2 24,576 WSar.3 24,576 WSar.4 28,672 WSar.5 32,768 WSar.6 36,864 2
PACKER - BEST RATIO (KB) UPX 1.25 ASPack 2.12 Petite 2.2 16,896 20,992 17,248 11,776 15,872 12,332 12,288 16,384 15,404 10,752 14,848 11,236 11,776 15,360 12,320 14,848 18,432 15,264 Kompresi Dengan UPX
Achmad Darmal
WSar.7 WSar.8 WSar.9
36,864 49,152 49,152
13,824 19,456 22,528
17,920 23,040 26,624
14,816 20,052 23,043
4.1 PERINTAH BARIS Dalam perintah baris, bentuk umum yang digunakan UPX adalah: upx [command] [options] filename...
-1 to -9 --best
-d -t -l
-q -q -q -q -q -q --help --version
COMMAND Nilai 1 hingga 9 menunjukan level kompresi, semakin besar angka yang digunakan maka semakin besar pula ratio kompresi yang digunakan. --best adalah opsi untuk menggunakan ratio kompresi yang paling baik, namun dengan menggunakan opsi ini proses kompresi akan menjadi lebih lambat untuk file yang berukuran besar. Jika Anda tidak mengatur level kompresi maka secara otomatis program akan menggunakan level -8 untuk file yang berukuran lebih kecil dari 512 Kb, dan menggunakan level -7 untuk file dengan ukuran yang lebih besar. decompress, kebalikan dari proses kompresi yaitu mengubah kembali file terkompresi menjadi file asli. test, menguji integritas file apakah telah terkompresi dengan UPX atau tidak. list, memberikan beberapa informasi tentang file yang terkompresi, seperti ukuran file dan ratio kompresi. OPTIONS tidak memberikan pesan peringatan tidak memberikan pesan kesalahan tidak memberikan output sama sekali menampilkan bantuan menampilkan versi UPX
Achmad Darmal
Kompresi Dengan UPX
3
Berikut ini adalah contoh penggunaan UPX untuk mengkompres file ‘wsar4.exe’ dengan ukuran file asli sebesar 28,672 Kb. Dalam hal ini file program upx.exe dan wsar4.exe sama-sama berada pada root direktori C. C:\>upx --best wsar4.exe Ultimate Packer for eXecutables Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 UPX 1.25w Markus F.X.J. Oberhumer & Laszlo Molnar Jun 29th 2004 File size ----------------------28672 -> 10752
Ratio ---------37.50%
Format ----------win32/pe
Name -------------wsar4.exe
Packed 1 file.
Berikut ini adalah contoh pengujian file, dengan hasil uji file positif terkompres oleh UPX. C:\>upx -t wsar4.exe Ultimate Packer for eXecutables Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 UPX 1.25w Markus F.X.J. Oberhumer & Laszlo Molnar Jun 29th 2004 testing wsar4.exe [OK] Tested 1 file.
Berikut ini adalah contoh penggunaan UPX untuk melakukan decompress pada file ‘wsar4.exe’, dengan ukuran file terkompres adalah sebesar 10,752 Kb. C:\>upx -d wsar4.exe Ultimate Packer for eXecutables Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 UPX 1.25w Markus F.X.J. Oberhumer & Laszlo Molnar Jun 29th 2004 File size ----------------------28672 <- 10752
Ratio ---------37.50%
Format ----------win32/pe
Name -------------wsar4.exe
Unpacked 1 file.
4
Kompresi Dengan UPX
Achmad Darmal
4.2 VERSI GUI Seiring dengan populernya UPX banyak sekali pengguna pemula yang mengalami kesulitan dalam menggunakan program ini karena harus menggunakan perintah baris dalam mengoperasikannya, sehingga beberapa programmer kemudian membuat agar program UPX ini dapat dioperasikan dengan lebih mudah, dengan tampilan grafis yang lebih enak dipandang, dan tentu lebih praktis dengan klik mouse. Aplikasi tersebut antara lain; UPX Windows GUI, CX_UPX dan Darmal’s Packer J, berikut ini adalah tampilan dari aplikasi UPX Windows GUI:
Berikut ini adalah tampilan dari aplikasi CX_UPX:
Achmad Darmal
Kompresi Dengan UPX
5
Berikut ini adalah tampilan dari aplikasi Darmal’s Packer:
4.3 PROTEKSI Kemudahan dekompresi pada UPX, membuat sebagian pengguna UPX merasa resah jika programnya dapat di- decompress untuk alasan apapun, maka beberapa programmer dari dunia underground kemudian membuat suatu program aplikasi yang mampu memproteksi 6
Kompresi Dengan UPX
Achmad Darmal
file dari proses dekompresi. Program tersebut antara lain UPX Scrambler, dan UPX Mutanter. Berikut ini adalah tampilan dari aplikasi UPX Mutanter:
Berikut ini adalah tampilan dari aplikasi UPX Scrambler:
Achmad Darmal
Kompresi Dengan UPX
7