انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: ghasemi.hussein در 22 تیر 1399، 12:14 قظ
-
سلام
میخواستم فایل سیو بازی mindustry رو از گوشی منتقل کنم به کامپیوتر. مشکل این بود که سیو هایی که قبل از نصب مود داشتم منتقل شدن فقط. خلاصه که خواستم یکم از فایل های سیو که داره سر در بیارم ببینم مشکل کجاست.
وقتی دستور file رو اجرا میکنم روی فایل سیو، میگه zlib هست.یه جستجو کردم رسیدم به pigz. اما با pigz نمیتونم از حالت فشرده خارجش کنم
~/Desktop/Mindustry/saves$ file 0
0: zlib compressed data
~/Desktop/Mindustry/saves$ pigz -d 0
pigz: skipping: 0 does not have compressed suffix
ممنون میشم کمک کنین.
فایل رو ضمیمه میکنم شاید به درد خورد. البته پسوند odt اون الکیه. انجمن نمیذاشت فرمت دیگه ای ارسال کنم
آپدیت: مشکل بازی رو حل کردم. اما اصل بحث zlib رو اگه توضیح بدین که چطور اطلاعاتش رو ببینم خیلی خوب میشه
-
فایل Header لازم (gzip) رو نداره که بتونید با pigz یا فرضا gunzip استخراجش کنید. یک راه این هست که خودتون هدر (1F8B) رو اضافه کنید:
printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" | cat - 0.odt | gzip -d -c > data
همینطور میتونید از یک پیاده سازی zlib مستقیما استفاده کنید. مثلا در پایتون:
import zlib
zdata = open('./0.odt', 'rb').read()
data = zlib.decompress(zdata)
f = open('extracted', 'wb')
f.write(data)
f.close()
فایل استخراج شده Header خاصی نداره. ولی:
$ strings extracted | tail
chaos-array
eradicator
wraith
ghoul
revenant
lich
reaper
fire
puddle
player
خروجی رو کامل ببینید اطلاعات به شکل json هم ذخیره شدند.