1
+ import tkinter as tk
2
+ from tkinter import font
3
+ import threading
4
+ import time
5
+ import pyautogui
6
+
7
+ jiggler_running = False
8
+ exit_event = threading .Event ()
9
+
10
+ def jiggler_loop ():
11
+ global jiggler_running
12
+ while not exit_event .is_set ():
13
+ if jiggler_running :
14
+ pyautogui .moveRel (10 , 0 , duration = 0.2 ) # move right
15
+ time .sleep (2 )
16
+ pyautogui .moveRel (- 10 , 0 , duration = 0.2 ) # move left
17
+ time .sleep (2 )
18
+ else :
19
+ time .sleep (0.1 )
20
+
21
+ jiggler_thread = threading .Thread (target = jiggler_loop , daemon = True )
22
+ jiggler_thread .start ()
23
+
24
+ def start_jiggler ():
25
+ global jiggler_running
26
+ jiggler_running = True
27
+ status_label .config (text = "Status: Mouse Jiggler started. It is moving your mouse." )
28
+
29
+ def stop_jiggler ():
30
+ global jiggler_running
31
+ jiggler_running = False
32
+ status_label .config (text = "Status: Mouse Jiggler stopped." )
33
+
34
+ def exit_program ():
35
+ exit_event .set ()
36
+ jiggler_thread .join (timeout = 3 )
37
+ root .destroy ()
38
+
39
+ def on_closing ():
40
+ exit_program ()
41
+
42
+
43
+ root = tk .Tk ()
44
+ root .title ("AlwaysOn Mouse Jiggler v1.00" )
45
+ root .protocol ("WM_DELETE_WINDOW" , on_closing )
46
+
47
+
48
+ frame = tk .Frame (root )
49
+ frame .pack (padx = 10 , pady = 10 )
50
+
51
+
52
+ ascii_art = r"""
53
+ █████╗ ██╗ ██╗ ██╗ █████╗ ██╗ ██╗███████╗ ██████╗ ███╗ ██╗
54
+ ██╔══██╗██║ ██║ ██║██╔══██╗╚██╗ ██╔╝██╔════╝ ██╔═══██╗████╗ ██║
55
+ ███████║██║ ██║ █╗ ██║███████║ ╚████╔╝ ███████╗ ██║ ██║██╔██╗ ██║
56
+ ██╔══██║██║ ██║███╗██║██╔══██║ ╚██╔╝ ╚════██║ ██║ ██║██║╚██╗██║
57
+ ██║ ██║███████╗╚███╔███╔╝██║ ██║ ██║ ███████║ ╚██████╔╝██║ ╚████║
58
+ ╚═╝ ╚═╝╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═══╝
59
+
60
+ ██╗██╗ ██████╗ ██████╗ ██╗ ███████╗██████╗
61
+ ██║██║██╔════╝ ██╔════╝ ██║ ██╔════╝██╔══██╗
62
+ ██║██║██║ ███╗██║ ███╗██║ █████╗ ██████╔╝
63
+ ██ ██║██║██║ ██║██║ ██║██║ ██╔══╝ ██╔══██╗
64
+ ╚█████╔╝██║╚██████╔╝╚██████╔╝███████╗███████╗██║ ██║
65
+ ╚════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝
66
+ """
67
+
68
+ credit_text = "By Joshua M Clatney - Ethical Pentesting Enthusiast"
69
+ version_text = "Version 1.00"
70
+ instructions_text = (
71
+ "Instructions:\n "
72
+ " 1. Click 'Start Jiggler' to start the mouse jiggler.\n "
73
+ " 2. Click 'Stop Jiggler' to stop the jiggler.\n "
74
+ " 3. Click 'Exit' to exit the program.\n "
75
+ )
76
+
77
+ monospace_font = font .Font (family = "Courier" , size = 10 )
78
+ ascii_label = tk .Label (frame , text = ascii_art , font = monospace_font , justify = "left" )
79
+ ascii_label .pack ()
80
+
81
+ credit_label = tk .Label (frame , text = credit_text , fg = "blue" , font = ("Helvetica" , 12 ))
82
+ credit_label .pack (pady = (10 , 0 ))
83
+
84
+ version_label = tk .Label (frame , text = version_text , fg = "red" , font = ("Helvetica" , 12 ))
85
+ version_label .pack ()
86
+
87
+ instructions_label = tk .Label (frame , text = instructions_text , justify = "left" )
88
+ instructions_label .pack (pady = (10 , 20 ))
89
+
90
+ buttons_frame = tk .Frame (root )
91
+ buttons_frame .pack (pady = 10 )
92
+
93
+ start_button = tk .Button (buttons_frame , text = "Start Jiggler" , command = start_jiggler , width = 15 )
94
+ start_button .grid (row = 0 , column = 0 , padx = 5 )
95
+
96
+ stop_button = tk .Button (buttons_frame , text = "Stop Jiggler" , command = stop_jiggler , width = 15 )
97
+ stop_button .grid (row = 0 , column = 1 , padx = 5 )
98
+
99
+ exit_button = tk .Button (buttons_frame , text = "Exit" , command = exit_program , width = 15 )
100
+ exit_button .grid (row = 0 , column = 2 , padx = 5 )
101
+
102
+ status_label = tk .Label (root , text = "Status: Idle" , font = ("Helvetica" , 12 ))
103
+ status_label .pack (pady = 10 )
104
+
105
+ root .mainloop ()
0 commit comments