大佬教程收集整理的这篇文章主要介绍了使用 pcap4j 模拟 HTTP/2 流,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试捕获 TLS 连接的未加密字节并将它们记录到一个 cap 文件中,以分析 http/2 流量。我做了很多假设,这甚至是可能的。但如果我能在像 Wireshark 这样有用的工具中看到流量,我愿意捏造几乎所有 http/2 层以下的内容。
https://github.com/yschimke/okhttp/commit/c6b0b4c0ba3b59d44cf292955eef2685ed6094e7#diff-d4b38ff70d61641e49af93db2892080f47a2480af92ca151b2daabb50bbc459b
我的方法最终归结为
return object : DelegaTingSSLSocket(socket) {
overrIDe fun geTinputStream(): inputStream {
return object : FilterinputStream(socket.inputStream) {
overrIDe fun read(b: ByteArray,off: Int,len: int): Int {
return super.read(b,off,len).also { readLen ->
dumper.dump(
ipv4ReadPacketBuilder.payloadBuilder(
tcpReadPacketBuilder
.payloadBuilder(
UnkNownPacket.builder().rawData(
b.sliceArray(off.rangeto(off + readLen))
)
)
)
.build()
)
}
}
}
}
overrIDe fun getoutputStream(): OutputStream {
return object : FilterOutputStream(socket.outputStream) {
overrIDe fun write(b: ByteArray,len: int) {
super.write(b,len)
dumper.dump(
ipv4WritePacketBuilder.payloadBuilder(
tcpWritePacketBuilder
.payloadBuilder(
UnkNownPacket.builder().rawData(b.sliceArray(off.rangeto(off + len)))
)
)
.build()
)
}
}
}
}
有没有人对 pcap4j 或 pcap 文件有任何建议,看看我做错了什么?
我写的数据包是 IPv4>TCP>Data
但 Wireshark 显示
对于 IPv4,版本总是等于 4。您的图像表明您正在尝试编写 IPv4 标头,但十六进制代码表明它不是 IPv4 标头。
第一个突出显示的数字是 56。应该是 4 而不是 5。因此 Wireshark 无法将其检测为 IPv4 数据包。
参考我下面的链接,它会帮助你理解示例格式。
How to obtain the source IP from a Wireshark dump of an http GET request
对于 TCP,应该是 06 而不是 bb。
您的源 IP 也是 0.0.0.0。它不会产生任何错误,但您可以根据需要进行更改。
以上是大佬教程为你收集整理的使用 pcap4j 模拟 HTTP/2 流全部内容,希望文章能够帮你解决使用 pcap4j 模拟 HTTP/2 流所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。