ฉันจะแก้ไขไฟล์นามสกุลของ Google Chrome โดยตรงได้อย่างไร (.CRX)


97

ฉันไม่แน่ใจว่าส่วนขยายเหล่านั้นเป็นภาษาใดฉันคิดว่าส่วนขยายเหล่านี้เขียนด้วย Html, Javascript หรือ JSON เท่าที่ฉันรู้ว่ามีการ "บีบอัด" ในไฟล์. CRX

เป็นไปได้ที่จะแก้ไข html, js, json ของส่วนขยาย Chrome โดยตรง (หรือภาษาที่ใช้)?


ฉันเสียเวลาไปมากในการพยายามคิดออกและได้ลองใช้หลายวิธีที่ระบุไว้ที่นี่ หากคุณใช้ Mac และการคลายซิปไม่ทำงานให้ดาวน์โหลดและลองใช้ Keka เป็นยูทิลิตี้ Mac ฟรีที่ใช้ 7-Zip ไม่จำเป็นต้องเปลี่ยนชื่อไฟล์ CRX เปิดแอพแล้ววางไฟล์ CRX ของคุณลงไป มันจะแตกเนื้อหาไปยังโฟลเดอร์ keka.io
Trevor

คำตอบ:


88

ฉันค้นหาใน Google และพบสิ่งนี้:

ประเภทไฟล์นามสกุลของ Google Chrome คือ CRX มันเป็นรูปแบบการบีบอัดเป็นหลัก ดังนั้นหากคุณต้องการดูว่าอะไรอยู่เบื้องหลังส่วนขยายสคริปต์และโค้ดเพียงแค่เปลี่ยนประเภทไฟล์จาก“ CRX” เป็น“ ZIP”

แตกไฟล์และคุณจะได้รับข้อมูลทั้งหมดที่คุณต้องการ ด้วยวิธีนี้คุณจะเห็นความกล้าเรียนรู้วิธีเขียนส่วนขยายด้วยตัวคุณเองหรือปรับเปลี่ยนตามความต้องการของคุณเอง

จากนั้นคุณสามารถสำรองข้อมูลด้วยเครื่องมือภายในของ Chrome ซึ่งจะสร้างไฟล์กลับไปที่ CRX โดยอัตโนมัติ การติดตั้งเพียงแค่คลิก


14
ไฟล์ crx มีส่วนหัวเพิ่มเติมก่อนที่จะบีบอัดเนื้อหาdeveloper.chrome.com/extensions/crx.html
se_pavel

5
หลังจากคลายซิปไฟล์จะกลายเป็น something.zip.cpgz?
f01

7
การเปลี่ยนชื่อส่วนขยายจากcrxเป็นzipและการคลิกจะไม่ทำงาน unzipคำสั่งจะทำงานแม้ในcrxส่วนขยาย
iRonin

1
ใน MacOS ไม่สามารถแยก CRX ได้โดยเปลี่ยนประเภทไฟล์จาก“ CRX” เป็น“ ZIP” เพราะเมื่อฉันพยายามแตกไฟล์ zip นั้นมันจะทำให้ไฟล์อื่นเป็น FileName.zip.cpgz
Ripon Kumar Saha

107

ไดเร็กทอรีส่วนขยายของ Chrome ที่ติดตั้งอยู่ด้านล่าง:

  1. คัดลอกโฟลเดอร์ของส่วนขยายที่คุณต้องการแก้ไข (ตั้งชื่อตาม ID ส่วนขยายหากต้องการค้นหา ID ของส่วนขยายให้ไปที่chrome://extensions/) เมื่อคัดลอกแล้วคุณต้องลบโฟลเดอร์ _metadata

  2. จากchrome://extensionsในโหมดนักพัฒนาให้เลือกโหลดส่วนขยายที่ไม่ได้แพ็ค ...และเลือกโฟลเดอร์ส่วนขยายที่คัดลอกของคุณหากมีโฟลเดอร์ย่อยซึ่งตั้งชื่อตามเวอร์ชันให้เลือกโฟลเดอร์เวอร์ชันนี้ที่มีไฟล์รายการไฟล์นี้จำเป็นสำหรับ Chrome

  3. ทำการเปลี่ยนแปลงของคุณจากนั้นเลือกโหลดซ้ำและรีเฟรชหน้าสำหรับส่วนขยายของคุณเพื่อดูการเปลี่ยนแปลงของคุณ


ไดเรกทอรีส่วนขยายของ Chrome

Mac:

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

วินโดว 7:

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

Windows XP:

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

Ubuntu 14.04:

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

3
FYI อย่างน้อยใน Windows \Defaultไดเร็กทอรีในเส้นทางตำแหน่งส่วนขยายจะชี้ไปยังโปรไฟล์ที่ติดตั้งส่วนขยาย หากคุณใช้หลายโปรไฟล์ใน Chrome \Defaultเป็นโปรไฟล์เริ่มต้นและ\Profile1เป็นโปรไฟล์แรกที่สร้างขึ้น
HeatfanJohn

2
ตรวจสอบส่วนขยาย Chrome นี้เพื่อเข้าถึงซอร์สโค้ดของส่วนขยายอย่างรวดเร็ว: chrome.google.com/webstore/detail/extension-source-locator/…
Shaihi

@Shaihi ฉันเดาว่าเป็นนามสกุลของคุณ มีปัญหาเล็กน้อยกับมัน - ที่สำคัญที่สุดคือมันแย่งแท็บใหม่ - มันส่งคืนnullชื่อผู้ใช้ดังนั้นเส้นทางที่คัดลอกไม่ทำงาน - ฉันใช้ OS X - ไอเดียเจ๋ง ๆ แต่มันต้องการเพียงเล็กน้อย งาน. อ้อและเช่นกันเครื่องหมายทับระหว่างส่วนขยายและรหัสส่วนขยายหายไป
JDavis

@JDavis - ขอบคุณสำหรับข้อมูล! เป็นของฉัน ... แก้ไขเครื่องหมายทับ - ยังไม่ได้ทดสอบ Mac: s สำหรับการจี้แท็บใหม่ - ฉันคิดว่ามันจะช่วยประหยัดการคลิกได้บ้าง แต่เมื่อฉันได้รับข้อมูลบางอย่างฉันจะพิจารณาเปลี่ยน
Shaihi

1
เราจะคัดลอกโฟลเดอร์ส่วนขยายไปที่ใด ฉันคัดลอกไปยังตำแหน่งอื่นและเมื่อฉันพยายาม "โหลดส่วนขยายที่คลายแพ็ก ... " ฉันได้รับ "Error Loading Extension" ... "ไฟล์ Manifest หายไปหรือไม่สามารถอ่านได้"
jbyrd

46

ไฟล์ CRX ที่เซ็นชื่อมีส่วนหัวที่จะทำให้ส่วนใหญ่ / ทั้งหมดคลายซิปเพื่อ barf นี่ไม่ใช่วิธีที่ง่ายที่สุดในการดำเนินการ แต่นี่คือวิธีการทำจากบรรทัดคำสั่ง bash

แนวคิดพื้นฐานคือการค้นหาตำแหน่งที่ไฟล์ zip ที่ไม่ได้ลงชื่อดั้งเดิมเริ่มต้นจากนั้นคัดลอกไฟล์ CRX ไปยังไฟล์ zip แต่ไม่รวมส่วนหัว CRX

  1. hexdump -C the_extension.crx | more
  2. ดูผลลัพธ์สำหรับจุดเริ่มต้นของไฟล์ zip ซึ่งเป็นไบต์ ASCII "PK" ในตัวอย่างที่ฉันลอง PK อยู่ที่ออฟเซ็ต 0x132 (จากการอ่านข้อมูลจำเพาะ CRX ฉันคิดว่าตัวเลขนี้จะแตกต่างกันไปในแต่ละไฟล์เนื่องจากความยาวลายเซ็นที่แตกต่างกัน) ตัวเลขนั้นคือสิ่งที่เราจะใช้ในขั้นตอนต่อไป
  3. dd if=the_extension.crx of=the_extension.zip bs=1 skip=0x132 (สำหรับพารามิเตอร์การข้ามให้แทนที่ค่าชดเชยที่คุณพบในขั้นตอนก่อนหน้านี้)
  4. ตอนนี้แตกไฟล์. zip ที่คุณเพิ่งสร้างขึ้น
  5. ดำเนินการกับไฟล์ในไดเร็กทอรีที่คลายซิปจากนั้นติดตั้งส่วนขยายที่ไม่ได้ลงชื่อ / ไม่ได้บรรจุลงในการติดตั้ง Chrome ของคุณหรือมิฉะนั้นบรรจุหีบห่อใหม่เช่นเดียวกับส่วนขยาย Chrome อื่น ๆ

ฉันแน่ใจว่ามีวิธีที่รัดกุมกว่านี้ในการทำเช่นนี้ ผู้เชี่ยวชาญด้าน Bash โปรดปรับปรุงคำตอบของฉัน


3
คำใบ้สุดยอด! การชดเชย PK ของฉันก็เช่นกัน0x132
Stefan Schmidt

23
unzipผมเป็นจริงสามารถที่จะเปิดเครื่องรูดมันกับอรรถประโยชน์บรรทัดคำสั่ง มันบ่นเกี่ยวกับส่วนหัวเพิ่มเติมอีก 306 ไบต์ แต่ก็ยังทำอยู่ดี
Lex R

2
unzipทำงานได้อย่างสมบูรณ์:warning [YouTubeCenter.crx]: 304 extra bytes at beginning or within zipfile (attempting to process anyway)
นาวิน

คุณจะหาค่าชดเชยสำหรับฐานสิบหกได้อย่างไร ฉันมีบรรทัดต่อไปนี้ที่มี pk00000230 63 d5 11 76 bf 9f 50 4b 03 04 14 00 08 08 08 00 |c..v..PK........|
kchoi

ฉันไม่รู้ว่าฉันมีคุณสมบัติเป็น "ผู้เชี่ยวชาญด้านการทุบตี" แต่สิ่งนี้ใช้ได้กับฉัน: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

10

โปรดทราบว่าโปรแกรม zip บางโปรแกรมมีปัญหาในการคลายซิป CRX อย่างที่อธิบายไว้ - หากเป็นกรณีนี้ให้ลองใช้ 7-Zip - http://www.7-zip.org/


1
ว้าว! อย่างน้อยใน vista คุณไม่จำเป็นต้องเปลี่ยนนามสกุลไฟล์ 7-zip ก็เข้าเมืองไปกับเด็กเลวคนนั้น!
JKirchartz

ไม่มันไม่แน่ใจ ฉันเปลี่ยนชื่อ. crx เป็น. zip และ 7-ZIP ทำให้ฉันมีข้อผิดพลาดที่ไม่สามารถเปิด ZIP ได้
Jez

3

ฉันได้อ่านคำตอบอื่น ๆ แล้วและพบว่าสิ่งสำคัญคือต้องสังเกตสิ่งอื่น ๆ :

1. ) สำหรับผู้ใช้ Mac: เมื่อคุณคลิก "Load unpacked extension ... " โฟลเดอร์ Library จะถูกซ่อนไว้ตามค่าเริ่มต้นและ (แม้ว่าตัวเลือก Show Hidden files จะถูกสลับบน Mac ของคุณ) ก็อาจไม่ปรากฏในหน้าต่าง Finder ของ Chrome .

2. ) โฟลเดอร์ย่อยที่มีส่วนขยายคือสตริงตัวอักษรและตัวเลขแบบสุ่มที่ตั้งชื่อตาม ID ของส่วนขยายซึ่งสามารถพบได้ในหน้าส่วนขยายของ Chrome หากตั้งค่าสถานะนักพัฒนาเป็นจริง (ช่องทำเครื่องหมายด้านขวาบนในหน้าส่วนขยาย)


แล้วทางออกของ # 1 คืออะไร? ฉันกำลังแสดงโฟลเดอร์ที่ซ่อนอยู่แล้ว แต่อย่างที่คุณบอกว่าจะมองไม่เห็นไดเร็กทอรีเมื่อพยายามเลือกตำแหน่งของไดเร็กทอรีส่วนขยาย
o_O

@o_O - เป็นแบบนี้มานานแล้ว แต่ ... นี่เลย: macworld.com/article/2057221/…
jenming

3

(พูดไปแล้ว) ฉันพบสิ่งนี้ขณะสร้างธีม Chrome (ซึ่งหายไปนานแล้ว ... :-P)

ธีม Chrome ส่วนขยาย ฯลฯ เป็นเพียงไฟล์บีบอัด รับ7-zipหรือWinRarเพื่อเปิดเครื่องรูด แต่ละส่วนขยาย / ธีมมีไฟล์ manifest.json เปิดไฟล์ manifest.json ใน notepad จากนั้นหากคุณทราบการเข้ารหัสให้แก้ไขโค้ด จะมีบางไฟล์อื่น ๆ หากคุณดูในไฟล์รายการคุณอาจสามารถหาได้ว่ามีไว้เพื่ออะไร จากนั้นคุณสามารถเปลี่ยนแปลงทุกสิ่ง ...


2

ไฟล์. CRX ก็เหมือนกับไฟล์. ZIP เพียงแค่เปลี่ยนนามสกุลแล้วคลิกขวา> แตกไฟล์เท่านี้ก็เสร็จเรียบร้อย

เมื่อคุณแตกไฟล์แล้ว -> แก้ไขและเพิ่มลงใน zip และเปลี่ยนนามสกุลกลับเป็น. crx

วิธีอื่น ๆ -> เปิด Chrome -> การตั้งค่า -> ส่วนขยาย -> เปิดใช้งานตัวเลือกสำหรับนักพัฒนา -> โหลดส่วนขยายที่ไม่ได้แพ็ก (โฟลเดอร์ไฟล์ที่แตกแล้วที่แก้ไข) แล้วคลิกส่วนขยายของแพ็ค

ที่มา


2

ตอนนี้ Chrome เป็นผู้ใช้หลายคนจึงExtensionsควรจะซ้อนอยู่ในโปรไฟล์ของผู้ใช้ระบบปฏิบัติการแล้วโปรไฟล์ผู้ใช้ Chrome ผู้ใช้ Chrome ครั้งแรกของฉันถูกเรียกว่าProfile 1ฉันเส้นทางเป็นExtensionsC:\Users\ username \AppData\Local\Google\Chrome\User Data\ Profile 1 \Extensions\

เพื่อค้นหาของคุณไปที่chrome://version/(ฉันใช้about:ความเกียจคร้าน)

สังเกตProfile Pathและต่อท้าย\Extensions\และคุณมีของคุณ

หวังว่านี่จะทำให้ข้อมูลเกี่ยวกับคำถามนี้เป็นปัจจุบันมากขึ้น


2

เป็นไปได้ที่จะแก้ไขโค้ดของนามสกุล. CRX เนื่องจากเป็นไฟล์. zip ที่เรียบง่าย คุณสามารถดาวน์โหลดนามสกุลแตกไฟล์ซอร์สโค้ดแก้ไข (ทดสอบและดีบักตามที่อยู่ข้างคุณ) และแพ็กเกจกลับเป็นไฟล์. CRX

ฉันใช้เครื่องมือนี้เพื่อดาวน์โหลดส่วนขยาย. CRX และแยกซอร์สโค้ดและมันก็ใช้ได้กับฉัน: http://crxextractor.com

ทุกสิ่งที่ทำคือการแยกวิเคราะห์รูปแบบไฟล์. CRX และแยก. zip จริงที่มีซอร์สโค้ด


0

หากคุณติดตั้ง Chrome เวอร์ชันพกพาหรือติดตั้งไว้ในไดเร็กทอรีที่กำหนดเองส่วนขยายจะไม่สามารถใช้งานได้ในไดเร็กทอรีที่อ้างถึงในคำตอบด้านบน

ลองคลิกขวาที่ทางลัดของ Chrome และตรวจสอบไดเรกทอรี "Target" จากนั้นไปที่ไดเร็กทอรีเดียวด้านบนและคุณควรจะเห็นUser Dataโฟลเดอร์จากนั้นสามารถใช้คำตอบที่กล่าวถึงข้างต้นได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.