провел небольшой анализ распакованных файлов реплеев.
В этих файлах содержаться сохраненные pickle данные их примерно(!) можно найти по сигнатуре 80 02
я решил читать файл со смещением один байт и пробовать загрузить pickle данные, чтобы найти все сохраненные таким образом объекты.
В этих файлах содержаться сохраненные pickle данные их примерно(!) можно найти по сигнатуре 80 02
я решил читать файл со смещением один байт и пробовать загрузить pickle данные, чтобы найти все сохраненные таким образом объекты.
import pickle
def unpickle(file):
f = open(file,'rb')
g = 0
seg = f.tell()
bb = f.read()
while bb != b'' :
seg += 1
f.seek(seg+1)
try:
o = pickle.loads(bb)
g += 1
print g, hex(int(seg)-2)
print o print "\n---------------------\n"
except:
pass
bb = f.read()
unpickle("unpack.wotreplay")
Этот python скрипт будет искать все pickle данные в файле.
про сигнатуру выше написано не совсем верно.def unpickle(file):
f = open(file,'rb')
g = 0
seg = f.tell()
bb = f.read()
while bb != b'' :
seg += 1
f.seek(seg+1)
try:
o = pickle.loads(bb)
g += 1
print g, hex(int(seg)-2)
print o print "\n---------------------\n"
except:
pass
bb = f.read()
unpickle("unpack.wotreplay")