Sunday, 12 June 2011

anti virus


 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.

Sumber : http://orispyro.wordpress.com/


Monday, 30 May 2011

Kacilakaan Pesawat

KACILAKAN MONTOR MABUR ING MAGETAN
Durung suwe iki pancen wis tau dikabarake yen akeh montor mabur sing padha nemahi kacilakan ing mancanegara utawa ing Indonesia. Durung ana rong sasi kabar mau, lha kok kasusul maneh kedadeyan montor mabur tiba durung suwe iki, pase ing desa Geplak, Kecamatan Karas, Magetan, Jawa Timur rikala dina Rebo esuk kira-kira jam setengah pitu ing tanggal 20 Mei 2009, nalika bangsa Indonesia mengeti Hari Kebangkitan Nasional. Montor mabur kang tiba lan kobong mau duweke TNI AU jinis Hercules C-130 nomere A-1325. Miturut pawarta saka layang kabar lan tivi, montor mabur kasebut budhal saka pangkalan Lapangan Udara Halim Perdanakusuma Jakarta lan arep tumuju dhaerah Biak, Papua. Nanging durung nganti tekan papan kang tumuju, lan nalika arep mampir ing Lapangan Udara Iswahyudi Madiun montor mabur kasebut nemahi kacilakan.
Malah ing kedadeyan iki, luwih saka wong satus nemahi tiwas klebu warga desa sing omahe melu kenteban montor mabur kasebut. Saliyane iku, ana wong 15 kang uga melu nandhang tatu abot lan entheng. Dene omah-omah ing desa kasebut sing kenteban lan ndadekake remuk lan kobonge udakara patang omah. Ana sing ajur mumur lan ana sing payone remuk tanpa sisa. Kanthi anane kacilakan montor mabur duweke TNI AU kasebut mesthi wae ndadekake warga ing sacedhake pangkalan mau dadi padha jinja. Ing atase ora ngerti apa-apa, ngerti-ngerti ketiban sial.
Sing cetha kacilakan Hercules C-130 duweke TNI AU mau nambahi tansaya akeh dhaftar kacilakan montor mabur duweke TNI AU. Pancen akeh sing kandha yen sejatine montor mabur-montor mabur duweke negara mau akeh sing wis padha tuwa lan kudu diganti. Nanging gandheng kanthi alesan anggaran ora nyukupi, kepeksa montor mabur tuwa isih tetep digunakake kanggo ngangkut wong lan barang-barang liyane. Apa ya pancen kacilakan mau bener-bener amarga saka umure montor mabur sing wis tuwa utawa saka sebab liyane? Ditunggu wae asil saka katrangane pamarintah bab sebab-musababe kacilakan montor mabur kasebut.

Sunday, 29 May 2011

Tembang Dolanan

CUBLAK-CUBLAK SUWENG
cublak cublak suweng
suwenge ting gelenter
mambu ketundung gudel
pak empong lera-lere
sopo ngguyu ndelikkake
sir sir pong dhele gosong
sir sir pong dhele gosong

JARANAN
jaranan-jaranan… jarane jaran teji
sing numpak ndara bei
sing ngiring para mantri
jeg jeg nong..jeg jeg gung
prok prok turut lurung
gedebug krincing gedebug krincing
prok prok gedebug jedher
JAMURAN
Jamuran  jamuran ya ge ge thok
jamur apa ya ge ge thok
Jamur payung, ngrembuyung kaya lembayung
sira badhe jamur apa?

PITIK TUKUNG
Aku duwe pitik, pitik tukung
saben dina, tak pakani jagung
petok gogok petok petok ngendhog siji
tak teteske,kabeh trondhol dhol dhol
tanpa wulu,megal-megol gol gol gawe guyu

PADANG MBULAN
Yo, poro konco dolanan ning jobo
Padang mbulan, padange koyo rino
Rembulane sing ngawe-awe
Ngelingake ojo podo turu sore

Friday, 29 April 2011

Contoh kode-etik-ban



"Pakai ban ukuran berapa?," tanya penjaga toko ban. "15 dan lebar 195," jawab pemilik kendaraan. Hanya dua kode itu, barangkali yang dipahami atau diketahui umumnya pemilik kendaraan. Bahkan, jangan-jangan, angka 195 yang disebut tadi, meski tahu kalau yang dimaksud lebar, tapi tidak tahu yang sisi mananya.
Padahal, di sisi pinggir bagian luar ban tertera angka dan huruf yang semuanya punya arti. Mulai dari tahun produksi, jenis sampai anjuran batas kecepatan maksimum. Di sini, ada tiga unsur yang harus diketahui calon pembeli ban.
1. Ukuran banBila Anda perhatikan, di sisi luar ban tertera kode 205/55R16 95H. Semuanya itu mempunyai penerjemahan sebagai berikut;
A. "205" menunjukkan lebar telapak ban dengan satuan milimeter, jadi bukan diameter ban. Semakin besar angkanya, kian lebar telapaknya.
B."55" menandakan tinggi ban dalam satuan persen dari telapak ban. Gampangnya, tinggi yang dimaksud bisa Anda cermati mulai dari bibir pelek sampai telapak ban menempel ke permukaan aspal. Jadi, semakin kecil angkanya , semisal 50, maka jarak telapak ban dengan bibir pelek kian dekat.
C. "R" menunjukkan konstruksi ban ini radial.
D. "16" merupakan diameter dari pelek yang sesuai. Berarti, pelek yang dipakai berukuran 16 inci.
E. "95" mewakili beban maksimum yang bisa ditopang setiap ban. Angka tersebut memiliki load index sebesar 690 kg. Semakin besar, beban maksimumnya bertambah pula. Begitu sebaliknya.
F. "H" melambangkan batas kecepatan maksimum yang dicapai ban ini. Kode H ini ban boleh menembus kecepatan maksimum sampai 210 km/jam.
2. Usia banSeeperti halnya makanan, ban juga mempunyai waktu kadaluarsa. Umumnya, 3 tahun dari tanggal produksi atau menempuh jarak 60.000 km. Setiap pabrik ban punya pengkodean serta jumlah digit yang berbeda-beda. Itu bisa Anda temui bibir ban (dekat pelek) semisal 1608, berarti diproduksi minggu ke-16 tahun 2008.
3. Treadwear Indicator
Tanda ini merupakan ciri fisik yang terletak persis di kedua sisi bunga ban. Diperkuat lagi dengan garis tebal yang membentang di antara kedua tanda yang mengindikasikan kondisi penggunaan ban. Jika ketebalan ban terutama pada grove sudah menyentuh garis tersebut, menandakan harus sudah diganti. Bahanya, saat hujan, cepat menimbulkan gejalan aquaplaning (mengambang). (Tim Autobild)

KODE KECEPATAN BAN
kode    Kec. maks (km/jam)
 P                   150
 Q                  160
 R                  170
 S                  180
 T                  190
 H                  210
 V                 240
 W                270
 Y               >300
LOAD CAPACITY
Kode          Beban Maksimum (kg) 62                          265
 63                          272
 64                          280
 66                          300
 68                          315
 70                          335
 73                          365
 75                          387
 80 - 89              450 - 580
 90 - 100            600 - 800