14 Januari 2008

Membuat Trojan dengan VB6

Artikel ini pernah dimuat dibeberapa situs komunitas kemanan diantaranya Sector Comunity (closed), Spyrozone (closed) dan saat ini artikel ini juga dapat diunduh dari e-book planindo. Artikel ini saya buat kurang lebih 5-6 tahun lalu saat saya masih menggunakan Etniez CyberKidz sebagai nickname saya di dunai maya.

Artikel tidak saya muat dalam blog ini dekarenakan pembahasannya yang cukup panjang melainkan saya upload ke rapidshare dengan format Zip. Disini saya tidak hanya sekedar membagi artikel tapi saya juga mengikut sertakan soure-code yang dibahas. Tapi source-code yang saya sertakan disini adalah source-code yang telah saya perbaharui. Isinya jauh lebih banyak dibandingkan dengan apa yang dibahas pada artikel. Jadi untuk dapat memahami tambahan-tambahan yang telah saya buat pada source-code, saya harap anda dapat memahaminya dengan membaca source-code tersebut.

Dikarenakan saya meng-upload artikel dan source-code ke rapidshare maka umur dari artikel dan source-code tersebut tidaklah dapat bertahan lama. File-file yang saya share lewat rapidshare akan kadaluarsa pada hari ke-31 semenjak file-file tersebut tidak lagi diunduh. Untuk mengatasinya saya harapkan anda ikut berpartisipasi dengan memberitahukan saya lewat comment pada blog ini bahwa file-file tersebut telah kadaluarsa atau rusak. Nantinya saya akan memberikan link baru agar file-file tersebut dapat kembali diunduh. Harap maklum.. :)

Download Artikel

Download Source-Code


Salam


xpartacvs

11 Januari 2008

API Text Viewer - part 1

Ok.. Sesuai janji saya pada artikel sebelumnya, kini saya akan jelaskan bagaimana agar anda dapat melihat dan menggunakan fungsi-fungsi API pada Windows tanpa harus menghafalkan nama dan bentuk deklarasi fungsi-fungsi bersangkutan yang jumlahnya mencapai ratusan :)

Pada saat anda menginstall aplikasi Visual Basic 6.0 Enterprise Edition, Microsoft juga menyertakan perkakas-perkakas pendukung yang dapat mempermudah anda dalam mengembangkan perangat lunak. Salah satunya ialah yang sekarang ini sedang kita bahas yaitu API Text Viewer. Lalu.. apakah yang dimaksud dengan perkakas API Text Viewer ini?

API Text Viewer adalah perkakas yang memungkinkan anda untuk dapat melihat daftar nama dan bentuk deklarasi fungsi-fungsi API berikut konstanta dan tipe-data-bentukan yang disediakan oleh Windows yang dimaksudkan untuk mempermudah programer dalam mengembangkan aplikasi andanya.

Beberapa alasan yang (mungkin) menjadi faktor pendorong dibuatnya perkakas ini antara lain ialah:
  • Jumlah fungsi, konstanta, dan tipe-data-bentukan yang mencapai ratusan.
  • Bentuk deklarasi, file library dan parameter-parameter yang berbeda untuk masing-masing fungsi yang tersedia.
Kesimpulannya, perkakas ini dibuat untuk membantu programer dalam mengingat nama dan bentuk umum deklarasi fungsi-fungsi API yang berjumlah sangat banyak.

Baiklah.. Saya tidak akan bertele-tele lagi mengenai API Text Viewer. Saya akan mulai menjelaskan kepada anda cara memulai dan menggunakan perkakas API Text Viewer ini.

" Harap perhatikan dengan seksama langkah-langkah ini karena apa yang akan saya tuliskan bisa jadi merupakan informasi yang cukup berharga bagi anda. "

1. Mengaktifkan Add-In API Text Viewer

Pada Microsoft Visual Basic 6.0 Enterprise Edition, perkakas API Text Viewer dapat diload sebagai Add-In (aplikasi pendukung pada saat memprogram). Untuk melakukannya :
  • Bukalah aplikasi VB6 anda.
  • Setelah aplikasi siap digunakan, pilih menu Add-In pada menu utama, lalu pilih Add-In Manager.
Gambar 1.0 : Pilih menu Add-In Manager
  • Pada jendela Add-In Manager yang muncul, akan tampil daftar add-in yang tersedia. Cari add-in yang bertuliskan VB 6 API Viewer pada kolom Available Add-In, klik satu kali hingga add-in tersebut berada dalam kondisi tersorot.
  • Setelah itu arahkan kursor mouse menuju kotak Load Behavior yang berada pada pojok kanan bawah jendela Add-In Manager. Disana terdapat 3 (tiga) buah checkbox. Beri tanda centang pada dua checkbox yang terdapat disana yaitu "Loaded/Unloaded" dan "Load on Startup". Kegiatan ini dimaksudkan agar perkakas API Text Viewer dapat langsung tersedian pada menu Add-In tiap kali anda memjalankan aplikasi VB.
  • Klik tombol Ok. Untuk lebih memperjelas, silahkan lihat gambar dibawah ini.
Gambar 1.1 : Jendela Add-In Manager
  • Add-In API Text Viewer pun telah aktif dan siap digunakan. Untuk membuktikan bahwa tool ini telah aktif dan dapat digunakan silahkan kembali ke menu Add-In dan lihat menu baru yang muncul bertuliskan API Viewer.
Gambar 1.2 : Submenu API Viewer telah muncul

2. Memulai Tool API Text Viewer

Untuk dapat mulai menggunakan perkakas API Text Viewer (ATV), setelah melakukan langkah pertama langkah beriutnya adalah pilih menu Add-In lalu pilih submenu API Viewer. Setelah itu akan muncul jendela baru berjudul API Viewer.

Gambar 2.0 : Jendela API Viewer

"Lho.. kok kosong? Mana Daftar fungsinya??"

Sabar... Langkah kita belum selesai sampai disini. Apa yang anda lihat disini adalah tampilan antar muka tool ATV yang masih kosong. Untuk dapat memulai melihat daftar nama fungis API dan bentuk deklarasinya, kita perlu melakukan sedikit langkah lagi.
  • Pada menu utama pilih menu File > Load Text File
Gambar 2.1 : Pilih sub-menu Load Text File
  • Seletah itu akan muncul dialogbox. Pilih file WIN32API.TXT lalu klik tombol Open
Gambar 2.2 : Pilih file win32api.txt
  • Jika file WIN32API.TXT berhasil di-Load, maka daftar nama fungsi api akan muncul seperti gambar dibawah ini.
Gambar 2.3: File WIN32API.TXT berhasil di-Load

Ok.. Sampai disini langkah kita dalam memulai Tool ATV sudah selesai. Silahkan anda sedikit merenggangkan otot-otot khususnya otot mata anda.. :D

Meskipun saya katakan selesai tapi saya masih punya satu tips lagi. Ini demi kenyamanan kita dalam nenggunakan tool ATV lho... :O

Baiklah singkat saja.. Coba anda tutup jendela tool ATV lalu jalankan ulang. Apa yang terjadi? Daftar nama fungsi API yag tadi telah kita load kembali menjadi kosong, betul? Dan untuk menampilkannya kembali kita perlu melakukan prosedur load file WIN32API.TXT kembali. Mungkin bagi anda hal ini biasa, tapi bukankan akan lebih baik jika kita tidak lagi perlu melakukan load file sebelum dapat menggunakan tool ini.

Untuk dapat mengatasi hal ini lakukan langkah langkah berikut:
  • Load kembali file WIN32API.TXT
  • Setelah file berhasil di-Load, pada menu utama pilih menu View > Load Last File
Gambar 2.4 : Melakukan auto-load file terakhir yang dibuka

Nah sampai disini tool ATV telah benar-benar siap untuk digunakan dan anda pun tidak perlu repot-repot lagi untuk me-Load file WIN32API.TXT tiap kali anda ingin menggunakaanya. :)

Hoooaaaaahh...nyam...nyam..... :-O

Wah.. Ternyata blog ini cukup panjang juga akhirnya. Tadinya saya ingin melanjutkan sampai langkah berikutnya yaitu "Menggunakan Tool API Text Viewer Pada Visual Basci 6.0". Tapi sayangnya saya sudah lelah mengetik.. dan lagi pula pembahasan tentang penggunaan tool ini cukup banyak juga. Untuk itu saya akan lanjutkan lagi pembahasan kita mengenai "Pengenalan Window API" pada artikel berikutnya yang insya Allah saya berijudul API Text Viewer - part 2

Salam... :D

xpartacvs

08 Januari 2008

Perkenalkan,.. Saya Windows API..!!

Ya.. Saya Windows API. Pernahkah anda mendengar nama saya? Mungkin bagi anda yang baru menyentuh dunia pemrograman, nama saya tidak pernah anda dengar sebelumnya. Tapi saya berani mengatakan bahwa saya memiliki kemampuan yang luar biasa yang memungkinkan anda mendapatkan apa yang anda inginkan pada sistem operasi Windows. Jadi siapakah saya sebenarnya? Dan mengapa saya menjadi salah satu topik yang dibicarakan pada blog ini?

Ok.. Saya akan mencoba memperkenalkan diri saya tahap demi tahap agar anda tau apa saja yang dapat saya lakukan untuk membantu anda (programer VB) berinteraksi dengan sistem operasi Windows.

Yang pertama kita bahas terlebih dahulu nama belakang saya. Ya.. API, bukan api yang membakar melainkan sebuah singkatan dari Application Programming Interface. Lalu apakah Application Programming Interface (API) ini? API adalah sekumpulan fungsi umum yang tersimpan pada file-file library milik Windows yang biasa digunakan oleh windows untuk melakasanakan tugas-tugasnya.

Programmer : "Ah kalau hanya seperti itu, rasanya tidak ada yang spesial pada API."

Hey tunggu dulu, saya belum selesai. Saya tadi sudah mengatakan bahwa saya akan memperkenalkan diri pada anda tahap demi tahap. Jadi mohon sabar..ya.. :D

Jika anda berpikiran bahwa saya bukanlah sesuatu yang special, anda salah besar karena saya masih memiliki beberapa hal yang pasti anda suka. Salah satu diantaranya ialah saya diberi izin oleh windows untuk digunakan pada aplikasi yang hendak anda buat dan kembangkan.

Programer : "Memangnya apa yang bisa API lakuan untuk mengembangkan aplikasi saya?"

Banyak.. Percaya atau tidak peran saya dalam kinerja dan operasi-operasi windows bisa mencapai 70%.

Programer : "Yang benar saja.. contohnya?"

Baik, saya akan sebutkan beberapa dari kemampuan saya yang tidak hanya bisa diminfaatkan oleh windows melainkan anda juga dapat menggunakannya :
  1. Saya mampu membuka / menutup CD-ROM (Drive Optik) anda.
  2. Saya mampu melakukan shutdown, restart, dan logoff pada windows
  3. Saya mampu mengatur resolusi layar pada monitor anda.
  4. Saya mampu melakukan format pada Harddrive anda.
  5. Saya mampu mengakses Registry Windows
  6. dan masih banyak yang lainnya.
Programer : "Wah... sepertinya menarik. Teruskan..!"

Baiklah, tadi saya mengatakan saya adalah kumpulan fungsi umum yang tersimpan pada file-file library milik windows. Taukah anda apa yang dimaksud dengan file library tersebut? File library yang diberi ekstensi DLL (dynamic link library) adalah file milik windows yang memang berisikan fungsi-fungsi umum yang berkaitan dengan sistem kerja komputer. File-file ini berjumlah lebih dari satu dan diberi nama sesuai dengan kategori fungsi yang dimilikinya.

Secara default file-file ini tersimpan pada direkoti sistem milik window yaitu :
  1. C:\Windows\System (untuk Win 9x)
  2. C:\Windows\System32 (untuk Win NT)
Bebrapa dari file-file ini antara lain ialah :
  • Advapi32.dll berisi fungsi-fungsi keamanan dan rutin registry.
  • Gdi32.dll berisi fungsi-fungsi penanganan grafik pada Windows.
  • Kernel32.dll berisi fungsi-fungsi inti (core) sistem operasi 32-bit.
  • Netapi32.dll berisi fungsi-fungsi yang menangani jaringan.
  • Shell32.dll berisi fungsi-fungsi penanganan shell 32-bit.
  • User32.dll berisi fungi-fungsi penanganan user interface.
  • Winmm.dll berisi fungsi-fungsi yang berkaitan dengan multimedia.
  • dan banyak lainnya.
Programer : "Ok... persingkat saja.. bagaimana saya bisa menggunakan API pada aplikasi saya?"

Wah.. anda terburu-bura sekali,..tapi baiklah untuk dapat menggunakan API pada aplikasi anda, anda harus mendeklarasikan fungsi yang anda inginkan terlebih dahulu pada modul (source list) aplikasi anda. Bentuk umum pendeklarasian API bisa anda lihat dibawah ini:

[Declare Scope] Declare Function [Function Name] Lib "[Library Name]" ( [Function Parameters] ) As [Return Type]

Keterangan:
  • Declare Scope ialah tipe deklarasi fungsi yang bernilai Public dan Private. Jika anda mengisikan Public maka fungsi yang anda deklarasikan ini bersifat umum sehingga dapat dipanggil oleh/dari modul mana saja sedangkan jika anda mengisikan Private maka fungsi ini hanya bisa dipanggil oleh modul tempat anda mendeklarasikan fungsi ini.
  • Function name ialah nama fungsi yang dideklarasikan.
  • Library name ialah nama file library tempat fungsi ini tersimpan.
  • Function Parameters ialah parameter-parameter yang berkaitan dengan fungsi ini.
Saya akan berikan contoh bentuk deklarasi fungsi untuk membunyikan speaker internal pada komputer. Tapi ingat komputer anda harus memiliki speaker internal untuk dapat melihat hasilnya.

Public Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Nah.. dari contoh diatas saya hanya akan jelaskan mengenai parameter-parameter yang ada pada fungsi tersebut. dwFreq ialah nilai besarnya frekuensi yang akan dibunyikan oleh speaker internal. Secara default nilai frekuensi yang dapat dibunyikan oleh speaker berkisar antara 32 hingga batas maksimal nilai tipe data Long. Sedangkan dwDuration ialah durasi lamanya speaker membunyikan frekuensi yang telah ditentukan dalan satuan millidetik (1 detik = 1000 millidetil). Lalu bagaimana cara memanggil fungsi ini? Caranya ialah dengan mengtikan nama fungsi berikut nilai parameter-parameternya. Contoh :

Beep(100,1000)

Artinya anda membunyikan frekuensi 100 Hertz selama 1 detik (ingat 1 detik = 1000 milidetik).

Programer : "Wah repot sekali...coba perhatikan, nama fungsi diatas hanyalah salah satu dari sekian banyak fungsi API, belum lagi parameter yang ada pada fungsi tersebut yang sudah pasti tiap fungsi memiliki parameter-parameter yang berbeda baik jumlah maupun tipe datanya. Bagaimana saya bisa menghafal ratusan fungsi tersebut? Saya yakin Bill Gates sang bapak Microsoft pun belum tentu hafal dengan ratusan nama dan parameter fungsi tersebut?"

Ha..ha.. ha..anda tidak perlu khawatir. Microsoft sudah memprediksikan akan hal ini. Anda tidak perlu menghafal ratusan nama dan parameter fungsi API untuk dapat menguasai hal ini.

Programer : "Oya??.. kalau begitu untuk apa anda jelaskan deklarasi fungsi API yang berjubel ribet seperti ini kalau memang ada cara yang lebih mudah untuk menggunakannya?" :-[

Lho..?? Kenapa anda jadi emosi seperti itu? Saya hanya ingin anda mengetahui bentuk umum darideklarasi fungsi API dan cara menggunakannya. Karena dengan memahami basic knowledge ini anda akan lebih mudah mengerti dan dapat memaksimalkan aplikasi yang hendak anda kembangkan nantinya. :)

Ok.. saya akan beritahukan kepada anda cara mudah untuk mendeklarasikan fungsi API tanpa harus menghafal ratusan nama fungsi API tersebut pada artikel berikutnya... dikarenakan artikel ini sudah cukup panjang... he he he.... :)

Artikel lanjutan mengenai Windows API akan saya beri judul API Text Viewer.. ok?

Maju terus IT Indonesia, viva Programer Indonesia.... Wassalam... :)