Я пытаюсь преобразовать скрипт, написанный на python2.7, в python3.Первое препятствие заключается в том, как обрабатываются строки байтов между двумя, что, я думаю, я обошел.
Сценарий, на который я смотрю, таков: https://labs.mwrinfosecurity.com/tools/r...r-checker/
Первыйпрепятствие заключалось в том, как обрабатываются байтовые строки между этими двумя, что, я думаю, я обошел.
python3
s.send(packet.encode('utf-8'))
python2.7
s.send(packet)
СледующийКажется, проблема связана с реализацией сокетов.
for n in list(enc_protocols.keys()):
packet = X224_CONNECTION_REQUEST % n
print(binascii.hexlify(n.encode('utf-8')))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
#s.sendall(packet.encode('utf-8'))
s.send(packet.encode('utf-8'))
#s.send(packet)
response = s.recv(1024)
#response = s.recv(4096)
if (response[3] == "\x0b"):
enc_protocols["\x00"][1] = True
break
else:
if (response[11] == "\x02"):
enc_protocols[n][1] = True
else:
errors[response[15]] = True
#print binascii.hexlify(response)
s.close()
В частности, эта строка:
response = s.recv(1024)
Выдает ошибку:
"Traceback (большинствопоследний вызов последним): файл "rdp_check_ciphers.py", строка 81, в ответе = s.recv (1024) ConnectionResetError: [Errno 104] Сброс соединения по пиру "
Я только после некоторогоуказатели на то, что, вероятно, является проблемой, если кто-то столкнулся с такой проблемой самостоятельно.
Я мог бы добавить, что код работает с python2.7 против моей виртуальной машины Windows 7.Я просто не понимаю, почему перемещение python3 дает мне ошибку ConnectionResetError.
Спасибо!