Membuat Disinfektor Virus Gaelicum.A Dengan Vb 6.0


Sebelumnya saya belum pernah terfikir untuk menulis artikel tentang ini, mungkin  karena pengetahuan  saya  yang  masih  terlalu  dangkal  dan  juga  masih  banyak  kesibukan  di kuliyah saya. Tapi berhubung ada teman dari facebook forum grup vb open source yang menanyakan tentang ini, maka saya sempatkan sedikit waktu saya untuk menuliskan artikel ini.

Sebenarnya  saya  sendiri  tidak  pernah  terbayang  bagaimana  cara  kerja  virus,  sehingga  bisa menginfeksi  File  PE  dan  menjadikan  File  yang  telah  terinfeki  tersebut  sebagai  inang  untuk meneruskan  keturunan  Virus,  untuk  membuat  virus  sebenarnya  butuh  keterampilan  khusus  dan pemahaman  yang  baik  dari  proggramernya,  baik  tentang  struktur  File  PE  maupun  bahasa  Low Level Assembly.

Di indonesia sendiri sudah banyak  ditemui virus – virus import dari luar negri, temasuk didaerah saya  tinggal.  Salah  satunya  adalah  Gaelicum.A,  virus  ini  termasuk  virus  jenis  Semi  statis jadi masih  cukup  mudah untuk  membuat  desinfektornya.

Oke  saya rasa  sudah  cukup  basa –  basinya sekarang kita lihat dulu apa saja data – data yang dirubah oleh virus ini. Virus  ini  menyisipkan body  virus  pada section  terahir  dan merubah  Alamat  Entry  Point  semula ke Body virus. Untuk lebih jelasnya lihat  apa saja data yang dirubah. Sebelumnya  saya  tekankan  dahulu  bahwa  untuk  membuat  desinfektor membutuhkan  code  yang lumayan panjang,  tapi disini saya  membuat  code khusus  untuk artikel ini dan sependek mungkin jadi ada  sedikit  cara  yang harus dirubah  kalau  kalian  ingin menerapkan  pada  AV buatan  kalian. Kalau  kalian  ingin  merubah  cara membaca  struktur  file  PE  nya  itu  lebih  bagus,  karena  pada artikel sebelumnya di CNZine 2 sudah dijelaskan secara mendetail cara untuk membaca file PE.

Sekarang  kita  mulai  pembuatan  desinfektornya,  adapun  hal  hal  yang  perlu  dipahami  dahulu adalah  tentang    EP(Entry  Point),  VEP  (Virus  Entry  Point)  dan  OEP  (Original  Entry  Point), karena ketiganya merupakan hal yang berperan penting dalam pembuatan desinfektor ini.

EP        :   Merupakan  alamat  yang  menunjukkan  code  pertama  kali  dieksekusikan  oleh proggram.

VEP    :   Merupakan  alamat  EP  yang  telah dimanipulasi oleh  virus  yang menunjukkan alamat code virus yang      pertama kali di eksekusikan.

OEP    :   Merupakan alamat EP semula yang biasanya disembunyikan pada body virus.

Adapun alur pembuatan proggram desinfektor ini adalah :

1.   Dapatkan Body Virus + OEP

Untuk  mendapatkan  body  virus  kita  harus  mengetahui  dahulu  letak  VEP, untuk  lebih  jelasnya struktur  virus  gaelicum  lihat  gambar  dibawah  ini  dengan  seksama,  disini  saya  memakai OllyDebugger untuk membuka file yang telah terinfeksi.

Lihat  gambar  diatas  terdapat  intruksi  “Push  EDX”,  merupakan  Entry  Point  Virus    dan  terletak pada  13  byte  sebelum  Opcode  ini “5F4F6631FF66813F4D5A75F501F989”,  lihat  kembali  pada baris  ketiga  dari  (VEP),  disitu  tertulis  intruksi  “MOV  ECX,  1000”,  “1000”  merupakan  Alamat

Entry  Point  semula  (OEP)    yang  disimpan  pada  BodyVirus  dan  terletak  pada  intruksi  ketiga (Byte  kelima)  pada  Body  Virus.  Perlu  anda  ketahui  bahwa sebenarnya  cara  yang  tepat  untuk mendapatkan VEP adalah dengan cara demikian :

AddresOfEntryPoint  :  Masih dalam bentuk RVA

EPRaw                         :  Alamat fisik Entry  Point

EPRaw(VEP)               :  AddresOfEntryPoint – VirtualOffsetOfSection + PointerToRawData

Tapi  karena  untuk  lebih  memudahkan  pemahaman  kita  dan  pembuatan  desinfektor  ini  kami membuat  cara sendiri, sesuai dengan pemahaman saya yang masih pemula  ini, karena yang lebih ditekankan  disini  adalah  pembuatan  desinfektornya  dan  bukan  terfokus  pada  pembahasan setruktur  file  PE.  Tapi  tenang  saja  dengan  cara  ini  juga  masih  dapat  diandalkan  kok  hikz  hikz hikz.

Jadi  logikanya  untuk  mendapatkan  VEP  dapat  diketahui  dengan  cara  mencari  posisi  OPCode “5F4 F6631FF66813F4D5A75F501F989”  kemudian menguranginya  dengan  13,  untuk mendapatkan OEP dengan cara   menambahkan 4  byte  dari VEP.  Untuk mendapatkan body virus dengan cara membaca byte pertama dari VEP sampai dengan ukuran body virus.

Dalam Visual Basic dapat dituslikan seperti dibawah ini.

View Code VB

1
2
3
4
5
6
7
8
9
OPCode = Chr$(&H5F) & Chr$(&H4F) & Chr$(&H66) & Chr$(&H31) & Chr$(&HFF) & _
         Chr$(&H66) & Chr$(&H81) & Chr$(&H3F) & Chr$(&H4D) & Chr$(&H5A) & _
         Chr$(&H75) & Chr$(&HF5) & Chr$(&H1) & Chr$(&HF9) & Chr$(&H89)

VEP = InStr(Data, OPCode) - 13 ' cara pengambilan VEP ini harus  dirubah
                               ' cara ini hanya untuk memudahkan saja

BodyVir = Mid(Data, VEP, 3584) ' 3584 merupakan ukuran virus
OEP = Mid(BodyVir, 5, 4)       ' EP bertipe Long jadi ambil 4 byte saja

2.   Pisahkan Body Virus pada file yang terinfeksi

Untuk  menghilangkan  byte  virus  pada  file  yang  telah  terinfeksi  lebih  mudah  dari  langkah  yang pertama tadi, karena  tadi kita sudah mendapatkan  BodyVirus maka dengan bermodalkan fasilitas “Replace” pada visual basic dapat dilakukan.

View Code VB

1
DataClear = Replace$(Data, BodyVir, "") ' Mengganti data yang sama pada
DataVirus dengan ""(Kosong)

3.   Rangkai kembali struktur filenya

Walaupun  BodyVirus  sudah  hilang  tapi  pekerjaan  kita  belum  selesai,  karena  struktur  file  PE tersebut  masih  acak  –  acakan,  jadi  file  tersebut  akan  error  kalau  kita  jalankan.  Tugas  kita sekarang  adalah  merangkai kembali file  dari informasi – informasi yang telah kita  dapatkan tadi. Yang paling penting adalah Alamat Entry Point dan SizeOfRawData pada section terakhir.

Sekarang  yang kita perlu lakukan adalah  membagi – bagi dulu DeretanByte (data string) menjadi beberapa  kelompok,  kita  sebut  saja  namanya  dengan ByteAtas,  ByteTengah  dan  ByteBawah, untuk lebih jelasnya kita lihat penjelasan dibawah ini.

ByteAtas          :  Byte yang dimulai dari Byte pertama file sampai posisi Byte sebelum EP.

ByteTengah     :  Byte yang dimulai setelah EP sampai posisi Byte sebelum SizeOfRawData pada Section Terakhir.

Byte Bawah     :  Byte yang dimulai setelah SizeOfRawData sampai Byte Terakhir.

Karena  kita  juga  harus  tau  letak  posisi  EP  dan  lainya  maka  kita  juga  harus  mengerti  tentang Image  Dos Header, Image NT Header  dan  Image  section  Header.  Karena  struktur  file  PE sudah ditetapkan  oleh  pembuatnya  maka  mau  tidak  mau  kita  harus  mempelajari  satu  persatu  Struktur File  PE.  Sebenarnya  sudah  ada  kemarin  contoh  SC  dari  VB  untuk  membaca  file  PE  dari CNZine2 kalau  anda ingin  mempelajarinya  silahkan,  untuk  mempersingkat  waktu dan  penulisan kami sudah mempersiapkan kode khusus untuk membaca file PE.

Logikanya begini :

1.      Yang  dijadikan  acuan  posisi  adalah  Signature  yang  ada  pada  Image  NT Header  biasanya berupa karakter          “PE” &  chr$(0) & chr$(0).  Jadi dengan bermodalkan  fungsi Instr() pada VB kita bisa dengan mudah mendapatkan posisi karakter ini.

2.      Karena  kita  juga  harus  mengetahui  posisi  SizeOfRawData  pada  section terakhir  maka  kita diharuskan  mengetahui  jumlah  section  pada  file  PE tersebut,  informasi  tentang  jumlah section biasanya bisa didapatkan pada Posisi  Signature  +  6  dengan  tipe  Word atau dalam vb yang mendekati adalah tipe Integer (2 Byte).

3.      Jadi OSizeOfRaw = VsizeOfRaw – Ukuran Body  virus

Untuk Lebih Jelas Anda Bisa Pelajari Langsung Di Source Code Project Pembuatan Anti Virus Tersebut.

DOWNLOAD   :    Disinfektor Virus Gaelicum.A Dengan Vb 6.0

2 responses to “Membuat Disinfektor Virus Gaelicum.A Dengan Vb 6.0

  1. Mlm Mas Bro,!! Ane mau tnya nich.
    Laptop sya pernah trkena Virus yg Lumayan Hebat.

    Setiap File yg Bereksitensi Exe, Inf, cmd dan yg lain2nya bahkan Ampe2 Winrar pun Error. Setiap apa yg sya Buka Muncul Pesan Aplication Not Found.

    Mohon Bantuannya Mas Bro!!

    • Klo udah Parah kayagitu mah ya harus di Instal Ulang gan” :’D
      Tips nya: setelah selesai instal SO, Dahulukan Isntalasi Antivirus dulu, untuk Offices dan abal-abal lainya belakangan. lakukan secanig Antivirus sampe bener2 koit virusnya. Pastinya Pake Antivirus Terbaik & ter Upgrade (Avira, Avast, AVG, Kaspersky, Norton)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s