<h2>发生的情况是:</h2>
<p>黑盒服务器正在发送字节之前对字节进行字符串化。您需要获取表示字节的字符串并将其转换回字节。最简单的方法是使用抽象语法树库(ast)</p>
<pre><code>import ast
import zlib
stringified_bytes = "b'x\\x9c\\xabV*HL\\xd1\\xcd\\xccK\\xcbW\\xb2RPJ\\xcb\\xcfOJ,R\\xaa\\x05\\x00T\\x83\\x07b'"
print(f"{type(stringified_bytes)}: {stringified_bytes}")
actual_bytes = ast.literal_eval(stringified_bytes)
print(f"{type(actual_bytes)}: {actual_bytes}")
answer = zlib.decompress(actual_bytes)
print(f"Answer: {answer}")
</code></pre>
<p>下面是脚本的运行:</p>
<pre><code>(venv) [ttucker@zim stackoverflow]$ python bin.py
<class 'str'>: b'x\x9c\xabV*HL\xd1\xcd\xccK\xcbW\xb2RPJ\xcb\xcfOJ,R\xaa\x05\x00T\x83\x07b'
<class 'bytes'>: b'x\x9c\xabV*HL\xd1\xcd\xccK\xcbW\xb2RPJ\xcb\xcfOJ,R\xaa\x05\x00T\x83\x07b'
Answer: b'{"pad-info": "foobar"}'
</code></pre>
<p>。。。这是非常有趣的东西。。。看起来他们还有一个包含JSON的字节字符串。这是黑客编码的挑战之一吗</p>
<h2>顺便说一下,你有一个zlib文件</h2>
<p>我知道这一点,因为数据的开头两个字节是<code>78 9c</code>(<code>x</code>=<code>78</code>十六进制)。。。如果你看这里:<a href="https://en.wikipedia.org/wiki/List_of_file_signatures" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/List_of_file_signatures</a>,你可以看到它是一个zlip</p>
<p>所以,我用zlib库来解码它。。。干净的东西</p>