Как экспортировать только печатный текст (или любое другое свойство пакета) в wireshark - PullRequest
3 голосов
/ 31 декабря 2010

Короче говоря - я перехватываю SQL из инструмента поставщика в базу данных Oracle с помощью Wireshark.У него уже есть декодер для протокола TNS (что здорово), и я могу получить доступ к тексту SQL с помощью

Right Click->Copy->Bytes(Printable Text Only). 

Проблема в том, что существует множество пакетов, и щелчок правой кнопкой мыши по каждому из них может занять много времени,Мне было интересно, есть ли способ экспортировать «Только для печати текст» прямо из Wireshark.В идеале я хочу иметь текстовый файл с заявлениями.

Любая помощь будет высоко оценена.

Ответы [ 3 ]

4 голосов
/ 14 января 2011

Наконец-то нашёл это сделать. Во-первых, используйте tshark для захвата tns-пакетов:

tshark -R tcp.port==1521 -T fields -e data.data -d tcp.port==1521,tns > input.txt

Тогда вы могли бы использовать скрипт Ruby Home Brew для преобразования байтов в текст:

file = ARGV[0]
print_all = ARGV[1]

File.open(file, "r").each {|line|
  line.gsub(",", ":").split(':').each {|byte|
    chr = Integer('0x' + byte).chr
    print chr if ((' '..'~').include?(chr) or chr == "\n") or (print_all.downcase == 'all' if print_all)
  } if !line.chomp.empty?
}

Примеры:

encode.rb input.txt > output.txt

будет экспортировать печатный текст только из ввода в вывод

encode.rb input.txt  all > output.txt

будет экспортировать весь текст из ввода в вывод

3 голосов
/ 02 апреля 2011

Простой способ взглянуть на все, что сработало для меня, это просто Right Click -> Follow TCP Stream.

Примечание: непечатные символы отображаются как . с.Если есть куча этих вкраплений между всем текстом, который вы хотите извлечь (как это было для меня), переключите его на ASCII, сохраните его и откройте в вашем любимом текстовом редакторе (vim для меня), затем запуститеискать и заменять аналогично /\.//g.

2 голосов
/ 31 декабря 2010

Я не знаю, как это сделать с TNS. но вы можете сделать что-то подобное, используя tshark, например, для просмотра http-запросов.

tshark -T fields -e http.request.uri

Так что, если вы посмотрите на опции в декодере TNS, вы сможете захватить это поле и перенаправить вывод в файл.

...