Nie jestem pewien, w jakich językach są te rozszerzenia, myślę, że są napisane w HTML, JavaScript lub JSON. O ile wiem, są one „skompresowane” w pliku .CRX.
Czy jest możliwa bezpośrednia modyfikacja html, js, json rozszerzenia Chrome (lub dowolnego używanego języka)?
google-chrome
alexchenco
źródło
źródło
Odpowiedzi:
Przeszukałem go w Google i znalazłem to:
źródło
crx
nazip
i kliknięcie go nie zadziała.unzip
komenda zadziała nawet nacrx
rozszerzeniu.Poniżej wymieniono katalogi zainstalowanych rozszerzeń Chrome:
Skopiuj folder rozszerzenia, które chcesz zmodyfikować. (Nazwany zgodnie z identyfikatorem rozszerzenia, aby znaleźć identyfikator rozszerzenia, przejdź do
chrome://extensions/
). Po skopiowaniu musisz usunąć folder _metadata.Od
chrome://extensions
w trybie programisty wybierz Wczytaj rozszerzenie ... i wybierz folder przedłużacza skopiowany, jeśli zawiera podfolder ten jest nazwany przez wersję, wybierz ten folder wersji, gdzie znajduje się plik manifestu, plik ten jest konieczny dla Chrome.Wprowadź zmiany, a następnie wybierz opcję Wczytaj ponownie i odśwież stronę rozszerzenia, aby zobaczyć zmiany.
Katalogi rozszerzeń Chrome
Prochowiec:
System Windows 7:
Windows XP:
Ubuntu 14.04:
źródło
\Default
katalog w ścieżce lokalizacji rozszerzenia wskazuje profil, dla którego rozszerzenie jest zainstalowane. Jeśli używasz wielu profili w Chrome,\Default
jest to profil domyślny i\Profile1
pierwszy dodatkowy utworzony profil.null
po nazwę użytkownika, więc skopiowana ścieżka nie działa - jestem na OS X - fajny pomysł, ale potrzebuje tylko trochę praca. Aha, a także brakuje ukośnika między rozszerzeniami a identyfikatorem rozszerzenia.Podpisany plik CRX ma nagłówek, który spowoduje, że większość / wszystkie programy rozpakujące będą barfować. Nie jest to najłatwiejszy sposób, aby to zrobić, ale oto jak to zrobić z wiersza poleceń bash.
Podstawowym pomysłem jest znalezienie miejsca, w którym zaczyna się oryginalny niepodpisany plik zip, a następnie skopiowanie pliku CRX do pliku zip, ale z wyłączeniem nagłówka CRX.
hexdump -C the_extension.crx | more
dd if=the_extension.crx of=the_extension.zip bs=1 skip=0x132
(W przypadku parametru pominięcia zastąp przesunięcie znalezione w poprzednim kroku).Jestem pewien, że można to zrobić w bardziej zwięzły sposób. Eksperci Bash, proszę poprawić moją odpowiedź.
źródło
0x132
unzip
. Narzekał na dodatkowe 306 bajtów nagłówka, ale i tak to zrobił.unzip
działa idealnie: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}}}')
Zauważ, że niektóre programy zip mają problemy z rozpakowaniem CRX, jak opisano w Sathish - jeśli tak jest, spróbuj użyć 7-Zip - http://www.7-zip.org/
źródło
Przeczytałem inne odpowiedzi i uznałem za ważne, aby zwrócić uwagę na kilka innych rzeczy:
1.) Dla użytkowników komputerów Mac: po kliknięciu „Wczytaj rozpakowane rozszerzenie ...” folder Biblioteki jest domyślnie ukryty i (nawet jeśli opcja Pokaż ukryte pliki jest włączona na komputerze Mac) może nie pojawić się w oknie wyszukiwarki Chrome .
2.) Podfolder zawierający rozszerzenie to losowy ciąg alfanumeryczny nazwany na podstawie identyfikatora rozszerzenia, który można znaleźć na stronie rozszerzenia przeglądarki Chrome, jeśli flaga programisty ma wartość prawda. (Pole wyboru w prawym górnym rogu strony rozszerzeń)
źródło
(Już powiedziałem) Dowiedziałem się o tym podczas tworzenia niektórych motywów Chrome (które już dawno zniknęły ... :-P)
Motywy, rozszerzenia itp. Chrome to po prostu skompresowane pliki. Pobierz 7-zip lub WinRar, aby go rozpakować. Każde rozszerzenie / motyw ma plik manifest.json. Otwórz plik manifest.json w notatniku. Następnie, jeśli znasz kodowanie, zmodyfikuj kod. Będą inne pliki. Jeśli zajrzysz do pliku manifestu, możesz dowiedzieć się, do czego służą. Wtedy możesz wszystko zmienić ...
źródło
Pliki .CRX są podobne do plików .ZIP, po prostu zmień rozszerzenie i kliknij prawym przyciskiem myszy> Wyodrębnij pliki i gotowe.
Po rozpakowaniu plików -> zmodyfikuj je i dodaj do pliku zip i zmień rozszerzenie z powrotem na .crx.
W inny sposób -> Otwórz Chrome -> Ustawienia -> Rozszerzenia -> Włącz opcje programisty -> Załaduj rozpakowane rozszerzenie (zmodyfikowany folder wyodrębnionych plików), a następnie kliknij rozszerzenie pakietu.
Źródło
źródło
Teraz Chrome jest dla wielu użytkowników, więc
Extensions
powinien być zagnieżdżony w profilu użytkownika systemu operacyjnego, a następnie w profilu użytkownika Chrome. Został wywołanyProfile 1
mój pierwszy użytkownik Chrome , mojaExtensions
ścieżka toC:\Users\
username
\AppData\Local\Google\Chrome\User Data\
Profile 1
\Extensions\
.Aby znaleźć swoje, przejdź do
chrome://version/
(używamabout:
z lenistwa).Zwróć uwagę
Profile Path
i po prostu dołącz\Extensions\
i masz swój.Mam nadzieję, że dzięki temu informacje na ten temat będą bardziej aktualne.
źródło
Istnieje możliwość modyfikacji kodu rozszerzenia .CRX, ponieważ jest to proste archiwum .zip. Możesz pobrać rozszerzenie, wyodrębnić jego kod źródłowy, zmodyfikować go (przetestować i debugować tak, jak jest po twojej stronie) i spakować z powrotem do pliku .CRX.
Wygooglowałem to narzędzie, aby po prostu pobrać rozszerzenie .CRX i wyodrębnić kod źródłowy i zadziałało: http://crxextractor.com
Wszystko, co robi, to analizuje format pliku .CRX i wyodrębnia rzeczywisty plik .zip zawierający kod źródłowy.
źródło
Jeśli zainstalowałeś przenośną wersję Chrome lub masz ją zainstalowaną w katalogu niestandardowym - rozszerzenia nie będą dostępne w katalogu wymienionym w powyższych odpowiedziach.
Spróbuj kliknąć prawym przyciskiem myszy skrót Chrome i sprawdź katalog „Cel”. Stamtąd przejdź do jednego katalogu powyżej i powinieneś być w stanie zobaczyć
User Data
folder, a następnie możesz użyć odpowiedzi wymienionych powyżejźródło