Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compression 无文件签名/头解压缩gzip_Compression_Gzip_Grpc_Deflate - Fatal编程技术网

Compression 无文件签名/头解压缩gzip

Compression 无文件签名/头解压缩gzip,compression,gzip,grpc,deflate,Compression,Gzip,Grpc,Deflate,我设法截获了一个grpc请求,并使用protoc对其进行解码,但我似乎无法理解任何数据,因为请求头的原因,我知道它是使用gzip压缩的 "content-type": "application/grpc; charset=utf-8", "grpc-accept-encoding": "identity,deflate,gzip", "accept-encod

我设法截获了一个grpc请求,并使用protoc对其进行解码,但我似乎无法理解任何数据,因为请求头的原因,我知道它是使用gzip压缩的

        "content-type": "application/grpc; charset=utf-8",
        "grpc-accept-encoding": "identity,deflate,gzip",
        "accept-encoding":  "identity,gzip",
这是解码后的protcolbuffer


   "1": {
        "1": "¸z =PÞCw.\u001e}».*\u001f\u0011"
    },
    "2": some value,
    "3": {
        "1": {
            "1": {
                "1": "©ÄS¢ÄþP\f.½\fÑWÄK>"
            }
        }
    },
    "4": {
        "2": 1,
        "4": {
            "2": {
                "1": "other value"
            }
        },
        "7": 2
    }
}

我已经在cyberchef上尝试过gunzip,但是没有文件签名我无法解压任何东西,因此我应该如何将其他不可读的值解压为纯文本???

并且protcol缓冲区解码器是否可能将文件签名读取为protobuf本身?接受编码意味着接收器可以接收压缩内容,并不是说内容实际上是压缩的。既然你能解码那么远,我强烈怀疑它是压缩的。最有可能的解释是您对模式理解不够,因此那些“损坏”的字符串实际上不是字符串。@Eric Anderson什么模式?是的,虽然我不知道我在做什么xDD,但如果我错了,请纠正我,但你是说字符串已损坏而不是压缩?如果要反转grpc帧,我需要解码protobuf,然后使用指定的内容类型将其解压缩。我知道这些是字符串,因为如果我使用不同的变量(名称电子邮件…)执行相同的操作第二个文本更改,通过发布相同的请求,它将通过并执行预期的操作,因此它们必须是protobuf的stringschema==
.proto
文件。要完全解码协议缓冲区,您需要知道所涉及的数据类型;这不是自我描述。它只是自我描述,足以让您跳过部分。我并不是说那些字符串实际上已经损坏,而是说你对protobuf的解释可能是错误的。如果你有描述符,那么你可以让protobuf使用DynamicMessage精确地解码消息。这因语言而异,并非每种语言都有。在Java中,您可以使用