长话短说 - 我正在使用 Wireshark 将 SQL 从供应商工具捕获到 Oracle 数据库。它已经有 TNS 协议的解码器(这很棒),我可以通过以下方式访问 SQL 文本
Right Click->Copy->Bytes(Printable Text Only).
问题是有大量的数据包,右键单击每个数据包可能需要很长时间。我想知道是否有任何方法可以直接从 Wireshark 导出“仅可打印文本”。理想情况下,我想要一个包含语句的文本文件。
任何帮助将不胜感激。
终于找到办法做到这一点。首先,使用tshark捕获tns数据包:
tshark -R tcp.port==1521 -T fields -e data.data -d tcp.port==1521,tns > input.txt
然后你可以使用下面的 homebrew Ruby 脚本将字节转换为文本:
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
将导出从输入到输出的所有文本
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)