Как экспортировать только печатный текст (или любое другое свойство пакета) в Wireshark
-
14-10-2019 - |
Вопрос
Короче говоря - я снимаю SQL от инструмента поставщика в базу данных Oracle, используя Wireshark. У него уже есть декодер для протокола TNS (что здорово), и я могу получить доступ к тексту SQL по
Right Click->Copy->Bytes(Printable Text Only).
Проблема в том, что существует множество пакетов, и выполнение правой кнопкой мыши на каждом из них может занять много лет. Мне было интересно, есть ли какой -нибудь способ экспортировать «только для печати текста» прямо из Wireshark. В идеале я хочу иметь текстовый файл с операторами.
Любая помощь будет высоко оценена.
Решение
Я не знаю, как это сделать с TNS. Но вы можете сделать что -то подобное с помощью TSHARK, например, чтобы посмотреть на HTTP -запросы.
tshark -T fields -e http.request.uri
Поэтому, если вы можете посмотреть на параметры в декодере TNS, вы сможете захватить это поле и перенаправить вывод на файл.
Другие советы
Наконец -то нашел, чтобы сделать это. Во -первых, используйте пакеты TSHARK TNS:
tshark -R tcp.port==1521 -T fields -e data.data -d tcp.port==1521,tns > input.txt
Затем вы можете использовать сценарий домашнего пивоваренного рубина ниже, чтобы преобразовать из байтов в текст:
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
экспортировать весь текст с ввода на вывод
Легкий способ взглянуть на них все, что сработало для меня, это просто Right Click -> Follow TCP Stream
.
Примечание: непрекращающиеся символы отображаются как .
с Если есть множество этих перспективных между всем текстом, который вы хотите извлечь (как это было для меня), переключите его на ASCII
, сохраните его и откройте в своем любимом текстовом редакторе (Vim для меня), затем запустите поиск и замените аналогичным /\.//g
.