forked from zjsnrwiki/enemy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
decode.py
34 lines (28 loc) · 968 Bytes
/
decode.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import zlib
import sys
def dump(inf, outf):
blocks = open(inf, 'rb').read().split(b'\r\n\r\n')
out = open(outf, 'wb')
for block in blocks[:-1]:
if block.startswith(b'GET ') or block.startswith(b'POST '):
out.write(block.split(b'\r\n', 1)[0])
out.write(b'\n')
elif block.startswith(b'pve_level') or block.startswith(b'content={"'):
out.write(block.split(b'HTTP/', 1)[0])
out.write(b'\n')
elif block.startswith(b'HTTP/'):
pass
else:
data = b''
while True:
t = block.split(b'\r\n', 1)
size = int(t[0], 16)
if size == 0:
break
block = t[1]
data += t[1][:size]
block = t[1][size + 2:]
out.write(zlib.decompress(data))
out.write(b'\n\n')
if __name__ == '__main__':
dump(sys.argv[1], sys.argv[2])