2013-08-26 1 views
0

У меня есть дамп ядра GDB, который содержит заголовок и тело сообщения запроса MIME mutlipart/form-data. Мне нужно как-то точно воссоздать сообщение и отправить его на свой сервер, чтобы я мог отлаживать, почему мой код рушится.Учитывая текстовое представление сообщения MIME, как я могу воссоздать сообщение?

Сообщение с довольно стандартной формы данных. Все типы содержимого являются текстовыми/обычными, за исключением одного изображения/jpeg.

Проблема в том, что двоичная часть тела имеет границы уже, поэтому я не могу просто извлечь двоичную часть и автоматически генерировать заголовок через встроенный MIME-код Python.

Опять же, мне нужно воссоздать начальное сообщение точно, как оно было. Каков самый простой способ сделать это?

+0

Что вы имеете в виду «бинарная часть тела имеет границы уже»? 'email.parser.Parser(). parsestr (text)' будет правильно анализировать многопользовательские сообщения MIME с многостраничными границами. Можете ли вы создать простой пример и загрузить его где-нибудь? Или покажите код, который вы использовали, который не работал, и трассировку (или объяснение, где это произошло, если это не было исключением)? – abarnert

+0

Кроме того, что вы подразумеваете под «начальным сообщением точно, как это было»? По-видимому, первоначально это была куча отдельных файлов, а затем какая-то вещь в каком-то внутреннем формате, используемом веб-браузером (или библиотекой электронной почты Python, или некоторой библиотекой PHP, или как-то еще), а затем это было RFM2822 текст MIME корпус. Последнее - именно то, что у вас уже есть; предыдущие не имеют смысла. – abarnert

+0

Позвольте мне задать другой вопрос: как именно данные, которые вы имеете, отличаются от данных, которые вы хотите? –

ответ

0

я мог бы использовать netcat:

$ nc -q 5 serverhost 80 < message_file.txt 
+0

Пожалуйста, внимательно прочитайте вопрос. Я не могу лично отправить сообщение MIME - у меня есть только дамп ядра GDB, который содержит его. Итак, у меня есть исходный заголовок и тело сообщения, как в текстовом формате. Мне нужно взять их и сгенерировать/отправить новое сообщение, которое будет точно таким же. Я уже знаю, как захватить трафик с помощью TCPDump. Кроме того, я не могу найти ни одной ссылки на параметр «-q» в Netcat. – user1765354

+0

спасибо, @ пользователь1765354. Я прочитал сообщение очень внимательно. Я прочитал, что образ ядра GDB «содержит заголовок и тело сообщения запроса MIME mutlipart/form-data». Если у вас есть заголовки и тело, что вам еще нужно? –

+0

Из моей man-страницы пользователя 'man nc' ubuntu 12.04:« ** - q ** после EOF на stdin, подождите указанное количество секунд и затем выходите. Если 'seconds' отрицательно, подождите всегда." –

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

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