首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用pcap4j模拟HTTP/2流

用pcap4j模拟HTTP/2流
EN

Stack Overflow用户
提问于 2021-03-13 11:25:52
回答 1查看 305关注 0票数 2

我试图捕获TLS连接的未加密字节,并将它们记录到capture中,以分析HTTP/2通信量。我做了很多假设,认为这是可能的。但是,如果我能在像Wireshark这样的有用工具中看到流量,那么我愿意对HTTP/2层以下的几乎所有内容进行篡改。

https://github.com/yschimke/okhttp/commit/c6b0b4c0ba3b59d44cf292955eef2685ed6094e7#diff-d4b38ff70d61641e49af93db2892080f47a2480af92ca151b2daabb50bbc459b

我的方法最终归结为

代码语言:javascript
复制
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, off: Int, len: Int) {
         super.write(b, off, len)

         dumper.dump(
           ipv4WritePacketBuilder.payloadBuilder(
             tcpWritePacketBuilder
               .payloadBuilder(
                 UnknownPacket.Builder().rawData(b.sliceArray(off.rangeTo(off + len)))
               )
           )
             .build()
         )
       }
     }
   }
 }

有没有人对pcap4j或pcap4j有任何建议来了解我做错了什么?

我正在写的包是IPv4>TCP>Data

但是Wireshark显示

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-16 14:52:02

对于IPv4,版本总是等于4。您的图像声明您正在尝试编写IPv4头,但是十六进制代码显示它不是IPv4头。

第一个突出显示的数字是56。它应该是4,因此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。它不会产生任何错误,但是您可以根据您的需求来更改它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66612897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档