Skip to content

Commit fad916e

Browse files
committed
Randomise debugger IPC authkey
1 parent dd45e30 commit fad916e

File tree

3 files changed

+22
-6
lines changed

3 files changed

+22
-6
lines changed

studio/debugtools/debugger.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,18 +81,19 @@ def __init__(self):
8181

8282
def start_server_client(self):
8383
logging.debug("Starting server client...")
84-
self._server_client = Client(("localhost", 6999), authkey=b'studio-debugger')
84+
self._server_client = Client(("localhost", 6999), authkey=self.pref.get("IPC::authkey"))
8585
self._server_client.send("SERVER")
8686
self._server_client.send(Message("HOOK", payload={"set": "styles", "value": self.style}))
8787

8888
def stream_client(self):
8989
logging.debug("Starting stream client...")
90-
self._stream_client = Client(("localhost", 6999), authkey=b'studio-debugger')
90+
self._stream_client = Client(("localhost", 6999), authkey=self.pref.get("IPC::authkey"))
9191
self._stream_client.send("STREAM")
9292
while True:
9393
try:
9494
msg = self._stream_client.recv()
95-
except ConnectionAbortedError:
95+
except (ConnectionAbortedError, ConnectionResetError):
96+
self.exit()
9697
break
9798
if msg == "TERMINATE":
9899
self.exit()
@@ -114,9 +115,17 @@ def transmit(self, msg, response=False):
114115
return
115116
if isinstance(msg, Message):
116117
msg.payload = marshal(msg.payload)
117-
self._server_client.send(msg)
118+
try:
119+
self._server_client.send(msg)
120+
except (ConnectionResetError, ConnectionAbortedError):
121+
self._server_client = None
122+
return
118123
if response:
119-
result = self._server_client.recv()
124+
try:
125+
result = self._server_client.recv()
126+
except (ConnectionResetError, ConnectionAbortedError, EOFError):
127+
self._server_client = None
128+
return
120129
logger.debug("Received response: %s", result)
121130
if isinstance(result, Exception):
122131
raise result

studio/debugtools/hook.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# ======================================================================= #
22
# Copyright (C) 2024 Hoverset Group. #
33
# ======================================================================= #
4+
from studio.debugtools.preferences import Preferences
45

56
_global_freeze = dict(globals())
67

@@ -88,11 +89,12 @@ def root(self) -> tkinter.Tk:
8889
class DebuggerHook:
8990

9091
def __init__(self, path=None):
92+
pref = Preferences.acquire()
9193
self.path = path
9294
self.root = None
9395
self.active_widget = None
9496
self.enable_hooks = True
95-
self.listener = Listener(('localhost', 6999), authkey=b'studio-debugger')
97+
self.listener = Listener(('localhost', 6999), authkey=pref.get("IPC::authkey"))
9698
self._handle_map = {}
9799
self.styles = None
98100
self._allow_hover = False

studio/debugtools/preferences.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import uuid
2+
13
from hoverset.data.preferences import *
24
import studio.preferences
35

@@ -12,6 +14,9 @@
1214
},
1315
"locale": {
1416
"language": "en"
17+
},
18+
"IPC": {
19+
"authkey": bytes(str(uuid.uuid4()), encoding='utf-8')
1520
}
1621
}
1722

0 commit comments

Comments
 (0)