>
Jumat, 03 Juni 2011

Cara Membuat Anti Virus Sendiri

Pertama kita harus mengerti bagaimana cara kerja sebuah AV sederhana, pada dasarnya sebuah software AV mempunyai komponen-komponen :

1. Engine scanner, ini merupakan komponen utama AV dalam mengenali sebuah pattern virus. Engine ini dapat dikelompokkan menjadi statis dan dinamis. Statis dalam hal ini dapat disebut menjadi spesifik terhadap pattern tertentu dari sebuah file virus. Checksum merupakan salah satu contoh dari engine statis ini. Dinamis dalam artian dia mengenali perilaku ‘umum’ sebuah virus. Heuristic menjadi salah satu contohnya.

2. Database definition, menjadi sebuah referensi dari sebuah pattern file virus. Engine statis sangat bergantung kepada komponen ini.

3. Decompress atau unpacking engine, khusus untuk pengecekan file-file yang terkompresi (*.rar, *.zip, dll) atau kompresi atau packing untuk file PE seperti UPX, MeW , dll.

Tidak jarang hasil dari pengecekan terhadap file suspect virus menghasilkan false-positive bahkan false-negative (– false-positive berarti file yang bersih dianggap thread oleh AV, dan false-negative berarti file yang 100% thread akan dianggap bersih). Semua itu dapat diakibatkan oleh ketidak-sempurnaan dari engine scanner itu sendiri. Misal

pada contoh kasus Engine String scanner (–Engine scanner yang menyeleksi string-string dari file text-based), bila diterapkan rule 3 out of 5 (– bila AV menemukan 3 dari daftar 5 string kategori malicious) maka AV akan memberikan bahwa file terindikasi sebuah thread yang positif. Padahal file tsb nyatanya tidak menimbulkan efek berbahaya bila dijalankan atau dieksekusi. Kesalahan scanning macam ini lazim ditemukan untuk file-file *.VBS, *.HTML, dll. Untuk penggunaan engine checksum sangat banyak ditemui di beberapa software AV lokal. Checksum yang lazim digunakan diantaranya CRC16, CRC32, MD5, dll. Dikarenakan mudah untuk diimplementasikan. Engine ini sendiri bukannya tanpa cacat, Checksum bekerja dengan memproses byte demi byte dari sebuah file dengan sebuah algoritma tertenu (– tergantung dari jenis checksum yang digunakan) sehingga menghasilkan sebuah format tertentu dari file tsb. Contoh checksum menggunakan CRC32 dan MD5 :

* calCrc = CRC32(file_name_and_path)

* calMD5 = MD5(file_name_and_path)

Maka isi dari string calCrc adalah 7AF9E376, sedangkan untuk MD5nya adalah 529CA8050A00180790CF88B63468826A. Perlu diketahui bila virus menerapkan rutin yang mengubah byte tertentu dari badan virus tsb setiap kali maka penggunaan engine checksum ini akan kurang optimal karena bila 1 byte berubah dari file maka checksum juga akan berubah.

Mari kita belajar membuat sebuah AV sederhana, yang diperlukan :

1. Software Visual Basic 6.0

2. Sedikit pemahaman akan pemograman Visual Basic 6.0

3. Sampel file bersih atau virus (– opsional)

First#

Sekarang kita akan belajar membuat sebuah rutin sederhana untuk :

- Memilih file yang akan dicek

- Membuka file tersebut dalam mode binary

- Memproses byte demi byte untuk menghasilkan Checksum

Buka MS-Visual Basic 6.0 anda, lalu buatlah sebuah class module dan Form dengan menambahkan sebuah objek Textbox, CommonDialog dan Command Button. (Objek CommonDialog dapat ditambahkan dengan memilih Project -> COmponent atau Ctrl-T dan memilih Microsoft Common Dialog Control 6.0) Ketikkan kode berikut pada class module (kita beri nama class module tsb clsCrc) :

=============== START HERE===============

Private crcTable(0 To 255) As Long ‘crc32

Public Function CRC32(ByRef bArrayIn() As Byte, ByVal lLen As Long, Optional ByVal lcrc As Long = 0) As Long

‘bArrayIn adalah array byte dari file yang dibaca, lLen adalah ukuran atau size file

Dim lCurPos As Long ‘Current position untuk iterasi proses array bArrayIn

Dim lTemp As Long ‘variabel temp hasil perhitungan

If lLen = 0 Then Exit Function ‘keluar fungsi apabila ukuran file = 0

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

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

End Function

Private Sub Class_Initialize()

BuildTable

End Sub

=============== END HERE===============

Lalu ketikkan kode berikut dalam event Command1_Click :

=============== START HERE===============

Dim namaFileBuka As String, HasilCrc As String

Dim CCrc As New clsCrc ‘bikin objek baru dari class ClsCrc

Dim calCrc As Long

Dim tmp() As Byte ‘array buat file yang dibaca

Private Sub Command1_Click()

CommonDialog1.CancelError = True ‘error bila user mengklik cancel pada CommonDialog

CommonDialog1.DialogTitle = “Baca File” ‘Caption commondialog

On Error GoTo erorhandle ‘label error handle

CommonDialog1.ShowOpen

namafilbuka = CommonDialog1.FileName

Open namafilbuka For Binary Access Read As #1 ‘buka file yang dipilih dengan akses baca pada mode binary

ReDim tmp(LOF(1) – 1) As Byte ‘deklarasi ulang untuk array, # Bugs Fixed #

Get #1, , tmp()

Close #1

calCrc = UBound(tmp) ‘mengambil ukuran file dari array

calCrc = CCrc.CRC32(tmp, calCrc) ‘hitung CRC

HasilCrc = Hex(calCrc) ‘diubah ke format hexadesimal, karena hasil perhitungan dari class CRC masih berupa numeric

Text1.Text = HasilCrc ‘tampilkan hasilnya

Exit Sub

erorhandle:

If Err.Number <> 32755 Then MsgBox Err.Description ‘error number 32755 dalah bila user mengklik tombol cancel pada saat memilih file

=============== END HERE===============

COba anda jalankan program diatas dengan memencet tombol F5, lalu klik Command1 untuk memilih dan membuka file. Maka program akan menampilkan CRC32nya.

Second#

Kode diatas dapat kita buat menjadi sebuah rutin pengecekan file suspect virus dengan antara membandingkan hasil CRC32nya dan database CRC kita sendiri. Algoritmanya adalah :

- Memilih file yang akan dicek

- Membuka file tersebut dalam mode binary

- Memproses byte demi byte untuk menghasilkan Checksum

- Buka file database

- Ambil isi file baris demi baris

- Samakan Checksum hasil perhitungan dengan checksum dari file

Format file database dapat kita tentukan sendiri, misal :

- FluBurung.A=ABCDEFGH

- Diary.A=12345678

Dimana FluBurung.A adalah nama virus dan ABCDEFGH dalah Crc32nya. Jika kita mempunyai format file seperti diatas, maka kita perlu membaca file secara sekuensial per baris serta memisahkan antara nama virus dan Crc32nya. Dalam hal ini yang menjadi pemisah adalah karakter ‘=’.

Buat 1 module baru (– diberi nama module1) lalu isi dengan kode :
=============== START HERE ===============

Public namaVirus As String, CrcVirus As String ‘deklarasi variabel global untuk nama dan CRC virus Public pathExe as String ‘deklarasi variabel penyimpan lokasi file EXE AV kita

Public Function cariDatabase(Crc As String, namaFileDB As String) As Boolean

Dim lineStr As String, tmp() As String ‘variabel penampung untuk isi file

Open namaFileDB For Input As #1 ‘buka file dengan mode input

Do

Line Input #1, lineStr

tmp = Split(lineStr, “=”) ‘pisahkan isi file bedasarkan pemisah karakter ‘=’

namaVirus = tmp(0) ‘masukkan namavirus ke variabel dari array

CrcVirus = tmp(1) ‘masukkan Crcvirus ke variabel dari array

If CrcVirus = Crc Then ‘bila CRC perhitungan cocok/match dengan database

cariDatabase = True ‘kembalikan nilai TRUE

Exit Do ‘keluar dari perulangan

End If

Loop Until EOF(1)

Close #1

End Function

=============== END HERE ===============

Lalu tambahkan 1 objek baru kedalam Form, yaitu Command button2. lalu ketikkan listing kode berikut kedalam event Command2_Click :

=============== START HERE===============

If Len(App.Path) <= 3 Then ‘bila direktori kita adalah root direktori

pathEXE = App.Path

Else

pathEXE = App.Path & “\\”

End If

CommonDialog1.CancelError = True ‘error bila user mengklik cancel pada CommonDialog

CommonDialog1.DialogTitle = “Baca File” ‘Caption commondialog

On Error GoTo erorhandle ‘label error handle

CommonDialog1.ShowOpen

namafilbuka = CommonDialog1.FileName

Open namafilbuka For Binary Access Read As #1 ‘buka file yang dipilih dengan akses baca pada mode binary

ReDim tmp(LOF(1) – 1) As Byte ‘deklarasi ulang untuk array # Bugs Fixed #

Get #1, , tmp()

Close #1

calCrc = UBound(tmp) ‘mengambil ukuran file dari array

calCrc = CCrc.CRC32(tmp, calCrc) ‘hitung CRC

HasilCrc = Hex(calCrc) ‘diubah ke format hexadesimal, karena hasil perhitungan dari class CRC masih berupa numeric

If cariDatabase(HasilCrc, pathEXE & “DB.txt”) Then ‘bila fungsi bernilai TRUE

MsgBox “Virus ditemukan : ” & namaVirus ‘tampilkan message Box

End If

Exit Sub

erorhandle:

If Err.Number <> 32755 Then MsgBox Err.Description ‘error number 32755 dalah bila user mengklik tombol cancel pada saat memilih file

============== END HERE ===============

Fitur AV sederhana ini dapat ditambahkan dengan fitur process scanner, akses registry, real-time protection (RTP) dan lain lain. Untuk process scanner pada dasarnya adalah teknik enumerasi seluruh proses yang sedang berjalan pada Sistem Operasi, lalu mencari letak atau lokasi file dan melakukan proses scanning.

Mari Membuat Software Sendiri?

Membuat software komputer sendiri? Tentunya bayangan anda adalah pekerjaan seorang programmer yang ahli, pintar, berkacamata. Dia mengurung diri di laboratorium komputer, ditemani buku-buku panduan pemrograman yang tebal dan berdebu. Lalu kita membayangkan ribuan baris kode program yang ruwet, ribet dan sulit dipahami.

Stop! Anda salah. Sekarang sudah banyak tool atau alat pemrograman yang sangat memudahkan proses pembuatan software. Tool ini biasanya dalam bentuk IDE (Integrated Development Environment). Melalui IDE kita dapat menulis kode program, merancang interface, mengkompilasi, dan membuat file executable dari software yang kita buat.

Gambar: Project Aplikasi Sensus Ekonomi HSS 2008 Dibuat menggunakan Delphi 7

Software IDE yang sangat populer dan sering saya gunakan dalam membuat software adalah Borland Delphi. Semua proses desain interface software sangat mudah dibuat di Delphi. Kita tinggal klik dan tempatkan komponen seperti tombol, textbox, label dan lainnya di tempat yang kita inginkan. Ingin belajar Delphi dari dasar, silakan download di sini.

Urutan membuat software atau programming menggunakan IDE Delphi adalah:

Merancang interface
Menulis kode program
Mengkompilasi kode program untuk mencek kesalahan
Me - build kode program menjadi file executable (.exe) yang siap pakai.Syarat utama belajar Delphi adalah memahami bahasa Pascal. Pascal merupakan salah satu bahasa pemrograman komputer tingkat tinggi. Dengan pascal sebagai bahasa, kita dapat berkomunikasi dengan komputer dan menyuruhnya melakukan berbagai instruksi yang kita buat. Untuk belajar bahasa Pascal silakan downlod di sini.

Mari kita belajar membuat program aplikasi komputer sendiri. Jika sudah mahir tentunya anda dapat membuat software yang bisa di jual atau ikut jadi programmer freelance. Menurut para pakar IT, treen perusahaan-perusahaan besar ke depannya adalah meng-outsourcing-kan berbagai project mereka.

Lihat saja, India. Negerinya Shah Rukh Khan ini telah mendulang devisa yang sangat besar dari proyek outsourcing. Konon kabarnya, raksasa software dunia, Microsoft Corp menyerahkan bagian-bagian project software yang sulit untuk dikerjakan oleh para programmer India.

Cara men-disable right-click (klik kanan) dan block (select) isi postingan BLOG


Cara men-disable right-click (klik kanan) dan block (select) isi postinganyang ditanya Emo kemaren baru bisa diposting sekarang. BlogButang Emas dulu dipakaikan fungsi ini, tetapi ketika mengganti timplet, fungsi tersebut tidak berjalan. Maka harus disetting ulang. Cara/setting untuk mematikan/menon-aktifkan klik kanan dan block/select isi blog dan penekanan select Ctrl-A bisa pake script yang belibet, maupun memanfaatkan fungsi-fungsi html itu sendiri yang sangat simpel.
Fungsi-fungsi ini berguna jika si empunya blog tidak menginginkan blognya dikopi paste secara gampangan tanpa minta ijin, alias tulisan postingan kitatidak mudah dikopi paste. Walaupun dengan usaha/cara trik-trik lain bisa membuka/memblok/mengkopi-paste isi blog juga. Tapi cara dibawah,lumayanlah bisa mengurangi tindakan korupsi eeeh... kopi-paste. Penjelasan Fungsi html yang dipakai :

oncontextmenu='return false;'

adalah untuk mematikan menu klik kanan
onkeydown='return false;'

adalah untuk mematikan tombol/keyboard Ctrl-A, Ctrl-U (page source) dan tombol keybord lainnya eeeh... kalo ngelihat page source dari menu masih kok. Cara melihat page source pada web/blog yang mematikan fungsi klik kanan mouse, klik kiri mouse dan penekanan keyboard (Ctrl+A, Ctrl+U) adalah : jika pakai firefox, buka menu View, lalu pilih Page Source (Ctrl+U). Hasilnya adalah tulisan postingan dalam 1 baris panjaaaaaaaaaaaaang. Cari aja postingannya ndiri...
onmousedown='return false;'
adalah untuk mematikan klik select mouse
'return false'
adalah untuk mematikan fungsi yang diinginkan

Cara men-disable right-click (klik kanan) dan block (select) isi postingan
Masuk ke edit html
Cari
Gantikan kode tersebut dengan kode dibawah ini

Code:
<body oncontextmenu='return false;' onkeydown='return false;' onmousedown='return false;'>
Anda bisa memilih 1 fungsi aja atau 2 fungsi atau ketiga-tiganya, terserah deh... anda yang punya blog kok

FOTO AKIBAT PERGAULAN BEBAS, JANGAN DITIRU...

Awalnya Hanya Berteman Biasa

Lalu Pucuk dicinta Ulampun Tiba

Dan Ketika Cinta Itu Telah Tumbuh

Akhirnya 8 Bulan Kemudian Mereka Harus Menanggung Akibatnya

Kostum Seksi Piala Eropa

KROASIA




JERMAN




PERANCIS





PORTUGAL





SPANYOL





SWEDIA





YUNANI

 
Anggu MarsFLY powered by blogger.com
Design by Anggu Blogger Templates Simple Clean