botff 0.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- botff-0.0.1/LICENSE +21 -0
- botff-0.0.1/PKG-INFO +112 -0
- botff-0.0.1/README.md +95 -0
- botff-0.0.1/pyproject.toml +45 -0
- botff-0.0.1/setup.cfg +4 -0
- botff-0.0.1/src/botff/__init__.py +4 -0
- botff-0.0.1/src/botff/__main__.py +5 -0
- botff-0.0.1/src/botff/main.py +298 -0
- botff-0.0.1/src/botff/version.py +1 -0
- botff-0.0.1/src/botff.egg-info/PKG-INFO +112 -0
- botff-0.0.1/src/botff.egg-info/SOURCES.txt +13 -0
- botff-0.0.1/src/botff.egg-info/dependency_links.txt +1 -0
- botff-0.0.1/src/botff.egg-info/entry_points.txt +2 -0
- botff-0.0.1/src/botff.egg-info/requires.txt +1 -0
- botff-0.0.1/src/botff.egg-info/top_level.txt +1 -0
botff-0.0.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 TanmoyTheBoT
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
botff-0.0.1/PKG-INFO
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: botff
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Aimbot GUI application package
|
|
5
|
+
Author-email: TanmoyTheBoT <tanmoysarkershuvo@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/TanmoyTheBoT/botff
|
|
8
|
+
Project-URL: Issues, https://github.com/TanmoyTheBoT/botff/issues
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Requires-Python: >=3.10
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Requires-Dist: pymem>=1.14.0
|
|
16
|
+
Dynamic: license-file
|
|
17
|
+
|
|
18
|
+
# botff 🎯
|
|
19
|
+
|
|
20
|
+
Free Fire aimbot panel for Python with aim-assist and targeting features.
|
|
21
|
+
|
|
22
|
+
<p align="center">
|
|
23
|
+
<a href="https://www.python.org/downloads/">
|
|
24
|
+
<img src="https://img.shields.io/badge/python-3.10%2B-blue.svg" alt="Python 3.10+" />
|
|
25
|
+
</a>
|
|
26
|
+
<a href="LICENSE">
|
|
27
|
+
<img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License MIT" />
|
|
28
|
+
</a>
|
|
29
|
+
<a href="https://badge.fury.io/py/botff"><img src="https://badge.fury.io/py/botff.svg?nocache=1" alt="PyPI version"></a>
|
|
30
|
+
<a href="https://pepy.tech/projects/botff"><img src="https://static.pepy.tech/badge/botff" alt="PyPI Downloads"></a>
|
|
31
|
+
</p>
|
|
32
|
+
|
|
33
|
+
## ✨ Features
|
|
34
|
+
|
|
35
|
+
- Windows admin privilege check before injection
|
|
36
|
+
- Tkinter-based GUI dashboard
|
|
37
|
+
- Real-time status logging and progress feedback
|
|
38
|
+
- Injection retry flow when the target process is unavailable
|
|
39
|
+
- Python package structure with a clean `botff` module layout
|
|
40
|
+
|
|
41
|
+
## 📋 Prerequisites
|
|
42
|
+
|
|
43
|
+
1. Python 3.10 or newer
|
|
44
|
+
2. Windows operating system
|
|
45
|
+
3. Administrator privileges for process access
|
|
46
|
+
4. The target game process must already be running before injection starts
|
|
47
|
+
|
|
48
|
+
## 📥 Installation
|
|
49
|
+
|
|
50
|
+
Install from PyPI:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
pip install botff
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Install from source:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
git clone https://github.com/TanmoyTheBoT/botff.git
|
|
60
|
+
cd botff
|
|
61
|
+
pip install -e .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## 🚀 Usage
|
|
65
|
+
|
|
66
|
+
Launch the app:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
botff
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Or run the package directly:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
python -m botff
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## ⚠️ Disclaimer
|
|
79
|
+
|
|
80
|
+
> This project is intended for educational and authorized testing use only.
|
|
81
|
+
>
|
|
82
|
+
> It is not intended for cheating, unauthorized access, or violating system or game policies.
|
|
83
|
+
>
|
|
84
|
+
> Use it only in environments where such testing is allowed. This software does not guarantee safety, bypasses, or account protection. If your account is banned, suspended, or restricted, the developer is not responsible and is not liable for any consequences.
|
|
85
|
+
>
|
|
86
|
+
> By using this tool, you acknowledge the risks and accept full responsibility for your actions.
|
|
87
|
+
|
|
88
|
+
## 🗂️ Project Structure
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
botff/
|
|
92
|
+
├── src/
|
|
93
|
+
│ └── botff/
|
|
94
|
+
│ ├── __init__.py
|
|
95
|
+
│ ├── __main__.py
|
|
96
|
+
│ ├── main.py
|
|
97
|
+
│ └── version.py
|
|
98
|
+
├── README.md
|
|
99
|
+
├── pyproject.toml
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## 👥 Contributors
|
|
103
|
+
|
|
104
|
+
<a href="https://github.com/TanmoyTheBoT"><img src="https://github.com/TanmoyTheBoT.png" width="50" height="50" style="border-radius:50%" alt="TanmoyTheBoT"/></a>
|
|
105
|
+
|
|
106
|
+
## 📄 License
|
|
107
|
+
|
|
108
|
+
This project is licensed under the [MIT License](LICENSE).
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
© TanmoyTheBoT 2026
|
botff-0.0.1/README.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# botff 🎯
|
|
2
|
+
|
|
3
|
+
Free Fire aimbot panel for Python with aim-assist and targeting features.
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://www.python.org/downloads/">
|
|
7
|
+
<img src="https://img.shields.io/badge/python-3.10%2B-blue.svg" alt="Python 3.10+" />
|
|
8
|
+
</a>
|
|
9
|
+
<a href="LICENSE">
|
|
10
|
+
<img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License MIT" />
|
|
11
|
+
</a>
|
|
12
|
+
<a href="https://badge.fury.io/py/botff"><img src="https://badge.fury.io/py/botff.svg?nocache=1" alt="PyPI version"></a>
|
|
13
|
+
<a href="https://pepy.tech/projects/botff"><img src="https://static.pepy.tech/badge/botff" alt="PyPI Downloads"></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
## ✨ Features
|
|
17
|
+
|
|
18
|
+
- Windows admin privilege check before injection
|
|
19
|
+
- Tkinter-based GUI dashboard
|
|
20
|
+
- Real-time status logging and progress feedback
|
|
21
|
+
- Injection retry flow when the target process is unavailable
|
|
22
|
+
- Python package structure with a clean `botff` module layout
|
|
23
|
+
|
|
24
|
+
## 📋 Prerequisites
|
|
25
|
+
|
|
26
|
+
1. Python 3.10 or newer
|
|
27
|
+
2. Windows operating system
|
|
28
|
+
3. Administrator privileges for process access
|
|
29
|
+
4. The target game process must already be running before injection starts
|
|
30
|
+
|
|
31
|
+
## 📥 Installation
|
|
32
|
+
|
|
33
|
+
Install from PyPI:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pip install botff
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Install from source:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
git clone https://github.com/TanmoyTheBoT/botff.git
|
|
43
|
+
cd botff
|
|
44
|
+
pip install -e .
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 🚀 Usage
|
|
48
|
+
|
|
49
|
+
Launch the app:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
botff
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Or run the package directly:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
python -m botff
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## ⚠️ Disclaimer
|
|
62
|
+
|
|
63
|
+
> This project is intended for educational and authorized testing use only.
|
|
64
|
+
>
|
|
65
|
+
> It is not intended for cheating, unauthorized access, or violating system or game policies.
|
|
66
|
+
>
|
|
67
|
+
> Use it only in environments where such testing is allowed. This software does not guarantee safety, bypasses, or account protection. If your account is banned, suspended, or restricted, the developer is not responsible and is not liable for any consequences.
|
|
68
|
+
>
|
|
69
|
+
> By using this tool, you acknowledge the risks and accept full responsibility for your actions.
|
|
70
|
+
|
|
71
|
+
## 🗂️ Project Structure
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
botff/
|
|
75
|
+
├── src/
|
|
76
|
+
│ └── botff/
|
|
77
|
+
│ ├── __init__.py
|
|
78
|
+
│ ├── __main__.py
|
|
79
|
+
│ ├── main.py
|
|
80
|
+
│ └── version.py
|
|
81
|
+
├── README.md
|
|
82
|
+
├── pyproject.toml
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## 👥 Contributors
|
|
86
|
+
|
|
87
|
+
<a href="https://github.com/TanmoyTheBoT"><img src="https://github.com/TanmoyTheBoT.png" width="50" height="50" style="border-radius:50%" alt="TanmoyTheBoT"/></a>
|
|
88
|
+
|
|
89
|
+
## 📄 License
|
|
90
|
+
|
|
91
|
+
This project is licensed under the [MIT License](LICENSE).
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
© TanmoyTheBoT 2026
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "botff"
|
|
3
|
+
dynamic = ["version"]
|
|
4
|
+
description = "Aimbot GUI application package"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.10"
|
|
7
|
+
license = {text = "MIT"}
|
|
8
|
+
authors = [
|
|
9
|
+
{name = "TanmoyTheBoT", email = "tanmoysarkershuvo@gmail.com"}
|
|
10
|
+
]
|
|
11
|
+
classifiers = [
|
|
12
|
+
"Programming Language :: Python :: 3",
|
|
13
|
+
"License :: OSI Approved :: MIT License",
|
|
14
|
+
"Operating System :: OS Independent",
|
|
15
|
+
]
|
|
16
|
+
dependencies = [
|
|
17
|
+
"pymem>=1.14.0",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[project.urls]
|
|
21
|
+
Homepage = "https://github.com/TanmoyTheBoT/botff"
|
|
22
|
+
Issues = "https://github.com/TanmoyTheBoT/botff/issues"
|
|
23
|
+
|
|
24
|
+
[project.scripts]
|
|
25
|
+
botff = "botff.main:main"
|
|
26
|
+
|
|
27
|
+
[build-system]
|
|
28
|
+
requires = ["setuptools>=61.0"]
|
|
29
|
+
build-backend = "setuptools.build_meta"
|
|
30
|
+
|
|
31
|
+
[tool.setuptools]
|
|
32
|
+
package-dir = {"" = "src"}
|
|
33
|
+
|
|
34
|
+
[tool.setuptools.packages.find]
|
|
35
|
+
where = ["src"]
|
|
36
|
+
|
|
37
|
+
[tool.setuptools.dynamic]
|
|
38
|
+
version = {attr = "botff.version.__version__"}
|
|
39
|
+
|
|
40
|
+
[dependency-groups]
|
|
41
|
+
dev = [
|
|
42
|
+
"build>=1.6.0",
|
|
43
|
+
"pyinstaller>=6.22.2",
|
|
44
|
+
"twine>=7.0.0",
|
|
45
|
+
]
|
botff-0.0.1/setup.cfg
ADDED
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import tkinter as tk
|
|
2
|
+
from tkinter import ttk, messagebox
|
|
3
|
+
import pymem
|
|
4
|
+
import pymem.pattern
|
|
5
|
+
import ctypes
|
|
6
|
+
from pymem.memory import read_bytes, write_bytes
|
|
7
|
+
from pymem.pattern import pattern_scan_all
|
|
8
|
+
from pymem import Pymem
|
|
9
|
+
import threading
|
|
10
|
+
import time
|
|
11
|
+
import sys
|
|
12
|
+
import os
|
|
13
|
+
|
|
14
|
+
#exe
|
|
15
|
+
class AimbotController:
|
|
16
|
+
def __init__(self, root):
|
|
17
|
+
self.root = root
|
|
18
|
+
self.root.title("Aimbot")
|
|
19
|
+
self.root.geometry("500x400")
|
|
20
|
+
self.root.resizable(False, False)
|
|
21
|
+
self.root.configure(bg="#1a1a2e")
|
|
22
|
+
|
|
23
|
+
# Variables
|
|
24
|
+
self.is_injecting = False
|
|
25
|
+
self.is_injected = False
|
|
26
|
+
self.pm = None
|
|
27
|
+
|
|
28
|
+
# Setup UI
|
|
29
|
+
self.setup_ui()
|
|
30
|
+
|
|
31
|
+
def setup_ui(self):
|
|
32
|
+
# Header Frame
|
|
33
|
+
header_frame = tk.Frame(self.root, bg="#16213e", height=80)
|
|
34
|
+
header_frame.pack(fill="x", pady=(0, 20))
|
|
35
|
+
header_frame.pack_propagate(False)
|
|
36
|
+
|
|
37
|
+
# Title
|
|
38
|
+
title = tk.Label(header_frame, text="🎯 Aimbot",
|
|
39
|
+
font=("Segoe UI", 20, "bold"),
|
|
40
|
+
bg="#16213e", fg="#e94560")
|
|
41
|
+
title.pack(pady=20)
|
|
42
|
+
|
|
43
|
+
# Main Content Frame
|
|
44
|
+
main_frame = tk.Frame(self.root, bg="#1a1a2e")
|
|
45
|
+
main_frame.pack(pady=20, padx=30, fill="both", expand=True)
|
|
46
|
+
|
|
47
|
+
# Status Frame
|
|
48
|
+
status_frame = tk.Frame(main_frame, bg="#16213e", relief="ridge", bd=2)
|
|
49
|
+
status_frame.pack(fill="x", pady=(0, 20))
|
|
50
|
+
|
|
51
|
+
# Status Label
|
|
52
|
+
self.status_label = tk.Label(status_frame, text="⚪ Status: Ready",
|
|
53
|
+
font=("Segoe UI", 12),
|
|
54
|
+
bg="#16213e", fg="#ffffff")
|
|
55
|
+
self.status_label.pack(pady=10)
|
|
56
|
+
|
|
57
|
+
# Progress Bar
|
|
58
|
+
self.progress = ttk.Progressbar(status_frame, length=300, mode='indeterminate')
|
|
59
|
+
self.progress.pack(pady=5)
|
|
60
|
+
self.progress.pack_forget()
|
|
61
|
+
|
|
62
|
+
# Button Frame
|
|
63
|
+
btn_frame = tk.Frame(main_frame, bg="#1a1a2e")
|
|
64
|
+
btn_frame.pack(pady=20)
|
|
65
|
+
|
|
66
|
+
# Inject Button
|
|
67
|
+
self.inject_btn = tk.Button(btn_frame, text="🔫 Inject Aimbot",
|
|
68
|
+
font=("Segoe UI", 13, "bold"),
|
|
69
|
+
bg="#e94560", fg="white",
|
|
70
|
+
activebackground="#c73e54",
|
|
71
|
+
activeforeground="white",
|
|
72
|
+
relief="flat", bd=0,
|
|
73
|
+
padx=30, pady=12,
|
|
74
|
+
cursor="hand2",
|
|
75
|
+
command=self.start_injection)
|
|
76
|
+
self.inject_btn.pack(pady=5)
|
|
77
|
+
|
|
78
|
+
# Status Text Frame
|
|
79
|
+
status_text_frame = tk.Frame(main_frame, bg="#16213e", relief="sunken", bd=1)
|
|
80
|
+
status_text_frame.pack(fill="both", expand=True, pady=(10, 0))
|
|
81
|
+
|
|
82
|
+
# Status Text (Log)
|
|
83
|
+
self.status_text = tk.Text(status_text_frame, height=6,
|
|
84
|
+
font=("Consolas", 9),
|
|
85
|
+
bg="#0f0f1a", fg="#00ff88",
|
|
86
|
+
relief="flat", bd=0,
|
|
87
|
+
wrap="word")
|
|
88
|
+
self.status_text.pack(fill="both", expand=True, padx=5, pady=5)
|
|
89
|
+
|
|
90
|
+
# Scrollbar for text
|
|
91
|
+
scrollbar = tk.Scrollbar(status_text_frame, command=self.status_text.yview)
|
|
92
|
+
scrollbar.pack(side="right", fill="y")
|
|
93
|
+
self.status_text.config(yscrollcommand=scrollbar.set)
|
|
94
|
+
|
|
95
|
+
# Footer
|
|
96
|
+
footer = tk.Label(self.root, text="Developed for Test Only | Use at your own risk",
|
|
97
|
+
font=("Segoe UI", 8),
|
|
98
|
+
bg="#1a1a2e", fg="#6c6c8a")
|
|
99
|
+
footer.pack(side="bottom", pady=10)
|
|
100
|
+
|
|
101
|
+
# Initial log
|
|
102
|
+
self.add_log("🟢 Application started successfully")
|
|
103
|
+
self.add_log("📌 Waiting for injection...")
|
|
104
|
+
|
|
105
|
+
# Check for admin
|
|
106
|
+
if not self.is_admin():
|
|
107
|
+
self.add_log("⚠️ Not running as Administrator!")
|
|
108
|
+
self.add_log("⚠️ Some features may not work properly")
|
|
109
|
+
# Nazmul Exe
|
|
110
|
+
def add_log(self, message):
|
|
111
|
+
"""Add message to status log"""
|
|
112
|
+
timestamp = time.strftime("%H:%M:%S")
|
|
113
|
+
self.status_text.insert("end", f"[{timestamp}] {message}\n")
|
|
114
|
+
self.status_text.see("end")
|
|
115
|
+
self.root.update()
|
|
116
|
+
|
|
117
|
+
def update_status(self, text, color="#ffffff"):
|
|
118
|
+
"""Update status label"""
|
|
119
|
+
self.status_label.config(text=text, fg=color)
|
|
120
|
+
self.root.update()
|
|
121
|
+
|
|
122
|
+
def is_admin(self):
|
|
123
|
+
"""Check if running as administrator"""
|
|
124
|
+
try:
|
|
125
|
+
return ctypes.windll.shell32.IsUserAnAdmin()
|
|
126
|
+
except:
|
|
127
|
+
return False
|
|
128
|
+
|
|
129
|
+
def adjust_privileges(self):
|
|
130
|
+
"""Adjust system privileges"""
|
|
131
|
+
try:
|
|
132
|
+
SE_DEBUG_NAME = "SeDebugPrivilege"
|
|
133
|
+
SE_PRIVILEGE_ENABLED = 0x00000002
|
|
134
|
+
token_handle = ctypes.c_void_p()
|
|
135
|
+
luid = ctypes.c_longlong()
|
|
136
|
+
|
|
137
|
+
ctypes.windll.advapi32.OpenProcessToken(
|
|
138
|
+
ctypes.windll.kernel32.GetCurrentProcess(),
|
|
139
|
+
0x20 | 0x8,
|
|
140
|
+
ctypes.byref(token_handle)
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
ctypes.windll.advapi32.LookupPrivilegeValueA(
|
|
144
|
+
0, SE_DEBUG_NAME.encode('ascii'), ctypes.byref(luid)
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
class LUID_AND_ATTRIBUTES(ctypes.Structure):
|
|
148
|
+
_fields_ = [("Luid", ctypes.c_longlong), ("Attributes", ctypes.c_ulong)]
|
|
149
|
+
|
|
150
|
+
class TOKEN_PRIVILEGES(ctypes.Structure):
|
|
151
|
+
_fields_ = [("PrivilegeCount", ctypes.c_ulong), ("Privileges", LUID_AND_ATTRIBUTES)]
|
|
152
|
+
|
|
153
|
+
new_privileges = TOKEN_PRIVILEGES(1, LUID_AND_ATTRIBUTES(luid.value, SE_PRIVILEGE_ENABLED))
|
|
154
|
+
|
|
155
|
+
ctypes.windll.advapi32.AdjustTokenPrivileges(
|
|
156
|
+
token_handle, False, ctypes.byref(new_privileges), 0, None, None
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
ctypes.windll.kernel32.CloseHandle(token_handle)
|
|
160
|
+
self.add_log("✅ Privileges adjusted successfully")
|
|
161
|
+
return True
|
|
162
|
+
except Exception as e:
|
|
163
|
+
self.add_log(f"❌ Failed to adjust privileges: {e}")
|
|
164
|
+
return False
|
|
165
|
+
|
|
166
|
+
def perform_aimbot_injection(self):
|
|
167
|
+
"""Main injection logic"""
|
|
168
|
+
try:
|
|
169
|
+
self.add_log("🔍 Starting injection process...")
|
|
170
|
+
self.update_status("🔄 Injecting...", "#ffd700")
|
|
171
|
+
|
|
172
|
+
# Adjust privileges
|
|
173
|
+
if not self.adjust_privileges():
|
|
174
|
+
self.update_status("❌ Privilege adjustment failed", "#ff4444")
|
|
175
|
+
return False
|
|
176
|
+
|
|
177
|
+
# Connect to process
|
|
178
|
+
self.add_log("🔗 Connecting to HD-Player.exe...")
|
|
179
|
+
self.pm = Pymem("HD-Player.exe")
|
|
180
|
+
self.add_log("✅ Connected to HD-Player.exe")
|
|
181
|
+
|
|
182
|
+
# Pattern for scanning
|
|
183
|
+
pattern = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00................................\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xA5\x43..............................................................................................................................................................................................................................................\x80\xBF'
|
|
184
|
+
|
|
185
|
+
self.add_log("🔎 Scanning for patterns...")
|
|
186
|
+
addresses = pattern_scan_all(self.pm.process_handle, pattern, return_multiple=True)
|
|
187
|
+
|
|
188
|
+
if not addresses:
|
|
189
|
+
self.add_log("❌ No matching addresses found")
|
|
190
|
+
self.update_status("❌ No addresses found", "#ff4444")
|
|
191
|
+
return False
|
|
192
|
+
|
|
193
|
+
self.add_log(f"✅ Found {len(addresses)} address(es)")
|
|
194
|
+
|
|
195
|
+
# Process each address
|
|
196
|
+
success_count = 0
|
|
197
|
+
for i, addr in enumerate(addresses):
|
|
198
|
+
try:
|
|
199
|
+
address_rep = addr + 0xAB
|
|
200
|
+
address_scan = addr + 0xAF
|
|
201
|
+
|
|
202
|
+
original_rep = read_bytes(self.pm.process_handle, address_rep, 4)
|
|
203
|
+
original_scan = read_bytes(self.pm.process_handle, address_scan, 4)
|
|
204
|
+
|
|
205
|
+
write_bytes(self.pm.process_handle, address_rep, original_scan, 4)
|
|
206
|
+
write_bytes(self.pm.process_handle, address_scan, original_rep, 4)
|
|
207
|
+
|
|
208
|
+
success_count += 1
|
|
209
|
+
self.add_log(f"✅ Address {i+1} patched successfully")
|
|
210
|
+
|
|
211
|
+
except Exception as e:
|
|
212
|
+
self.add_log(f"⚠️ Address {i+1} failed: {e}")
|
|
213
|
+
|
|
214
|
+
if success_count > 0:
|
|
215
|
+
self.add_log(f"🎯 Injection complete! {success_count}/{len(addresses)} addresses patched")
|
|
216
|
+
self.update_status("✅ Aimbot Activated!", "#00ff88")
|
|
217
|
+
return True
|
|
218
|
+
else:
|
|
219
|
+
self.add_log("❌ No addresses were patched")
|
|
220
|
+
self.update_status("❌ Injection failed", "#ff4444")
|
|
221
|
+
return False
|
|
222
|
+
|
|
223
|
+
except pymem.exception.ProcessNotFound:
|
|
224
|
+
self.add_log("❌ HD-Player.exe not found! Make sure the game is running.")
|
|
225
|
+
self.update_status("❌ Process not found", "#ff4444")
|
|
226
|
+
return False
|
|
227
|
+
except Exception as e:
|
|
228
|
+
self.add_log(f"❌ Unexpected error: {e}")
|
|
229
|
+
self.update_status("❌ Error occurred", "#ff4444")
|
|
230
|
+
return False
|
|
231
|
+
finally:
|
|
232
|
+
if self.pm:
|
|
233
|
+
self.pm.close_process()
|
|
234
|
+
self.add_log("🔒 Process connection closed")
|
|
235
|
+
|
|
236
|
+
def injection_worker(self):
|
|
237
|
+
"""Worker thread for injection"""
|
|
238
|
+
self.inject_btn.config(state="disabled")
|
|
239
|
+
self.progress.pack(pady=5)
|
|
240
|
+
self.progress.start(10)
|
|
241
|
+
|
|
242
|
+
result = self.perform_aimbot_injection()
|
|
243
|
+
|
|
244
|
+
self.progress.stop()
|
|
245
|
+
self.progress.pack_forget()
|
|
246
|
+
self.inject_btn.config(state="normal")
|
|
247
|
+
|
|
248
|
+
if result:
|
|
249
|
+
self.is_injected = True
|
|
250
|
+
self.inject_btn.config(text="✅ Aimbot Active", bg="#00cc88")
|
|
251
|
+
messagebox.showinfo("Success", "Aimbot injected successfully! 🎯")
|
|
252
|
+
else:
|
|
253
|
+
self.inject_btn.config(text="🔄 Retry Injection", bg="#ff6b6b")
|
|
254
|
+
|
|
255
|
+
def start_injection(self):
|
|
256
|
+
"""Start injection in a separate thread"""
|
|
257
|
+
if self.is_injected:
|
|
258
|
+
messagebox.showinfo("Info", "Aimbot is already active! ✅")
|
|
259
|
+
return
|
|
260
|
+
|
|
261
|
+
if self.is_injecting:
|
|
262
|
+
return
|
|
263
|
+
|
|
264
|
+
self.is_injecting = True
|
|
265
|
+
thread = threading.Thread(target=self.injection_worker, daemon=True)
|
|
266
|
+
thread.start()
|
|
267
|
+
|
|
268
|
+
def on_closing(self):
|
|
269
|
+
"""Cleanup on close"""
|
|
270
|
+
if self.pm:
|
|
271
|
+
try:
|
|
272
|
+
self.pm.close_process()
|
|
273
|
+
except:
|
|
274
|
+
pass
|
|
275
|
+
self.root.destroy()
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
def main():
|
|
279
|
+
# Check if running as admin on Windows
|
|
280
|
+
if sys.platform == "win32":
|
|
281
|
+
try:
|
|
282
|
+
if not ctypes.windll.shell32.IsUserAnAdmin():
|
|
283
|
+
# Re-run as admin
|
|
284
|
+
ctypes.windll.shell32.ShellExecuteW(
|
|
285
|
+
None, "runas", sys.executable, " ".join(sys.argv), None, 1
|
|
286
|
+
)
|
|
287
|
+
sys.exit()
|
|
288
|
+
except:
|
|
289
|
+
pass
|
|
290
|
+
|
|
291
|
+
root = tk.Tk()
|
|
292
|
+
app = AimbotController(root)
|
|
293
|
+
root.protocol("WM_DELETE_WINDOW", app.on_closing)
|
|
294
|
+
root.mainloop()
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
if __name__ == "__main__":
|
|
298
|
+
main()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.0.1"
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: botff
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Aimbot GUI application package
|
|
5
|
+
Author-email: TanmoyTheBoT <tanmoysarkershuvo@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/TanmoyTheBoT/botff
|
|
8
|
+
Project-URL: Issues, https://github.com/TanmoyTheBoT/botff/issues
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Requires-Python: >=3.10
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Requires-Dist: pymem>=1.14.0
|
|
16
|
+
Dynamic: license-file
|
|
17
|
+
|
|
18
|
+
# botff 🎯
|
|
19
|
+
|
|
20
|
+
Free Fire aimbot panel for Python with aim-assist and targeting features.
|
|
21
|
+
|
|
22
|
+
<p align="center">
|
|
23
|
+
<a href="https://www.python.org/downloads/">
|
|
24
|
+
<img src="https://img.shields.io/badge/python-3.10%2B-blue.svg" alt="Python 3.10+" />
|
|
25
|
+
</a>
|
|
26
|
+
<a href="LICENSE">
|
|
27
|
+
<img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License MIT" />
|
|
28
|
+
</a>
|
|
29
|
+
<a href="https://badge.fury.io/py/botff"><img src="https://badge.fury.io/py/botff.svg?nocache=1" alt="PyPI version"></a>
|
|
30
|
+
<a href="https://pepy.tech/projects/botff"><img src="https://static.pepy.tech/badge/botff" alt="PyPI Downloads"></a>
|
|
31
|
+
</p>
|
|
32
|
+
|
|
33
|
+
## ✨ Features
|
|
34
|
+
|
|
35
|
+
- Windows admin privilege check before injection
|
|
36
|
+
- Tkinter-based GUI dashboard
|
|
37
|
+
- Real-time status logging and progress feedback
|
|
38
|
+
- Injection retry flow when the target process is unavailable
|
|
39
|
+
- Python package structure with a clean `botff` module layout
|
|
40
|
+
|
|
41
|
+
## 📋 Prerequisites
|
|
42
|
+
|
|
43
|
+
1. Python 3.10 or newer
|
|
44
|
+
2. Windows operating system
|
|
45
|
+
3. Administrator privileges for process access
|
|
46
|
+
4. The target game process must already be running before injection starts
|
|
47
|
+
|
|
48
|
+
## 📥 Installation
|
|
49
|
+
|
|
50
|
+
Install from PyPI:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
pip install botff
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Install from source:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
git clone https://github.com/TanmoyTheBoT/botff.git
|
|
60
|
+
cd botff
|
|
61
|
+
pip install -e .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## 🚀 Usage
|
|
65
|
+
|
|
66
|
+
Launch the app:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
botff
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Or run the package directly:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
python -m botff
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## ⚠️ Disclaimer
|
|
79
|
+
|
|
80
|
+
> This project is intended for educational and authorized testing use only.
|
|
81
|
+
>
|
|
82
|
+
> It is not intended for cheating, unauthorized access, or violating system or game policies.
|
|
83
|
+
>
|
|
84
|
+
> Use it only in environments where such testing is allowed. This software does not guarantee safety, bypasses, or account protection. If your account is banned, suspended, or restricted, the developer is not responsible and is not liable for any consequences.
|
|
85
|
+
>
|
|
86
|
+
> By using this tool, you acknowledge the risks and accept full responsibility for your actions.
|
|
87
|
+
|
|
88
|
+
## 🗂️ Project Structure
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
botff/
|
|
92
|
+
├── src/
|
|
93
|
+
│ └── botff/
|
|
94
|
+
│ ├── __init__.py
|
|
95
|
+
│ ├── __main__.py
|
|
96
|
+
│ ├── main.py
|
|
97
|
+
│ └── version.py
|
|
98
|
+
├── README.md
|
|
99
|
+
├── pyproject.toml
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## 👥 Contributors
|
|
103
|
+
|
|
104
|
+
<a href="https://github.com/TanmoyTheBoT"><img src="https://github.com/TanmoyTheBoT.png" width="50" height="50" style="border-radius:50%" alt="TanmoyTheBoT"/></a>
|
|
105
|
+
|
|
106
|
+
## 📄 License
|
|
107
|
+
|
|
108
|
+
This project is licensed under the [MIT License](LICENSE).
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
© TanmoyTheBoT 2026
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
src/botff/__init__.py
|
|
5
|
+
src/botff/__main__.py
|
|
6
|
+
src/botff/main.py
|
|
7
|
+
src/botff/version.py
|
|
8
|
+
src/botff.egg-info/PKG-INFO
|
|
9
|
+
src/botff.egg-info/SOURCES.txt
|
|
10
|
+
src/botff.egg-info/dependency_links.txt
|
|
11
|
+
src/botff.egg-info/entry_points.txt
|
|
12
|
+
src/botff.egg-info/requires.txt
|
|
13
|
+
src/botff.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pymem>=1.14.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
botff
|