Anda di halaman 1dari 72

www.wahyuhidayat.

com 1
Teknik Pembuatan Anti Virus Dengan Metode
Pencarian Header File Data SizeOfCode Dan
AddresOfEntrypoint Sebagai Pattern Virus














Oleh



Muhammad Yusuf 2006 02 0190




SKRIPSI
Diajukan Untuk Memenuhi Sebagian Syarat
Ujian Kesarjanaan Strata Satu




Sekolah Tinggi Manajemen Informatika dan Komputer
(STMIK) Handayani
2008




www.wahyuhidayat.com 2
ABSTRAK

Muhammmad yusuf, irhamdy a, patty, teknik pembuatan anti virus
dengan metode pencarian data header file sizeofcodedan entryofpoint
menggunakan visual basic 6.0 dibimbing oleh : Amir Ali dan Abd. Latif
Arda

Penelitian ini bertujuan untuk : (1) mengetahui tingkah laku dari
virus dan worm. (2) mengetahui bagian-bagian apa saja dari sebuah
sistem operasi (windows) yang di serang oleh virus dan worm. (3)
Membuat sebuah anti virus sendiri.

Berdasarkan penelitian diatas dapat di simpulkan bahwa rancangan
Anti virus yang menggunakan addresOfEntryPoint dan SizeofCode
sebagai pattern virus ini, bisa juga diandalkan sebagai sebuah engine
scaner, yang cepat dan handal untuk mengenali virus, dan juga hemat
dalam penggunaan recource memori.




















www.wahyuhidayat.com 3
DAFTAR ISI

Halaman
HALAMAN JUDUL ...............................................................................
HALAMAN PERSETUJUAN ................................................................
HALAMAN PENGESAHAN .................................................................
ABSTRAK ..............................................................................................
KATA PENGANTAR ............................................................................
DAFTAR ISI ...........................................................................................
DAFTAR GAMBAR ..............................................................................
BAB I PENDAHULUAN ................................................................
A. Latar Belakang Penulisan ................................................
B. Batasan Masalah..............................................................
C. Rumusan Masalah ...........................................................
D. Tujuan Dan Manfaat Penelitian ......................................
BAB II LANDASAN TEORI ...........................................................
A. Sejarah Virus ..................................................................
1. Pengertian Virus Komputer.......................................
2. Kemampuan Dasar virus komputer ...........................
3. Jenis-jenis Virus komputer ........................................
4. Berdasarkan Infeksi Yang Dilakukan .......................
5. Berdasarkan Media Penyebarannya ..........................
6. Sejarah Singkat dan Taksonomi worms ....................
7. Struktur Worms .........................................................
8. Tipe-Tipe Worms ......................................................
9. Perbedaan Virus dan Worm ......................................
10. Seputar Anti Virus Serta Konsepnya ........................
11. Header File (PE) ........................................................
12. Sistem Operasi 16 dan 32 bit ....................................



www.wahyuhidayat.com 4
BAB III METODE PENELITIAN .....................................................

A. Alat dan bahan................................................................
B. Teknik penyiapan pattern virus ......................................
C. Mempersiapkan pattern virus .........................................
D. Meyimpan pattern virus ke text file (VDF)....................
E. Teknik mendeteksi proses virus di memori
dan menghentikannya.....................................................
F. Mengambil semua proses yang aktif ..............................
G. Memeriksa masing-masing module dalam proses .........
H. Menghentikan proses virus ............................................
BAB IV METODE PERANCANGAN SISTEM ...............................
A. Perancangan Program.....................................................
B. Algoritma dari program..................................................
C. Bagan alir (Flowchart) ...................................................
BAB V IMPLEMENTASI ...............................................................
A. Petunjuk pengoperasian ................................................

BAB VI PENUTUP ............................................................................
A. Kesimpulan ....................................................................
B. Saran ...............................................................................











www.wahyuhidayat.com 5
BAB I
PENDAHULUAN
A. Latar Belakang
Seiring pesatnya kemajuan teknologi informasi khususnya di bidang
teknologi komputer dan jaringan, keamanan dan isu yang kerap kali dibahas.
Mulai dari ancaman langsung para craker atau hacker jahat hingga acaman yang
dilakukan melalui program yang disebut malcode (malicious code). Suatu
program atau script apapun yang bersifat merusak atau merugikan dapat
katagorikan sebagai malcode termasuk virus komputer, worm atau trojan horse.
Selama lebih dari tiga dekade yang lalu, virus komputer telah berkembang
dari sekedar riset akademis menjadi masalah yang umum bagi para pengguna
komputer di dunia. Masalah terbesar dari virus ini berasal dari penanggulangan
efek kerugian yang ditimbulkan oleh penyebarannya. Efek kerugian ini semakin
menjadi dengan maraknya penggunaan internet sebagai jalur komunikasi global
antara pengguna komputer di seluruh dunia. Berdasarkan hasil survei CSI/FB
sejak tahun 1999-2006 pada sekitar 300-an responden dari berbagai organisasi di
Amerika Serikat, tentang kejahatan komputer dan keamanannya, menyebutkan
bahwa virus menempati urutan pertama sebagai kejahatan komputer yang paling
merugikan. Masih dari hasil survei tersebut, dinyatakan kerugian rata-rata yang
diderita organisasi-organisasi itu akibat virus komputer ditaksir mencapai sekitar
38 juta dolar amerika pertahun. Seiring dengan perkembangannya, virus komputer
mengalami beberapa evolusi dalam bentuk, karakteristik serta media
www.wahyuhidayat.com 6
penyebarannya. bentuk evolusi tersebut dikenal dengan Worms, Spyware, Trojan
horse dan program Malcode lain.
Perkembangan penyebaran malcode di Indonesia pada awalnya lebih
banyak didominasi oleh worms dan virus yang berasal dari luar negeri. Namun
pada bulan Oktober 2005, dominasi ini mulai runtuh dengan menyebarnya virus-
virus lokal yang hampir ada disetiap komputer di seluruh Indonesia, virus
menyebar dengan sangat cepat dan sangat membuat risih bagi pengguna
komputer, dengan demikian dibuatlah anti virus sebagai salah satu solusi
mencegah penyebaran.
Metode pencarian virus yang paling sering di pakai oleh anti virus yaitu
metode CRC-32 (Cyclic Redundancy Code). Metode CRC-32 merupakan teknik
yang semulanya digunakan untuk mengecek kerusakan pada file. Metode ini yang
sering digunakan oleh anti virus lokal untuk mengecek signature dari virus, tetapi
teknik ini tidak efesien apabila diterapkan pada malware yang sudah
mengimplementasikan teknik polymorph.. Kasus virus lokal sudah ditemukan
penggunaan teknik polymorph. Baik itu secara sederhana maupun kompleks. Cara
yang biasa digunakan yaitu :
1. Merubah atau mengenkripsi nama variabel dan string
2. Menambah atau mengurangi byte-byte tertentu di virus
3. menggunakan engine polymorph tertentu
Jika secara normal metode Crc-32 ini sangat gampang untuk dikelabui, hal
ini dikarenakan perubahan 1 bit kode pada program maka akan menyebabkan
perubahan hasil pengecekan CRC-32.
www.wahyuhidayat.com 7
Hal ini yang melatarbelakangi mengapa Teknik Pembuatan Anti Virus
Dengan Metode Pencarian Header File Data Sizeofcode Dan Addresofentrypoint
Sebagai Pattern Virus diangkat sebagai judul skripsi, karena berdasarkan
pengamatan penulis walaupun virus sudah melakukan modifikasi terhadap dos
header dengan tujuan untuk memperkecil ukuran virus, tetapi data optimal header
dari virus yang berupa SizeOfCode dan AddressOfEntry, tidak akan
berubah.
B. Batasan Masalah
Penulis membatasi penelitian ini dengan membahas :
1. File yang akan di jadikan sampel virus yaitu berupa file yang
berekstensi *.exe.
2. Pattern virus dalam bentuk hexadecimal yang merupakan data
AddressOfEntryPoint dan SizeOfCode.
3. Menyimpan pattern virus pada suatu text file terpisah dimana 16
digit pertama adalah pola virus yang berupa bilangan hexa, dan
diikuti oleh nama virus
C. Rumusan Masalah
Berdasarkan latar belakang dan batasan masalah, maka permasalahan
dalam skripsi ini, adalah bagaimana teknik pembuatan anti virus dengan metode
pencarian header file data sizeofcode dan .



www.wahyuhidayat.com 8
D. Tujuan Penelitian
Dari hasi penelitian yang dilakukan, adapun tujuan yang ingin dicapai
dalam merancang suatu sistem anti virus yaitu :
1. Untuk membuat sebuah anti virus dengan metode pencarian header file
data SizeOfCode dan AddressOfEntrypoint sebagai pattern
virus.
2. Untuk mengetahui letak kekurangan-kekurangan dari sistem yang sedang
berjalan..
3. Untuk mengetahui sejauh mana efektivitas dan efisiensi dari sebuah sistem
anti virus yang menggunakan header file sizeofcode dan
AddressOfEntryPoint sebagai pattren virus yang dirancang, untuk
dibandingkan dengan sistem yang menggunakan metode cheksum (CRC-
32).














www.wahyuhidayat.com 9
BAB II
LANDASAN TEORI

A. Sejarah Virus Komputer
Virus komputer pertama kalinya tercipta bersamaan dengan komputer.
Pada tahun 1949 salah seorang pencipta komputer Johnvon Newman, yang
menciptakan Electronic Discrete Variable Automatic Computer (EDVAC),
memaparkan suatu makalahnya yang berjudul Theory and Organization of
Complicated Automata.
Dalam makalahnya dibahas kemungkinan program yang dapat menyebar
dengan sendirinya.Perkembangan virus komputer selanjutnya terjadi di AT&T
Bell Laboratory salah satu laboratorium komputer terbesar di dunia yang telah
menghasilkan banyak hal, seperti bahasa C dan C++.1 Di laboratorium ini, sekitar
tahun 1960-an, setiap waktu istirahat para peneliti membuat permainan dengan
suatu program yang dapat memusnahkan kemampuan membetulkan dirinya dan
balik menyerang kedudukan lawan. Selain itu, program permainan dapat
memperbanyak dirinya secara otomatis.
Perang program ini disebut Core War, yaitu pemenangnya adalah pemilik
program sisa terbanyak dalam selang waktu tertentu. Karena sadar akan bahaya
program tersebut, terutama bila bocor keluar laboratorium tersebut, maka setiap
selesai permainan, program tersebut selalu dimusnahkan. Sekitar tahun 1970-an ,
perusahaan Xerox memperkenalkan suatu program yang digunakan untuk
membantu kelancaran kerja. Struktur programnya menyerupai virus, namun
program ini adalah untuk memanfaatkan waktu semaksimal mungkin dan pada
www.wahyuhidayat.com 10
waktu yang bersamaan dua tugas dapat dilakukan. Pada tahun 1980-an, perang
virus di dunia terbuka bermula atas pemaparan Fred Cohen, seorang peneliti dan
asisten profesor di Universitas Cincinati, Ohio.
Dalam pemaparannya, Fred juga mendemonstrasikan sebuah program
ciptaannya, yaitu suatu virus yang dapat menyebar secara cepat pada sejumlah
komputer. Sementara virus berkembang, Indonesia juga mulai terkena wabah
virus. Virus komputer ini pertama menyebar di Indonesia juga pada tahun 1988.
Virus yang begitu menggemparkan seluruh pemakai komputer di Indonesia, saat
itu, adalah virus Brain yang dikenal dengan nama virus Pakistan.
1. Pengertian Virus Komputer
Istilah virus komputer tak asing lagi bagi kalangan pengguna komputer
saat ini. Padahal, sekitar 12 tahun yang lalu, istilah ini telah dikenal oleh
masyarakat pengguna komputer. Baru pada tahun 1988, muncul artikel-artikel di
media massa yang dengan gencar memberitakan mengenai ancaman baru bagi
para pemakai komputer yang kemudian dikenal dengan sebutan virus komputer.
Virus yang terdapat pada komputer hanyalah berupa program biasa, sebagaimana
layaknya program-program lain. Tetapi terdapat perbedaan yang sangat mendasar
pada virus komputer dan program lainnya.Virus dibuat oleh seseorang dengan
tujuan yang bermacam-macam, tetapi umumnya para pembuat virus hanyalah
ingin mengejar popularitas dan juga hanya demi kesenangan semata. Tetapi
apabila seseorang membuat virus dengan tujuan merusak maka tentu saja akan
mengacaukan komputer yang ditularinya.

www.wahyuhidayat.com 11
2. Kemampuan Dasar Virus Komputer
Definisi umum virus komputer adalah program komputer yang biasanya
berukuran kecil yang dapat menyebabkan gangguan atau kerusakan pada sistem
komputer dan memiliki beberapa kemampuan dasar, diantaranya adalah :
a. Kemampuan untuk memperbanyak diri
Yakni kemampuan untuk membuat duplikat dirinya pada file-file atau
disk-disk yang belum ditularinya, sehingga lama-kelamaan wilayah
penyebarannya semakin luas.
b. Kemampuan untuk menyembunyikan diri
Yakni kemampuan untuk menyembunyikan dirinya dari perhatian user,
antara lain dengan cara-cara berikut :
1) Menghadang keluaran ke layar selama virus bekerja, sehingga
pekerjaan virus tak tampak oleh user.
2) Program virus ditempatkan diluar track2 yang dibuat DOS (misalkan
track 41)
3) Ukuran virus dibuat sekecil mungkin sehingga tidak menarik
kecurigaan.
c. Kemampuan untuk mengadakan manipulasi.
Sebenarnya rutin manipulasi tak terlalu penting. Tetapi inilah yang sering
mengganggu. Biasanya rutin ini dibuat untuk :
1) Membuat tampilan atau pesan yang menggangu pada layar monitor
2) Mengganti volume label disket

www.wahyuhidayat.com 12
3) Merusak struktur disk, menghapus file-file
4) Mengacaukan kerja alat-alat I/O, seperti keyboard dan printer
d. Kemampuan untuk mendapatkan informasi
Yakni kemampuan untuk mendapatkan informasi tentang struktur media
penyimpanan seperti letak boot record asli, letak tabel partisi, letak FAT32, posisi
suatu file, dan sebagainya.
e. Kemampuan untuk memeriksa keberadaan dirinya
Sebelum menyusupi suatu file, virus akan memeriksa keberadaan dirinya
di dalam file tersebut dengan mencari ID (tanda pengenal) dirinya. File yang
belum tertular suatu virus tentunya tidak mengandung ID dari virus yang
bersangkutan. Kemampuan ini mencegah penyusupan yang berkali-kali pada
suatu file yang sama.

3. Jenis-Jenis Virus Komputer
Berikut ini akan dibahas jenis-jenis virus yang penulis simpulkan dari
berbagai sumber, baik sumber pustaka maupun sumber dari internet.

1. Berdasarkan Teknik Pembuatannya
a. Virus yang Dibuat dengan Compiler
Adalah virus yang dapat dieksekusi karena merupakan virus yang telah di
compile sehingga menjadi dapat dieksekusi langsung. Virus jenis ini adalah virus
yang pertama kali muncul di dunia komputer, dan sampai sekarang terus
berkembang pesat. Biasanya virus jenis ini dibuat dengan bahasa pemrograman
tingkat rendah yang disebut dengan assembler, karena dengan menggunakan
www.wahyuhidayat.com 13
assembler program yang dihasilkan lebih kecil dan cepat, sehingga sangat cocok
untuk membuat virus. Tetapi tidak tertutup kemungkinan untuk membuat virus
dengan menggunakan bahasa pemrograman lainnya seperti C dan Pascal baik
dilingkungan DOS maupun Windows . Mungkin virus jenis ini adalah virus yang
paling sulit untuk dibuat tetapi karena dibuat dengan menggunakan bahasa
pemrograman dan berbentuk bahasa mesin maka keunggulan dari virus ini adalah
mampu melakukan hampir seluruh manipulasi yang mana hal ini tidak selalu
dapat dilakukan oleh virus jenis lain karena lebih terbatas.
b. Virus Macro
Banyak orang salah kaprah dengan jenis virus ini, mereka menganggap
bahwa virus Macro adalah virus yang terdapat pada program Microsoft Word.
Memang hampir seluruh virus Macro yang ditemui merupakan virus Microsoft
Word. Sebenarnya virus Macro adalah virus yang memanfaatkan fasilitas
pemrograman modular pada suatu program aplikasi tertentu seperti Microsoft
Word, Microsoft Excel, Microsoft PowePoint, Corel WordPerfect, dan
sebagainya. Tujuan dari fasilitas pemrograman modular ini adalah untuk
memberikan suatu kemudahan serta membuat jalan pintas bagi aplikasi tersebut.
Sayangnya fungsi ini dimanfaatkan oleh pembuat pembuat virus untuk membuat
virus didalam aplikasi tersebut. Walaupun virus ini terdapat didalam aplikasi
tertentu tetapi bahaya yang ditimbulkan tidak kalah berbahanya dari virus-virus
yang lain.


www.wahyuhidayat.com 14
c. Virus Script/Batch
Pada awalnya virus ini lebih dikenal dengan virus batch karena dulu
terdapat pada file batch yang terdapat pada DOS, sekarang hal ini telah berganti
menjadi script. Virus script biasanya sering didapat dari Internet karena
kelebihannya yang fleksibel dan bisa berjalan pada saat bermain internet, virus
jenis ini biasanya menumpang pada file HTML (Hype Text Markup Language)
dibuat dengan menggunakan fasilitas script seperti Janti virusascript, VBscript,4
maupun gabungan antara script yang mengaktifkan program Active-X dari
Microsoft Internet Explorer.
4. Berdasarkan Infeksi yang Dilakukan
1. Virus Boot Sector
Virus Boot Sector adalah virus yang memanfaatkan gerbang hubungan
antara komputer dan media penyimpan sebagai tempat untuk menularkan virus.
Apabila pada boot sector terdapat suatu program yang mampu menyebarkan diri
dan mampu tinggal di memory selama komputer bekerja, maka program tersebut
dapat disebut virus. Virus boot sector terbagi dua yaitu virus yang menyerang
disket dan virus yang menyerang disket dan tabel partisi.
2. Virus File
Virus file merupakan virus yang memanfaatkan suatu file yang dapat
diproses langsung pada editor DOS, seperti file berekstensi COM dan EXE serta
beberapa file overlay, dan file BATCH. Virus umumnya tidak memiliki
kemampuan untuk menyerang di semua file tersebut. Virus file juga
dikelompokkan berdasarkan yang tinggal di memori.
www.wahyuhidayat.com 15
3. Virus System
Virus sistem merupakan virus yang memanfaatkan file-file yang dipakai
untuk membuat suatu sistem komputer. Contohnya adalah file dengan berekstensi
SYS, file IBM BIO.COM, IBM DOS.COM, atau COMMAND.COM.
4. Virus Hybrid
Virus ini merupakan virus yang mempunyai dua kemampuan. Biasanya
dapat masuk ke boot sector dan juga dapat masuk ke file. Salah satu contoh, virus
ini adalah virus Mystic yang dibuat di Indonesia.
5. Virus Registry Windows
Virus ini menginfeksi operating system yang menggunakan Windows
95/98/NT biasanya akan mengadakan infeksi dan manipulasi pada bagian registry
Windows sebab registry adalah tempat menampung seluruh informasi komputer
baik hardware maupun software. Sehingga setiap kali user menjalankan Windows
maka virus akan dijalankan oleh registry tersebut.
6. Virus Program Aplikasi
Virus ini merupakan virus Macro, menginfeksi pada data suatu program
aplikasi tertentu. Virus ini baru akan beraksi apabila user menjalankan program
aplikasi tersebut dan membuka data yangmengandung virus.
5. Berdasarkan Media Penyebarannya
1. Penyebaran dengan Media Fisik
Media yang dimaksudkan bisa dengan disket, CD-ROM (Compact Disc
Read Only Memory), harddisk, dan sebagainya. Untuk CD-ROM, walaupun
media ini tidak dapat dibaca tetapi ada kemungkinan suatu CD-ROM
www.wahyuhidayat.com 16
mengandung virus tertentu, walaupun kemungkinannya kecil, tetapi seiring
dengan berkembangnya alat CD-R/CD-RW yang beredar dipasaran maka
kemungkinan adanya virus didalam CD-ROM akan bertambah pula. Untuk saat
ini virus jenis ini yang menjadi dominan dari seluruh virus yang ada. Virus ini
akan menular pada komputer yang masih belum tertular apabila terjadi
pengaksesan pada file/media yang mengandung virus yang diikuti dengan
pengaksesan file/media yang masih bersih, dapat juga dengan mengakes
file/media yang masih bersih sedangkan di memori komputer terdapat virus yang
aktif.
2. Penyebaran dengan Media Internet
Akhir-akhir ini virus yang menyebar dengan media sudah semakin banyak,
virus ini biasanya menyebar lewat e-mail ataupun pada saat user mendownload
suatu file yang mengandung virus. Juga ada beberapa virus yang secara otomatis
akan menyebarkan dirinya lewat e-mail apabila komputer memiliki hubungan ke
jalur internet.
6. Sejarah Singkat dan Taksonomi Worms

Sejarah Worms mulai ada dan dikenal sejak awal internet mulai
dipublikasikan. Dimana saat itu para ahli berusaha mengumpulkan informasi dari
seluruh jaringan internet yang belum memiliki semacam mesin pencari (search
engine). Untuk mengenal sejarah awal keberadaan worms ini, secara umum dapat
dilihat pada gambar kronologis kemunculan worms di bawah ini,




www.wahyuhidayat.com 17
















Gambar 2.1 Kronologis worms

Dari gambar tersebut, secara singkat dapat diketahui bahwa sejak awal
penciptaan worms di Palo Alto Research Center (PARC) oleh Robert T. Morris,
berdasarkan lingkungan sistem operasinya worms berkembang dua kategori yaitu,
worms yang berjalan dengan target sistem operasi UNIX dan Worms yang pada
sistem operasi Microsoft Windows. Worms pada sistem UNIX dan variannya
terdiri dari ADMW0rm, ADM Millenium, Ramen, li0n, Cheese, sadmind/IIS, dan
Adore. 7 Sedangkan worms yang berjalan pada sistem Microsoft Windows terdiri
dari Code Red 1, Code Red 2, Code Red II, Nimda, SQL Snake dan Sapphire.
Beberapa catatan yang dari kronologis worms tersebut adalah tentang,
1. Morris worms

Worms ini diciptakan oleh Robert Tappan Morris pada tahun 1988 sebagai
proyek riset pada saat menyelesaikan program doktoralnya di Cornell Unversity.
Dengan memanfaatkan kelemahan (vulnerability) pada Sendmail Server dan
Finger Daemon pada sistem Unix, worms ini menyebar dengan setelah
www.wahyuhidayat.com 18
menyebabkan keadaan zero argumenth pada sistem yang diinfeksinya. Teknik
penyebaran worms ini, masih dipakai hingga saat ini. Efek penyebaran worms
yang sangat luas ini, menyebabkan pembentukan tim Computer Emergency
Response Team (CERT/CERT-CC) oleh Amerika.
2. Ramen Worms

Merupakan worms pertama yang berhasil menyebar pada lingkungan
Linux. Ia pertama kali di identifikasikan menyerang Red Hat versi 6.1, 6.2, 6.3
dan 7.0., worms ini menyebar dengan bantuan shell scripts exploits dan scanner
yang telah dikompilasi (packed) menjadi file binary. Setelah berhasil menginfeksi
dan menjalankan aksinya (payload), ia kemudian mencari host lain secara acak
pada jaringan kelas B.
3. Sadmind/IIS

Worms ini mampu menyerang web server IIS (Internet Information
Service) Microsoft Windows, melalui kelemahan sistem pada Sun Solaris. Dengan
mencari akses root pada Sun Solaris yang terhubung dengan sistem Unix, worms
ini berevolusi dengan mengubah tampilan (deface)situs-situs yang menggunakan
IIS.
4. Melissa

Worms ini bukan yang pertama kali menggunakan teknik penyebaran
melalui e-mail, tetapi kecepatan penyebaran yang hebat membuat worms
membuat seluruh pengguna internet/e-mail di dunia menjadi sangat menderita.
Rahasia dibalik kesuksesan worms ini terletak pada implementasi rekayasa sosial
www.wahyuhidayat.com 19
pada file attachment e-mail yang yang telah terinfeksi worms tersebut. teknik ini
sampai sekarang masih efektif dan digunakan oleh worms-worms lainnya.
5. Code Red (Code Red 1)

Begitu worms ini beraksi, ia langsung menjadi sebuah standar worms lain
dalam melakukan infeksi. Teknik yang digunakan adalah melakukan exploits pada
lubang keamanan sistem yang baru diumumkan oleh vendornya. Waktu yang
dibutuhkan worms ini dalam usaha untuk mengeksploitasi lubang keamanan suatu
sistem, melebihi kecepatan vendor dalam menyediakan patch untuk kelemahan
sistem tersebut.
6. Code Red II

Worms ini menggunakan landasan ekploitasi pada pendahulunya yaitu
Code Red 1 dan Code Red 2. Dengan Teknik Island hoping worms ini membuat
kecepatan penyebaranya meningkat tiga sampai empat kali lebih cepat dari versi
pendahulunya. Teknik ini membuat probabilitas serangan acak pada alamat
Internet Protocol jaringan kelas A dan B menjadi lebih tinggi, sehingga lebih
mudah dan cepat dalam menginfeksi sistem lain.
7. Nimda



Meskipun diidentifkasikan dibuat bukan oleh pembuat Code Red, worms
ini kemungkinan memiliki tujuan untuk melanjutkan hasil serangan dari Code Red
II. Dengan menggunakan teknik yang sama dengan Code Red II, worms ini
berbeda dalam proses scanning alamat IP pada jaringan. Dengan teknik tersebut
worms ini menyebakan aktivitas besar-besaran yang menguras sumber daya dalam
jaringan.
www.wahyuhidayat.com 20
7. Struktur Worms
Lima komponen yang umum dimiliki oleh worm

adalah sebagai berikut,
1. Reconnaissance.
Komponen Worms ini bertugas untuk merintis jalannya penyebaran pada
jaringan. Komponen ini memastikan titik-titik (node) mana saja pada jaringan
yang dapat dinfeksiolehnya.
2. Attack .
Komponen ini bertugas untuk melancarkan serangan pada target node
yang telah teridentifikasi. Bentuk serangan dapat berupa tradisional buffer atau
heap overflow, string format, dan sebagainya.
3. Communications
Komponen ini membuat tiap node yang terinfeksi pada jaringan dapat
saling berkomunikasi. Komponen memberikan semacam antar muka (interface)
agar tiap worm pada jaringan dapat saling mengirim pesan.
4. Command
Komponen ini menjadi semacam pemicu apabila target sudah
teridentifikasi. Komponen ini merupakan suatu antar muka agar setiap worms
dapat mengeluarkan perintah (command) pada worms di titik lain lain.
5. Intelligent
Komponen ini merupakan komponen cerdas yang mampu memberikan
informasi bagaimana karakteristik keadaan worms di titik lain pada jaringan.
Berikut ini adalah bagaimana proses dari tiap komponen tersebut bekerjasama
dalam melakukan suatu serangan .
www.wahyuhidayat.com 21















Gambar 2.2 Gambaran proses umum komponen worms

8. Tipe-tipe worms
Berdasarkan media penyebarannya worms dapat digolongkan menjadi,
1. Email Worms
2. Instant Messaging Worms
3. Internet Relay Chat (IRC) Worms
4. File Sharing Networks Worms
5. Internet Worms
9. Perbedaan Virus dan Worms

Dari klasifikasi di atas, karena memiliki aksi yang hampir serupa, terdapat
dua tipe malware yang agak sulit dibedakan yaitu, virus dan worms. Untuk
mempermudah melihat perbedaan kedua malware tersebut dapat ditinjau dari :
1. Definisi

a. pada awalnya virus, adalah, sebagai suatu program yang dapat
menginfeksi program lain dengan memodifikasinya, termasuk
kemungkinan untuk berevolusi dengan menggandakan dirinya sendiri.
www.wahyuhidayat.com 22
Seiring dengan perkembangan teknik pemrogramannya, terdapat
beberapa bentuk virus yang tidak sesuai dengan definisi tersebut.
Sebagai contoh, suatu virus yang sering disebut companion virus
memiliki kemampuan menggandakan diri tanpa mengubah program
yang diinfeksinya. Sehingga menurut Peter Szor (2005), definisi yang
lebih akurat untuk virus pada saat ini adalah, suatu program yang
secara berulang (recursively) dan dengan tegas (explicitly)
menggandakan suatu versi dirinya sebagai kemungkinan untuk
berevolusi
b. Sedangkan definisi formal untuk worms, adalah suatu program yang
berpindah dari satu komputer ke komputer yang lain tanpa
mengikatkan dirinya (attach itselft) pada sistem operasi komputer
yang. Sejalan dengan perkembangannya, definsi worms tersebut sudah
tidak begitu tepat. Beberapa worms sering menggunakan teknik untuk
menyembunyikan kehadirannya dengan melakukan instalasi atau
memodifikasi sistem. Sehingga definisi yang lebih tepat menurut Jose
Nazario(2004), adalah suatu agen penginfeksi yang otonom dan
independen dalam bereplikasi, serta memiliki kemampuan dalam
menginfeksi sistem host baru melalui fasilitas jaringan.
2. Cara penyebaran
a. Virus memerlukan campur tangan pengguna dalam penyebarannya,
misalnya dalam proses download, klik ganda pada file yang
terinfeksi, dan lain-lain.
www.wahyuhidayat.com 23
b. Sedangkan worms dapat secara otomatis menyebar dengan tanpa
atau sedikit campur tangan dari penggunannya. Misalnya dengan
satu kali klik pada file lampiran e-mail yang terinfeksi worms,
maka satu atau beberapa sistem yang terkoneksi melalui e-mail
tersebut akan segera terinfeksi.
10. Seputar anti virus serta konsepnya
1. Pengertian Anti virus
Anti virus adalah program yang dapat menangkap mengidentifikasi dan
menghancurkan virus. Program anti virus terbagi menjadi 3, yaitu :
a. Fix
Sebuah program yang dapat mendeteksi dan menghancurkan hanya
satu virus.Harus di jalankan terlebih dahulu kemudian program akam
mencari dan menghapus virus tertentu Contohnya: Fixnimda( dari
Nanti virus), FixCodered (dari Nanti virus), dll.
b. Anti dot
Sebuah program yang dapat menangkap, dan mendeteksi beberapa
jenis virus dan menghapusnya, sama seperti program fix, harus di
jalankan terlebih dahulu kemudian mencari file yang akan terinfeksi
maupun filoe virus tertentu contohnya : Wedash Anti dot 2004, ANTI
VIRUSIGEN, PCMANTI VIRUS, dll
c. Anti virus
Sebuah program yang dapat menangkap, mendeteksi dan menghapus
banyak jenis virus, dapat otomatis menangkap file yang terinfeksi dan
www.wahyuhidayat.com 24
menghapusnya contohnya : Norton Anti virus, Mc afee. Norman,
Panda anti virus, ANTI VIRUSG, Kaperskay, dll.
2. Daerah-daerah rawan serangan virus
a. Registry
Registry windows adalah suatu database untuk menyimpan dan mengatur
sistem di windows. Caru masuk di regedit yaitu :Klik start => Run => ketik
regedit (tanpa tanda petik).





Gambar 2.3 Regedit
b. Alamat registry
Registry mempunyai alamat yang berguna untuk mengatur konfigurasi
pada windows, misalnya :
1) Alamat registry:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
Run, Berguna untuk menjalankan suatu aplikasi secara\otomatis
2) Alamat registry:
HKEY_LOCAL_USER\Software\Microsoft\Windows\CurrentVersion\Ex
plorer\Advanced\ Berguna untuk memanipulasi kode explorer.

www.wahyuhidayat.com 25
3. Alamat registry:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\
CurrentVersion\Berguna untuk memanipulasi drive penginstalan, lisensi pada
window
c. System Editor (Sysedit)
System editor atau yang biasa disingkat dengan sysedit adalah file-file
tertentu yang di jalankan ketika komputermasuk dalam windows pertama kali,
seperti regedit sysedit ini biasanya dipakai masih banyak dipakai disistem operasi
windows lama seperti win95, win98 win3.1 jadi walaupun memang sudah lama
tapi secara tidak langsung berpengaruh juga pada user yang memakai sistem
Operasi windowsXp, Caru masuk di sysedit yaitu :Klik start => Run => ketik
sysedit (tanpa tanda petik)






Gambar 2.4 Sysedit
d. Config.sys
Config.sys adalah file yang memuat tentang seluruh konfigurasi windows
dan dijalankan ketika pertama kali windows mulai. Letak file ada pada drive C:\
dan mempunyai atribut file system dan di hidden.
www.wahyuhidayat.com 26
e. Autoexec.bat
Autoexec.bat adalah file yang berisi perintah yang ada di komputer dan
akan dijalankan pertama kali ketika ketika pertama kali windows mulai. Letak file
ada pada drive C:\ dan mempunyai atribut file system dan di hiden
f. Win.ini
Ini juga sebuah file yang dieksekusi pertama kali oleh windows. File yang
dieksekusi pertama kali oleh windows. File ini berisi tentang aplikasi 16 bit yang
disupport oleh windows.
g. System.ini
System.ini adalah sebuah file yang berguna untuk menyimpan data font
yang diakses oleh windows ketika pertama kali.
h. Msconfig
Msconfig sebenarnya adalah sebuah aplikasi , dari aplikasi msconfi,
seluruh file system editor (sysedit) tadi dijalankan.












Gambar 2.5 Msconfig


www.wahyuhidayat.com 27
i. Direktory yang sering di incar oleh virus
C:\Windows
C:\Windows\System32
11. HEADER FILE (PE)
Format File PE (Portable Executable) mulai dikenalkan pada Windows NT
3.1, dimana format file ini masih menyimpan header MZ dari MS-DOS. Berikut
skema dasar format file PE :
|----------------------------|
| CodeView Debug Information |
|----------------------------|
| COFF Symbols |
|----------------------------|
| COFF Line Numbers |
|----------------------------|
| Section - n |
| . |
| . |
| Section - 2 |
|----------------------------|
| Section - 1 |
|----------------------------|
| Section - 0 |
|----------------------------|
| Array Section table |
| . |
| . |
| Array Section table |
|----------------------------|
| Data Directory |
|----------------------------|
| |
|----------------------------|
| Image File Header |
|----------------------------|
| "PE\0\0" |
|----------------------------|
| "MZ" |
|----------------------------|

Gambar 2.6 Skema PE

www.wahyuhidayat.com 28
1. PE Header

PE Header merupakan salah satu struktur dari IMAGE_NT_HEADER
(dideklarasikan dalam WINNT.H). Header ini mengandung berbagai macam jenis
informasi seperti lokasi dan ukuran dari area kode dan data, sistem operasi yang
dipakai, ukuran stack, dan lain-lain. Header ini juga mengandung MS-DOS stub,
yaitu program kecil yang akan menampilkan teks "This program cannot be run in
MS-DOS mode." Bila file PE dijalankan di lingkungan yang tidak mendukung
Win32. PE Header Terdiri dari struktur :
DWORD Signature;
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER OptionalHeader;
Dimana Signature adalah teks "PE\0\0". Sedangkan IMAGE_FILE_HEADER
berisi struktur :
1. WORD
Machine //Berisi nilai untuk jenis CPU yang dipakai, ex : 0x14d untuk Intel i860
2. WORD
NumberOfSections //Berisi jumlah section yang ada di file PE
2 DWORD
TimeDateStamp //Berisi tanggal kapan linker (atau compiler untuk File OBJ)
memproduksi file PE
3 DWORD
PointerToSymbolTable //Offset untuk tabel symbol COFF
4 DWORD
NumberOfSymbols //Berisi jumlah symbol COFF di tabel
5 WORD :
SizeOfOptionalHeader //Berisi ukuran dari optional header
www.wahyuhidayat.com 29
6 WORD
Characteristics //Berisi informasi tentang file PE
Untuk IMAGE_OPTIONAL_HEADER berisi :
1. WORD
Magic //Selalu bernilai 0x010B
2. BYTE
MajorLinkerVersion //Versi linker yang dipakai
3. BYTE
MinorLinkerVersion //Versi linker yang dipakai
4. DWORD
SizeOfCode //Ukuran dari section code
5. DWORD
SizeOfInitializedData //Ukuran dari semua data section yang terinisialisasi
6. DWORD
SizeOfUninitializedData //Ukuran dari semua data section yang tidak
terinisialisasi
7. DWORD
AddressOfEntryPoint //Alamat dimana loader akan memulai eksekusi file
PE, alamat ini adalah RVA (Relative Virtual Address)
8. DWORD
BaseOfCode //Alamat RVA dimana section code dimulai
9. DWORD
BaseOfData //Alamat RVA dimana section data dimulai
10. DWORD
ImageBase //Alamat dimana file PE akan dimapping di memory
11. DWORD
SectionAlignment //Nilai penggandaan untuk mapping tiap section di memory
12. DWORD
FileAlignment //Nilai penggandaan untuk mapping tiap section di disk
www.wahyuhidayat.com 30
13. WORD
MajorOperatingSystemVersion //Versi OS yang dipakai
14. WORD
MinorOperatingSystemVersion //Versi OS yang dipakai
15. WORD
MajorSubsystemVersion //Versi minimum OS yang dipakai
16. WORD
MinorSubsystemVersion //Versi minimum OS yang dipakai
18. DWORD

Reserved1 //Selalu bernilai 0
19. DWORD
SizeOfImage //Ukuran dari image yang akan diload oleh loader
20. DWORD
SizeOfHeaders //Ukuran dari PE Header dan tabel section
21. DWORD
CheckSum //Nilai checksum CRC dari file PE
22. WORD
Subsystem //Tipe subsistem yang diperlukan untuk keperluan GUI
23. WORD
DllCharacteristics //Tanda atau flag untuk inisialisasi DLL (Dynamic Link
Library)
24. DWORD
SizeOfStackReserve //Ukuran dari virtual memory yang akan digunakan untuk
inisialisasi stack

www.wahyuhidayat.com 31
25. DWORD
SizeOfStackCommit //Ukuran dari memory yang akan digunakan untuk
inisialisasi stack
26. DWORD
SizeOfHeapReserve //Ukuran dari virtual memory yang akan digunakan untuk
inisialisas heap proses
27. DWORD
SizeOfHeapCommit //Ukuran dari memory yang akan digunakan untuk
inisialisasi heap proses
28. DWORD
LoaderFlags //Digunakan untuk keperluan debugging
29. DWORD
NumberOfRvaAndSizes //Jumlah dari array DataDirectory
2. Tabel Section
Secara umum Tabel Section dapat dianalogikan sebagai "daftar" untuk tiap
section yang ada di file PE. Tabel ini mencakup informasi tentang section-section
file PE. berikut contoh layout dari tabel section file PE yang sudah di dump :
1. text VirtSize: 00005AFA VirtAddr: 00001000
raw data offs: 00000400 raw data size: 00005C00
relocation offs: 00000000 relocations: 00000000
line # offs: 00009220 line #'s: 0000020C
characteristics: 60000020
CODE MEM_EXECUTE MEM_READ

2. bss VirtSize: 00001438 VirtAddr: 00007000
www.wahyuhidayat.com 32
raw data offs: 00000000 raw data size: 00001600
relocation offs: 00000000 relocations: 00000000
line # offs: 00000000 line #'s: 00000000
characteristics: C0000080
UNINITIALIZED_DATA MEM_READ MEM_WRITE

3. rdata VirtSize: 0000015C VirtAddr : 00009000
raw data offs: 00006000 raw data size: 00000200
relocation offs: 00000000 relocations: 00000000
line # offs: 00000000 line #'s: 00000000
characteristics: 40000040
INITIALIZED_DATA MEM_READ

4. data VirtSize: 0000239C VirtAddr: 0000A000
raw data offs: 00006200 raw data size: 00002400
relocation offs: 00000000 relocations: 00000000
line # offs: 00000000 line #'s: 00000000
characteristics: C0000040
INITIALIZED_DATA MEM_READ MEM_WRITE

5. data VirtSize: 0000033E VirtAddr: 0000D000
raw data offs: 00008600 raw data size: 00000400
relocation offs: 00000000 relocations: 00000000
line # offs: 00000000 line #'s: 00000000
characteristics: C0000040
INITIALIZED_DATA MEM_READ MEM_WRITE

www.wahyuhidayat.com 33
6. reloc VirtSize: 000006CE VirtAddr: 0000E000
raw data offs: 00008A00 raw data size: 00000800
relocation offs: 00000000 relocations: 00000000
line # offs: 00000000 line #'s: 00000000
characteristics: 42000040
INITIALIZED_DATA MEM_DISCARDABLE MEM_READ

Layout diatas adalah format dari IMAGE_SECTION_HEADER, Berikut
keterangan tentang IMAGE_SECTION_HEADER :
a. BYTE Name[IMAGE_SIZEOF_SHORT_NAME] //Nama
section,biasanya
b. diawali dengan tanda titik/dot union { //Nilai sesungguhnya dari ukuran
kode atau data DWORD PhysicalAddress DWORD VirtualSize } Misc;\
c. DWORD VirtualAddress //Alamat RVA untuk keperluan mapping oleh
loader
d. DWORD SizeOfRawData //Ukuran dari section setelah dibulatkan ke
ukuran file alignment
e. DWORD PointerToRawData //Offset dari section
f. DWORD PointerToRelocations //Offset untuk informasi relokasi section
g. DWORD PointerToLinenumbers //Offset untuk nomor baris (line number)
h. WORD NumberOfRelocations //Jumlah dari relokasi yang ada di tabel
relokasi
i. WORD NumberOfLinenumbers //Jumlah dari nomor baris yang ada di
tabel nomor baris
www.wahyuhidayat.com 34
j. DWORD Characteristics //Berisi angka tertentu yang menunjukkan atribut
dari suatu section (data, kode, dll)
12. Sistem Operasi 16 dan 32 bit
Perbedaan penting dari 16 bit dan 32 bit sistem operasi ialah cara
bagaimana mereka menangani struktur internal. Ada perbedaan besar antara
sistem operasi 16-bit dengan 32-bit, yaitu mendukung mode 32-bit protected,
model memori flat, yang mana menyediakan manajemen memori lebih bersih
daripada 16-bit, dan mengizinkan program untuk membuat dan mengalamatkan
struktur data yang sangat besar.
1. Tidak menggunakan DOS lagi
Windows NT tidak berisi kode DOS dalam kernelnya. Semuanya
dikerjakan melalui emulasi pada pemanggilan standar DOS. Windows 95 masih
mengandalkan kode DOS untuk menjalankan aplikasi DOS. Windows 95
sebenarnya terdiri atas dua sistem operasi dalam satu paket, yaitu Windows 4.0
dan DOS 7.0 Meskipun tidak ada DOS, Windows NT tetap dapat menjalankan
banyak program DOS sepanjang mereka atidak mencoba mengakses secara
langsung hardware atau membutuhkan device driver khusus. Hal ini
dimungkinkan terjadi karena NT membuat lingkungan DOS virtual.







www.wahyuhidayat.com 35

BAB III
METODE PENELITIAN

A. Alat dan bahan
Beberapa alat dan bahan yang diperlukan untuk melakukan analasis kode
worms dan virus untuk di ambil sebagai pattern virus Antara lain adalah :
1. Perangkat Lunak
Tabel 3.1 Perangkat lunak analisis
NO NAMA DEVELOPER
1 PE Tools NEOx/[uinc]http://www.uinc.ru
2 Process Explorer Sysinternals:www.sysinternal.com
3 UPX -
4 Hiew Hiew 5.84, windows


2. Perangkat keras

Sebagai lingkungan analisis, digunakan sebuah komputer (PC) dengan
spesifikasi :
a. PC Pentium 4 dual core 3.00 Ghz
b. Ram 1 Giga
c. Hardisk Seagate 160 Gb
d. Yang telah berisi sistem operasi Windows XP SP 2, Ms. office 2003,
perangkat lunak untuk analisis seperti pada tabel di atas
3. Bahan

Beberapa file yang terenfeksi worm Brontok C, worm Klez,
www.wahyuhidayat.com 36
B. Teknik penyiapan pattern virus

Langkah pertama dari pembuatan program antivirus adalah memiliki
pattern atau dari virus yang akan dikenali oleh program antivirus. Pattern bisa
juga disebut pola atau susunan. Sebuah program antivirus tidak akan bermanfaat
jika tidak didukung oleh virus definition yang lengkap, definition file adalah suatu
kumpulan data dari malicious code. Jadi industri antivirus sangat tergantung dari
dukungan sample virus yang dikirim kepada mereka.
Walaupun dewasa ini telah dilakukan berbagai pendekatan heuristic dalam
pendeteksian program-program virus, tetapi hal tersebut sering tidak efektif
karena akan membuat system menjadi rewel dan sering memberikan false alarm
dimana program-program utility tertentu dianggap sebagai virus, oleh karena itu
pembuat virus telah memperbaiki teknik pengkodean (polymorphism) sehingga
dapat memperdaya program-program antivirus.
Tentu saja hal ini membutuhkan penelitian dan analisa yang mendalam
sehingga teknik pengumpulan pattern virus menjadi efektif untuk mendeteksi
keberadaan process virus dimemori maupun file virus dimedia penyimpanan.
Masalah lain adalah teknik penyiapan pattern virus akan mempengaruhi teknik
pendeteksian yang tentu saja sangat menentukan performance dari antivirus yang
dibuat, misalnya pattern virus telah berkembang menjadi 100 pattern dan jumlah
file yang akan dideteksi adalah 1000 files, sehingga dilakukan perkalian menjadi
100000 kali proses pendeteksian, bagaimana kalau pattern berkembang menjadi
1000, dan terakhir adalah resource yang digunakan untuk penyimpanan pattern
tersebut baik media disk maupun memori. Jadi teknik pembuatan pattern virus
www.wahyuhidayat.com 37
merupakan isu yang terpenting dari kesuksesan pendeteksian program antivirus
dan perfomancenya, serta resource yang dihabiskan. Ini merupakan bagian yang
paling penting dari suatu program antivirus. Karena bagaimana pattern virus
tersebut dilakukan (mengambil pattern dari file virus), maka dengan cara
sebaliknya program anti virus akan mendeteksi keberadaan virus file dan process
virus dimemori (dengan membandingkan pattern virus dengan data file dan
process).
Teknik pendekatan yang digunakan penulis merupakan hasil pengamatan
dan penelitian terhadap beberapa program virus yang beredar di Indonesia, seperti
varian Brontok dan MyHeart. Pendekatan ini cukup efektif untuk digunakan untuk
mengenali keberadaan process virus di memori maupun di file dengan satu
pendekatan yang sama. Sebelum membahas tentang bagaimana pattern virus
diambil, penulis akan membahasa tentang struktur PE file yang digunakan pada
file executable dilingkungan system operasi Windows.
1. Struktur file PE (Portable Executable)

Suatu file PE akan diawali dengan suatu DOS Header yang memiliki suatu
e_magic number dalam hexa 4D 5A (MZ, lihat gambar dibawah), kemudian pada
offset ke 60 atau hexa D8 akan terdapat suatu pointer (e_lfanew) yang menunjuk
kelokasi dimana PE file header.
www.wahyuhidayat.com 38
Gambar 3.1 DOS Header dari suatu PE file

Pada Visual Basic, Deklarasi struktur data untuk DOS Header dapat
dideklarasikan sebagai berikut :
Private Type IMAGE_DOS_HEADER
e_magic As Integer ''\\ Magic number
e_cblp As Integer ''\\ Bytes on last page of file
e_cp As Integer ''\\ Pages in file
e_crlc As Integer ''\\ Relocations
e_cparhdr As Integer ''\\ Size of header in paragraphs
e_minalloc As Integer ''\\ Minimum extra paragraphs needed
e_maxalloc As Integer ''\\ Maximum extra paragraphs needed
e_ss As Integer ''\\ Initial (relative) SS value
e_sp As Integer ''\\ Initial SP value
e_csum As Integer ''\\ Checksum
e_ip As Integer ''\\ Initial IP value
e_cs As Integer ''\\ Initial (relative) CS value
e_lfarlc As Integer ''\\ File address of relocation table
e_ovno As Integer ''\\ Overlay number
e_res(0 To 3) As Integer ''\\ Reserved words
e_oemid As Integer ''\\ OEM identifier (for e_oeminfo)
e_oeminfo As Integer ''\\ OEM information; e_oemid specific
e_res2(0 To 9) As Integer ''\\ Reserved words
e_lfanew As Long ''\\ File address of new exe header
End Type

Jika suatu PE file dijalankan pada lingkungan DOS-16 akan mencetak
pesan error dan berhenti, sedangkan Windows akan mengikuti pointer ini untuk
menuju ke bagian informasi berikutnya.

www.wahyuhidayat.com 39
2. DOS Header pada beberapa Virus

Pada PE file standard dapat dengan mudah mendapatkan posisi PE Header,
dengan mengambil pointer e_lfanew. Tetapi pada beberapa virus hal tersebut tidak
dapat dilakukan, karena mereka telah melakukan modifikasi terhadap DOS
Header dengan tujuan mereduksi ukuran dari program Virus. Contoh DOS Header
pada Worm Klez yang masih standar. di perlihatkan pada gambar berikut.













Gambar 3.2 Dos Header

Keterangan Gambar diatas (warna merah) :
Dimana pada offset 3C hexa (e_lfanew) berisi nilai 80 hexa yang merupakan
pointer ke lokasi dimana PE header berada, yaitu pada posisi Offset 80 hexa,
kalau dilihat pada gambar diatas berisi nilai 50 45 hexa yang merupakan
representasi dari nilai ASCII P (50 hexa) dan E (45 hexa).
3. Fakta DOS Header pada Worm Brontok.C
Berdasarkan pengamatan penulis, ternyata pembuat virus telah melakukan
modifikasi terhadap PE file dengan mereduksi DOS Header.
www.wahyuhidayat.com 40

Gambar 3.3 Header pada Worm Brontok.C
Pada gambar diatas tidak dapat menggunakan pendekatan sebelumnya untuk
menentukan posisi PE header, sehingga perlu dilakukan dengan cara pencarian
data PE+Chr$(0)+Chr$(0) pada buffer pembacaan file, e_lfanew =
InStr(sBuffer, "PE" + Chr$(0) + Chr$(0))
Dim sBuffer As String * 512
Dim e_lfanew As Integer
Dim nf As Integer
nf = FreeFile
Open sFiles For Binary Access Read As #nf
Get #nf, , sBuffer
e_lfanew = InStr(sBuffer, "PE" + Chr$(0) + Chr$(0))

Potongan program diatas akan membuka file untuk diakses dibaca saja
secara binary , kemudian membaca 512 bytes pertama dari file ke variable string
sBuffer, selanjutnya dilakukan pencarian "PE" + Chr$(0) + Chr$(0), jika
ditemukan maka variable e_lfanew akan berisi pointer ke PE Header dan
sebaliknya akan berisi 0 (nol).
www.wahyuhidayat.com 41
4. NT Header
Suatu NT Header memiliki struktur data dimana setelah Signature
(PE\0\0) akan diikuti oleh IMAGE_FILE_HEADER,
IMAGE_OPTIONAL_HEADER, dan IMAGE_OPTIONAL_HEADER_NT.

Public Type IMAGE_NT_HEADERS
Signature As Long
FileHeader As IMAGE_FILE_HEADER
OptionalHeader As IMAGE_OPTIONAL_HEADER
OptionalHeaderNT As IMAGE_OPTIONAL_HEADER_NT
End Type

Signature, merupakan data 4 byte yaitu "PE" + Chr$(0) + Chr$(0) File
Header, memiliki struktur data sebagai berikut :

Private Type IMAGE_FILE_HEADER
Machine As Integer
NumberOfSections As Integer
TimeDateStamp As Long
PointerToSymbolTable As Long
NumberOfSymbols As Long
SizeOfOptionalHeader As Integer
Characteristics As Integer
End Type



Gambar 3.4 Data Image File Header

Berdasarkan gambar diatas, maka :

Machine (Integer) 4C 01
NumberOfSection (Integer) 02 00
TimeDateStamp (Long) 00 00 00 00
PointerToSymbolTable 00 00 00 00
NumberOfSymbol 00 00 00 00
SizeOfOptionalHeader 4C 01
Characteristics 02 00

www.wahyuhidayat.com 42
Optional Header, memiliki struktur data sebagai berikut :

Private Type IMAGE_OPTIONAL_HEADER
Magic As Integer
MajorLinkerVersion As Byte
MinorLinkerVersion As Byte
SizeOfCode As Long
SizeOfInitializedData As Long
SizeOfUninitializedData As Long
AddressOfEntryPoint As Long
BaseOfCode As Long
BaseOfData As Long
End Type






Gambar 3.5 Image Optional Header

Yang jika diview dengan PE Tools (http://www.uinc.ru), maka adalah sebagai
berikut :













Gambar 3.6 Data Optional Header suatu PE file
C. Mempersiapkan pattern virus

Berdasarkan pengamatan yang dilakukan penulis adalah cukup efektif
menggunakan data SizeOfCode dan AddressOfEntryPoint sebagai pattern virus,
karena sulit ditemukan dua executable memiliki SizeOfCode dan
www.wahyuhidayat.com 43
AddressOfEntryPoint yang sama, kecuali merupakan executable file yang sama,
artinya dengan menggunakan data ini dapat mengenali file executable virus,
karena jika merupakan file virus yang sama maka, akan memiliki data yang sama
juga.
Public Function AmbilPatternFile(sFiles)
Dim sBuffer As String * 512
Dim ImageNTHeader As IMAGE_NT_HEADERS
Dim e_lfanew As Integer
Dim nf As Integer

nf = FreeFile
AmbilPatternFile = ""
On Error GoTo Finally
Open sFiles For Binary Access Read As #nf

Get #nf, , sBuffer

e_lfanew = InStr(sBuffer, "PE" + Chr$(0) + Chr$(0))
If e_lfanew > 0 Then
Seek #nf, e_lfanew
Get #nf, , ImageNTHeader
AmbilPatternFile = buatPattern(ImageNTHeader)
End If
Close #nf
Finally:
End Function

Potongan program diatas berfungsi mengambil pattern file dari suatu executable :

e_lfanew = InStr(sBuffer, "PE" + Chr$(0) + Chr$(0))

ambil posisi e_lfanew dengan mencari substring PE dalam sBuffer.
If e_lfanew > 0 Then
Seek #nf, e_lfanew
Get #nf, , ImageNTHeader
AmbilPatternFile = buatPattern(ImageNTHeader)
End If

Jika e_lfanew > nol (ditemukan), maka akan dipindahkan file pointer ke
offset dimana file header dimulai dengan perintah Seek #nf, e_lfanew, dan
www.wahyuhidayat.com 44
kemudian dilakukan pembacaan ke variable ImageNTHeader dengan perintah Get
#nf, , ImageNTHeader, dan selanjutnya akan dipanggil function buatPattern dan
melewatkan variable ImageNTHeader sebagai parameter. Variabel
ImageNTHeader merupakan variable struktur IMAGE_NT_HEADERS
Dim ImageNTHeader As IMAGE_NT_HEADERS
Dan struktur
IMAGE_NT_HEADER dapat dilihat pada penjelasan sebelumnya.
Public Function buatPattern(ImageNTHeader As IMAGE_NT_HEADERS)
buatPattern=Right$("00000000"+Hex$(ImageNTHeader.OptionalHeader.Address
OfEntryPoint),8) + Right$("00000000" + Hex$
(ImageNTHeader.OptionalHeader.Size
OfCode), 8)
End Function
Function buatPattern akan mengembalikan pattern virus dalam bentuk
hexadecimal yang merupakan data AddressOfEntryPoint dan SizeCode.
D. Menyimpan pattern virus ke file
Bisa saja langsung memasukkan pattern virus kedalam program, tetapi
tentu saja pendekatan ini tidak efektif, dimana setiap ada pattern baru, maka harus
melakukan modifikasi terhadap source code dan melakukan kompilasi ulang.
Pendekatan lain yang dapat lakukan adalah dengan menyimpan pattern virus pada
suatu text file terpisah (indoprog.vdf), sehingga setiap adanya pattern virus baru
cukup dimasukan kedalam file.
Pattern Virus Nama virus
XXXXXXXXXXXXXXXXyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
www.wahyuhidayat.com 45

Dimana 16 digit pertama adalah pola virus, dan diikuti oleh nama virus. Sehingga
00095F0000095000virus1
0000136000003000virus2
0000135800003000virus3
000070E000002000virus4
dst
setiap startup program antivirus cukup membaca semua pattern tersebut ke suatu
variable array.

Dim PatternCount As Integer
Dim PatternVirus(100) As String

Private Sub loadVdf()
Dim cVDF As String
Dim nf As Integer
cVDF = App.Path + "\indoprog.vdf"
nf = FreeFile
PatternCount = 0
Open cVDF For Input As #nf
Do While Not EOF(nf)
Input #nf, PatternVirus(PatternCount)
Call lstHistory.AddItem("Baca : " + PatternVirus(PatternCount), 0)
PatternCount = PatternCount + 1
Loop
PatternCount = PatternCount - 1
Close #nf
End Sub

E. Teknik Mendeteksi process virus dimemori dan menghentikannya
Sebagaimana dengan program executable lainnya, pada saat runtime
program virus juga berupa process yang aktif dimemory.











www.wahyuhidayat.com 46











Gambar 3.7 Halaman process pada task manager.

Jika sistem sudah terinfeksi virus, maka proses dari virus juga akan tampil
pada halaman proses pada task manager. Tetapi permasalahannya, banyak virus
menggunakan nama file yang menyerupai program internal Windows sehingga
menyulitkan untuk membedakan mana yang virus maupun mana yang merupakan
program sebenarnya. Untuk dapat melihat data dari process yang lebih terperinci,
bisa dengan menggunakan software Process Explorer dari sysinternal
(http://www.sysinternal.com)







Gambar 3.8 Process yang ditampilkan dengan Process Explorer
Pada Gambar diatas, dapat langsung dibedakan mana yang merupakan
System Service dan mana yang merupakan aplikasi yang berjalan dibawah
Explorer.exe, serta Description dan Company Name.
www.wahyuhidayat.com 47
Kadang ada file image dari proses yang sama dengan file virus. Virus
menggunakan EXE Packer untuk memperkecil ukurannya pada media
penyimpanan maupun transfer data, tetapi pada saat dijalankan tentu saja harus
diextract sehingga dalam hal ini image dari process virus akan berbeda dengan file
virus. Misalnya program Indoprog Anti Virus.exe normalnya berukuran 86016
bytes Setelah dilakukan Packer menggunakan UPX, ukurannya menjadi lebih
kecil.









Gambar 3.9 Process UPX

yaitu menjadi berukuran 35840 bytes. Berikut ini adalah Optional Header file
indoprog anti virus.exe sebelum di UPX













www.wahyuhidayat.com 48







Gambar 3.10 Optional Header file Indoprog Anti Virus.exe sebelum UPX

Berikut ini adalah Optional Header file Indoprog Anti Virus.exe setelah di
UPX.


Gambar 3.11 Optional Header file Indoprog Anti Virus.exe setelah UPX

Berikut ini adalah Optional Header dari image process Indoprog Anti
Virus pada saat runtime.
www.wahyuhidayat.com 49

Gambar 3.12 Optional Header image process Indoprog Anti Virus.exe (UPX)
Tetapi berdasarkan pengamatan yang dilakukan oleh penulis, ternyata data
AddressOfEntryPoint dan SizeOfCode tidak diubah pada image proses,
sehingga teknik pendeteksian dengan pola tersebut layak dilakukan. Pada
prinsipnya keberadaan process dimemory memiliki PId (Process Id), dan masing-
masing process terdiri dari Module-module (terdiri dari executable itu sendiri, dll,
dan ocx yang diimport oleh executable tersebut).
F. Mengambil semua process yang aktif
Untuk mengambil process yang sedang aktif, membutuhkan fungsi API seperti :
Public Sub periksaProcesses()
Dim hSnapShot As Long
Dim ProcessEntry As PROCESSENTRY32
Dim NextEnumExists As Boolean
Dim Pos As Long
Dim pId As Long
Dim fileName As String
Dim baseName As String

hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If hSnapShot = 0 Then
MsgBox "Failed to create Module and Thread snapshot"
Exit Sub
www.wahyuhidayat.com 50
End If

ProcessEntry.dwSize = Len(ProcessEntry)
NextEnumExists = 0 <> Process32First(hSnapShot, ProcessEntry)

While NextEnumExists
pId = ProcessEntry.th32ProcessID

Pos = InStr(ProcessEntry.szExeFile, Chr(0))

If Pos > 1 Then
fileName = Left(ProcessEntry.szExeFile, Pos - 1)
baseName = extractFilename(fileName)
Else
fileName = ""
baseName = ""
End If

Call lstHistory.AddItem("Periksa (" + Hex$(pId) + ") " + fileName, 0)

Call periksaModules(pId)

NextEnumExists = 0 <> Process32Next(hSnapShot, ProcessEntry)
Wend

Call CloseHandle(hSnapShot)

End Sub

Dimana deklarasi dari masing-masing fungsi API untuk
CreateToolhelp32Snapshot, Process32First, Process32Next, CloseHandle adalah
sebagai berikut :

Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" _
(ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long

Public Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long

Public Declare Function Process32First Lib "kernel32" _
(ByVal hSnapShot As Long, ByRef ThreadStruct As PROCESSENTRY32) As
Long

Public Declare Function Process32Next Lib "kernel32" _
(ByVal hSnapShot As Long, ByRef ThreadStruct As PROCESSENTRY32) As
Long
www.wahyuhidayat.com 51

sedangkan TH32CS_SNAPPROCESS merupakan konstanta dengan nilai &H2

Public Const TH32CS_SNAPPROCESS As Long = &H2&

Dan PROCESSENTRY32 adalah struktur yang dideklarasikan sebagai berikut :

Public Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 260

End Type

Potongan kode di atas akan menjelaskan bagaimana program akan
melakukan looping mulai dari process yang pertamaNextEnumExists = 0 <>
Process32First(hSnapShot,ProcessEntry), dan seterusnya dengan
NextEnumExists = 0 <> Process32 Next (hSnapShot, ProcessEntry).
Selanjutnya dalam masing-masing looping akan diambil pId =
ProcessEntry.th32ProcessID, dan diextract nama file exe image process tersebut
Pos = InStr(ProcessEntry.szExeFile, Chr(0))

If Pos > 1 Then
fileName = Left(ProcessEntry.szExeFile, Pos - 1)
baseName = extractFilename(fileName)
Else
fileName = ""
baseName = ""
End If

Dan masing-masing PId akan dilewatkan sebagai argument pada fungsi Call
periksaModules(pId)
www.wahyuhidayat.com 52
G. Memeriksa masing-masing Module dalam Process
Setelah mendapatkan process, maka perlu memeriksa masing-masing
module dalam process untuk mencocokan memory image dari masing-masing
module dengan pattern virus yang telah persiapkan, jika ternyata ada memory
image yang menyerupai pattern virus, maka process pemilik module tersebut
harus dihentikan.

















Gambar 3.13 Module dari process zlclient.exe

Public Sub periksaModules(pId As Long)
Dim ModuleEntry As TMODULEENTRY32
Dim hProcess As Long
Dim Proceed As Long
Dim hSnapShot As Long

Dim lWritten As Long

Dim sBuffer As String * 512
Dim ImageNTHeader As IMAGE_NT_HEADERS
Dim e_lfanew As Integer
Dim Pattern As String

Dim i As Integer

www.wahyuhidayat.com 53
If GetVersion = VER_PLATFORM_WIN32_NT Then
If Not SetPrivilege("SeDebugPrivilege", True) Then Exit Sub
End If

hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pId)

If hProcess <> 0 Then
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pId)

If hSnapShot <> -1 Then
ModuleEntry.dwSize = Len(ModuleEntry)
Proceed = Module32First(hSnapShot, ModuleEntry)

Do While Proceed

sBuffer = Space(1024)

If ReadProcessMemory(hProcess, ByVal ModuleEntry.modBaseAddr,
ByVal sBuffer, 512, lWritten) Then
If lWritten > 0 Then
e_lfanew = InStr(sBuffer, "PE" + Chr$(0) + Chr$(0)) - 1
If e_lfanew > 0 Then
If ReadProcessMemory(hProcess, ByVal (ModuleEntry.modBaseAddr
+ e_lfanew), ByVal ImageNTHeader, Len(ImageNTHeader), lWritten) Then
Pattern = buatPattern(ImageNTHeader)
i = 0
Do While i <= PatternCount
If Pattern = Left(PatternVirus(i), Len(Pattern)) Then Exit Do
i = i + 1
Loop
If i <= PatternCount Then
adanti virusirus = True
Call TerminateProcess(hProcess, 0)
Call lstHistory.AddItem("Found :" + Mid$(PatternVirus(i), Len(Pattern) +
1), 0)
Call lstHistory.AddItem("Action: Kill process", 0)
End If
End If
End If
End If
End If
Proceed = Module32Next(hSnapShot, ModuleEntry)
Loop
End If

CloseHandle (hSnapShot)
www.wahyuhidayat.com 54

End If

CloseHandle (hProcess)

If GetVersion() = VER_PLATFORM_WIN32_NT Then
Call SetPrivilege("SeDebugPrivilege", False)
End If

End Sub

Sebagaimana dengan pengambilan process, pengambilan module-module
berdasarkan PId juga membutuhkan fungsi WIN API seperti :OpenProcess,
CreateToolhelp 32Snapshot, Module32First, Module32Next. Sesuatu yang
menjadi permasalahan dalam pengambilan module adalah pada system operasi
berbasis NT seperti NT4/2000/XP yang membutuhkan suatu priviledge
SeDebugPrivilege.

If GetVersion = VER_PLATFORM_WIN32_NT Then
If Not SetPrivilege("SeDebugPrivilege", True) Then Exit Sub
End If

Setelah mendapatkan modul, maka selanjutnya adalah melakukan ReadProcess
Memory yang bertujuan membaca image dari modul.
sBuffer = Space(1024)

If ReadProcessMemory(hProcess, ByVal ModuleEntry.modBaseAddr, ByVal
sBuffer, 512, lWritten) Then

Dimana persiapkan string buffer yang berukuran 1024 bytes, dan
melakukan proses pembacaan image ke variable sBuffer. Sesuatu hal yang perlu
diperhatikan adalah pembacaan memori proses didasarkan pada nilai pointer
ModuleEntry.modBaseAddr. lWritten akan mengembalikan ukuran byte yang
terbaca, sehingga dengan memeriksa nilai lWritten akan diketahui apakah
www.wahyuhidayat.com 55
pembacaan berhasil dilakukan. Selanjutnya akan mencara posisi offset file Header
(e_lfanew), dengan mencari e_lfanew = InStr(sBuffer, "PE" + Chr$(0) +
Chr$(0)) 1
Setelah mendapatkan posisi e_lfanew, maka dapat melakukan pembacaan
ke variable ImageNTHeader dengan perintah ReadProcessMemory(hProcess,
ByVal (ModuleEntry.modBaseAddr + e_lfanew), ByVal ImageNTHeader,
Len(ImageNTHeader), lWritten) yang secara kongkrit dapat dilihat pada
potongan program berikut :
If ReadProcessMemory(hProcess, ByVal ModuleEntry.modBaseAddr,
ByVal sBuffer, 512, lWritten) Then
If lWritten > 0 Then
e_lfanew = InStr(sBuffer, "PE" + Chr$(0) + Chr$(0)) - 1
If e_lfanew > 0 Then
If ReadProcessMemory(hProcess, ByVal (ModuleEntry.modBaseAddr
+ e_lfanew), ByVal ImageNTHeader, Len(ImageNTHeader), lWritten) Then
Pattern = buatPattern(ImageNTHeader)
i = 0
Do While i <= PatternCount
If Pattern = Left(PatternVirus(i), Len(Pattern)) Then Exit Do
i = i + 1
Loop
If i <= PatternCount Then
adanti virusirus = True
Call TerminateProcess(hProcess, 0)
Call lstHistory.AddItem("Found :" + Mid$(PatternVirus(i), Len(Pattern) +
1), 0)

Call lstHistory.AddItem("Action: Kill process", 0)
End If
End If
End If
End If
End If

www.wahyuhidayat.com 56
Setelah dibaca memori proses mulai dari offset e_lfanew ke-variabel
ImageNTHeader maka dapat dilakukan proses generater PatternVirus, dan
selanjutnya dibandingkan dengan pola virus yang dipersiapkan terlebih dahulu.
H. Menghentikan proses virus
Jika ditemukan pola virus tersebut, berarti proses tersebut merupakan
process virus, sehingga harus dihentikan dengan
Call TerminateProcess(hProcess, 0)
1. Mencari semua file virus dimedia penyimpanan

Untuk mendeteksi semua file virus dimedia penyimpanan harus diawali
dengan menggambil semua drive yang terinstalasi pada system komputer,
kemudian dilanjutkan untuk pengambilan folder dan sub-sub folder pada masing-
masing drive dan folder, dan akhirnya dilanjutkan dengan pengambilan file pada
masing-masing folder yang ditemukan.
a. Menggambil semua drive
Untuk menggambil semua drive dari system, dapat menggunakan
Scripting.FileSystemObject, dan melakukan looping untuk semua drive For Each
sDrive In Drives, yang selanjutnya masing-masing drive akan dilewatkan ke
fungsi GetFolder.
'Mencari semua drive, dan mendeteksi
Sub periksaDrives()
Dim ObjFSO As Object
Dim Drives As Object
Dim sDrive As Object
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set Drives = ObjFSO.Drives
For Each sDrive In Drives
'1 - Removable drive
'2 - Fixed drive (hard disk)
www.wahyuhidayat.com 57
'3 - Mapped network drive
'4 - CD-ROM drive
'5 - RAM disk
If sDrive.DriveType <= 2 Then
Call GetFiles(sDrive & "\")
GetFolders (sDrive & "\")
End If
Next
End Sub
b. Menggambil Semua Folder Dari Suatu Drive

Cara penggambilan folder dari drive menyerupai cara menggambil drive,
yaitu dengan Scripting.FileSystemObject dan melakukan looping untuk semua
SubFolders For Each sFolder In ObjFSO.GetFolder(Folder).SubFolders,
Cuma permasalahan yang dihadapi disini adalah masing-masing folder tentu saja
mungkin memiliki sub folder dan seterusnya, sehingga masalah tersebut tidak
dapat dilakukan dengan sekali looping saja, melainkan harus dilakukan secara
Rekursi
Function GetFolders(Folder As String)
Dim ObjFSO As Object
Dim sFolder As Object
On Error GoTo Finally
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
For Each sFolder In ObjFSO.GetFolder(Folder).SubFolders
Call GetFiles(sFolder.Path)
GetFolders (sFolder.Path) Rekursi
Next
Finally:
End Function






c. Mendeteksi Semua File Pada Path Tertentu

www.wahyuhidayat.com 58
Berikut ini adalah function untuk Menggambil semua file dari Path yang
diberikan, dan memeriksa file dengan extension "bat bin com cmd dll exe ini htt
pif".

Function GetFiles(Path As String)
Dim ObjFSO As Object
Dim sFiles As Object
Dim Pattern As String
Dim i As Integer

On Error GoTo Finally
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
txtScan.Text = Path
For Each sFiles In ObjFSO.GetFolder(Path).Files
DoEvents
If InStr("bat bin com cmd dll exe ini htt pif", Right$(sFiles,
3)) > 0 Then
Pattern = AmbilPatternFile(sFiles)
If Pattern <> "" Then
i = 0
Do While i <= PatternCount
If Pattern = Left(PatternVirus(i), Len(Pattern)) Then Exit
Do
i = i + 1
Loop

If i <= PatternCount Then
adanti virusirus = True
'SetAttr sFiles, vbNormal
'Kill sFiles
Call lstHistory.AddItem("File :" + sFiles, 0)
Call lstHistory.AddItem("Found :" + Mid$(PatternVirus(i),
Len(Pattern) + 1), 0)
End If
End If
End If
Next
Finally:
End Function


Mengambil semua file yang terdapat pada path tertentu :

www.wahyuhidayat.com 59
For Each sFiles In ObjFSO.GetFolder(Path).Files

If InStr("bat bin com cmd dll exe ini htt pif", Right$(sFiles, 3)) >
0 Then
Pattern = AmbilPatternFile(sFiles)
If Pattern <> "" Then
i = 0
Do While i <= PatternCount
If Pattern = Left(PatternVirus(i), Len(Pattern)) Then Exit Do
i = i + 1
Loop

If i <= PatternCount Then
adanti virusirus = True
'SetAttr sFiles, vbNormal
'Kill sFiles
Call lstHistory.AddItem("File :" + sFiles, 0)
Call lstHistory.AddItem("Found :" + Mid$(PatternVirus(i),
Len(Pattern) + 1), 0)
End If
End If

Semua extension yang memenuhi kriteria akan diambil pattern dengan
perintah Pattern = AmbilPatternFile(sFiles), dan pattern akan dibandingkan
dengan pattern virus yang sudah dipersiapkan sebelumnya (PatternCount adalah
variable yang berisi total pattern yang telah dibaca ke variable array PatternVirus)
Do While i <= PatternCount
If Pattern = Left(PatternVirus(i), Len(Pattern)) Then Exit Do
i = i + 1
Loop

Jika Pattern menyerupai salah satu pattern, maka akan segera keluar dari looping
If Pattern = Left(PatternVirus(i), Len(Pattern)) Then Exit Do
If i <= PatternCount Then
adanti virusirus = True
SetAttr sFiles, vbNormal
Kill sFiles
Call lstHistory.AddItem("File :" + sFiles, 0)
Call lstHistory.AddItem("Found :" + Mid$(PatternVirus(i), Len(Pattern)
+ 1), 0)
www.wahyuhidayat.com 60
End If

Jika looping selesai dengan nilai I <= PatternCount, maka artinya file
tersebut merupakan file virus dengan pattern tersebut, dan harus dihapus, tetapi
sebelum dilakukan penghapusan harus diset Atribut dari file ke Normal, dan baru
dihapus.
d. Memulihkan registry yang dimodifikasi virus ke kondisi standard

Untuk memulihkan registry yang dimodifikasi virus ke kondisi standard
merupakan hal yang sulit, karena masing-masing virus melakukan teknik
pendekatan pengaktifan, dan perubahan registry yang berbeda-beda, sehingga
tidak dimungkinkan untuk mendefinisikan pemulihan untuk masing-masing virus,
tetapi yang dapat lakukan adalah mencari informasi registry apa saja yang sering
dimodifikasi oleh virus dan mengembalikannya ke nilai default. Berikut ini adalah
registry yang sering dimodifikasi oleh virus yang di simpan ke suatu file
indoprog.rdf, dimana terdiri dari tiga kolom yaitu Aksi, Key dan nilai Default.
W, write
D, delete
Key, merupakan nama dari key register

Default, merupakan nilai default untuk key register

Contoh file indoprog.rdf

"W","HKCR\batfile\shell\open\command","%1 %*",""
"W","HKCR\exefile\shell\open\command","%1 %*",""
"W","HKCR\piffile\shell\open\command","%1 %*",""
"W","HKCR\lnkfile\shell\open\command","%1 %*",""
"W","HKCR\scrfile\shell\open\command","%1 %*",""
"W","HKCR\regfile\shell\open\command","%1 %*",""
"W","HKLM\Software\CLASSES\batfile\shell\open\command","%1
%*",""
"W","HKLM\Software\CLASSES\exefile\shell\open\command","%1
%*",""
"W","HKLM\Software\CLASSES\piffile\shell\open\command","%1
%*",""
www.wahyuhidayat.com 61
"W","HKLM\Software\CLASSES\lnkfile\shell\open\command","%1
%*",""
"W","HKLM\Software\CLASSES\scrfile\shell\open\command","%1
%*",""
"W","HKLM\Software\CLASSES\regfile\shell\open\command","%1
%*",""
"W","HKLM\Software\Classes\exefile","Application",""
"W","HKLM\Software\Microsoft\Windows
NT\CurrentVersion\Windows\AppInit_DLLs","",""
"W","HKLM\Software\Microsoft\Windows
NT\CurrentVersion\Winlogon\Shell","Explorer.exe",""
"W","HKLM\Software\Microsoft\Windows
NT\CurrentVersion\Winlogon\Userinit","windir\system32\userin
it.exe",""
"W","HKLM\System\ControlSet001\Control\SafeBoot\AlternateShe
ll","Cmd.exe",""
"W","HKLM\System\ControlSet002\Control\SafeBoot\AlternateShe
ll","Cmd.exe",""
"W","HKLM\System\ControlSet003\Control\SafeBoot\AlternateShe
ll","Cmd.exe",""
"W","HKCU\Control Panel\Desktop\SCRNSANTI
VIRUSE.EXE","Explorer.exe",""
"W","HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies
\Explorer\NoRun","0","DWORD"
"W","HKLM\Software\Microsoft\Windows\CurrentVersion\Policies
\System\DisableRegistryTools","0","DWORD"
"W","HKLM\Software\Microsoft\Windows\CurrentVersion\Policies
\System\DisableCMD","0","DWORD"
"W","HKLM\Software\Microsoft\Windows\CurrentVersion\Policies
\System\DisableTaskMgr","0","DWORD"
"W","HKLM\Software\Microsoft\Windows\CurrentVersion\Policies
\System\NoDevMgrPage","0","DWORD"
"W","HKLM\Software\Microsoft\Windows
NT\SystemRestore\DisableConfig","0","DWORD"
"W","HKLM\Software\Microsoft\Windows
NT\SystemRestore\DisableSR","0","DWORD"
"W","HKLM\Software\Policies\Microsoft\Windows\Installer\Limi
tSystemRestoreCHeckpointing","0","DWORD"
"W","HKLM\Software\Policies\Microsoft\Windows\Installer\Disa
bleMSI","0","DWORD"
"W","HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer
\CabinetState\FullPathAddress","0","DWORD"
"W","HKLM\Software\Microsoft\Internet
Explorer\Main\Default_Page_Url","about:blank",""
"W","HKLM\Software\Microsoft\Internet
Explorer\Main\Default_Page_Url","about:blank",""
"W","HKLM\Software\Microsoft\Internet Explorer\Main\Start
Page","about:blank",""
"W","HKLM\Software\Microsoft\Internet Explorer\Main\Start
Page","about:blank",""
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Policies
\Explorer\NoFind","0","DWORD"
"W","HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies
\Explorer\NoRun","0","DWORD"
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Policies
\Explorer\DisallowRun","0","DWORD"
www.wahyuhidayat.com 62
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Policies
\System\DisableRegistryTools","0","DWORD"
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Policies
\System\DisableCMD","0","DWORD"
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Policies
\System\DisableTaskMgr","0","DWORD"
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Policies
\System\NoDevMgrPage","0","DWORD"
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Policies
\WinOldApp\Disabled","0","DWORD"
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Policies
\WinOldApp\NoRealMode","0","DWORD"
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Policies
\Explorer\NoViewContextMenu","0","DWORD"
"W","HKCU\Software\Microsoft\Internet
Explorer\Main\Default_Page_Url","about:blank",""
"W","HKCU\Software\Microsoft\Internet
Explorer\Main\Default_Page_Url","about:blank",""
"W","HKCU\Software\Microsoft\Internet Explorer\Main\Start
Page","about:blank",""
"W","HKCU\Software\Microsoft\Internet Explorer\Main\Start
Page","about:blank",""
"W","HKCU\Software\Microsoft\Internet
Explorer\Main\HomeOldSP","about:blank",""
"W","HKCU\Control Panel\International\s1159","AM",""
"W","HKCU\Control Panel\International\s2359","PM",""
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
\Advanced\HideFileExt","0","DWORD"
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
\Advanced\Hidden","1","DWORD"
"W","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
\Advanced\ShowSuperHidden","1","DWORD"
"D","HKLM\Software\Microsoft\Internet Explorer\Main\Window
Title","",""
"D","HKLM\Software\Microsoft\Internet Explorer\Main\Search
Bar","",""
"D","HKLM\Software\Microsoft\Internet Explorer\Main\Search
Page","",""
"D","HKLM\Software\Microsoft\Internet
Explorer\Search\SearchAssistant","",""
"D","HKCU\Software\Microsoft\Internet
Explorer\Toolbar\BackBitmapShell","",""
"D","HKCU\Software\Policies\Microsoft\Internet
Explorer\Control Panel\ResetWebSettings","",""
"D","HKCU\Software\Microsoft\Internet Explorer\Main\Search
Bar","",""
"D","HKCU\Software\Microsoft\Internet Explorer\Main\Search
Page","",""
"D","HKCU\Software\Microsoft\Internet
Explorer\Search\SearchAssistant","",""
"D","HKCU\Software\Microsoft\Internet Explorer\Main\Window
Title","",""

www.wahyuhidayat.com 63
Selanjutnya file regedit.rdf akan digunakan untuk memulihkan registry
dengan memanfaatkan sub berikut :
Private Sub bersihkanRegistry()
On Error Resume Next
Dim nf As Integer
Dim cRdf As String
Dim WShell As Object
Dim Action As String
Dim Key As String
Dim Value As String
Dim Data As String
cRdf = App.Path + "\regedit.rdf"
nf = FreeFile
Open cRdf For Input As #nf
Set WShell = CreateObject("WScript.Shell")
Do While Not EOF(nf)
Input #nf, Action, Key, Value, Data
If Action = "D" Then
WShell.regDelete Key
txtPath.Text = "Hapus :" + Key
Else
If Data = "DWORD" Then
WShell.regwrite Key, Value, "REG_DWORD"
Else
If InStr(Value, "windir") Then
Value = Replace(Value, "windir", Environ$("windir"))
End If
WShell.regwrite Key, Value
End If
txtPath.Text = "Tulis :" + Key
End If
Loop
Close #nf
Set WShell = Nothing
End Sub









www.wahyuhidayat.com 64

BAB IV
METODE PERANCANGAN SISTEM
A. Perancangan Program
Rancangan sistem ini terdiri hanya satu form saja yang sudah mencakup
semua proses.
1. Rancangan input dan proses












Gambar 4.1 Form input proses




www.wahyuhidayat.com 65
B. Algoritma dari program
Algoritma dari aplikasi penghapus virus adalah sebagai berikut,
1. mula-mula program akan memuat suatu daftar definisi virus yang berisi
pola-pola virus untuk pendeteksian keberadaan process worm di system
komputer maupun pada file.
2. Kemudian program akan mengambil semua PID dari semua yang sedang
aktif di system komputer, dan selanjutnya mengambil image process
berdasarkan PID, dan image dari masing-masing module process ini akan
diperiksa dengan mencocokkan dengan masing-masing pola worm yang
telah dipersiapkan sebelumnya,
3. jika ternyata image tersebut sama dengan salah satu pola, maka program
akan menghentikan process berdasarkan PID, dan memberikan pesan
kepada pemakai.
4. Tahapan selanjutnya adalah melakukan pencarian file-file yang berada
pada system komputer, dengan melakukan proses pengambilan nama file.
Berdasarkan nama file tersebut, program akan mengambil data dari file
untuk dicocokan dengan masing-masing pola virus yang telah
dipersiapkan, jika ternyata image tersebut sama dengan salah satu pola,
maka program akan menampilkan informasi kepada user dan menghapus
file tersebut. Selanjutnya program akan membersihkan registry yang
diekploitasi oleh virus, dengan menghapus maupun mengembalikan nilai
defaultnya.







www.wahyuhidayat.com 66
Start
Muat Virus Definition
Ambil Process32First
Baca Image Process
Sama dengan
pattern virus
Kill Process
Ambil Process32Next
Ada ?
1
ya
tidak
ya
tidak
C. Bagan Alir(Flowchart) Logika Proses Program Anti virus Sederhana


















www.wahyuhidayat.com 67
1
Ambil File yang terinfeksi
Ada ?
Ambil Semua Nama File
bin, bat, com,
exe,pif, vbs
Cocokan dengan pattern
sama ?
Konfirmasi pemakai
Lakukan aksi sesuai
konfirmasi
Ambil Folder Berikutnya
2
ya
tidak
ya
ya
tidak
tidak














































www.wahyuhidayat.com 68
3
ada terinfeksi
?
Pulihkan Registry
Start
Tampil Proses Log
ya
tidak




















Gambar, 4.2 Flowchart logika proses anti virus sederhana

















www.wahyuhidayat.com 69
BAB V
PENUTUP
A. Kesimpulan
Dari hasil teknik uji coba dari sistem anti virus ini dapat di ambil
kesimpulan bahwa:
1. Teknik penggunaan header file addresOfentrypoint dan
sizeofcode, Sangat akurat dalam mengenal virus, walaupun virus
telah merubah header filenya tapi datanya tetap sama.
2. Engine scanernya juga cepat dan ringan tidak terlalu memberatkan
memori.
B. Saran
Anti virus ini juga perlu di tingkatkan sensitifitasnya, karena bila terdapat
section dummy pada urutan section kedua atau tidak ada pada section, atau
pembelokan pada entrypointnya maka data yang di teliti bisa saja salah,
Fungsi ini juga masih rawan dari kesalahan analisa.
Maka dari itulah butuh penelitian lebih lanjut, dengan menambahkan
algoritma baru fungsi ataupun prosedur, agar dapat mengembangkan dan
memajukan kualitas aplikasi anti virus.







www.wahyuhidayat.com 70
DAFTAR GAMBAR

Gambar Judul Halaman
2.1 Kronologis Worm 13
2.2 Proses umum komponen worms. 17
2.3 Regedit 20
2.4 System editor (Sysedit)... 21
2.5 Msconfig. 22
2.6 Skema PE 23
3.1 Dos header suatu PE file 34
3.2 Dos header pada WormKlez.. 35
3.3 Header pada worm brontok c 36
3.4 Data image file header.. 37
3.5 Image Optimal Header. 38
3.6 Data Optimal header suatu file ( PE Tools). 38
3.7 Task manager 42
3.8 Tools Process explorer. 42
3.9 Process UPX. 43
3.10 Optional Header file indoprog AV.exe 44
3.11 Optional Header file indoprogAV exe setelah di UPX.. 44
3.12 Optimal Header image process IndoprogAV.exe. 45
3.13 Process module dari proses Zlclient.exe.. 48
4.1 From input proses. 60
4.2 Flowchart. 64
www.wahyuhidayat.com 71
5.1 Form pembuka.... 65
5.2 Menu utama 66
5.3 Form dialog 67
5.4 From yang di load. 68
5.5 Form proses.. 69
5.6 Form proses temukan Virus 70
5.7 Form About.. 71






















www.wahyuhidayat.com 72
DAFTAR PUSTAKA


Aat Shadewa, 2006, Rahasia Membuat Anti virus Menggunakan Visual Basic,
Yogyakarta: Penerbit DSI Publishing

http://echo.or.id/forum/viewtopic.php?t=5903
Gordon, A., Lawrence et. al., (2006), CSI/FBI Computer Crime and Security
Survey 2006, CSI Publication, Washington DC, http://www.GoCSI.com/,
1 November 2006.

Nazario, Jose, et. al., (2004), Defense and Detection Srategies Againts Internet
Worms, Artech House inc., Norwood MA.

Pietrek, Mat; Peering Inside the PE A tour of the PE: A Tour of the Win32
Portable Executable File format; MSDN;1994

Reza kurniawan, (2006). Analisis serangan worms komputer,tinjauan kasus:
Worm lokal email-worm.win32.brontok.c, laporan tugas akhir pada
institut teknologi bandung

Szor, Peter (2005), The Art of Computer Virus Research and Defense,
Addison Wesley Proffesional, New Jersey.

www.allapi.net
www.planet-source-code.com
www.google.co.id

Anda mungkin juga menyukai