Tips Untuk Yang LDR
Jeng.. Jeng.. Jeeeenggg..
Udah gatel tangan gue mau ngetik postingan di blog yang sesat ini. Gue juga nggak tau hubungannya apa gatel sama ngetik. Yang gue tau kalo gatel itu di garuk, bukan ngetik.
Ah entahlah..
Kali ini gue mau bahas tips-tips sukses ber-LDR.
Apa sih yang kalian bayangin kalo ada temen kalian yang LDR? Gue tau.. Pasti SELINGKUH!
Setuju dong ya? Gimana enggak, yang nggak LDR aja bisa selingkuh, APA LAGI YANG LDR, HAH? *di tabok*
Jadi gini...
LDR itu susah-susah gampang, tapi lebih banyak susahnya dari pada gampangnya. Iya bener.
Sebenernya modal utama LDR itu cuma saling percaya. Ibarat sebuah bangunan, kepercayaan di dalam LDR itu seperti pondasi.
Dan menurut gue, ada beberapa tips untuk menjaga keharmonisan antar umat ber-LDR. Yuk cekidot:
Saling Percaya
Saling Percaya
Percaya, ini memang salah satu yang paling sensitif dalam suatu hubungan. Apalagi kalo kalian yang pacarnya nan jauh di mato. Iya, LDR maksudnya. Emang susah sih, misalnya pacar lo pulang sekolah atau kuliah tapi lagi nggak bawa kendaraan, yang ada di benak lo pasti "DIA PULANG SAMA SIAPA YA?" Eh, maaf capslocknya kepencet.
"Nanti kalo ketemu mantannya di jalan, terus di ajakin pulang bareng. Abis itu mereka tukeran nomor hp. Terus jadian lagi, gimana? :("
Tapi bisa menyiasati itu semua dengan saling terbuka, menjaga komunikasi dan sibukan diri dengan hal lain. *benerin kerah*
Manfaatkan TEKNOLOGI
Gila, 2013 sekarang udah jamannya smartphone. Kemana-mana lo bisa sambil video call, lo lagi jalan bareng temen-temen lo, lo bisa video call ke pacar lo. "Yang, aku lagi sama temen-temen aku nih, nggak percaya? Noh liat". Jadi hubungan kalian itu tetep harmonis, nggak ada yang namanya saling curiga. Kecuali lo video call pas lo lagi jalan sama selingkuhan lo. Please jangan.
Bikin Surprise
Emang nggak bisa di pungkiri, pacaran jarak itu nggak mudah. Selalu ada cobaan di dalamnya. Setiap hari itu ada aja masalah yang muncul, entah itu karena kurang percaya, entah itu karena salah paham. Ada aja emang.
Bikin rencana untuk ketemu, tanpa di ketahui oleh si dia. Jadi hati dia luluh pas ngeliat lo dateng ke tempat dia tinggal, dan dia bilang "Aduh sayang, kok kamu nggak bilang-bilang sih mau ke sini? Aku kan kaget. Jadi tambah sayang deh sama kamu."
Keren kan? Tapi hal ini kadang nggak sesuai dengan apa yang di harapkan. Kadang kita udah jauh-jauh pengen ketemu dia, tanpa sepengetahuan dia. Tapi pas sampai di sana, dia lagi asik sama selingkuhannya. Pedih..Komitmen
Adakalanya kalian yang menjalani hubungan jarak jauh ini merasa bosan, akan sampai kapan menjalani cinta yang terhalang oleh jarak. Dan itu adalah salah satu penyebab gagalnya hubungan jarak jauh. Oleh karena itu sejak awal memutuskan untuk menjalin hubungan ada baiknya menegaskan tentang hal ini, komitmen. Jika hubungan mau dibawa ke jenjang lebih serius persiapkanlah dengan matang. Kalau memang sudah matang ingin dia menjadi pendamping hidup kamu. Langsung bawa ke KUA. *banting sempak*
Itu beberapa tips yang menurut gue bisa mempertahankan hubungan yang terhalang oleh jarak. Dan kalau memang sudah cinta, sebenarnya jarak tidak akan menjadi masalah. Tinggal penuhin isi dompet aja, buat bolak-balik ke kota dia. Kyaaaaa~
Kalo kalian punya tips ber-LDR, bisa kalian tambahkan di kolom comment ya, guys.
Sekian~
Hanz Sport
Menjual Alat-Alat Olahraga
Minat ?
Klik --> https://www.facebook.com/pages/Hanz-Sport/547969008588939?filter=3
OS Window's 8 ISO Full Version
Window's 7 ini mempunyai beberapa fitur-fitur baru Yaitu :
1. Dioptimalisasi untuk layar sentuh
Windows 7 memang support layar sentuh, namun tidak optimal dari sisi desain dan kemudahan pengoperasian. Berbeda dengan Windows 8, interfacenya yang dijuluki sebagai Metro benar-benar dioptimalkan untuk sentuhan dengan wujud ala interface Windows Phone.
2. Mendukung chip ARM
Windows 8 mendukung perangkat yang memakai infrastruktur chip ARM. Hal ini diharapkan memperluas jangkauan Windows 8 di arena tablet, mengingat kebanyakan tablet yang beredar saat ini memakai chip ARM.
3. Toko aplikasi Windows Store
Windows 8 akan memiliki toko aplikasi sendiri yang dinamakan Windows Store. Windows Store menyediakan berbagai aplikasi yang dioptimalkan untuk Windows 8.
4. Mendukung NFC (Near Field Communications)
Windows 8 akan mendukung NFC, sebuah teknologi yang kegunaanya antara lain untuk transaksi keuangan digital. Tablet yang memakai Windows 8 pun kemungkinan besar akan otomatis menyertakan fitur ini.
5. Waktu boot yang singkat
Boot Windows 8 dalam demonya hanya berlangsung dalam 8 detik. Sebuah waktu yang jauh lebih singkat dibanding booting di Windows versi sebelumnya.
6. Internet Explorer 10
Internet Explorer 10 dijanjikan membawa perubahan besar ketimbang versi IE terdahulu. Browser ini diklaim sangat ramah digunakan baik dalam tablet maupun PC.
7. Sekuriti lebih baik
Windows 8 dikatakan akan memiliki fitur sekuriti lebih baik untuk menghadang serangan cyber. Di antaranya fitur Windows Defender lebih ditingkatkan kemampuannya di OS ini.
8. Windows 8 tidak membutuhkan upgrade PC
Microsoft menyatakan komputer yang bisa menjalankan Windows 7 dapat pula menjalankan Windows 8 sehingga user tak perlu upgrade PC. Menurut Microsoft, prosesor Intel Atom dan RAM 1 GB sudah cukup untuk menjalankan OS ini.
Menurut majalah teknologi Time, Techland, menilai kalau Windows 8 masih konsisten dengan memiliki tampilan yang sangat berbeda dengan sistem operasi iOS milik Apple. Tampilan home screen di Windows 8 pun dinilai persis seperti yang selama ini ada di Windows Phone: warna-warni, dengan sejumlah kotak berisi apps, koneksi, konten, dan fitur.
User Interfaceyang dinamakan “Metro” ini akan memiliki akses cepat, namun juga memungkinkan memiliki tampilan Windows klasik. Tampilan Metro juga menyediakan kontrol sentuh, yang menjadi sinyal Microsoft akan mengembangkan sistem operasi untuk tablet.
“Tiap menit Anda menggunakan perangkat sentuh dengan Windows 8, saya berjanji Anda akan kembali ke komputer Anda dan terus menyentuh layarnya,” ujar Sinofsky.
Kemudian, seperti dikutip dari laman FoxNews, sistem operasi terbaru Windows ini juga menghemat memory. Sinofsky kemudian mendemostrasikan, dengan menggunakan laptop Lenovo berprosesor Intel Atom 1 Gb, Windows 7 ‘memakan’ memori sebesar 404 MB, sedangkan Windows 8 hanya sebesar 281 MB. Dengan demikian akan banyak ruang untuk aplikasi.
Microsoft kemudian juga memperlihatkan, Windows 8 tak hanya baik digunakan di prosesor standar Intel atau AMD, yang selama ini lazim digunakan di komputer desktop. Windows 8 pun berjalan baik dengan mikroprosesor ARM, yang biasa digunakan di tablet.
Karena berbicara di hadapan pengembang konten/aplikasi, Microsoft pun mengatakan Windows 8 akan bekerja dengan baik untuk apps. “Jika Anda menambahkan suatu app (aplikasi), maka sistemnya (Windows akan semakin berkembang dan terus berkembang,” ujar Sinofsky.
Microsoft juga disebut akan meluncurkan app-store versi Windows. App-store ini mencakup aplikasi untuk bergaya Metro Windows 8 atau Windows klasik.
Berikut merupakan sejumlah gambar tampilan Windows 8, seperti diambil dari PC Ane :
Screenshot :
Mau ?.................. Silahkan Sobat Download di Bawah ini.
Download :
Membuat Efek Kaca Pecah
Halo semuanya kembali lagi bersama saya G-Blog , mahluk tuhan paling ganteng :v
Kali ini saya akan mengshare tutorial , bagaimana caranya memberikan efek kaca pecah pada photoshop :D
nah langsung aja Cekribot :v
Bahan bahannya :
1.Komputer
2.Modem
3. Internet
4.Photoshop
5.Brush kaca pecahnya dapat di download disini Kaca Pecah
Oke kita mulai
1. Pertama download dulu file brushes kaca pecahnya kemudia copy kan ke file presets - brushes di folder photoshop
seperti SS berikut ini
Kali ini saya akan mengshare tutorial , bagaimana caranya memberikan efek kaca pecah pada photoshop :D
nah langsung aja Cekribot :v
Bahan bahannya :
1.Komputer
2.Modem
3. Internet
4.Photoshop
5.Brush kaca pecahnya dapat di download disini Kaca Pecah
Oke kita mulai
1. Pertama download dulu file brushes kaca pecahnya kemudia copy kan ke file presets - brushes di folder photoshop
seperti SS berikut ini
2. Kemudian buka photoshop nya lalu kilik ikon brushes , kemudian klik kanan pilih kaca pecah
3. Lalu pilih Stile Kaca retak selera anda , Kemudian klik lah bagian photo yang anda ingin kan
4. Kemudian Save As , nah udah jadi :D untuk hasilnya :D
Jika masih bingung saya ada Vidionya Silahkan
Download disini
Kaca Pecah Vidio
Download disini
Kaca Pecah Vidio
Cara Mudah Membuat Jaringan LAN ( wifi ) Wireless Pada Windows 7 dan XP
Kirimkan Ini lewat Email
PERTAMA-TAMA... KITA SETTING MENGGUNAKAN.. WINDOWS 7 DULU YA.. KEMUDIAN.. DI BAWAHNYA BARU WINDOWS XP :)
Langsung saja sob, saya jabarkan langkahnya, semoga catatan online ini bermanfaat bagi para sobat yang baru mengenal dan akan melakukan setting wireless LAN di windows 7 sobat.
I. Perangkat yang dibutuhkan:
1. Dua buah Komputer / laptop / notebook (yang sudah terdapat wifi card, umumnya notebook/laptop sudah ada dari pabriknya) atau lebih.
2. Kabel Charger laptop (jika sobat menggunakan notebook/laptop) jika menggunakan baterai, dikhawatirkan lowbet pada saat pengaturan wifinya.
Cara membuat WIFI LAN di laptop Windows 7
Kali ini saya akan membahas tentang bagaimana sih caranya membuat LAN dan menyambungkannya laptop antar laptop.Maraknya orang yang mempunyai laptop saat ini, maka pasti akan jenuh jika bermain sendiri maka perlunya WIFI LAN ini
banyak sekali manfaat yang kita dapatkan melalui WIFI LAN ini yaitu
1. Dapat terhubung layaknya LAN kabel yang dipakai diwarnet
2. Menjadi sarana Multiplayer game bagi para gamer yang ingin bermain multiplayer seperti game Counter Strike, Warcraft, Dota, dan masih bnyak deh game Lan lainnya.
3. Transfer data lebih mudah dan cepat
4. Mampu menampung lebih dari 20 laptop tersambung dengan sistematis
tentu kalau membuat dan membeli kabel LAN akan susah merakitnya, namun untuk WIFI LAN ini hanya diperlukan Laptop yang memiliki WIFI anda dapat terhubung dengan laptop lainnya.
Cara menghubungkannya akan sangat mudah sekali, marilah ke TKP dan perhatikan dengan seksama :
1. Pastikan anda menyalakan laptop anda dengan Windows 7
2. Pada taksbar bagian bawah terdapat wifi signal. click kiri lalu pilih Open Network and Sharing Center
3. Akan muncul kotak control panel, pada change your network setting pilih Set up a new connection network
4. Pada bagian bawah terdapat Set up a wireless ad hoc (computer to computer) network
5. Click next 6.Isilah Ad hoc network anda sesuai dengan keinginan anda sendiri
- Name : Sesuai anda
- Security type : jika anda menggunakan pasword pakai WPA-2 Personal dan jika tidak pakai pasword anda pakai no autorizition
- Dan jangan lupa centang (V) save the network lalu clik next 7. Lalu Close dan lihat kembali signal wifi connection anda akan terlihat signal wifi yang anda buat.
8. Untuk laptop lain yang ingin conneksi ke laptop anda maka anda hanya konek layaknya hotspotan.
NAH SEKARANG SAATNYA YANG WINDOWS XP
Membuat Koneksi Wireless Antar Laptop
Kalau anda mempunyai dua buah laptop atau lebih atau komputer desktop yang mempunyai wireless LAN card (wifi) dan antara masing–masing laptop/ komputer tersebut ingin terhubung atau terkoneksi satu sama lain sehingga dapat sharing data, printer, internet, remote komputer dll. Cara sederhana dapat dilakukan dengan koneksi adhoc yaitu koneksi wireless LAN tanpa menggunakan akses point, terhubung langsung antara komputer ke komputer lainnya tanpa menggunakan kabel.Setting koneksi adhoc untuk windows xp sp2 adalah sebagai berikut :
• Nyalakan wifi
• Masuk ke network connection (klik start -->Control Panel --> Network and internet connection --> Network Connection )
• Klik kanan pada wireless network connection, kemudian klikproperties.
• Pilih Tab Wireless Networks --> klik Advanced
• Pilih Computer-to-computer (ad hoc) networks only
• klik Close, Tampilan akan kembali ke jendela Wireless Network Connnection Properties
• Pada Preferred networks , klik Add
• Beri nama Network name (SSID) sesuai dengan yang kita inginkan misalnya contoh disini saya beri nama mynet (pada komputer yang lain namanya harus sama (mynet)).-->klik OK
• Pada Wireless network key, agar lebih mudah dulu network Authentication diisi : Open , pada Data encryption diisi :Disable. ( kalau mau langsung pakai proteksi juga silakan, tapi sebaiknya seperti ini dulu, nanti kalau sudah berhasil koneksinya silakan utak-atik option ini )
Sehingga pada preferred networks akan tampil nama SSIDyang sudah kita buat dengan nama mynet --> klik ok untuk keluar.
• Lakukan hal / langkah yang sama pada laptop/komputer yang lain yang akan dikoneksikan. ( ingat nama /network name (SSID) harus sama ( mynet)).
• Kalau kedua komputer sudah disetting seperti langkah di atas, langkah selanjutnya adalah tinggal mengkoneksikannya yaitu dengan masuk ke Network Connection, kemudian klik kanan pada Wireless Network Connection --> pilih View available wireless networks.
Disana akan tampil SSID dengan nama mynet, sorot dengan mouse kemudian klik tombol Connect. Tunggu beberapa saat sampai statusnya Connected.
•• Sebenarnya kalau komputer kesatu selalu nyala, pada komputer kedua dan ketiga dan seterusnya tidak perlu disetting apapun, cukup nyalakan wifinya, View available wireless networks, pilih dan kemudian Connect. (seperti kalau kita koneksi pada hotspot).
• Untuk Melihat berhasil tidaknya koneksi antar komputer, kita bisa melakukan perintah ping ke nama komputer lawan.
- untuk mengetahui nama komputer : klik kanan pada my computer --> properties --> pilih tab Computer Name-->full computer name ( = nama komputer)
- Buka Command prompt (start --> klik RUN--> ketik cmd--> klik OK )
- Ketik ping namakomputerlawan (ping spasi nama komputer lawan) tekan enter, kalau berhasil akan ada reply darikomputer lawan.
- Kalau tidak ada reply bukan berarti belum berhasil, karena mungkin fungsi untuk pingnya dari komputer tersebut disable.
• Cara lain :
Dengan melihat IP address yang didapat oleh masing - masing komputer. ( karena cara diatas kita tidak mengisi nomor IP secara manual, tetapi secara otomatis/DHCP, ( maksudnya otomatis disini supaya lebih mudah , di bagian bawah ada cara setting IP secara manual ).
Cara melihat IP address yang didapat yaitu masuk kembali keNetwork Connection--> dobel klik pada wireless network connection yang sedang terkonek--> kemudian klik Support, (dilakukan di kedua komputer ), kemudian bandingkan hasilnya.
Masing - masing komputer harus mendapat nilai subnet maskyang sama : misal disini subnet masknya didapat255.255.255.0 (kelas C), komputer-a dan komputer-b harus sama yaitu 255.255.255.0
Masing - masing komputer harus mendapat IP address yang satu network misal kalau komputer-a mendapat 192.168.0.X, maka komputer-b harus mendapat 192.168.0.X juga (hanya nilai Xnya saja yang berbeda antara komputer a dan b).
Klik Repair di salah satu komputer kalau tidak didapatkan nilai seperti ketentuan di atas, sampai mendapatkan IP address dansubnet mask yang sesuai.
Setting IP Secara Manual
•• Bisa saja pada beberapa kasus akan kesulitan mendapatkan IP sehingga koneksi tidak berhasil, maka kita harus set IP secara manual.
Caranya :
-masuk ke network Connections-->klik kanan pada wireless network --> klik properties.
-Dobel klik pada internet protocol (Tcp/ip) --> klik pada use the following ip address.Pada komputer kesatu set ip address : 192.168.0.1 subnet mask: 255.255.255.0
Pada komputer kedua set ip address : 192.168.0.2 subnet mask: 255.255.255.0
Pada komputer ketiga set ip address : 192.168.0.3 subnet mask: 255.255.255.0
Dan seterusnya..
Apabila komputer kesatu mempunyai koneksi internet dan akan sharing ke yang lainnya, maka pada komputer kedua, ketigadan seterusnya. Kolom Default Gateway dan Preferred DNS servernya harus diisi yaitu : 192.168.0.1 .
Untuk melakukan Sharing Data :
• Klik kanan pada drive atau folder yang akan disharing --> pilih Sharing and security
--> Contreng pada Share this folder on network, isi Share name.--> klik OK
• Untuk mengakses data dari komputer lawan bisa dilakukan dengan mengetik di RUN command \\namakomputer atau\\noIPaddress komputer lawan yang akan diakses.
Untuk Sharing Koneksi Internet
• Di komputer yang ada koneksi internetnya masuk keNetwork Connection --> Klik kanan pada koneksi internetyang akan disharing --> klik properties
• Pilih Tab Advanced, Contreng Allow other network user to connect through this …,
• Klik tombol Setting, contreng services yang akan disharing, (yang mutlak untuk sharing internet adalah Web Server (HTTP), yang lainnya HTTPS, FTP, POP3, dll terserah anda sesuai kebutuhan, atau boleh juga pilih semua.--> kemudian klikOK.
Solusi Download Vidio di youtube yang gak ada suara
Halo semuanya kembali lagi bersama saya G-Blog , Kali ini saya akan memberikan penyelesain masalah atas download video di youtube yang gak ada suara
beberapa hari yang lalu saya kan download vidio Noah di youtube , udah berkali kali download tapi gak ada suara :'(
Solusi yang saya dapatkan adalah menggunakan web downloaader dari situs en.savefrom.net, dan akhirnya video pun keluar suara, berikut langkah-langkah download:
1. Copy alamat URL dari youtube
2. Buka en.savfrom.net lalu paste alamat URL ke blank bar dan tekan download
3. Pilih jenis video yang akan didownload, ada 3gp,flv,MP4, dan WebM saya sarenin flv
4. Download, kemudian File yang dimainkan mengeluarkan suara
dan berhasil Vidio nya ada suara :D
TUTORIAL BY : VISCOUNT
Membuat Antivirus Dengan Visual Basic 6
Membuat Antivirus Dengan Visual Basic 6
membuat antivirus bagi semua orang merupakan suatu hal yang terlihat sulit bagi mereka,apalagi bagi mereka yang sangat awam bahasa pemrograman
disini aku mau memberikan tutorial tentang cara pembuatan antivirus dari dasar dengan kemampuan sebagai berikut :
-> Teknik checksum
antivirus ini tidak menggunakan teknik scan menggunakan CRC32 melainkan menggunakan teknik READ BYTE langsung dari tubuh virus/worm nya
"Mengapa saya menerapkan teknik ini ?
tentu saja karena waktu scan akan lebih cepat daripada menggunakan CRC32,akurat pada saat pendeteksian & menghemat penggunaan string agar ukuran antivirus nya tidak terlalu besar
-> Fitur karantina file yang terdeteksi
"Dengan adanya fitur ini user tidak perlu takut file nya akan terhapus,karena dengan menggunakan fitur ini,file akan dikarantina oleh antivirus ke dalam suatu folder dan file yang terdeteksi tidak akan bisa di jalankan/di eksekusi"
-> Fitur Heuristic
"Heuristic dalam dunia antivirus berarti mendapatkan virus/worm baru"
pada antivirus ini akan diterapkan 2 teknik heuristic yaitu :
1. Heuristic Icon
Hampir rata-rata semua virus lokal menggunakan icon seperti icon Office word,winamp,Icon Folder yang bertujuan agar user awam mengklik file virus tersebut,
dengan teknik ini antivirus dapat melihat mana file virus yang menyamar dengan icon palsu atau file asli yang tidak terinfeksi virus
2. Heuristic VBS
Dengan teknik ini antivirus mampu membaca source dari file VBS yang biasa di pakai virus,
antivirus akan mencocokan source yang ada pada database dengan source yang terdapat pada virus,jika cocok maka akan langsung di anggap virus
Itu sedikit penjelasan tentang antivirus yang akan kita buat sekarang,
yuk langsung saja kita mulai membuat antivirus nya
saya akan berikan source code fullnya pada akhir postingan
-------------------------------------------
Author : Dias Taufik Rahman a.k.a mydisha
Compiller : Microsoft Visual Basic 6.0
Program Type : Antivirus
Source Code : Yes
-------------------------------------------
1.Buka program microsoft visual basic 6.0 -> Standard EXE -> OK
maka akan tampil form baru sesuai dengan gambar di bawah,desain form sesuai keinginan anda
Beri nama form tersebut : frmUtama
2.Setelah form selesai di rubah namanya tambahkan component Mscomctl.Ocx dengan cara
Klik Project -> Components -> Microsoft Windows Common Controls 6.0 -> lalu klik OK
Contoh seperti gambar di bawah
3.Setelah component sukses di tambahkan langkah selanjutnya adalah menambah Command Button,Textbox,Listview,Picture Box
disini saya menggunakan desain yang sangat sederhana,desain bisa anda rubah sendiri sesuai kreatifitas anda ^^
- Tambahkan Listview kedalam form dan beri nama lvScan
yang saya lingkari merah adalah listview yang telah di tambahkan ke dalam form.
setelah itu setting listview dengan cara
Klik Listview -> Disebelah kanan bawah ada kotak properties -> Custom
lalu ikuti settingan seperti pada gambar di bawah ini
Lalu pada tab Column Headers klik insert column
- Column 1 beri nama : Virus Name
- Column 2 beri nama : Path
- Column 3 beri nama : Checksum Virus
- Column 4 beri nama : Status Virus
lalu klik Ok
Tambahkan picture box buat picture box itu sekecil mungkin dan beri nama sIcon
Setting :
Appearance : Flat
Auto Redraw : True
Border Style : None
Visible : False
Tambahkan Textbox ke dalam form dengan nama txtPath
Setting :
Appearance : Flat
Border Style : None
Tambahkan Command Button dengan nama cmdBrowse di samping Textbox yang telah di buat tadi
Setting :
Caption : ...
Masukan Code ini ke dalam cmdBrowse
Code di atas berfungsi untuk membuka kotak dialog yang berisi path" yang ada di dalam komputer lalu mencetaknya ke dalam textbox yang bernama txtPath
Tambahkan label dengan nama default
Setting :
Caption : Dir Scanned
Tambahkan label dengan nama lblDirScan
Setting :
Caption : 0
Tambahkan label dengan nama default
Setting :
Caption : Detected
Tambahkan label dengan nama lblFileDet
Setting :
Caption : 0
Tambahkan label dengan nama default
Setting :
Caption : File Scanned
Tambahkan label dengan nama lblFileScan
Setting :
Caption : 0
Tambahkan Textbox dengan nama txtFileScan
Setting :
Multiline : True
Scroll Bar : 2-Vertical
Tambahkan Command Button dengan nama cmdScan
Setting :
Caption : &Scan
fungsi kode di atas adalah untuk memulai scan pada antivirus
Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Delete
Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Quarantine
Tambahkan Command Button dengan nama cmdViewQ
Setting :
Caption : &View Quarantine File
Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Delete
Tambahkan kode ini di dalamnya
Fungsi di atas adalah fungsi untuk menghapus/mengkarantina file yang terdeteksi
Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Quarantine
Tambahkan Command Button dengan nama cmdViewQ
Setting :
Caption : &View Quarantine File
Lalu masukan code ini ke dalamnya
Code di atas berfungsi untuk memunculkan form quarantine dan meng enabled form utama
nah selesai untuk memasukan control ke dalam formnya
contoh form yang telah selesai
lalu klik kanan pada form masukan kode di bawah ini
lalu di Form_load() masukan kode ini
Lalu buatlah 1 module dengan nama modAPI
Lalu tambahkan code di bawah ini
Code di atas adalah Fungsi API yang di butuhkan untuk antivirus
Buat 1 module dengan nama modChecksum
masukan code di bawah ini
potongan code di atas di gunakan untuk meng kalkulasi checksum
buat 1 module lagi dengan nama modDatabase
lalu tambahkan code di bawah ini
potongan code di atas adalah database pada antivirusnya
buat lagi 1 buah module dengan nama modQuar
masukan code yang ada di bawah ini
Code di atas adalah code untuk enkripsi/dekripsi pada virus yang akan di karantina
Buat lagi 1 module dengan nama modHeuristic
lalu masukan code di bawah ini
Fungsi di atas adalah fungsi untuk mengecek suatu file dengan metode heuristic icon + heuristic untuk virus VBS
Buat 1 module dengan nama modIconCompare
lalu masukan code di bawah ini
kode di atas di butuhkan untuk metode heuristic icon pada antivirus
Buat 1 module dengan nama modLV
lalu masukan code di bawah ini
Code di atas berguna untuk dengatur Listview pada saat virus terdeteksi
Buat 1 module dengan nama modPE
lalu masukan code di bawah ini
code di atas berfungsi untuk pengecekan PE HEADER
buat 1 module dengan nama modScanning
lalu tambahkan code di bawah ini
Code di atas adalah code untuk scan file & folder pada antivirus
buat 1 module dengan nama modEtc
masukan code di bawah ini
Coatas adalah kumpulan fungsi etc untuk scanning,karantina,delete
disini aku mau memberikan tutorial tentang cara pembuatan antivirus dari dasar dengan kemampuan sebagai berikut :
-> Teknik checksum
antivirus ini tidak menggunakan teknik scan menggunakan CRC32 melainkan menggunakan teknik READ BYTE langsung dari tubuh virus/worm nya
"Mengapa saya menerapkan teknik ini ?
tentu saja karena waktu scan akan lebih cepat daripada menggunakan CRC32,akurat pada saat pendeteksian & menghemat penggunaan string agar ukuran antivirus nya tidak terlalu besar
-> Fitur karantina file yang terdeteksi
"Dengan adanya fitur ini user tidak perlu takut file nya akan terhapus,karena dengan menggunakan fitur ini,file akan dikarantina oleh antivirus ke dalam suatu folder dan file yang terdeteksi tidak akan bisa di jalankan/di eksekusi"
-> Fitur Heuristic
"Heuristic dalam dunia antivirus berarti mendapatkan virus/worm baru"
pada antivirus ini akan diterapkan 2 teknik heuristic yaitu :
1. Heuristic Icon
Hampir rata-rata semua virus lokal menggunakan icon seperti icon Office word,winamp,Icon Folder yang bertujuan agar user awam mengklik file virus tersebut,
dengan teknik ini antivirus dapat melihat mana file virus yang menyamar dengan icon palsu atau file asli yang tidak terinfeksi virus
2. Heuristic VBS
Dengan teknik ini antivirus mampu membaca source dari file VBS yang biasa di pakai virus,
antivirus akan mencocokan source yang ada pada database dengan source yang terdapat pada virus,jika cocok maka akan langsung di anggap virus
Itu sedikit penjelasan tentang antivirus yang akan kita buat sekarang,
yuk langsung saja kita mulai membuat antivirus nya
saya akan berikan source code fullnya pada akhir postingan
-------------------------------------------
Author : Dias Taufik Rahman a.k.a mydisha
Compiller : Microsoft Visual Basic 6.0
Program Type : Antivirus
Source Code : Yes
-------------------------------------------
1.Buka program microsoft visual basic 6.0 -> Standard EXE -> OK
maka akan tampil form baru sesuai dengan gambar di bawah,desain form sesuai keinginan anda
SPOILER: HIDE
Beri nama form tersebut : frmUtama
2.Setelah form selesai di rubah namanya tambahkan component Mscomctl.Ocx dengan cara
Klik Project -> Components -> Microsoft Windows Common Controls 6.0 -> lalu klik OK
Contoh seperti gambar di bawah
SPOILER: HIDE
3.Setelah component sukses di tambahkan langkah selanjutnya adalah menambah Command Button,Textbox,Listview,Picture Box
disini saya menggunakan desain yang sangat sederhana,desain bisa anda rubah sendiri sesuai kreatifitas anda ^^
- Tambahkan Listview kedalam form dan beri nama lvScan
SPOILER: HIDE
setelah itu setting listview dengan cara
Klik Listview -> Disebelah kanan bawah ada kotak properties -> Custom
lalu ikuti settingan seperti pada gambar di bawah ini
SPOILER: HIDE
Lalu pada tab Column Headers klik insert column
- Column 1 beri nama : Virus Name
- Column 2 beri nama : Path
- Column 3 beri nama : Checksum Virus
- Column 4 beri nama : Status Virus
lalu klik Ok
Tambahkan picture box buat picture box itu sekecil mungkin dan beri nama sIcon
Setting :
Appearance : Flat
Auto Redraw : True
Border Style : None
Visible : False
Tambahkan Textbox ke dalam form dengan nama txtPath
Setting :
Appearance : Flat
Border Style : None
Tambahkan Command Button dengan nama cmdBrowse di samping Textbox yang telah di buat tadi
Setting :
Caption : ...
Masukan Code ini ke dalam cmdBrowse
Code:
Dim Pathnya As String
Pathnya = ""
Pathnya = BrowseFolder("Pilih folder yang akan di Scan:", Me)
If Pathnya <> "" Then
txtPath.Text = Pathnya
End If
Tambahkan label dengan nama default
Setting :
Caption : Dir Scanned
Tambahkan label dengan nama lblDirScan
Setting :
Caption : 0
Tambahkan label dengan nama default
Setting :
Caption : Detected
Tambahkan label dengan nama lblFileDet
Setting :
Caption : 0
Tambahkan label dengan nama default
Setting :
Caption : File Scanned
Tambahkan label dengan nama lblFileScan
Setting :
Caption : 0
Tambahkan Textbox dengan nama txtFileScan
Setting :
Multiline : True
Scroll Bar : 2-Vertical
Tambahkan Command Button dengan nama cmdScan
Setting :
Caption : &Scan
Code:
If cmdScan.Caption = "Scan" Then
Pathnya = txtPath.Text
If Mid(Pathnya, 2, 1) <> ":" Or Pathnya = "" Then
MsgBox "Direktori Tidak Ditemukan", vbCritical, "Error"
Exit Sub
Else
lvScan.Enabled = False
cmdEnable False, False, False
clear_log
cmdScan.Caption = "Stop"
StopScan = False
FindFilesEx txtPath.Text, CBool(chkSubDir.Value)
MsgBox "Scan finished !" & vbNewLine & vbNewLine & "Total Dir Scanned = " & lblDirScan.Caption & _
vbNewLine & "Total File Scanned = " & lblFileScan.Caption & vbNewLine & "Total File Detected = " & lblFileDet.Caption, vbInformation, "Finish"
If lblFileDet.Caption <> "0" Then
cmdEnable True, True, True
Else
cmdEnable False, False, True
End If
lvScan.Enabled = True
cmdScan.Caption = "Scan"
End If
Else
cmdScan.Caption = "Scan"
StopScan = True
End If
fungsi kode di atas adalah untuk memulai scan pada antivirus
Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Delete
Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Quarantine
Tambahkan Command Button dengan nama cmdViewQ
Setting :
Caption : &View Quarantine File
Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Delete
Tambahkan kode ini di dalamnya
Code:
Dim DftrFile As String
DftrFile = GetSelected(lvScan)
If DftrFile = "" Then
MsgBox "No Detected File(s) Selected", vbCritical, ""
Exit Sub
End If
Select Case Index
Case 0
clean = Action(DftrFile, lvScan, "D")
MsgBox clean & " File(s) has been deleted"
Case 1
clean = Action(DftrFile, lvScan, "Q")
MsgBox clean & " File(s) has been quarantine"
End Select
Tambahkan Command Button dengan nama cmdAction
Setting :
Caption : &Quarantine
Tambahkan Command Button dengan nama cmdViewQ
Setting :
Caption : &View Quarantine File
Lalu masukan code ini ke dalamnya
Code:
frmQuarantine.Show , Me
frmUtama.Enabled = False
nah selesai untuk memasukan control ke dalam formnya
contoh form yang telah selesai
SPOILER: HIDE
lalu klik kanan pada form masukan kode di bawah ini
Code:
Private Sub lvScan_ItemCheck(ByVal Item As MSComctlLib.ListItem)
UnSelect lvScan, "Di Karantina"
UnSelect lvScan, "Di Hapus"
End Sub
Private Function cmdEnable(hapus As Boolean, Quarantine As Boolean, openQuarantine As Boolean)
cmdAction(0).Enabled = hapus
cmdAction(1).Enabled = Quarantine
cmdViewQ.Enabled = openQuarantine
End Function
Private Function clear_log()
lblDirScan.Caption = 0
lblFileScan.Caption = 0
lblFileDet.Caption = 0
lvScan.ListItems.Clear
jumlahDir = 0
jumlahFile = 0
jumlahVirus = 0
End Function
lalu di Form_load() masukan kode ini
Code:
On Error Resume Next
MkDir "Quarantine"
BuildDatabase
Lalu buatlah 1 module dengan nama modAPI
Lalu tambahkan code di bawah ini
Code:
Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Public Declare Function PathIsDirectory Lib "shlwapi.dll" Alias "PathIsDirectoryA" (ByVal pszPath As String) As Long
Public Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Public Declare Function MoveFile Lib "kernel32.dll" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long
Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Public Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
Public Declare Function GetSystemDirectory Lib "kernel32.dll" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Declare Function GetWindowsDirectory Lib "kernel32.dll" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Public Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function RealizePalette Lib "gdi32" (ByVal hDC As Long) As Long
Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Public Declare Function VirtualAlloc Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Public Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As Any) As Long
Public Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Any) As Long
Public Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
Public Declare Function SetEndOfFile Lib "kernel32" (ByVal hFile As Long) As Long
Public Const GENERIC_READ = &H80000000
Public Const GENERIC_WRITE = &H40000000
Public Const FILE_SHARE_READ = &H1
Public Const OPEN_EXISTING = 3
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const INVALID_HANDLE_VALUE = -1
Public Const FILE_END = 2
Public Const FILE_BEGIN = 0
Public Const FILE_CURRENT = 1
Public Const LWA_COLORKEY = &H1
Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_LAYERED = &H80000
Public Const MAX_PATH = 260
Public Const SW_SHOWNORMAL = 1
Public Type FileTime
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Public Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FileTime
ftLastAccessTime As FileTime
ftLastWriteTime As FileTime
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'untuk browse folder
Public Function BrowseFolder(ByVal aTitle As String, ByVal aForm As Form) As String
Dim bInfo As BROWSEINFO
Dim rtn&, pidl&, path$, pos%
Dim BrowsePath As String
bInfo.hOwner = aForm.hWnd
bInfo.lpszTitle = aTitle
bInfo.ulFlags = &H1
pidl& = SHBrowseForFolder(bInfo)
path = Space(512)
t = SHGetPathFromIDList(ByVal pidl&, ByVal path)
pos% = InStr(path$, Chr$(0))
BrowseFolder = Left(path$, pos - 1)
If Right$(Browse, 1) = "\" Then
BrowseFolder = BrowseFolder
Else
BrowseFolder = BrowseFolder + "\"
End If
If Right(BrowseFolder, 2) = "\\" Then BrowseFolder = Left(BrowseFolder, Len(BrowseFolder) - 1)
If BrowseFolder = "\" Then BrowseFolder = ""
End Function
Public Function StripNulls(ByVal OriginalStr As String) As String
If (InStr(OriginalStr, Chr$(0)) > 0) Then
OriginalStr = Left$(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
End If
StripNulls = OriginalStr
End Function
'fungsi untuk menentukan file script atau bukan
Public Function IsScript(Filename As String) As Boolean
IsScript = False
ext = Split("|vbs|vbe", "|")
For i = 1 To UBound(ext)
If LCase(Right(Filename, 3)) = LCase(ext(i)) Then IsScript = True
Next
End Function
Code di atas adalah Fungsi API yang di butuhkan untuk antivirus
Buat 1 module dengan nama modChecksum
masukan code di bawah ini
Code:
Public Function GetChecksum(FilePath As String) As String
Dim CheckSum(1 To 2) As String
CheckSum(1) = CalcBinary(FilePath, 499, 4500)
CheckSum(2) = CalcBinary(FilePath, 499, 4000)
GetChecksum = CheckSum(1) & CheckSum(2)
End Function
Public Function CalcBinary(ByVal lpFileName As String, ByVal lpByteCount As Long, Optional ByVal StartByte As Long = 0) As String
On Error GoTo err
Dim Bin() As Byte
Dim ByteSum As Long
Dim i As Long
ReDim Bin(lpByteCount) As Byte
Open lpFileName For Binary As #1
If StartByte = 0 Then
Get #1, , Bin
Else
Get #1, StartByte, Bin
End If
Close #1
For i = 0 To lpByteCount
ByteSum = ByteSum + Bin(i) ^ 2
Next i
CalcBinary = Hex$(ByteSum)
Exit Function
err:
CalcBinary = "00"
End Function
potongan code di atas di gunakan untuk meng kalkulasi checksum
buat 1 module lagi dengan nama modDatabase
lalu tambahkan code di bawah ini
Code:
Public VirusDB(5), IconDB(48), Bahaya(5) As String
Public Sub BuildDatabase()
Call Checksum_DB
Call IconCompare_DB
Call Script_DB
End Sub
Private Sub Checksum_DB()
VirusDB(1) = "Alman.A|8911D290F723"
VirusDB(2) = "Malingsi.A|A6292EA60230"
VirusDB(3) = "Conficker.A|9EC112ABB2F3"
VirusDB(4) = "N4B3.A|B5CCD36CDB98"
VirusDB(5) = "N4B3.B|A1FE6D6DBE07"
End Sub
Public Sub IconCompare_DB()
On Error Resume Next
IconDB(1) = "20938B2"
IconDB(2) = "19F4ED6"
IconDB(3) = "133BE0B"
IconDB(4) = "18EDEAE"
IconDB(5) = "1EF89C2"
IconDB(6) = "1C915FF"
IconDB(7) = "24563C4"
IconDB(8) = "1B2DB74"
IconDB(9) = "208EA72"
IconDB(10) = "22A064D"
IconDB(11) = "19B64EE"
IconDB(12) = "1D4B7E1"
IconDB(13) = "2087762"
IconDB(14) = "29C7258"
IconDB(15) = "1B18705"
IconDB(16) = "1B5FCAB"
IconDB(17) = "126D4CF"
IconDB(18) = "1C58E5C"
IconDB(19) = "15D7730"
IconDB(20) = "1FB82B7"
IconDB(21) = "112763E"
IconDB(22) = "2165AF9"
IconDB(23) = "25F46BE"
IconDB(24) = "206556B"
IconDB(25) = "22A8D69"
IconDB(26) = "19237F8"
IconDB(27) = "15022B4"
IconDB(28) = "1D8B4EB"
IconDB(29) = "1DBC1EA"
IconDB(30) = "2333F5D"
IconDB(31) = "1F37C2F"
IconDB(32) = "1C9CCA4"
IconDB(33) = "1DFDFB4"
IconDB(34) = "1C1283E"
IconDB(35) = "1F6598C"
IconDB(36) = "27F4C1A"
IconDB(37) = "22F92E0"
IconDB(38) = "191DBDC"
IconDB(39) = "27BFE4A"
IconDB(40) = "20E0907"
IconDB(46) = "2FA4C88"
IconDB(47) = "25AA630"
IconDB(48) = "1DE28E2"
End Sub
Public Sub Script_DB()
On Error Resume Next
Bahaya(1) = "Scripting.FileSystemObject|Wscript.ScriptFullName|WScript.Shell|.regwrite|.copy"
Bahaya(2) = "Wscript.ScriptFullName|createobject|strreverse|.regwrite"
Bahaya(3) = "createobject|Wscript.ScriptFullName|.regwrite|[autorun]"
Bahaya(4) = "createobject|Wscript.ScriptFullName|specialfolder|.regwrite"
Bahaya(5) = "chr(asc(mid(|createobject|Wscript.ScriptFullName|.GetFolder|.RegWrite"
End Sub
potongan code di atas adalah database pada antivirusnya
buat lagi 1 buah module dengan nama modQuar
masukan code yang ada di bawah ini
Code:
Option Explicit
Public Function EncodeFile(SourceFile As String, DestFile As String)
Dim ByteArray() As Byte, Filenr As Integer
Filenr = FreeFile
Open SourceFile For Binary As #Filenr
ReDim ByteArray(0 To LOF(Filenr) - 1)
Get #Filenr, , ByteArray()
Close #Filenr
Call Coder(ByteArray())
If (PathFileExists(DestFile)) <> 0 Then DeleteFile DestFile
Open DestFile For Binary As #Filenr
Put #Filenr, , ByteArray()
Close #Filenr
End Function
Public Function DecodeFile(SourceFile As String, DestFile As String)
Dim ByteArray() As Byte, Filenr As Integer
Filenr = FreeFile
Open SourceFile For Binary As #Filenr
ReDim ByteArray(0 To LOF(Filenr) - 1)
Get #Filenr, , ByteArray()
Close #Filenr
Call DeCoder(ByteArray())
If (PathFileExists(DestFile)) <> 0 Then DeleteFile DestFile
Open DestFile For Binary As #Filenr
Put #Filenr, , ByteArray()
Close #Filenr
End Function
Private Sub Coder(ByteArray() As Byte)
Dim x As Long
Dim Value As Integer
Value = 0
For x = 0 To UBound(ByteArray)
Value = Value + ByteArray(x)
If Value > 255 Then Value = Value - 256
ByteArray(x) = Value
Next
End Sub
Private Sub DeCoder(ByteArray() As Byte)
Dim x As Long
Dim Value As Integer
Dim newValue As Integer
newValue = 0
For x = 0 To UBound(ByteArray)
Value = newValue
newValue = ByteArray(x)
Value = ByteArray(x) - Value
If Value < 0 Then Value = Value + 256
ByteArray(x) = Value
Next
End Sub
Code di atas adalah code untuk enkripsi/dekripsi pada virus yang akan di karantina
Buat lagi 1 module dengan nama modHeuristic
lalu masukan code di bawah ini
Code:
Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, ByRef phiconLarge As Long, ByRef phiconSmall As Long, ByVal nIcons As Long) As Long
Private Declare Function DestroyIcon Lib "user32.dll" (ByVal hIcon As Long) As Long
Private Declare Function DrawIconEx Lib "user32" (ByVal hDC As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Boolean
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExefileName As String, ByVal nIconIndex As Long) As Long
Private Const DI_MASK = &H1
Private Const DI_IMAGE = &H2
Private Const DI_NORMAL = &H3
Private Const DI_COMPAT = &H4
Private Const DI_DEFAULTSIZE = &H8
Private Const SHGFI_DISPLAYNAME = &H200
Private Const SHGFI_EXETYPE = &H2000
Private Const SHGFI_SYSICONINDEX = &H4000
Private Const SHGFI_LARGEICON = &H0
Private Const SHGFI_SMALLICON = &H1
Private Const ILD_TRANSPARENT = &H1
Private Const SHGFI_SHELLICONSIZE = &H4
Private Const SHGFI_TYPENAME = &H400
Private Const BASIC_SHGFI_FLAGS = SHGFI_TYPENAME Or SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX Or SHGFI_DISPLAYNAME Or SHGFI_EXETYPE
Private SIconInfo As SHFILEINFO
Private SectionHeaders() As IMAGE_SECTION_HEADER
Dim i As Integer
Dim j As Integer
Public Function CekHeuristic(Filename As String)
CekHeuristic = ""
On Error GoTo hError
Dim hFile As Long, bRW As Long
Dim DOSheader As IMAGE_DOS_HEADER
Dim NTHeaders As IMAGE_NT_HEADERS
Dim Filedata As String
DOS_HEADER_INFO = ""
NT_HEADERS_INFO = ""
hFile = CreateFile(Filename, ByVal (GENERIC_READ Or GENERIC_WRITE), FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, ByVal 0)
ReadFile hFile, DOSheader, Len(DOSheader), bRW, ByVal 0&
SetFilePointer hFile, DOSheader.e_lfanew, 0, 0
ReadFile hFile, NTHeaders, Len(NTHeaders), bRW, ByVal 0&
If NTHeaders.Signature <> IMAGE_NT_SIGNATURE Then
If IsScript(Filename) = True Then
Open Filename For Binary As #1
Filedata = Space$(LOF(1))
Get #1, , Filedata
Close #1
CekHeuristic = CekHeur(Filedata)
End If
Exit Function
End If
CekHeuristic = CekIconBinary(Filename)
hError:
End Function
Private Function CekHeur(Data As String)
Dim hsl, asl As Integer
strasli = LCase(Replace(Data, vbNewLine, "$"))
For i = 1 To UBound(Bahaya)
hsl = 0
strData = Split(Bahaya(i), "|")
asl = 0
For k = 0 To UBound(strData)
xxx = LCase(strData(k))
If InStr(strasli, xxx) > 0 Then hsl = hsl + 1
asl = asl + 1
Next
If hsl = asl Then
CekHeur = "Malicious-Script"
Exit Function
End If
Next
CekHeur = ""
End Function
Private Function CekIconBinary(PathFile As String)
Dim q As Integer
Dim IconIDNow As String
CekIconBinary = ""
IconIDNow = CalcIcon(PathFile)
If IconIDNow = "" Then Exit Function
For q = 1 To UBound(IconDB)
If IconDB(q) = IconIDNow Then
CekIconBinary = "Malicious-Icon"
Exit Function
End If
Next q
End Function
Private Function CalcBinary(ByVal lpFileName As String, ByVal lpByteCount As Long, Optional ByVal StartByte As Long = 0) As String
Dim Bin() As Byte
Dim ByteSum As Long
Dim i As Long
ReDim Bin(lpByteCount) As Byte
Open lpFileName For Binary As #1
If StartByte = 0 Then
Get #1, , Bin
Else
Get #1, StartByte, Bin
End If
Close #1
For i = 0 To lpByteCount
ByteSum = ByteSum + Bin(i) ^ 2
Next i
CalcBinary = Hex$(ByteSum)
End Function
Private Function CalcIcon(ByVal lpFileName As String) As String
Dim PicPath As String
Dim ByteSum As String
Dim IconExist As Long
Dim hIcon As Long
IconExist = ExtractIconEx(lpFileName, 0, ByVal 0&, hIcon, 1)
If IconExist <= 0 Then
IconExist = ExtractIconEx(lpFileName, 0, hIcon, ByVal 0&, 1)
If IconExist <= 0 Then Exit Function
End If
frmUtama.sIcon.BackColor = vbWhite
DrawIconEx frmUtama.sIcon.hDC, 0, 0, hIcon, 0, 0, 0, 0, DI_NORMAL
DestroyIcon hIcon
PicPath = Environ$("windir") & "\tmp.tmp"
SavePicture frmUtama.sIcon.Image, PicPath
ByteSum = CalcBinary(PicPath, FileLen(PicPath))
DeleteFile PicPath
CalcIcon = ByteSum
End Function
Fungsi di atas adalah fungsi untuk mengecek suatu file dengan metode heuristic icon + heuristic untuk virus VBS
Buat 1 module dengan nama modIconCompare
lalu masukan code di bawah ini
Code:
Option Explicit
Private Const SHGFI_DISPLAYNAME = &H200, SHGFI_EXETYPE = &H2000, SHGFI_SYSICONINDEX = &H4000, SHGFI_LARGEICON = &H0, SHGFI_SMALLICON = &H1, SHGFI_SHELLICONSIZE = &H4, SHGFI_TYPENAME = &H400, ILD_TRANSPARENT = &H1, BASIC_SHGFI_FLAGS = SHGFI_TYPENAME Or SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX Or SHGFI_DISPLAYNAME Or SHGFI_EXETYPE
Public Type SHFILEINFO
hIcon As Long: iIcon As Long: dwAttributes As Long: szDisplayName As String * MAX_PATH: szTypeName As String * 80
End Type
Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbSizeFileInfo As Long, ByVal uFlags As Long) As Long
Private Declare Function ImageList_Draw Lib "comctl32.dll" (ByVal himl As Long, ByVal i As Long, ByVal hdcDest As Long, ByVal x As Long, ByVal y As Long, ByVal flags As Long) As Long
Private shinfo As SHFILEINFO, sshinfo As SHFILEINFO
Private Declare Function DrawIconEx Lib "user32.dll" (ByVal hDC As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
Private SIconInfo As SHFILEINFO
Public Enum IconRetrieve
ricnLarge = 32
ricnSmall = 16
End Enum
Public Sub RetrieveIcon(fName As String, DC As PictureBox, icnSize As IconRetrieve)
Dim hImgSmall, hImgLarge As Long
Debug.Print fName
Select Case icnSize
Case ricnSmall
hImgSmall = SHGetFileInfo(fName$, 0&, shinfo, Len(shinfo), BASIC_SHGFI_FLAGS Or SHGFI_SMALLICON)
Call ImageList_Draw(hImgSmall, shinfo.iIcon, DC.hDC, 0, 0, ILD_TRANSPARENT)
Case ricnLarge
hImgLarge& = SHGetFileInfo(fName$, 0&, shinfo, Len(shinfo), BASIC_SHGFI_FLAGS Or SHGFI_LARGEICON)
Call ImageList_Draw(hImgLarge, shinfo.iIcon, DC.hDC, 0, 0, ILD_TRANSPARENT)
End Select
End Sub
Public Function ExtractIcon(Filename As String, AddtoImageList As ImageList, PictureBox As PictureBox, PixelsXY As IconRetrieve, iKey As String) As Long
Dim SmallIcon As Long
Dim NewImage As ListImage
Dim IconIndex As Integer
On Error GoTo Load_New_Icon
If iKey <> "Application" And iKey <> "Shortcut" Then
ExtractIcon = AddtoImageList.ListImages(iKey).Index
Exit Function
End If
Load_New_Icon:
On Error GoTo Reset_Key
RetrieveIcon Filename, PictureBox, PixelsXY
IconIndex = AddtoImageList.ListImages.Count + 1
Set NewImage = AddtoImageList.ListImages.Add(IconIndex, iKey, PictureBox.Image)
ExtractIcon = IconIndex
Exit Function
Reset_Key:
iKey = ""
Resume
End Function
Public Sub GetLargeIcon(icPath$, pDisp As PictureBox)
Dim hImgLrg&: hImgLrg = SHGetFileInfo(icPath$, 0&, SIconInfo, Len(SIconInfo), BASIC_SHGFI_FLAGS Or SHGFI_LARGEICON)
ImageList_Draw hImgLrg, SIconInfo.iIcon, pDisp.hDC, 0, 0, ILD_TRANSPARENT
End Sub
kode di atas di butuhkan untuk metode heuristic icon pada antivirus
Buat 1 module dengan nama modLV
lalu masukan code di bawah ini
Code:
Public Function GetSelected(TheLV As ListView)
Dim Sel As String
For i = 1 To TheLV.ListItems.Count
If TheLV.ListItems.Item(i).Checked = True Then
Sel = Sel & "|" & TheLV.ListItems.Item(i).SubItems(1)
End If
Next
GetSelected = Sel
End Function
Public Function SelectedAll(TheLV As ListView)
For i = 1 To TheLV.ListItems.Count
TheLV.ListItems.Item(i).Checked = True
Next
End Function
Public Function SelectedNone(TheLV As ListView)
For i = 1 To TheLV.ListItems.Count
TheLV.ListItems.Item(i).Checked = False
Next
End Function
Public Function GetIndex(TheLV As ListView, Data As String) As Integer
For i = 1 To TheLV.ListItems.Count
If TheLV.ListItems.Item(i).SubItems(1) = Data Then
GetIndex = i
End If
Next
End Function
Public Function UnSelect(TheLV As ListView, Data As String)
For i = 1 To TheLV.ListItems.Count
If TheLV.ListItems.Item(i).SubItems(3) = Data Then
TheLV.ListItems.Item(i).Checked = False
End If
Next
End Function
Public Function AddDetect(TheLV As ListView, FilePath As String, VirData As String)
With TheLV
If Left(VirData, 9) <> "Malicious" Then
Set lvItm = .ListItems.Add(, , Split(VirData, "|")(0), , frmUtama.ImgSmall.ListImages(1).Index)
lvItm.SubItems(1) = FilePath
lvItm.SubItems(2) = Split(VirData, "|")(1)
lvItm.SubItems(3) = "Virus File"
Else
Set lvItm = .ListItems.Add(, , VirData, , frmUtama.ImgSmall.ListImages(1).Index)
lvItm.SubItems(1) = FilePath
lvItm.SubItems(2) = GetChecksum(FilePath)
lvItm.SubItems(3) = "Virus File"
End If
End With
End Function
Code di atas berguna untuk dengatur Listview pada saat virus terdeteksi
Buat 1 module dengan nama modPE
lalu masukan code di bawah ini
Code:
Public Type IMAGE_DOS_HEADER
e_magic As Integer
e_cblp As Integer
e_cp As Integer
e_crlc As Integer
e_cparhdr As Integer
e_minalloc As Integer
e_maxalloc As Integer
e_ss As Integer
e_sp As Integer
e_csum As Integer
e_ip As Integer
e_cs As Integer
e_lfarlc As Integer
e_ovno As Integer
e_res(1 To 4) As Integer
e_oemid As Integer
e_oeminfo As Integer
e_res2(1 To 10) As Integer
e_lfanew As Long
End Type
Public Type IMAGE_SECTION_HEADER
nameSec As String * 6
PhisicalAddress As Integer
VirtualSize As Long
VirtualAddress As Long
SizeOfRawData As Long
PointerToRawData As Long
PointerToRelocations As Long
PointerToLinenumbers As Long
NumberOfRelocations As Integer
NumberOfLinenumbers As Integer
Characteristics As Long
End Type
Public Type IMAGE_DATA_DIRECTORY
VirtualAddress As Long
size As Long
End Type
Public 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
ImageBase As Long
SectionAlignment As Long
FileAlignment As Long
MajorOperatingSystemVersion As Integer
MinorOperatingSystemVersion As Integer
MajorImageVersion As Integer
MinorImageVersion As Integer
MajorSubsystemVersion As Integer
MinorSubsystemVersion As Integer
Win32VersionValue As Long
SizeOfImage As Long
SizeOfHeaders As Long
CheckSum As Long
Subsystem As Integer
DllCharacteristics As Integer
SizeOfStackReserve As Long
SizeOfStackCommit As Long
SizeOfHeapReserve As Long
SizeOfHeapCommit As Long
LoaderFlags As Long
NumberOfRvaAndSizes As Long
DataDirectory(0 To 15) As IMAGE_DATA_DIRECTORY
End Type
Public 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
Public Type IMAGE_NT_HEADERS
Signature As Long
FileHeader As IMAGE_FILE_HEADER
OptionalHeader As IMAGE_OPTIONAL_HEADER
End Type
Public Type IMAGE_EXPORT_DIRECTORY
Characteristics As Long
TimeDateStamp As Long
MajorVersion As Integer
MinorVersion As Integer
Name As Long
Base As Long
NumberOfFunctions As Long
NumberOfNames As Long
AddressOfFunctions As Long
AddressOfNames As Long
AddressOfNameOrdinals As Long
End Type
Public Type IMAGE_IMPORT_DESCRIPTOR
OriginalFirstThunk As Long
TimeDateStamp As Long
ForwarderChain As Long
Name As Long
FirstThunk As Long
End Type
Public Type IMAGE_IMPORT_BY_NAME
Hint As Integer
Name As String * 255
End Type
Public Const IMAGE_SIZEOF_SECTION_HEADER = 40
Public Const IMAGE_DOS_SIGNATURE = &H5A4D
Public Const IMAGE_NT_SIGNATURE = &H4550
Public Const IMAGE_ORDINAL_FLAG = &H80000000
Public Enum SECTION_CHARACTERISTICS
IMAGE_SCN_LNK_NRELOC_OVFL = &H1000000 'Section contains extended relocations.
IMAGE_SCN_MEM_DISCARDABLE = &H2000000 'Section can be discarded.
IMAGE_SCN_MEM_NOT_CACHED = &H4000000 'Section is not cachable.
IMAGE_SCN_MEM_NOT_PAGED = &H8000000 'Section is not pageable.
IMAGE_SCN_MEM_SHARED = &H10000000 'Section is shareable.
IMAGE_SCN_MEM_EXECUTE = &H20000000 'Section is executable.
IMAGE_SCN_MEM_READ = &H40000000 'Section is readable.
IMAGE_SCN_MEM_WRITE = &H80000000 'Section is writeable.
End Enum
Public Enum IMAGE_DIRECTORY
IMAGE_DIRECTORY_ENTRY_EXPORT = 0 ' Export Directory
IMAGE_DIRECTORY_ENTRY_IMPORT = 1 ' Import Directory
IMAGE_DIRECTORY_ENTRY_RESOURCE = 2 ' Resource Directory
IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3 ' Exception Directory
IMAGE_DIRECTORY_ENTRY_SECURITY = 4 ' Security Directory
IMAGE_DIRECTORY_ENTRY_BASERELOC = 5 ' Base Relocation Table
IMAGE_DIRECTORY_ENTRY_DEBUG = 6 ' Debug Directory
IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7 ' Architecture Specific Data
IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8 ' RVA of GP
IMAGE_DIRECTORY_ENTRY_TLS = 9 ' TLS Directory
IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10 ' Load Configuration Directory
IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11 ' Bound Import Directory in headers
IMAGE_DIRECTORY_ENTRY_IAT = 12 ' Import Address Table
IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13 ' Delay Load Import Descriptors
IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14 ' COM Runtime descriptor
End Enum
code di atas berfungsi untuk pengecekan PE HEADER
buat 1 module dengan nama modScanning
lalu tambahkan code di bawah ini
Code:
Public jumlahDir As Long, jumlahFile As Long, jumlahVirus As Long
Public StopScan As Boolean
Public Function CekVirus(FilePath As String) As String
CekVirus = ""
For i = 1 To UBound(VirusDB)
If GetChecksum(FilePath) = Split(VirusDB(i), "|")(1) Then
CekVirus = VirusDB(i)
Exit Function
End If
Next
If FileLen(FilePath) / 1024 <= 512 Then
CekVirus = CekHeuristic(FilePath)
End If
End Function
Public Sub FindFilesEx(ByVal lpFolderName As String, ByVal SubDirs As Boolean)
Dim i As Long
Dim hSearch As Long, WFD As WIN32_FIND_DATA
Dim Result As Long, CurItem As String
Dim tempDir() As String, dirCount As Long
Dim RealPath As String, GetViri As String
GetViri = ""
dirCount = -1
ScanInfo = "Scan File"
If Right$(lpFolderName, 1) = "\" Then
RealPath = lpFolderName
Else
RealPath = lpFolderName & "\"
End If
hSearch = FindFirstFile(RealPath & "*", WFD)
If Not hSearch = INVALID_HANDLE_VALUE Then
Result = True
Do While Result
DoEvents
If StopScan = True Then Exit Do
CurItem = StripNulls(WFD.cFileName)
If Not CurItem = "." And Not CurItem = ".." Then
If PathIsDirectory(RealPath & CurItem) <> 0 Then
jumlahDir = jumlahDir + 1
frmUtama.lblDirScan.Caption = jumlahDir
If SubDirs = True Then
dirCount = dirCount + 1
ReDim Preserve tempDir(dirCount) As String
tempDir(dirCount) = RealPath & CurItem
End If
Else
jumlahFile = jumlahFile + 1
frmUtama.lblFileScan.Caption = jumlahFile
frmUtama.txtFileScan.Text = RealPath & CurItem
frmUtama.txtFileScan.SelStart = Len(frmUtama.txtFileScan.Text)
If WFD.nFileSizeLow > 5120 Or WFD.nFileSizeHigh > 5120 Then
GetViri = CekVirus(RealPath & CurItem)
If GetViri <> "" Then
AddDetect frmUtama.lvScan, RealPath & CurItem, GetViri
jumlahVirus = jumlahVirus + 1
frmUtama.lblFileDet.Caption = jumlahVirus
End If
End If
End If
End If
Result = FindNextFile(hSearch, WFD)
Loop
FindClose hSearch
If SubDirs = True Then
If dirCount <> -1 Then
For i = 0 To dirCount
FindFilesEx tempDir(i), True
Next i
End If
End If
End If
End Sub
Code di atas adalah code untuk scan file & folder pada antivirus
buat 1 module dengan nama modEtc
masukan code di bawah ini
Code:
Public Function Action(Data As String, TheLV As ListView, Mode As String)
Dim Filedata() As String
Dim fName, tmp, Status As String
Dim y As Integer
Filedata = Split(Data, "|")
For i = 1 To UBound(Filedata)
a = a + 1
If Mode = "Q" Then
fName = GetFileName(Filedata(i))
EncodeFile Filedata(i), AppPath & "Quarantine\" & Left$(fName, Len(fName) - Len(GetExt(Filedata(i)))) & ".avq"
AddQList TheLV, Filedata(i), Left$(fName, Len(fName) - Len(GetExt(Filedata(i)))) & ".avq"
DeleteFile Filedata(i)
Status = "Di Karantina"
ElseIf Mode = "D" Then
DeleteFile Filedata(i)
Status = "Di Hapus"
End If
y = GetIndex(TheLV, Filedata(i))
With TheLV.ListItems.Item(y)
.SubItems(3) = Status
.Checked = False
.SmallIcon = frmUtama.ImgSmall.ListImages(2).Index
End With
Next
Action = a
End Function
Public Function AddQList(TheLV As ListView, FilePath As String, Source As String)
Dim Dat As String
Dat = AppPath & "Quarantine\HN.dat"
If PathFileExists(Dat) <> 0 Then
Open Dat For Input As #1
Input #1, isi
Close #1
DeleteFile Dat
Else
isi = ""
End If
namavir = TheLV.ListItems(GetIndex(TheLV, FilePath))
If InStrRev(isi, Source, , vbTextCompare) = 0 Then
Open Dat For Output As #2
Print #2, isi & "|" & namavir & "?" & FilePath & "?" & Source
Close #2
Else
Open Dat For Output As #3
Print #3, isi
Close #3
End If
End Function
Public Function GetFileName(PathFile As String) As String
Dim i As Long
Dim DirString As Long
For i = 1 To Len(PathFile)
If Mid$(PathFile, i, 1) = "\" Then DirString = i
Next i
GetFileName = Right$(PathFile, Len(PathFile) - DirString)
End Function
Public Function GetExt(ByVal lpFileName As String)
Dim sTemp As String
Dim i As Long
sTemp = GetFileName(lpFileName)
If InStr(lpFileName, ".") Then
For i = 0 To Len(sTemp) - 1
If Mid$(sTemp, Len(sTemp) - i, 1) = "." Then
GetExt = Mid$(sTemp, Len(sTemp) - i, i)
Exit Function
End If
Next i
End If
End Function
Coatas adalah kumpulan fungsi etc untuk scanning,karantina,delete
Langganan:
Postingan (Atom)