2017-02-01 22 views
2

Я пытаюсь написать скрипт, используя Scapy (пакет манипуляция инструмент), который изменит пакеты, используя следующий код:сценариев с Scapy

def sendCommand(self): 
    src = self.srcAdd.toPlainText() 
    dst = self.destAdd.toPlainText() #getting strings from textedits 
    pay = self.payload.toPlainText() 
    print(src + dst + pay) #testing line 
    command = IP(dst=dst, src=src)/ICMP()/pay #line giving error 

я использовал дополнительные переменные для тестирования, например, «CSRC» и «cpay»

Все линии отмечены #testing линии работы тонкой

Здесь ошибка я получаю

Traceback (most recent call last): 
File "MainDriverScapy.py", line 30, in createCommand 
command = IP(dst=dst,src=src)/ICMP()/pay 
File "/usr/lib/python2.7/dist-packages/scapy/packet.py", line 271, in __div__ 
return other.__rdiv__(self) 
AttributeError: 'unicode' object has no attribute '__rdiv__' 

Это, кажется, не вставляя переменную к заданное поле в команде Scapy.

+1

Я никогда не использовал Scapy, но для меня это выглядит как неправильная кодировка 'src' или' dst' или 'pay'. Вы пробовали какой-то другой, чем unicode? – MaLiN2223

+0

Подождите ... Почему вы пытаетесь разделить какой-то объект IP/ICMP на какой-то текст? Хорошо, из того, что я вижу [здесь] (http://www.secdev.org/projects/scapy/demo.html), ваша зарплата должна быть какой-то строкой - пожалуйста, chceck, если какая-то другая кодировка для оплаты работает. – MaLiN2223

+0

@ MaLiN2223 это не математика, это команда Scapy для объединения протоколов IP и ICMP. –

ответ

0

Выяснено, что метод toPlainText оставляет текст в необычной кодировке, которую scapy не может понять, поэтому я преобразовал ее в строку с использованием метода str().

c = str(self.srcAdd.toPlainText()) 
dst = str(self.destAdd.toPlainText()) #getting strings from textedits 
pay = str(elf.payload.toPlainText()) 

 Смежные вопросы

  • Нет связанных вопросов^_^