LINUX.ORG.RU

5
Всего сообщений: 52

python: собрать последовательность сообщений из pcap файлов

Приветствую,

Есть задача парсить pcap файлы (с помощью питон-библиотеки dpkt), извлечь TLS-сессии и собрать последовательноти типов сообщений. Поскольку имеются разные версии TLS, то последовательности сообщений могут варъироваться.

Очень упрощенный пример:

- TLS сессия как правило начинается с handshake-ов между клиентом и сервером, т.е. первое сообщение с ID=22 - далее сообщение ChangeCipher c ID=20 - клиент и сервер обо всем договорились, началась передача криптованных данных в TLS сообщениях с ID=23

То есть скрипт должен пропарсить весь pcap и построить как бы граф сообщений: 22->20->23

Но в реальности это может быть значительно более длинный граф, в зависимости от приложения, версий TLS и пр.

Изначально коды этих сообщений я предполагал складывать в список (list).

Но поскольку в одном pcap куча сессий _одного_ приложения, то необходимо как-то отличать «граф» сессий друг от друга.

Что можно использовать вместо списка для данной задачи?

Спасибо!

 , , ,

cruz7 ()

Парсинг описания пакетов pacman

В базе установленных пакетов pacman есть файлы desc с такой структурой:

%NAME%
audit

%VERSION%
2.8.5-3

%BASE%
audit

%DESC%
Userspace components of the audit framework

%URL%
https://people.redhat.com/sgrubb/audit

Такой формат как-то называется или это велосипед разрабов pacman? Есть какие-нибудь либы для Питона, чтобы это парсить?

 , ,

Deleted ()

лучший способ парсинга файлов в Octave

Есть файл такого содержания:

Описание переменной 1, Па (var1): 11.1
Описание переменной под номером два, Н (var2): 22E6
Описание третьей переменной, м (var3): -0.033
...

Хочу, чтобы переменной с названием в скобках присваивалось значение после двоеточия и табуляции, т.е.

var1 = 11.1;
var2 = 22E6;
var3 = -0.033;
...

Примеры не гуглятся. Такое вообще возможно реализовать в Octave?

 , ,

the_real_kinik ()

Работа с огромной базой JSON (>50 ГБ)

Здравствуйте, возникла необходимость работы с загруженной базой от стороннего ресурса, база была скачана полностью, чтобы не тянуть данные через API.

Задача в принципе одна, нужно с ней работать офлайн, в принципе даже через Access или Excel можно...

Я предполагаю как, эту базу переконвертировать в CSV и запихнуть в MySQL и дальше уже работать там, но большой размер базы вызывает большие трудности в работе с ней.

Есть ли какие-то альтернативы?

 , ,

korsakik ()

Почему в некоторых сайтах наименование классов рандомные и бессмысленные?

Хотел распарсить сайт cian.ru. А там все имена классов в основном как будто сгенерированные, никакого смысла нету в их именах. Смотрится как будто хеш-суммы. Это что за подход, какую методологию он использует? Фото

 , , , ,

Deleted ()

Типы нестандартного размера в Kaitai Struct

Пытаюсь написать парсер для ar при помощи Kaitai Struct (cast GreyCat). Заголовок должен выглядеть следующим образом:

Offset 	Length 	Name 	 	 	 	Format
0 	16 	File identifier 	 	ASCII
16 	12 	File modification timestamp 	Decimal
28 	6 	Owner ID 	 	 	Decimal
34 	6 	Group ID 	 	 	Decimal
40 	8 	File mode 	 	 	Octal
48 	10 	File size in bytes 	 	Decimal
58 	2 	Ending characters 	 	0x60 0x0A
Там есть переменные типа decimal размером 6, 10 и 12 байт. Как их правильно обозначить в kaitai struct?
Пока мой ksy выглядит так:
meta:
  id: ar
  file-extension: a
seq:
  - id: sections
    type: section
types:
  section:
    seq:
      - id: artype
        type: str
        encoding: ascii
        terminator: 0x0a
      - id: arhead
        type: header
      - id: file
        size: arhead.filesize
  header:
    seq:
      - id: fileid
        type: str
        encoding: ascii
        size: 16
      - id: timestamp
        size: 12
      - id: owner
        size: 6
      - id: group
        size: 6
      - id: mode
        size: 8
      - id: filesize
        size: 10
      - id: ending
        contents: [0x60, 0x0a]

 , , ,

CYB3R ()

Парсинг лога на предмет последней нужной записи

Приветствую. Надо в скрипте парсить определенный 'Status' в логе работы программы и при его появлении выполнить команду. Но таких 'старых' записей в логе уже туча, нужна актуальная, последняя запись, а в строке привязки к дате/времени/вообще/к/чему-либо нет.

tail --follow=name $HOME/log | while read line; do
	if [[ "X$line" = "XStatus" ]]; then command; fi
	done

-- даёт верный результат. Но мониторинг 'tail' остается же висеть. Как его убить в скрипте? Какая альтернатива 'tail'? Или что почитать?

 , ,

mexx ()

Разбор, в csv

Есть текстовый файл в таком виде:

Адрес: АдресГлоб1_2
Фамилия1_1 Имя1_1 Отчество1_1;Адрес1_1;ДР1_1
Фамилия1_2 Имя1_2 Отчество1_2;Адрес1_2;ДР1_2
Адрес: АдресГлоб2_4
Фамилия2_1 Имя2_1 Отчество2_1;Адрес2_1;ДР2_1
Фамилия2_2 Имя2_2 Отчество2_2;Адрес2_2;ДР2_2
Фамилия2_3 Имя2_3 Отчество2_3;Адрес2_3;ДР2_3
Фамилия2_4 Имя2_4 Отчество2_4;Адрес2_4;ДР2_4
Адрес: АдресГлоб3_3
Фамилия3_1 Имя3_1 Отчество3_1;Адрес3_1;ДР3_1
Фамилия3_2 Имя3_2 Отчество3_2;Адрес3_2;ДР3_2
Фамилия3_3 Имя3_3 Отчество3_3;Адрес3_3;ДР3_3
Неодходимо получить текстовый файл в таком виде (csv):


АдресГлоб;ФИО;Адрес;ДР
АдресГлоб1_2;Фамилия1_1 Имя1_1 Отчество1_1;Адрес1_1;ДР1_1
АдресГлоб1_2;Фамилия1_2 Имя1_2 Отчество1_2;Адрес1_2;ДР1_2

 ,

tosick4 ()

Парсинг txt файла со строками на C++

Приветствую. Прошу простить если вопрос слишком нубским. Имеется текстовый документ, в котором в столбик записаны строки с именем человека и его номером телефона. Нужно загружать этот список нажатием кнопки (в форме на Qt5), а другой кнопкой выводить в виджет QTextBrowser случайную строку из данного текстовика. Подскажите пожалуйста, как такое замутить?

 , , ,

Sunderland93 ()

bash (shell) скрипт не исполняется в терминале, парсинг погоды для conky

Добрый день всем. Помогите разобраться. Я новичок в написании скриптов. Первая попытка, идея выводить погоду в conky парсингом с гисметео. Скрипт располагается в ~/.scripts/conky-weather.sh. Текст

#!/bin/bash `curl -s "http://informer.gismeteo.ru/xml/38880_1.xml" | tr «/>» «\n» | grep '<HEAT' | sed -n 1p | sed -e 's/<HEAT //' | sed -e 's/«//g' | tr -d „min=“ | tr -d „max=“ | sed -e 's/ /-/' | gawk '{ print „Темп.“,$1,»°C" }'`

Права исполнения задала chmod +x.

Ввожу саму строку в терминал, результат есть, все показывается, но при сохранении и запуске скрипта, результата нет никакого.

Запускала и путем bash /полный путь до скрипта и sudo bash / путь до скрипта. Терминал просто не реагирует.

Пожалуйста, разъясните, возможно не хватает некоторых переменных, неправильное окончание файла.

Буду благодарна за любую помощь.

 , , ,

blckarchie ()

urllib в python3

Добрый день форумчане. Пытаюсь освоить python, разобраться с парсингом. И по примерам требуется urllib. Но в python у меня только urllib3. Нет ли возможности прикрутить именно urllib?

 , ,

funk2256 ()

Как спарсить с помощью grep или на python

Нужна инфа

вот эта [Device Install (Hardware initiated) - SWD\WPDBUSENUM\_??_USBSTOR#Disk&Ven_Kingmax&Prod_USB2.0_FlashDisk&Rev_1100#37130303020000000182&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}]

Section start 2017/12/14 23:32:34.926
и конец Section end 2017/12/14 23:32:35.484

ИЗ отсюда

>>> [Device Install (Hardware initiated) - SWD\WPDBUSENUM\_??_USBSTOR#Disk&Ven_Kingmax&Prod_USB2.0_FlashDisk&Rev_1100#37130303020000000182&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}]

Section start 2017/12/14 23:32:34.926

dvi: {Build Driver List} 23:32:34.931 dvi: Searching for compatible ID(s):
dvi: wpdbusenum\fs
dvi: swd\generic
dvi: Created Driver Node:
dvi: HardwareID - wpdbusenum\fs
dvi: InfName -
C:\Windows\System32\DriverStore\FileRepository\wpdfs.inf_amd64_e898714e5623f0fe\wpdfs.inf
dvi: DevDesc - Драйвер тома файловой системы WPD
dvi: Section - Basic_Install
dvi: Rank - 0x00ff2000
dvi: Signer Score - INBOX
dvi: DrvDate - 06/21/2006
dvi: Version - 10.0.15063.0
dvi: {Build Driver List - exit(0x00000000)} 23:32:34.943
dvi: {DIF_SELECTBESTCOMPATDRV} 23:32:34.943
dvi: Using exported function 'WpdClassInstaller' in
<<< Section end 2017/12/14 23:32:35.484
<<< [Exit status: SUCCESS]

 , , ,

logonsessons ()

Парсить JSON внутри bash-скрипта.

Здравствуйте, о магистры.

Мне нужно запланировать в cron скрипт, который ищет в JSON-файле по ссылке строки:

players:	
   max:	50 
   now:	9

и при значении now больше 10 - выполняет команду.

Не знаю, как это сделать :(

 , ,

konvkosmose ()

Парсинг LinkedIn

Появилась необходимость парсить открытые профили в LinkedIn по определенному запросу в поиске, с целью чего был написан парсер. В общем-то все работает. Но выяснилась другая проблема. В поиске можно просмотреть только первые 1000 профилей, даже если нашлось их 10К. И непонятно, как получить остальные. Разбивать поиск на отдельный подпоиск(к примеру по городу, компании и т.д) как мне кажется не слишком разумно, ибо критерии разбиения сильно разнятся в зависимости от поискового запроса. Может кто сталкивался с такой задачей и ее успешно как-то решил?(Не обязательно именно для LinkedIn, а в целом, мб для других соцсетей).

 , , ,

crarkie ()

expat и libxml2 — есть ли прослойка совместимости?

Есть две конкурирующих библиотеки для парсинга xml — expat и libxml2. А существует ли прослойка совместимости между ними? Я это вижу как простой expat.h, в котором прописаны вызовы функций libxml2 (или наоборот). Если такое решение есть, не нужно держать в системе (или даже в репах) две библиотеки, делающие одно и то же. Если же нет такой прослойки совместимости, то что выбрать? Сравнения уже читал, хочу узнать, что выбрали настоящие программисты.

 , , , ,

CYB3R ()

объясните, пожалуйста, непонятный английский текст по-русски

вот он: http://www.larc.usp.br/~pbarreto/LR.pdf

нету ли где на просторах интернета такого же или подобного ему, но понятного?

Мне не ясно, как рассчитывается третья часть расширенного Item (ну, это когда Item выглядит так:
A -> b, [$eof]
третья часть - это то, что после запятой)

бизон так умеет, но я хочу понять, как это делать руками.

 ,

Einstok_Fair ()

Как на Phantom.JS получить список открытых окон?

Как на Phantom.JS получить список открытых окон и переключаться между ними? Или он принципиально работает с одной страницей?

 , , ,

Qwentor ()

Как перехватить websocket-соединения?

Нужно забирать с одного сайта данные, которые подгружаются на него через вебсокеты. Как и чем это сделать?
Желательно на node.js, можно python

 ,

Qwentor ()

Как узнать какая функция JavaScript вызывается при прокрутке сайта?

Сайт с автоподгрузкой данных с мегатонной кода.

Как узнать какая функция вызывается при прокрутке для показа новых данных?

Как-то через инструменты разработчика можно? Или еще как?

 ,

Qwentor ()

Как и чем распарсить такой сайт для получения ссылок на картинки

Есть сайт Метрополитан-музея с выдачей картинок, там немного по-хитрому, в html'е картинок не видно:

http://www.metmuseum.org/art/collection#!?perPage=20&geolocation=Mexico&a...

Но их можно узнать, ссылки и названия типа:

http://images.metmuseum.org/CRDImages/ao/mobile-large/DP229188.jpg
Мне важно узнать из выдачи конкретной страницы все вот такие DP229188.jpg, я смогу их потом выкачивать полноразмерными просто изменив ссылку на:
http://images.metmuseum.org/CRDImages/ao/original/DP229188.jpg

Есть также ссылки на выдачи постранично, которые можно скормить парсеру или что там будет получать ссылки на картинки, вот такого типа:

http://www.metmuseum.org/art/collection#!?geolocation=Anatolia&showOnly=withImage&offset=20&pageSize=0&sortBy=Relevance&sortOrder=asc&perPage=20

http://www.metmuseum.org/art/collection#!?geolocation=Anatolia&showOnly=withImage&offset=40&pageSize=0&sortBy=Relevance&sortOrder=asc&perPage=20

http://www.metmuseum.org/art/collection#!?geolocation=Anatolia&showOnly=withImage&offset=60&pageSize=0&sortBy=Relevance&sortOrder=asc&perPage=20

Чем можно пропарсить такую выдачу, например gem какой-нибудь или модуль для node или еще что-то, подскажите пожалуйста.

 , , ,

Bruce_Lee ()