|
1 | | -# KeyLogger5155 |
| 1 | +## 🖥️ Keylogger 5155 |
2 | 2 |
|
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. |
4 | 4 |
|
5 | | -If you want more information regarding the project you can read the [Project Documentation](./.github/Contributor_Guide/Project_Tour.md) |
| 5 | +## Overview |
6 | 6 |
|
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: |
10 | 9 |
|
| 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