繁体   English   中英

需要帮助从泡菜中提取二进制数据

[英]Need help to extract binary data from pickle

在MMO游戏中,用户帐户统计信息存储在.dat文件中。 我知道这是python泡菜。 我在py方面并不专业(真的我不懂这种语言),然后我就可以写了

data = pickle.load(fp)
pprint.pprint(data)

我得到这样的输出

(8,
 {(2, 1): (1315840806,
'\x14\x00&#nNWH\x00\x00\x06\x90\xb3\x00\... lostsa bytes),
  (2, 17): (1327141794,
"\x14\x00\xa2\x93\x1aOS=\x00\x00\x06T\xaa\x00\x00\x8d\x06>\x00\x00\x00*\...

我想从中提取信息。 格式应该像这样

offs byte
  0  11
  1  00
  2  ac ;last batt time(4)
  3  8d ;last batt time(4)
  4  54 ;last batt time(4)
  5  4d ;last batt time(4)
  6  e8 ;battle lifetime(4)
  7  69 ;battle lifetime(4)
  8  00 ;battle lifetime(4)
  9  00 ;battle lifetime(4)
 10  04 ;maxfrags (1)
 11  db ;xp (4)
 12  95 ;xp (4)
 13  00 ;xp (4)
 14  00 ;xp (4)
 15  6f ;maxXP (2)
 16  06 ;maxXP (2)

等等...

我不知道如何在python中获取字节码,什么是数据王

(8,
 {(2, 1): (1315840806,

宾语? 阵列? 如何遍历它。 我如何将数据另存为二进制字符串进行分析? 赞赏代码示例,但是一些继续进行的方法应该是有用的。 感谢名单。

[]表示列表, ()表示元组(不可变列表),而{}表示字典(即地图)。

考虑:

(8,
 {(2, 1): (1315840806,
'\x14\x00&#nNWH\x00\x00\x06\x90\xb3\x00\... lostsa bytes),

在顶层,这是一个元组:

  • 第一个元素是标量8
  • 第二个元素是一个字典,其中我们仅看到第一个条目的一部分:
    • 该条目的键是元组(2, 1)
    • 该条目的值也是一个元组。 它以1315840806开头,后跟一个包含一些二进制数据的字符串。

希望你能明白。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM