// T ER I N J E C T //

Ruby adalah bahasa pemrograman dinamis berbasis skrip yang berorientasi obyek. Tujuan dari ruby adalah menggabungkan kelebihan dari semua bahasa-bahasa pemrograman skrip yang ada di dunia. Ruby ditulis dengan bahasa pemrograman C dengan kemampuan dasar seperti Perl dan Python.

Ruby pertama kali dibuat oleh seorang programmer Jepang bernama Yukihiro Matsumoto. Pada tahun 1993 Yukihiro ingin membuat sebuah bahasa skripting yang memiliki kemampuan orientasi objek. Pada saat itu pemrograman berorientasi objek sedang berkembang tetapi belum ada bahasa pemrograman scripting yang mendukung pemrograman objek.

Namun, kali ini kita sedang tidak membahas sejarah tentang Ruby. Untuk lebih jelasnya, kalian bisa kunjungi halaman wikipedia ini. Di artikel kali ini saya ingin memberikan tutorial bagaimana cara menghilangkan VBScript yang menginjeksi file berekstensi *.html.

Sedikit cerita, saya tidak tahu bagaimana script ini selalu muncul pada file *.html yang saya buat. Script ini muncul terus menerus setelah saya hapus. Bayangkan script ini juga muncul di project yang sedang kalian buat. Ngeselin kan? Sudah di hapus, tapi muncul lagi. hahaha! Script ini juga membuat ukuran file *.html kalian tidak pada mestinya. For example guys: File *.html awal yang kalian buat berukuran tidak kurang dari 30kb. Setelah script ini menginjeksi, ukuran file *.html kalian akan menjadi 2x lebih besar dari sebelumnya.

/ukuran file yang sudah terinjeksi/

Mungkin sebagian orang menganggap ini "ah cuma script!". Menurut saya ini mengganggu!

Tampilan atau isi dari *.html yang sudah terinjeksi VBScript. Biasanya Script ini muncul pada akhir atau di bawah tag </html>


Nah, untuk mengatasinya, mari kita gunakan script Ruby.

/ sebut saja ini virus_kilars /

Copy dan paste script berikut ke teks editor yang kalian miliki (example: notpad)
class VirusKiller
  VIRUS_REG = /<SCRIPT Language=VBScript>[\s\w\W\d.]*<\/SCRIPT>/

  def fix_html_virus(file)
     return if File.extname(file) != '.html'
     file_content = File.read(file) 
     clean_content = file_content.gsub(VIRUS_REG, '')
     File.open(file, "w") { |new_file| new_file << clean_content }
  end

  def transverse_files(base)
    Dir.foreach(base) do |file|
      begin
        next if file == '.' or file == '..'

        if File.file?(base+file)
          fix_html_virus base+file
        else
          transverse_files(base+file+'/')
        end
      rescue Exception => e
        puts e.message
      end
    end
  end

  def run(root_path)
    transverse_files root_path
  end
end

VirusKiller.new.run ARGV[0]

Dan simpan dengan nama viruskiller (atau terserah kalian saja), jangan lupa untuk menambahkan ekstensi *.rb (example: viruskiller.rb). Simpan di tempat yang mudah kalian ingat.

Bagaimana cara menggunakannya? Simple!
Untuk bisa menjalankan script ini, kalian harus sudah menginstall Ruby. Untuk yang belum menginstallnya, kalian bisa mendownloadnya disini. Install saja seperti biasa (jangan lupa term of service-nya dibaca).

Setelah Ruby terinstall, kalian jalankan command prompt (Run as administrator: WAJIB).


Lalu kalian ketik "ruby virus_killer.rb folder_yang_ada_virusnya/" *tanpa kutip. File viruskiller.rb dan myproject saya berada di desktop, jadi saya mengetik "ruby viruskiller.rb myproject/, lalu tekan <enter>.


Dan fowalaa...

/ukuran file yang sudah dibersihkan/

Ukuran filenya, kembali seperti awal kalian membuatnya.

Dan tampilan atau isi dari file tersebut menjadi seperti ini:


Kalian dapat menghapus atau membiarkannya seperti itu.

Nah, bagaimana? Mudah kan? Ok, cukup sekian. Terima kasih sudah mengunjungi blog ini. Semoga bermanfaat. #chaoo
Jika ada pertanyaan, kalian bisa DM ke twitter saya @_anesena
#chaoo #chaoo

NOTE: Sudah saya test dengan melakukan restart dan membuka file *.html melalui browser dan teks editor 10x dengan delay 30 menit, dan sukses!