OPCODE-Open-Spring-Fest/KeyLogger5155
HackElite Club of IIIT Bhagalpur is introducing a Open-Source Project KeyLogger5155. This is a GUI Keylogger application built purely in Python3. It can record all the key stokes, Copy Clipboard Data, Capture ScreenShot,Get System Info, Send email to the attacker with the captured data. Note:- Only For Educational Purpose
π₯οΈ Keylogger 5155
A Python-based GUI Keylogger built with CustomTkinter, Pynput, and Pillow, capable of capturing keyboard inputs, screenshots, clipboard data, and system information β all managed via a beautiful graphical interface.
Overview
This project demonstrates how real-time keylogging, screenshot capturing, and automated reporting can be implemented securely using Python.
It provides:
- An interactive GUI to control all operations.
- Automatic logging of keyboard activity and clipboard data.
- Screenshot capture at some defined intervals.
- Optional email delivery of all collected logs.
Features
1. Keylogging
- Captures every keystroke pressed on the keyboard.
- Logs include letters, numbers, function keys, and special keys (
Enter,Backspace, etc.). - Stored safely in:
app/data/key_log.txt
2. Clipboard Capture
- Periodically reads clipboard data (text).
- Stores the last copied text content into:
app/data/clipboard.txt
3οΈ. Screenshot Capturing
- Takes full-screen screenshots at regular intervals using
Pillow (PIL). - The image is timestamped and saved automatically.
- All screenshots are stored as PNGs in:
app/data/screenshots/
4οΈ. System Information Logging
- Gathers important device details such as:
- OS name and version
- Hostname
- Processor type
- IP address
- Saved in:
app/data/systeminfo.txt
5. Email Automation
- Periodically sends collected logs and screenshots as ZIP file via email.
- Credentials and recipient are securely managed via
.envfile.
πFolder Structure
π¦ GKeylogger-5155
βββ app/
β βββ data/
β β βββ key_log.txt
β β βββ clipboard.txt
β β βββ systeminfo.txt
β β βββ screenshots/
β β βββ *.png
β βββ .gitignore
β βββ guikeylogger.py
β βββ requirements.txt
βββ config.json
βββ package.json
βββ README.md
Configuration Details (config.json)
The config.json file lets you customize paths, intervals, email, and GUI settings β no code changes needed.
Default Config
"paths": {
"data_dir": "data",
"keys_file": "data/key_log.txt",
"system_file": "data/systeminfo.txt",
"clipboard_file": "data/clipboard.txt",
"screenshot_dir": "data/screenshots"
},
"intervals_seconds": {
"screenshot_interval": 900,
"email_interval": 900,
"clipboard_interval": 30
},
"screenshots": { "keep_latest": 10 },
"email": {
"smtp_host": "smtp.gmail.com",
"smtp_port": 587,
"from_env": true
},
"gui": { "icon": "cracking.ico", "image": "cracking.png", "window_title": "Key Logger 5155" },
"safety": { "require_confirm": true }
}
Parameter Summary -
| Section | Key | Default | Description |
|---|---|---|---|
| paths | data_dir |
data |
Directory for storing logs. |
keys_file |
data/key_log.txt |
Keystroke log file. | |
clipboard_file |
data/clipboard.txt |
Clipboard data file. | |
screenshot_dir |
data/screenshots |
Folder for screenshots. | |
| intervals_seconds | screenshot_interval |
900 |
Take screenshot every 15 mins. |
email_interval |
900 |
Send logs via email every 15 mins. | |
clipboard_interval |
30 |
Capture clipboard every 30s. | |
| screenshots | keep_latest |
10 |
Keep only latest screenshots. |
smtp_host |
smtp.gmail.com |
Mail server for sending logs. | |
from_env |
true |
Load credentials from.env. |
|
| gui | window_title |
Key Logger 5155 |
GUI window title. |
- Modify these values to change log intervals, file paths, or email setup without touching the source code.
Tech Stack
- Python 3.9+
- CustomTkinter
- Pynput
- Pillow (PIL)
- Pyperclip
- smtplib (built-in)
- python-dotenv 1.0+
Installation & Setup
1. Clone Repository
git clone https://github.com/<your-username>/Keylogger5155.git
cd Keylogger5155/app2. Create Virtual Environment
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Linux/Mac3. Install Requirements
pip install -r requirements.txt4. Configure Environment
Create a .env file:
email=email@gmail.com
pass=password6. Run the App
python guikeylogger.pyExample Output
π data/
βββ key_log.txt
β [2025-11-01 08:30:12] Key pressed: A
β [2025-11-01 08:30:13] Key pressed: B
βββ clipboard.txt
β Copied Text: "Hello World"
βββ screenshots/
β screenshot_2025-11-01_08-31-00.png
βββ systeminfo.txt
β OS: Windows 10
β Hostname: user-PC
β Processor: Intel Core i5
β IP: 192.xxx.x.5
Contributing
- Fork the repo
- Create a feature branch
git checkout -b feature-name
- Commit changes
git commit -m "Added new feature" - Push and create a Pull Request
Community
This project is part of Opcode, IIIT Bhagalpur. Maintainers will review PRs, suggest changes, and merge contributions. Use Issues to report bugs or suggest features.