मोज़िला फ़ायरफ़ॉक्स मालिकाना .jsonlz4 प्रारूप को डीकोड / डिक्रिप्ट कैसे करें? (Sessionstore-बैकअप / recovery.jsonlz4)


19

मैं मोज़िला फ़ायरफ़ॉक्स के मालिकाना फ़ाइल प्रारूप पर एक हैंडल प्राप्त करने की कोशिश कर रहा हूं .jsonlz4, उदाहरण के लिए, उपयोग किया जाता है sessionstore-backups/recovery.jsonlz4, लेकिन कोई फायदा नहीं हुआ।

मैं अपना डेटा कैसे वापस प्राप्त कर सकता हूं, विशेष रूप से, कुछ लंबा पाठ जो मैंने क्रैश सत्र के कुछ पाठ में टाइप किया है? यह मेरा डेटा है!


10
मैं प्रारूप को मालिकाना नहीं कहूंगा । दी, यह कस्टम है, मोज़िला परियोजनाओं के बाहर कहीं भी उपयोग नहीं किया जाता है, लेकिन चूंकि पूरे फ़ायरफ़ॉक्स-प्रासंगिक (डी) संपीड़न कोड सहित - स्वतंत्र और खुला स्रोत है, इस प्रारूप को मालिकाना नहीं कहा जाना चाहिए। (पीएस मैं ब्रांडिंग की बात नहीं कर रहा हूं, जिसे अलग तरीके से लाइसेंस दिया गया है।)
रुस्लान

2
@Ruslan, लेकिन यह वास्तव में मालिकाना है - सिर्फ इसलिए कि यह OSS इसे गैर-स्वामित्व नहीं बनाता है, क्योंकि इन फ़ाइलों की सामग्री को देखने के लिए शून्य मानक उपकरण हैं, जबकि अन्य सभी फाइलें, यहां तक ​​कि जावा के JAR प्रारूप, आसानी से कर सकते हैं 100% मानक गैर-मालिकाना उपकरणों के साथ प्रबंधित किया जाना चाहिए जो हर सभ्य यूनिक्स प्रणाली के बंदरगाहों / पैकेजों में उपलब्ध हैं। OTOH, यह वास्तव में इन .jsonlz4फ़ाइलों से अपने स्वयं के डेटा को वापस पाने के लिए पूरी तरह से गैर-तुच्छ है ।
cnst

2
JsonLZ4 एक बुरा विचार था।
neverMind9

जवाबों:


19

Google के कुछ परिणाम हैं जो वास्तव में परिणामी समाधानों में परिणत होते हैं, लेकिन, https://www.reddit.com/r/firefox/comments/2ps6wg/jsonlz4_bookmark_backups/ के अनुसार , निम्नलिखित सबसे मज़बूती से काम करता है:

  • में about:config, टॉगल devtools.chrome.enabledके डिफ़ॉल्ट से सेटिंग falseके एक मूल्य के लिएtrue

  • फ़ायरफ़ॉक्स के भीतर से स्क्रैचपैड खोलें :

    • किसी के साथ fn+ Shift+ F4एक मैकबुक पर,
    • या Shift+ F4,
    • या उपकरण के माध्यम से मेनू पट्टी के माध्यम से → वेब डेवलपरस्क्रैचपैड
  • भीतर मेनू बार में स्क्रैचपैड Firefox के, बदल पर्यावरण से सामग्री को ब्राउज़र (इस चरण को छोड़ते हुए बाद में की तरह त्रुटियों में परिणाम होगा Exception: ReferenceError: OS is not definedअगले कदम पर)

  • फ़ायरफ़ॉक्स के स्क्रैचपैड के भीतर निम्नलिखित की तरह कोड का उपयोग करें :

    var file = "/Users/…/sessionstore-backups/recovery.baklz4";
    //OS.File.read(file, { compression: "lz4" }).then(bytes => 
    //  OS.File.writeAtomic(file + ".uncompressed", bytes));
    
    OS.File.read(file, { compression: "lz4" }).then(bytes => {
      OS.File.writeAtomic(file + ".uncompressed.stringify",
        JSON.stringify(JSON.parse(new TextDecoder().decode(bytes)),null,1))
    });
    

    अंतिम पैरामीटर यह JSON.stringifyसंभालने के लिए कि प्रत्येक पंक्ति में कितने रिक्त स्थान का उपयोग किया जाएगा; 0 डालने से पूरी चीज़ एक लाइन पर प्रिंट हो जाती है, 1 लाइन को ठीक से विभाजित करने पर (2 डालने से बहुत अधिक बेकार व्हाट्सएप बन जाएगा और फ़ाइल का आकार थोड़ा लाभ के लिए बढ़ जाएगा)

  • Runबटन पर क्लिक करें

  • टर्मिनल ऐप के fgrep :textarea /Users/…/sessionstore-backups/recovery.baklz4.uncompressed.stringifyभीतर से चलाएं


यह लिनक्स पर FF 72 में काम नहीं करता है। स्क्रैचपैड को हटा दिया गया है, लेकिन कंसोल अब मल्टी-लाइन मोड का समर्थन करता है। हालाँकि, OS.File.read(...लाइन देती है: "ReferenceError: OS परिभाषित नहीं है"।
mivk

@ उस त्रुटि का उल्लेख ऊपर किया गया है - गलत वातावरण के कारण होता है; क्या पर्यावरण को मौका देने का कोई तरीका नहीं है?
cnst

मुझे यह "पर्यावरण" सेटिंग या एफएफ 72.0.1 में समान कुछ भी नहीं मिला है।
mivk

12

दुर्भाग्य से, एक गैर-मानक हेडर के कारण, मानक उपकरण काम नहीं करेंगे। इसे बदलने का एक खुला प्रस्ताव है। जाहिरा तौर पर मोज़िला हेडर एक मानक lz4 फ्रेम प्रारूप मौजूद होने से पहले तैयार किया गया था; यह एक मानक lz4 ब्लॉक को लपेटता है।

उस ने कहा, एक ही बग रिपोर्ट में कुछ वैकल्पिक विधियां शामिल हैं। मैं उन्हें संक्षेप में सूचीबद्ध करूँगा:

  • Dejsonlz4 टूल का उपयोग करें , जिसमें विंडोज के लिए बाइनरी बिल्ड शामिल हैं और * nix पर निर्माण करना आसान होना चाहिए
    • lz4json एक समान उपकरण है, लेकिन एक बाहरी liblz4 पर निर्भर करता है और कुछ हद तक * nix पर निर्माण करने में आसान है लेकिन विंडोज पर (WSL के बाहर)
  • यह काफी सरल अजगर स्क्रिप्ट का उपयोग करें: https://gist.github.com/Tblue/62ff47bef7f894e92ed5 (पाइप या आपके पैकेज प्रबंधक के माध्यम से lz4 पैकेज की आवश्यकता है) - स्क्रिप्ट python2 के लिए काफी अनुकूल है, लेकिन स्क्रिप्ट python2 के अनुकूल है
  • वहाँ एक webextension उपलब्ध है जो इन को खोलने में सक्षम होना चाहिए। NB: जब स्रोत उपलब्ध होता है, तो मैंने इसे सत्यापित नहीं किया है, और यह अनुरोधों की अनुमति के बारे में थोड़ा सा ( विशेषकर चिंताओं की प्रतिक्रिया )
  • सिद्धांत रूप में, आपको पहले 8 बाइट्स (जैसे के साथ dd if=original.jsonlz4 of=stripped.lz4 bs=8 skip=1) छीनने में सक्षम होना चाहिए और यह आपको मान्य lz4 ब्लॉक के साथ छोड़ना चाहिए। ध्यान दें कि यह एक lz4 फ्रेम से अलग है । जबकि अधिकांश प्रोग्रामिंग भाषाओं में पुस्तकालय होते हैं जो आसानी से एक ब्लॉक को डिकोड कर सकते हैं, ऐसा करने के लिए एक प्रीबिल्ट टूल ढूंढना अधिक कठिन होता है, जैसे liblz4-toolपैकेज केवल फ्रेम प्रारूप को स्वीकार करता है।

1
पहले स्थान पर LZ4 क्यों आवश्यक था? LZ4 एक बिल्कुल नैतिक विचार है।
.Mind9

BTW, यहाँ lz4json है जो UNIX®, Mac OS X, MacOS, FreeBSD, OpenBSD और NetBSD - github.com/cnst/lz4json पर सफाई से संकलित करता है ।
cnst

5

मैं इस उद्देश्य के लिए स्पष्ट रूप से डिज़ाइन किए गए निम्नलिखित मुफ्त ऑनलाइन टूल का उपयोग करके {profile-dir} /sessionstore-backups/recovery.jsonlz4 फ़ाइल से URL निकालने में सक्षम था :

https://www.jeffersonscher.com/ffu/scrounger.html

एक ही साइट {profile-dir} / bookmarkbackups निर्देशिका से jsonlz4 फ़ाइलों को डिक्रिप्ट करने के लिए एक समान उपकरण प्रदान करती है ।


2
इसके अलावा सिर्फ यह पाया, निर्दोष काम करता है।
लोटेकसून

1

पर UNIX® और यूनिक्स सिस्टम के pkgsrc, निम्नलिखित के साथ MacPorts साथ मैक ओएस एक्स, FreeBSD, OpenBSD या NetBSD की तरह, https://github.com/cnst/lz4json कांटा lz4json की भी सफाई से से बाहर संकलित करने के लिए इस्तेमाल किया जा सकता बॉक्स, उदाहरण के लिए, Mac OS X w / MacPorts पर:

sudo port install lz4
git clone https://github.com/cnst/lz4json.git
cd lz4json
make
./lz4jsoncat ~/Library/Application\ Support/Firefox/Profiles/CHANGE\
THIS.default/sessionstore-backups/recovery.jsonlz4 \
| python -m json.tool | fgrep :textarea | more
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.