Skip to content

Commit 2436a18

Browse files
Merge pull request #33 from indrasuthar07/docs/updated-readme
docs: Documentation for keylogger5155
2 parents 5931054 + 43cc473 commit 2436a18

File tree

1 file changed

+208
-6
lines changed

1 file changed

+208
-6
lines changed

README.md

Lines changed: 208 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,212 @@
1-
# KeyLogger5155
1+
## 🖥️ Keylogger 5155
22

3-
This is an advanced KeyLogger app seeking contribution for it's GUI and backend efficiency.
3+
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.
44

5-
If you want more information regarding the project you can read the [Project Documentation](./.github/Contributor_Guide/Project_Tour.md)
5+
## Overview
66

7-
Copyright (c)
8-
HackElite
9-
IIITBH. All rights reserved
7+
This project demonstrates how real-time keylogging, screenshot capturing, and automated reporting can be implemented securely using Python.
8+
It provides:
109

10+
* An interactive GUI to control all operations.
11+
* Automatic logging of keyboard activity and clipboard data.
12+
* Screenshot capture at some defined intervals.
13+
* Optional email delivery of all collected logs.
14+
15+
## Features
16+
17+
### 1. **Keylogging**
18+
19+
* Captures every keystroke pressed on the keyboard.
20+
* Logs include letters, numbers, function keys, and special keys (`Enter`, `Backspace`, etc.).
21+
* Stored safely in:
22+
```
23+
app/data/key_log.txt
24+
```
25+
26+
### 2. **Clipboard Capture**
27+
28+
* Periodically reads clipboard data (text).
29+
* Stores the last copied text content into:
30+
```
31+
app/data/clipboard.txt
32+
```
33+
34+
### 3️. **Screenshot Capturing**
35+
36+
* Takes full-screen screenshots at regular intervals using `Pillow (PIL)`.
37+
* The image is timestamped and saved automatically.
38+
* All screenshots are stored as PNGs in:
39+
```
40+
app/data/screenshots/
41+
```
42+
43+
### 4️. **System Information Logging**
44+
45+
* Gathers important device details such as:
46+
* OS name and version
47+
* Hostname
48+
* Processor type
49+
* IP address
50+
* Saved in:
51+
```
52+
app/data/systeminfo.txt
53+
```
54+
55+
### 5. **Email Automation**
56+
57+
* Periodically sends collected logs and screenshots as ZIP file via email.
58+
* Credentials and recipient are securely managed via `.env` file.
59+
60+
## 📁Folder Structure
61+
62+
```
63+
📦 GKeylogger-5155
64+
├── app/
65+
│ ├── data/
66+
│ │ ├── key_log.txt
67+
│ │ ├── clipboard.txt
68+
│ │ ├── systeminfo.txt
69+
│ │ └── screenshots/
70+
│ │ └── *.png
71+
│ ├── .gitignore
72+
│ ├── guikeylogger.py
73+
│ ├── requirements.txt
74+
├── config.json
75+
├── package.json
76+
└── README.md
77+
```
78+
79+
## Configuration Details (config.json)
80+
81+
The config.json file lets you customize paths, intervals, email, and GUI settings — no code changes needed.
82+
83+
#### Default Config
84+
85+
```{
86+
"paths": {
87+
"data_dir": "data",
88+
"keys_file": "data/key_log.txt",
89+
"system_file": "data/systeminfo.txt",
90+
"clipboard_file": "data/clipboard.txt",
91+
"screenshot_dir": "data/screenshots"
92+
},
93+
"intervals_seconds": {
94+
"screenshot_interval": 900,
95+
"email_interval": 900,
96+
"clipboard_interval": 30
97+
},
98+
"screenshots": { "keep_latest": 10 },
99+
"email": {
100+
"smtp_host": "smtp.gmail.com",
101+
"smtp_port": 587,
102+
"from_env": true
103+
},
104+
"gui": { "icon": "cracking.ico", "image": "cracking.png", "window_title": "Key Logger 5155" },
105+
"safety": { "require_confirm": true }
106+
}
107+
```
108+
109+
#### Parameter Summary -
110+
111+
112+
| Section | Key | Default | Description |
113+
| :-------------------- | :-------------------- | :------------------- | :--------------------------------- |
114+
| **paths** | `data_dir` | `data` | Directory for storing logs. |
115+
| | `keys_file` | `data/key_log.txt` | Keystroke log file. |
116+
| | `clipboard_file` | `data/clipboard.txt` | Clipboard data file. |
117+
| | `screenshot_dir` | `data/screenshots` | Folder for screenshots. |
118+
| **intervals_seconds** | `screenshot_interval` | `900` | Take screenshot every 15 mins. |
119+
| | `email_interval` | `900` | Send logs via email every 15 mins. |
120+
| | `clipboard_interval` | `30` | Capture clipboard every 30s. |
121+
| **screenshots** | `keep_latest` | `10` | Keep only latest screenshots. |
122+
| **email** | `smtp_host` | `smtp.gmail.com` | Mail server for sending logs. |
123+
| | `from_env` | `true` | Load credentials from`.env`. |
124+
| **gui** | `window_title` | `Key Logger 5155` | GUI window title. |
125+
126+
#### - Modify these values to change log intervals, file paths, or email setup without touching the source code.
127+
128+
## Tech Stack
129+
130+
* **Python 3.9+**
131+
* **CustomTkinter**
132+
* **Pynput**
133+
* **Pillow (PIL)**
134+
* **Pyperclip**
135+
* **smtplib (built-in)**
136+
* **python-dotenv 1.0+**
137+
138+
## Installation & Setup
139+
140+
### 1. Clone Repository
141+
142+
```bash
143+
git clone https://github.com/<your-username>/Keylogger5155.git
144+
cd Keylogger5155/app
145+
```
146+
147+
### 2. Create Virtual Environment
148+
149+
```bash
150+
python -m venv venv
151+
venv\Scripts\activate # Windows
152+
source venv/bin/activate # Linux/Mac
153+
```
154+
155+
### 3. Install Requirements
156+
157+
```bash
158+
pip install -r requirements.txt
159+
```
160+
161+
### 4. Configure Environment
162+
163+
Create a `.env` file:
164+
165+
```bash
166+
167+
pass=password
168+
```
169+
170+
### 6. Run the App
171+
172+
```bash
173+
python guikeylogger.py
174+
```
175+
176+
## Example Output
177+
178+
```
179+
📁 data/
180+
├── key_log.txt
181+
│ [2025-11-01 08:30:12] Key pressed: A
182+
│ [2025-11-01 08:30:13] Key pressed: B
183+
184+
├── clipboard.txt
185+
│ Copied Text: "Hello World"
186+
187+
├── screenshots/
188+
│ screenshot_2025-11-01_08-31-00.png
189+
190+
└── systeminfo.txt
191+
│ OS: Windows 10
192+
│ Hostname: user-PC
193+
│ Processor: Intel Core i5
194+
│ IP: 192.xxx.x.5
195+
```
196+
197+
## Contributing
198+
199+
1. Fork the repo
200+
2. Create a feature branch
201+
```bash
202+
git checkout -b feature-name
203+
```
204+
3. Commit changes
205+
```bash
206+
git commit -m "Added new feature"
207+
```
208+
4. Push and create a Pull Request
209+
210+
## Community
211+
212+
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.

0 commit comments

Comments
 (0)