मैं सीधे Google Chrome एक्सटेंशन फ़ाइल कैसे संशोधित करूं? (.Crx)


96

मुझे यकीन नहीं है कि वे भाषाएं कौन से एक्सटेंशन हैं, मुझे लगता है कि ये Html, जावास्क्रिप्ट या JSON में लिखी गई हैं। जहाँ तक मुझे पता है कि वे एक .CRX फ़ाइल में "संकुचित" हैं।

Chrome एक्सटेंशन (या जो भी भाषा वे उपयोग करते हैं) के HTML, js, json को सीधे संशोधित करना संभव है?


मुझे यह पता लगाने में बहुत समय बर्बाद हुआ और मैंने यहां सूचीबद्ध कई तरीकों की कोशिश की। यदि आप मैक पर हैं और अनज़िपिंग काम नहीं करती है, तो केका डाउनलोड करें और कोशिश करें। यह 7-ज़िप पर आधारित एक मुफ्त मैक उपयोगिता है। CRX फ़ाइल का नाम बदलने की कोई आवश्यकता नहीं है। ऐप खोलें और फिर उस पर अपनी CRX फाइल को ड्रॉप करें। यह सामग्री को एक फ़ोल्डर में निकालेगा। keka.io
ट्रेवर

जवाबों:


87

मैंने इसे Google में खोजा और मुझे यह मिला:

Google Chrome एक्सटेंशन फ़ाइल प्रकार CRX है। यह अनिवार्य रूप से एक संपीड़न प्रारूप है। इसलिए यदि आप यह देखना चाहते हैं कि एक एक्सटेंशन, स्क्रिप्ट और कोड के पीछे क्या है, तो बस फ़ाइल-प्रकार को "CRX" से "सामान्य" में बदलें।

फ़ाइल को अनज़िप करें और आपको वह सभी जानकारी मिल जाएगी जिसकी आपको ज़रूरत है। इस तरह से आप हिम्मत देख सकते हैं, अपने आप को एक विस्तार लिखना सीख सकते हैं या अपनी आवश्यकताओं के लिए इसे संशोधित कर सकते हैं।

फिर आप इसे क्रोम के आंतरिक उपकरणों के साथ वापस पैक कर सकते हैं जो स्वचालित रूप से फ़ाइल को CRX में वापस बनाता है। इसे स्थापित करने के लिए बस एक क्लिक की आवश्यकता है।


14
crx फ़ाइल में ज़िप किए गए कंटेंट डेवलपर
chrome.com/extensions/crx.html

5
फ़ाइल अनज़िप करने के बाद कुछ बन जाता है ।zip.cpgz?
f01

7
एक्सटेंशन का नाम बदलने और उस पर क्लिक crxकरने से zipकाम नहीं चलेगा। unzipआदेश भी पर काम करेंगे crxविस्तार।
रोनीन

1
MacOS में, CRX को फ़ाइल-प्रकार को "CRX" से "ZIP" में बदलकर नहीं निकाला जा सकता है क्योंकि जब मैं उस ज़िप फ़ाइल को निकालने का प्रयास करता हूं तो यह एक और फाइल FileName.zip.cpgz बना देता है
रिपन कुमार साहा

106

स्थापित क्रोम एक्सटेंशन निर्देशिका नीचे सूचीबद्ध हैं:

  1. आप जिस एक्सटेंशन को संशोधित करना चाहते हैं उसके फोल्डर को कॉपी करें। (एक्सटेंशन आईडी के अनुसार नामित, एक्सटेंशन की आईडी खोजने के लिए, पर जाएं chrome://extensions/)। एक बार कॉपी करने के बाद, आपको _metadata फ़ोल्डर को निकालना होगा।

  2. से chrome://extensionsमें डेवलपर मोड का चयन लोड पैक विस्तार ... और कॉपी किए गए विस्तार फ़ोल्डर का चयन करें, अगर यह एक सबफ़ोल्डर इस संस्करण द्वारा नामित किया गया है शामिल हैं, इस संस्करण फ़ोल्डर है जहाँ मालसूची फ़ाइल नहीं है का चयन करें, इस फ़ाइल क्रोम के लिए आवश्यक है।

  3. अपने परिवर्तन करें, फिर अपने परिवर्तनों को देखने के लिए अपने विस्तार के लिए पृष्ठ को पुनः लोड करें और ताज़ा करें।


क्रोम एक्सटेंशन निर्देशिका

मैक:

/Users/username/Library/Application Support/Google/Chrome/Default/Extensions

विंडोज 7:

C:\Users\username\AppData\Local\Google\Chrome\User Data\Default\Extensions

विंडोज एक्स पी:

C:\Documents and Settings\YourUserName\Local Settings\Application Data\Google\Chrome\User Data\Default

Ubuntu 14.04:

~/.config/google-chrome/Default/Extensions/

3
FYI करें, कम से कम विंडोज पर, \Defaultएक्सटेंशन लोकेशन पथ में निर्देशिका उस प्रोफ़ाइल को इंगित करता है जिसके लिए एक्सटेंशन स्थापित है। यदि आप क्रोम में कई प्रोफाइल का उपयोग करते हैं \Defaultतो डिफ़ॉल्ट प्रोफाइल है और \Profile1यह 1 अतिरिक्त प्रोफाइल है।
हीटफैनजॉन

2
एक्सटेंशन के स्रोत कोड को जल्दी से एक्सेस करने के लिए इस क्रोम एक्सटेंशन को देखें: chrome.google.com/webstore/detail/extension-source-locator/…
Shahihi

@ शहीदी मैं अनुमान लगा रहा हूं कि यह आपका विस्तार है। इसके साथ कुछ समस्याएं हैं - सबसे महत्वपूर्ण बात यह है कि यह नए टैब को हाईजैक करता है - इसके अलावा, यह nullउपयोगकर्ता नाम के लिए वापस लौटता है इसलिए कॉपी किया गया काम नहीं करता है - मैं ओएस एक्स पर हूं - शांत विचार हालांकि, इसे बस थोड़ा सा चाहिए काम। ओह और भी, एक्सटेंशन और एक्सटेंशन आईडी के बीच स्लैश गायब है।
JDavis

@JDavis - इनपुट के लिए धन्यवाद! यह मेरा है ... स्लैश फिक्स्ड - मैक का अभी तक परीक्षण नहीं किया गया है: नए टैब को हाईजैक करने के लिए - मैं सोच रहा था कि यह कुछ क्लिकों को बचाएगा, लेकिन एक बार जब मुझे कुछ इनपुट मिलेंगे तो मैं इसे बदलने पर विचार करूंगा।
शाही

1
हम एक्सटेंशन फ़ोल्डर को कहां कॉपी करते हैं ? मैंने इसे दूसरे स्थान पर कॉपी किया और जब मैंने "अनपैक्ड एक्सटेंशन लोड करने की कोशिश की ...", मुझे "एरर लोडिंग एक्सटेंशन" मिल गया ... "मैनिफ़ेस्ट फ़ाइल गुम या अपठनीय है"।
जॉबर्ड

45

एक हस्ताक्षरित CRX फ़ाइल में एक हेडर होता है जो अधिकांश / सभी अनज़िपर्स को बारफ करने का कारण होगा। यह इसके बारे में जाने का सबसे आसान तरीका नहीं है, लेकिन यहाँ यह कैसे किया जाता है एक बैश कमांड लाइन से।

मूल विचार यह है कि मूल अहस्ताक्षरित ज़िपफ़ाइल कहाँ से शुरू होती है, फिर CRX फ़ाइल को एक ज़िप फ़ाइल में कॉपी करें लेकिन CRX हेडर को बाहर करें।

  1. hexdump -C the_extension.crx | more
  2. ज़िप फ़ाइल की शुरुआत के लिए आउटपुट में देखें, जो ASCII बाइट्स "पीके" हैं। मैंने जो नमूना आजमाया, उसमें पीके 0x132 की भरपाई कर रहा था। (CRX कल्पना पढ़ने से, मुझे लगता है कि यह संख्या अलग-अलग हस्ताक्षर लंबाई के कारण फ़ाइल से फ़ाइल में भिन्न होगी।) वह संख्या वह है जिसे हम अगले चरण में उपयोग करेंगे।
  3. dd if=the_extension.crx of=the_extension.zip bs=1 skip=0x132 (स्किप पैरामीटर के लिए, पिछले चरण में पाई गई ऑफ़सेट को प्रतिस्थापित करें।)
  4. अब अनज़िप .zip करें जो आपने अभी बनाया है।
  5. अनजिप की गई डायरेक्टरी में फाइलों के साथ फिडेल करें, या तो अपने क्रोम इंस्टॉलेशन में अहस्ताक्षरित / अनपैक्ड एक्सटेंशन को इंस्टॉल करें, या फिर किसी अन्य क्रोम एक्सटेंशन की तरह ही इसे भी रीपैकेज करें।

मुझे यकीन है कि ऐसा करने के लिए अधिक संक्षिप्त तरीका है। बैश विशेषज्ञों, कृपया मेरे उत्तर पर सुधार करें।


3
महान संकेत! मेरा पीके ऑफसेट भी था0x132
स्टीफन श्मिट

21
मैं वास्तव में कमांड लाइन उपयोगिता के साथ इसे अनज़िप करने में सक्षम था unzip। इसने हेडर के अतिरिक्त 306 बाइट्स के बारे में शिकायत की, लेकिन फिर भी ऐसा किया।
लेक्स आर

2
unzipपूरी तरह से काम करता है:warning [YouTubeCenter.crx]: 304 extra bytes at beginning or within zipfile (attempting to process anyway)
नवीन

आप हेक्सडंप के लिए ऑफसेट का पता कैसे लगाते हैं? मेरे पास निम्न पंक्ति है जिसमें 00000230 63 d5 11 76 bf 9f 50 4b 03 04 14 00 08 08 08 00 |c..v..PK........|
बजे

अगर मैं "बैश विशेषज्ञ" के रूप में अर्हता प्राप्त करता हूं, तो मुझे पता नहीं है, लेकिन यह मेरे लिए काम करता है:webext="Downloads/Extension_v0.1.crx" dd if="$webext" of="${webext%.crx}.zip" bs=1 skip=$(hexdump "$webext" | awk '/50 4b/{a=$1; for(i=2;i<=NF;i++){if($i=="50" && $(i+1)=="4b"){print "0x"substr(a,0,6)i-2;exit}}}')
miken32

9

ध्यान दें कि कुछ ज़िप प्रोग्रामों में वर्णित सीआरएक्स जैसे सीआरपी को हटाने में परेशानी होती है - यदि यह मामला है, तो 7-ज़िप का उपयोग करने का प्रयास करें - http://www.7-zip.org/


1
ओह! कम से कम विस्टा पर आपको फ़ाइल एक्सटेंशन बदलने की ज़रूरत नहीं है, 7-ज़िप बस उस बुरे लड़के पर शहर जाती है!
JKirchartz

नहीं, यह निश्चित नहीं है। मैंने नाम बदलकर .crx to.zip और ज़िप एक त्रुटि दी है कि यह ज़िप नहीं खोल सकता है।
Jez

2

मैंने अन्य उत्तर पढ़े हैं और कुछ अन्य बातों पर ध्यान देना महत्वपूर्ण है:

1.) मैक उपयोगकर्ताओं के लिए: जब आप "लोड अनकैप्ड एक्सटेंशन ..." पर क्लिक करते हैं, तो लाइब्रेरी फ़ोल्डर डिफ़ॉल्ट रूप से छिपा हुआ होता है और (भले ही शो हिडन फाइल्स का ऑप्शन आपके मैक पर टॉगल किया गया हो) यह क्रोम की फाइंडर विंडो में नहीं दिख सकता है। ।

2.) एक्सटेंशन वाला उप फ़ोल्डर एक यादृच्छिक अल्फा-न्यूमेरिक स्ट्रिंग है जिसे एक्सटेंशन की आईडी के नाम पर रखा गया है, जो कि डेवलपर फ्लैग पृष्ठ पर पाया जा सकता है यदि डेवलपर ध्वज को सही पर सेट किया गया है। (एक्सटेंशन पेज पर ऊपरी दाहिना हाथ चेकबॉक्स)


तो # 1 का उपाय क्या है? मैं पहले से ही छिपे हुए फ़ोल्डर दिखा रहा हूं, लेकिन जैसा कि आप कहते हैं, एक्सटेंशन निर्देशिका के स्थान का चयन करने का प्रयास करते समय निर्देशिका दिखाई नहीं देती है।
o_O

@o_O - यह एक लंबा समय आ रहा है, लेकिन ... यहाँ फिर से जाएं: macworld.com/article/2057221/…
20

2

(पहले ही कहा जा चुका है) मुझे कुछ क्रोम थीम बनाते हुए पता चला (जो अब लंबी हो चुकी हैं ...: -पी)

क्रोम थीम, एक्सटेंशन आदि केवल कंप्रेस्ड फाइलें हैं। इसे अनज़िप करने के लिए 7-ज़िप या WinRar प्राप्त करें । प्रत्येक एक्सटेंशन / थीम में एक मेनिफ़ेस्ट। Json फ़ाइल होती है। नोटपैड में मैनिफ़ेस्ट। जेसन फ़ाइल खोलें। फिर, यदि आप कोडिंग जानते हैं, तो कोड को संशोधित करें। कुछ अन्य फाइलें होंगी। यदि आप मैनिफ़ेस्ट फ़ाइल में देखते हैं, तो आप यह पता लगाने में सक्षम हो सकते हैं कि क्या हैं। फिर, आप सब कुछ बदल सकते हैं ...


1

.CRX फाइलें ऐसी हैं .ZIP फाइलें, बस एक्सटेंशन बदलिए और राइट क्लिक> एक्सट्रैक्ट फाइल्स और आप पर काम किया जाता है।

एक बार जब आप फ़ाइलें निकाल लेते हैं -> उन्हें संशोधित करें और ज़िप में जोड़ें और एक्सटेंशन को वापस .crx में बदलें।

अन्य तरीके से -> Chrome खोलें -> सेटिंग -> एक्सटेंशन -> डेवलपर विकल्प सक्षम करें -> अनपैकड एक्सटेंशन (संशोधित एक्सट्रैक्टेड फाइल फोल्डर) लोड करें और फिर पैक एक्सटेंशन पर क्लिक करें।

स्रोत


1

अब क्रोम बहु-उपयोगकर्ता है इसलिए Extensionsओएस उपयोगकर्ता प्रोफ़ाइल के तहत नेस्टेड किया जाना चाहिए फिर क्रोम उपयोगकर्ता प्रोफ़ाइल, मेरा पहला क्रोम उपयोगकर्ता कहा जाता था Profile 1, मेरा Extensionsपथ बनाया गया थाC:\Users\ username \AppData\Local\Google\Chrome\User Data\ Profile 1 \Extensions\

तुम्हारा पता लगाने के लिए chrome://version/(मैं about:आलस से बाहर का उपयोग करें )।

नोटिस Profile Pathऔर सिर्फ append \Extensions\और तुम तुम्हारा है।

उम्मीद है कि यह इस जानकारी को इस सवाल पर तारीख तक लाता है।


1

.CRX एक्सटेंशन के कोड को संशोधित करना संभव है, क्योंकि यह एक सरल .zip संग्रह है। आप एक्सटेंशन डाउनलोड कर सकते हैं, इसे स्रोत कोड निकाल सकते हैं, इसे संशोधित कर सकते हैं (परीक्षण करें और इसे अपनी तरफ से डिबग करें), और .CR फ़ाइल में वापस पैकेज करें।

मैंने इस उपकरण को केवल डाउनलोड करने के लिए .CRX एक्सटेंशन को निकाला और स्रोत कोड को निकाला और यह मेरे लिए काम किया: http://crxxractor.com

सब कुछ यह पार्स करता है .CRX फ़ाइल स्वरूप और अर्क वास्तविक .zip जिसमें स्रोत कोड होता है।


0

यदि आपने क्रोम का पोर्टेबल संस्करण स्थापित किया है, या इसे कस्टम निर्देशिका में स्थापित किया है - तो उपरोक्त उत्तर में संदर्भित निर्देशिका में एक्सटेंशन उपलब्ध नहीं होंगे।

Chrome के शॉर्टकट पर राइट-क्लिक करें और "लक्ष्य" निर्देशिका जांचें। वहां से, ऊपर एक निर्देशिका में नेविगेट करें और आपको User Dataफ़ोल्डर देखने में सक्षम होना चाहिए और फिर ऊपर वर्णित उत्तरों का उपयोग कर सकते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.