انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: zlib  (دفعات بازدید: 396 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین ghasemi.hussein

  • Full Member
  • *
  • ارسال: 110
  • جنسیت : پسر
zlib
« : 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 رو اگه توضیح بدین که چطور اطلاعاتش رو ببینم خیلی خوب میشه
« آخرین ویرایش: 22 تیر 1399، 12:41 ق‌ظ توسط ghasemi.hussein »

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : zlib
« پاسخ #1 : 22 تیر 1399، 11:46 ق‌ظ »
فایل 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 هم ذخیره شدند.
« آخرین ویرایش: 22 تیر 1399، 11:48 ق‌ظ توسط M!lad »
..I feel no fault for the fault I feel..