Bagaimana cara langsung mengubah File Ekstensi Google Chrome? (.CRX)

96

Saya tidak yakin dalam bahasa apa ekstensi tersebut, saya pikir ditulis dalam Html, Javascript atau JSON. Sejauh yang saya tahu mereka "dikompresi" dalam file .CRX.

Apakah mungkin untuk langsung mengubah html, js, json dari Ekstensi Chrome (atau bahasa apa pun yang mereka gunakan)?

alexchenco.dll
sumber
Saya membuang banyak waktu mencoba mencari tahu dan saya mencoba banyak pendekatan yang tercantum di sini. Jika Anda menggunakan Mac dan membuka ritsleting tidak berhasil, unduh dan coba Keka. Ini adalah utilitas Mac gratis berdasarkan 7-Zip. Tidak perlu mengganti nama file CRX. Buka aplikasi dan kemudian letakkan file CRX Anda di atasnya. Ini akan mengekstrak konten ke folder. keka.io
Trevor

Jawaban:

87

Saya mencarinya di Google dan saya menemukan ini:

Jenis file Ekstensi Google Chrome adalah CRX. Ini pada dasarnya adalah format kompresi. Jadi jika Anda ingin melihat apa yang ada di balik ekstensi, skrip, dan kodenya, cukup ubah jenis file dari "CRX" menjadi "ZIP".

Buka zip file dan Anda akan mendapatkan semua info yang Anda butuhkan. Dengan cara ini Anda dapat melihat nyali, mempelajari cara menulis ekstensi sendiri, atau memodifikasinya untuk kebutuhan Anda sendiri.

Kemudian Anda dapat mengemasnya kembali dengan alat internal Chrome yang secara otomatis membuat file kembali ke CRX. Menginstalnya hanya membutuhkan satu klik.

sathish
sumber
14
File crx memiliki header tambahan sebelum pengembang
zip.chrome.com/extensions/crx.html
5
Setelah mengekstrak file menjadi sesuatu.zip.cpgz?
f01
7
Mengubah nama ekstensi dari crxke zipdan mengkliknya tidak akan bekerja. yang unzipperintah akan bekerja bahkan pada crxekstensi.
iRonin
1
Di MacOS, CRX tidak dapat diekstrak dengan mengubah jenis file dari "CRX" menjadi "ZIP" karena ketika saya mencoba mengekstrak file zip itu membuat file lain FileName.zip.cpgz
Ripon Kumar Saha
106

Direktori ekstensi Chrome yang diinstal tercantum di bawah ini:

  1. Salin folder ekstensi yang ingin Anda ubah. (Dinamakan sesuai dengan ID ekstensi, untuk menemukan ID ekstensi, buka chrome://extensions/). Setelah disalin, Anda harus menghapus folder _metadata.

  2. Dari chrome://extensionsdalam mode Pengembang pilih Muat ekstensi yang belum dikemas ... dan pilih folder ekstensi yang Anda salin, jika berisi subfolder yang dinamai menurut versinya, pilih folder versi ini di mana ada file manifes, file ini diperlukan untuk Chrome.

  3. Lakukan perubahan, lalu pilih muat ulang dan segarkan halaman untuk ekstensi Anda untuk melihat perubahan Anda.


Direktori ekstensi Chrome

Mac:

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

Windows 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/
JDavis
sumber
3
FYI, setidaknya di Windows, \Defaultdirektori di jalur lokasi ekstensi mengarah ke profil tempat ekstensi diinstal. Jika Anda menggunakan beberapa profil di Chrome \Defaultadalah profil default dan \Profile1profil tambahan pertama dibuat.
HeatfanJohn
2
Lihat ekstensi chrome ini untuk mengakses kode sumber ekstensi dengan cepat: chrome.google.com/webstore/detail/extension-source-locator/…
Shaihi
@Shaihi Saya menduga itu ekstensi Anda. Ada beberapa masalah dengan itu - yang paling penting adalah itu membajak tab baru - juga, itu kembali nulluntuk nama pengguna sehingga jalur yang disalin tidak berfungsi - Saya menggunakan OS X - ide keren, itu hanya perlu sedikit kerja. Oh dan juga, garis miring antara Ekstensi dan id ekstensi tidak ada.
JDavis
@JDavis - terima kasih atas masukannya! Ini milik saya ... Memperbaiki garis miring - belum menguji Mac: s Adapun untuk membajak tab baru - Saya pikir ini akan menghemat beberapa klik, tetapi setelah saya mendapatkan beberapa masukan, saya akan mempertimbangkan untuk mengubahnya.
Shaihi
1
Di mana kita menyalin ekstensi folder ke ? Saya menyalinnya ke lokasi lain dan ketika saya mencoba untuk "Memuat ekstensi yang belum dikemas ...", saya mendapat "Kesalahan Memuat Ekstensi" ... "File manifes hilang atau tidak dapat dibaca".
jbyrd
45

File CRX yang ditandatangani memiliki tajuk yang akan menyebabkan sebagian besar / semua unzipper muntah. Ini bukan cara termudah untuk melakukannya, tetapi inilah cara melakukannya dari baris perintah bash.

Ide dasarnya adalah menemukan di mana file zip unsigned asli dimulai, lalu salin file CRX ke file zip tetapi kecualikan header CRX.

  1. hexdump -C the_extension.crx | more
  2. Lihat dalam output untuk awal file zip, yang merupakan byte ASCII "PK". Pada sampel yang saya coba, PK berada pada offset 0x132. (Dari membaca spesifikasi CRX, saya pikir nomor ini akan bervariasi dari satu file ke file lain karena panjang tanda tangan yang berbeda.) Nomor tersebut adalah yang akan kita gunakan di langkah berikutnya.
  3. dd if=the_extension.crx of=the_extension.zip bs=1 skip=0x132 (Untuk parameter lewati, gantikan offset yang Anda temukan di langkah sebelumnya.)
  4. Sekarang unzip .zip yang baru saja Anda buat.
  5. Bermain-main dengan file di direktori unzip, lalu instal ekstensi unsigned / unpacked ke dalam instalasi Chrome Anda, atau kemas ulang seperti yang Anda lakukan pada ekstensi Chrome lainnya.

Saya yakin ada cara yang lebih ringkas untuk melakukan ini. Pakar Bash, tolong tingkatkan jawaban saya.

sowbug
sumber
3
Petunjuk bagus! Offset PK saya juga0x132
Stefan Schmidt
21
Saya sebenarnya bisa mengekstraknya dengan utilitas baris perintah unzip. Itu mengeluh tentang tambahan 306 byte dari header, tetapi tetap melakukannya.
Lex R
2
unzipbekerja dengan sempurna:warning [YouTubeCenter.crx]: 304 extra bytes at beginning or within zipfile (attempting to process anyway)
Navin
bagaimana Anda mengetahui offset untuk hexdump? Saya memiliki baris berikut yang berisi pk00000230 63 d5 11 76 bf 9f 50 4b 03 04 14 00 08 08 08 00 |c..v..PK........|
kchoi
Saya tidak tahu apakah saya memenuhi syarat sebagai "ahli Bash" tetapi ini berhasil untuk saya: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

Perhatikan bahwa beberapa program zip mengalami kesulitan untuk membuka ritsleting CRX seperti yang dijelaskan oleh sathish - jika demikian, coba gunakan 7-Zip - http://www.7-zip.org/

Arne Roomann-Kurrik
sumber
1
Wow! setidaknya di vista Anda bahkan tidak perlu mengubah ekstensi file, 7-zip hanya pergi ke kota pada anak nakal itu!
JKirchartz
Tidak, itu pasti tidak. Saya mengganti nama .crx menjadi.zip dan 7-ZIP memberi saya kesalahan yang tidak dapat membuka ZIP.
Jez
2

Saya telah membaca jawaban lainnya dan merasa penting untuk mencatat beberapa hal lainnya:

1.) Untuk pengguna Mac: Saat Anda mengeklik "Muat ekstensi yang belum dikemas ...", folder Perpustakaan secara default disembunyikan dan (meskipun opsi Tampilkan file Tersembunyi diaktifkan di Mac Anda) folder tersebut mungkin tidak muncul di jendela pencari Chrome .

2.) Sub folder yang berisi ekstensi adalah string alfanumerik acak yang diberi nama setelah ID ekstensi, yang dapat ditemukan di halaman ekstensi Chrome jika bendera Pengembang disetel ke true. (Kotak centang kanan atas pada halaman ekstensi)

sdailey
sumber
Jadi apa solusi untuk # 1? Saya sudah menampilkan folder tersembunyi tetapi seperti yang Anda katakan, direktori tersebut tidak terlihat saat mencoba memilih lokasi direktori ekstensi.
o_O
@o_O - Ini sudah lama datang, tapi ... ini dia: macworld.com/article/2057221/…
jenming
2

(Sudah dikatakan) Saya menemukan ini saat membuat beberapa tema Chrome (yang sudah lama hilang sekarang ... :-P)

Tema Chrome, ekstensi, dll. Hanyalah file terkompresi. Dapatkan 7-zip atau WinRar untuk mengekstraknya. Setiap ekstensi / tema memiliki file manifest.json. Buka file manifest.json di notepad. Kemudian, jika Anda tahu kodenya, ubah kodenya. Akan ada beberapa file lainnya. Jika Anda melihat di file manifes Anda mungkin bisa mengetahui untuk apa. Kemudian, Anda dapat mengubah segalanya ...

Anonim
sumber
1

File .CRX seperti file .ZIP, cukup ubah ekstensinya dan klik kanan> Ekstrak File dan Anda selesai.

Setelah Anda mengekstrak file -> ubah dan tambahkan ke zip dan ubah ekstensi kembali ke .crx.

Sebaliknya -> Buka Chrome -> Pengaturan -> Ekstensi -> Aktifkan Opsi Pengembang -> Muat Ekstensi yang belum dikemas (folder file yang diekstrak yang dimodifikasi) dan kemudian klik ekstensi paket.

Sumber

Mrinvicto
sumber
1

Sekarang Chrome multi-pengguna jadi Extensionsharus bersarang di bawah profil pengguna OS lalu profil pengguna Chrome, Pengguna Chrome pertama saya dipanggil Profile 1, Extensionsjalur saya dulu C:\Users\ username \AppData\Local\Google\Chrome\User Data\ Profile 1 \Extensions\.

Untuk menemukan milik Anda Navigasi ke chrome://version/(saya gunakan about:karena kemalasan).

Perhatikan Profile Pathdan tambahkan saja \Extensions\dan Anda memiliki milik Anda.

Semoga info tentang pertanyaan ini diperbarui lebih lanjut.

osearth
sumber
1

Kode ekstensi .CRX dapat dimodifikasi, karena ini adalah arsip .zip yang sederhana. Anda dapat mengunduh ekstensi, mengekstrak kode sumbernya, memodifikasinya (menguji dan men-debugnya seperti yang ada di pihak Anda), dan mengemas kembali ke dalam file .CRX.

Saya mencari alat ini di Google untuk mengunduh ekstensi .CRX dan mengekstrak kode sumber dan itu berfungsi untuk saya: http://crxextractor.com

Semua yang dilakukannya adalah mem-parsing format file .CRX dan mengekstrak .zip aktual yang berisi kode sumber.

Vladimir Ignatyev
sumber
0

Jika Anda telah menginstal Chrome versi portabel, atau menginstalnya di direktori kustom - ekstensi tidak akan tersedia di direktori yang direferensikan dalam jawaban di atas.

Coba klik kanan pada pintasan Chrome & Periksa direktori "Target". Dari sana, navigasikan ke satu direktori di atas dan Anda seharusnya dapat melihat User Datafolder tersebut dan kemudian dapat menggunakan jawaban yang disebutkan di atas

Sathyajith Bhat
sumber