Virus Macro
(dijas/mideis)
Virus codenya Bisa lihat Di Sini Ok dech, sekarang kita mulai pembahasannya.
Sebelumnya dikasih tau dulu yach, berhubung virus ini gua yang buat (gabungan dari
berbagai sumber dan ide sendiri), jadi jangan pada protes kalo kebanyakan isinya banyak
nyebutin nama gua :p.
Untuk membuat virus makro diperlukan satu penanda, kalo kalian buat data base
semacam primary key atau NIS (Nomor Induk Siswa) untuk siswa SMU. Pada kasus ini
nama modulnya kita jadikan penanda. Dengan penanda ini kita bisa mengetahui apakah
dokumen tersebut telah terinfeksi atau belum. Pada contoh ini penandanya gua beri nama
DJOK (hayo... tadikan udah dikasih tau jangan protes :d). Ini bisa dilihat pada baris 0.
Kenapa dijadiin komentar? Karena itu untuk mempermudah mengingat saja bahwa
penandanya bernama DJOK, Kalo mau disebarkan sebaiknya dihapus saja.
Baris ke-0 sampai 4 adalah kredit pembuat virusnya. Biasanya ini selalu ada, sekedar
nampang doang biar orang pada tau siapa yang buat ni virus :p. Baris ke-5 hanya spasi
kosong, sebaiknya antar prosedur diberi spasi kosong biar terlihat rapi dan mudah
dipelajari.
Baris 6 sampai 19 adalah tahap penginfeksian dokumen. Prosedurnya diberi nama
InfeksiDokumen. Pada baris ke-7 di deklarasikan variabel UdahAda sebagai boolean dan
diberi nilai false. Fungsi variabel ini untuk mengecek apakah virus tersebut sudah ada di
dalam dokumen. Baris 9 adalah jurus pamungkas yang gua gunain kalo buat program di
vb :d. Walaupun kurang baik tapi sangat manjur untuk beberapa hal. Fungsinya adalah
memaksa program memaksa program mengabaikan kesalahan yang terjadi.
Baris 10 sampai 15 adalah proses looping. Di sini akan dicek setiap objek yang ada di
dokumen aktif. Buat apa di cek? perhatikan baris selanjutnya (baris 11). If obj.Name =
"DJOK" Then UdahAda = True. Di sini diperiksa apakah ada modul/penanda yang
bernama DJOK? Bila ada maka variabel UdahAda diset true. Apasih objek itu? coba
buka microsoft word dan tekan alt+F11, lalu lihat bagian project (biasanya di kiri atas).
Perhatikan gambar, yang dilingkarin itu yang dimaksud objek.
Baris selanjutnya dicek bila ternyata ada objek lain selain DJOK tetapi bukan bernama
ThisDocument. Bila ternyata ada objek lain dan bukan bernama ThisDokument, maka
perintah pada baris 13 akan dijalankan. Apa yang dilakukan pada baris 13 hayoo...?
Seluruh objek yang bukan bernama DJOK dan ThisDocument akan dihapus. Dengan cara
ini bila ada virus makro yang coba-coba masuk bakal dibantai. Kalo virus makronya juga
pake konsep yang sama bagaimana? Yaa.. mereka bakal berantem dan yang menang yang
menempatin normal.dot pertama kali (kecuali kalo ada virus makro yang buat file *.dot
sendiri). Dengan konsep ini bisa dibuat antidot-nya loh.
Sekarang lanjut ke baris 16. Di sini dicek apakah DJOK sudah ada di dokumen? bila
belum maka akan di copy objek DJOK ke dokumen tersebut. (di sinilah virus disebarkan)
Naahh... bila tadi dokumen yang kita serang, sekarang templetnya. Pada baris 21 sampai
37 yang menginfeksi templet. Rasa-rasanya gak perlu dijelasin lagi yach, penjelasannya
gak jauh beda dengan yang diatas kok.
Tahap infeksi sudah dilakukan, sekarang bisa ngelanjut ke tahap berikutnya yaitu benteng
pertahanan.
Selain mampu menggandakan diri, sifat utama virus yang lain adalah mampu bertahan.
Coba perhatikan baris 39 sampai 43. Fungsi perintah Options.SaveNormalPrompt = False
adalah untuk mematikan kotak dialog konfirmasi penyimpanan dokumen. Kan susah kalo
virus melakukan penyimpanan tapi muncul kotak dialog konfirmasi.
Baris selanjutnya adalah Option.VirusProtection = False. Perintah ini berfungsi
mematikan pendeteksi makro yang ada di microsoft word. Yang terkhir adalah
Options.SavePropertiesPrompt = False. Gunanya agar penyimpanan ulang ke global
template berjalan tanpa diketahui oleh pemakai.
Sekarang beralih kebaris 111 sampai 117. Seperti yang sudah diberi tahu sebelumnya,
bahwa bila ternyata nama prosedur yang kita buat sama dengan prosedur yang ada di
microsoft word, maka yang dijalankan yang ada dimakro. Isi dari prosedur
ToolsOptions() adalah mengaktifkan kembali yang kita matikan tadi, kemudian
memunculkan kotak dialog Option. Setelah kotak dialog option dimatikan, akan
dijalankan lagi prosedur matiin(). Apa sih fungsinya? Fungsinya sekedar menipu user
saja bahwa virus protection diaktifkan. :))
Beralih kebaris selanjutnya, 120 sampai 133. Terdapat empat prosedur ToolsMacro(),
ViewVbCode(), FileTemplate() dan OpenMyMacro(). Bila keempat prosedur itu tidak
diubah, maka makro yang kita buat bisa diketahui. Perhatikan prosedur ViewVbCode
memanggil prosedur FileTemplate. FileTemplate memanggil ViewVbCode, dan
seterusnya. Ini hanya untuk menunjukkan saja bahwa prosedur yang ada diword bisa
dipanggil di prosedur lainnya.
Sekarang perhatikan isi prosedur ToolsMacro, disana memanggil prosedur
BentengTakesi (tahu kan benteng takesi? :D). Prosedur BentengTakesi ada pada baris 45
sampai 63. Berhubung rada panjang, dijelaskan intinya saja yach.
45 : Nama Prosedurnya
46 :
47 : Proses looping sebanyak tiga kali, untuk memberikan kesempatan 3 kali menebak
48 : Menanyakan password ke user dan passwordnya dimasukkan ke variabel passnya
49 : Sebenarnya sih ingin jika user menekan tombol cancel langsung keluar, tapi kok gak
bisa yach :D.
50 : Bila sudah dicoba tiga kali dan passwordnya kosong maka:
51 : Akan muncul kotak peringatan, Taukan isinya? He he he... Bahasa inggris gua keren
juga :P
52 :
53 : Menjalankan Prosedur KacaPembesar (nanti dibahas)
54 : Keluar dari prosedur ini
55 : Bila ternyata sudah dicoba 3 kali dan password ke-3 ada isinya maka:
56 : Ada konfirmasi bahwa user tidak berhak mengakses tools ini, padahaall... :p
57 : Keluar dari prosedur ini
58 : Penutup if
59 : Memberi tahu ke user bahwa password yang dimasukkan salah, dan meminta untuk
mencoba lagi atau tidak
60 : Bila user memilih No maka akan keluar dari prosedur ini
61 : Mengosongkan isi prosedur passnya
62 : Pasangan For
63 : Akhir prosedur
Ngerti gak inti prosedur di atas? Intinya mempermainkan user, password apapun yang
dimasukkan tidak ada pengaruhnya. Malahan kalo password yang ketiga kosong ada
bonus tambahan :D. Apa sih bonusnya? KacaPembesar...!!! Perhatikan baris 98 sampai
109. Fungsi prosedur itu adalah untuk memanipulasi registry. Ini registrynya bernilai
string lohh... untuk yang bernilai lain perlu ada sedikit modifikasi pada baris 103.
Sebenarnya bila nilai yang dimasukkan bernilai string, bisa dilakukan dengan perintah
System.PrivateProfileString("", "HKEY_CURRENT_USER\Control
Panel\Desktop\WindowMetrics", "Shell Icon Size") = "128". Tapi gua pengen nunjukin
bagaimana cara memasukkan nilai ke registry dengan membuat dulu filenya.
Perhatikan baris 106, " Shell "regedit /s \rasakan.reg" ', vbHide ". Fungsinya adalah untuk
menjalankan file registry yang telah dibuat. Ada buku yang menyatakan bahwa dengan "
Shell "regedit \rasakan.reg" , vbHide ", file bisa dijalankan, tapi gua coba hasilnya nol
besar. Makannya perintah "vbHide" (berfungsi menghilangkan kotak dialog konfirmasi)
gua jadiin komentar, kali aja dikomputer kalian jalan. Untuk menggantinya gua tambahin
perintah /s (silent, biar gak ada kotak dialog konfirmasi). Baris selanjutnya adalah untuk
menghapus file yang telah dibuat. dan perintah 108 untuk mematikan komputer.
Apa sih yang terjadi bila perintah ini dieksekusi? Icon yang ada di dekstop dan di start
menu akan membesar sebanyak 4 kali (ukuran normalnya adalah 32 dan pada baris 103 di
set 128). Lumayan buat user panik :D. Untuk manipulasi registry bisa dilihat di tutorial
registry.
setelah mampu bertahan, sekarang saatnya menyerang. Kan percuma kalo virus yang
dibuat gak bisa nyebar. Perhatikan baris 135 sampai 145. Pada baris 137 akan mematikan
automakro. Lalu pada baris 139 akan dicek apakah file tersebut benar-benar dibuka atau
tidak, bila iya maka akan ditularkan dan disimpan.
Loh? fungsi baris 136 buat apa? Yang namanya pembuat virus pasti ingin dong ngasih
oleh-oleh buat korban, perintah yang dieksekusi adalah baris ke 147 dan 154. Tapi ingat
pada baris 150 sengaja gua matiin karena itu berhubungan dengan memasukkan password
yang telah dibahas di bab pertahanan.
Pada baris 156 sampai 178 bisa ditebak lah apa yang dilakukan, baca aja judul
prosedurnya. Sekarang kebaris 182. Fungsi prosedur ini adalah untuk menyimpan
dokumen. Perhatikan cara kerjanya. Pertama-tama dicek apakah dokumen tersebut sudah
disimpan atau belum. Apabila belum, maka dokumen akan diinfeksi dulu baru disimpan.
Setelah selesai disimpan ActiveDocument.Saved diset true agar apabila user terus
menerus menyimpan (kebiasaan kita :p) padahal tidak ada perubahan pada dokumen,
tidak akan dilakukan apa-apa.
Sekarang masuk kepenyebaran virus yang terakhir, baris 191 sampai 206. Prosedur ini
fungsinya apabila program word diaktifkan/buka, maka secara kontinue setiap 17 detik
akan dicek apakah dokumen tersebut sudah diinfeksi atau belum.
Yup... selesai sudah teknik penyebaran dijelaskan. Di penyebaran ini bisa disisipkan
aktifitas yang bersifat iseng (he he he... gua gak mau disalahkan loohh...). Contohnya
pada baris 144, ketika dokumen dibuka maka akan mengeksekusi prosedur iseng(). Apa
isi prosedur iseng? akan dibahas dibab selanjutnya.
Tiba saatnya untuk menuntaskan pembahasan tentang virus makro ini. Ada dua prosedur
yang belum dibahas yaitu prosedur iseng() pada baris 65 sampai 96 dan prosedur
HelpAbout() pada baris 208 sampai 218.
1. iseng()
Sesuai dengan namanya bahwa prosedur ini adalah untuk iseng doank :D. Yaa... hanya
untuk sekedar unjuk gigi lah. Pada baris 66, "Select Case WeekDay(Now())", perintah ini
berfungsi untuk mengecek hari. Dalam satu minggu kan ada 7 hari, naahh... hari minggu
diberi nilai 1, hari senin 2 dan seterusnya sampai hari sabtu yang diberi nilai 7. Di sini
kamu bisa berkreativitas sesukanya. Seperti pada hari jumat (nilai 6), pada jam 11:30
sampai jam 13:00 program word tidak akan bisa dijalankan karena akan langsung
dimatikan komputernya (baris 87).
2.HelpAbout()
Fungsi sebenarnya dari prosedur ini adalah menampilkan pembuat/credit dari program
word. Tapi sekarang fungsinya berubah yaitu sebagai kunci untuk masuk keeditor.
Loohh... kenapa mesti dikasih begituan? bukannya bahaya kalau nanti dibobol? Seorang
pembuat virus yang baik tentu saja selalu mempersiapkan jalan untuk mengubah source
virus yang dibuat. Kan bahaya kalau gak bisa, mungkin kalian bisa memberikan yang
lebih baik dari sini. Metode ini gua ambil dari salah satu koleksi virus makro gua, mereka
menamakan diri "DEXTER THE SCIENTIST" dari bogor juga. Gua sedikit modip biar
mudah ngejelasinnya.
Pertama-tama akan ditanyakan dulu nomor serial registrasi, dan ini diset fix, yaitu
HQKGW (taukan penggalan nomor serial apa itu?). Selanjutnya apabila benar akan
ditanyakan password, password ini selalu berubah sesuai nama file. Misalnya nama file
loe makalah.doc, maka passwordnya adalah mak (cuman diambil 3 huruf). Apabila
kedua-duanya benar, maka jendela editor visual basic akan ditampilkan.
Akhirnya selesai juga pembahasan tentang pembuatan virus makro ini. Memang sengaja
tidak dijelaskan bagaimana merusak isi dokumen (karena gua gak orang baik yang gak
tegaan :D). Tapi berhubung kurang lengkap akan dikasih contoh ngerusak dokumen. Ini
sebenarnya hanya memanfaatkan autocorrect pada microsoft word saja.
ex: AutoCorrect.Entries.Add Name:="nama", value:="nama saya".
Fungsi perintah diatas adalah untuk mengubah kata nama menjadi nama saya. Atau bisa
juga menampilkan animasi seperti contoh di bawah ini:
Selection.Font.Animation = wdAnimationLasVegasLight.
Tapi gua harap yang itu (autocorrect dan animasi) jangan digunakan, karena sebenarnya
pembuatan virus bukan untuk merusak yang begituan. Biasanya virus hanya benar-benar
merusak pada waktu-waktu tertentu saja (misalnya setiap tanggal 1 Januari hardisk
diformat). Sedangkan hari-hari lain cuman sekedar nampang dan memperbanyak diri
saja. Untuk pembuatan anti virusnya, karang sendiri yach. Gunakan cara virus makro
beraktifitas untuk menghapusnya. (virus ngelawan virus). Soalnya lagi males buat
antivirusnya. Mungkin nanti dibuatin.
Sebelum diakhiri gua harap kalian bisa mencari referensi lain untuk memperhebat virus
yang dibuat. Gua gak bertanggung jawab atas penyalah gunaan artikel ini, artikel ini
ditujuan hanya untuk pendidikan saja dan untuk membentengi diri dari virus makro.
Yaahh... hanya kebersihan dan kemuliaan hati dari pembaca artikel ini yang bisa
diharapkan (he he he... puitis banget). Akhir kata, selamat mencoba semoga berhasil...
0 komentar: