Amanda is a simple keylogger application written in C++ that demonstrates low-level keyboard input capture on Windows systems. This project was created as an educational exercise to showcase C++ programming capabilities and Windows API usage.
Amanda monitors and logs all keyboard input on a Windows machine. Every keystroke is captured and saved to a text file (log.txt) in the same directory where the program runs. The application runs silently in the background with a hidden console window.
- Starts silently - The program hides its console window when launched
- Monitors keyboard - Continuously checks for key presses using Windows API
- Logs keystrokes - Records every key press to
log.txtincluding:- Regular characters (letters, numbers, symbols)
- Special keys (ENTER, BACKSPACE, TAB, ESC, etc.)
- Arrow keys (←, ↑, ↓, →)
- Modifier keys (SHIFT, CONTROL, ALT, CAPS LOCK)
- Runs indefinitely - Continues logging until manually terminated
- 💻 Windows operating system (7, 8, 10, or 11)
- 🔧 C++ compiler with Windows API support (MinGW or MSVC)
g++ main.cpp -o amanda.exe
cl main.cpp /Fe:amanda.exe
- Open Visual Studio
- Create a new C++ Console Application project
- Add
main.cppto the project - Build the solution (F7)
Simply execute the compiled program:
amanda.exe
The program will start logging keystrokes to log.txt in the current directory.
Press Ctrl + Alt + Q to stop the program gracefully.
- Press
Ctrl + Shift + Escto open Task Manager - Find
amanda.exein the Processes tab - Click "End Task"
All captured keystrokes are saved in log.txt in the same directory as the executable.
The log file includes:
- ⏰ Session start/end timestamps
- ⌨️ All captured keystrokes
- 🔑 Special key indicators (ENTER, BACKSPACE, etc.)
Example log output:
=== Session started: 2025-10-21 14:30:15 ===
Hello World[ENTER]
This is a test[BACKSPACE][BACKSPACE][BACKSPACE][BACKSPACE]demo[ENTER]
=== Session ended: 2025-10-21 14:32:45 ===
This project is intended for educational purposes only to demonstrate:
- 🖥️ Windows API programming in C++
- ⌨️ Low-level keyboard input handling
- 📁 File I/O operations in C++
- 🔧 System-level programming concepts
Windows only - This application uses Windows-specific APIs and will not work on Linux or macOS.