Jak pobrać plik CRX ze sklepu internetowego Chrome dla danego identyfikatora?

81

Chciałbym pobrać plik .crx rozszerzenia ze sklepu internetowego. Używam programu Fiddler do analizy żądania sieciowego, gdy instaluję rozszerzenie ze sklepu internetowego i otrzymuję je.
Na przykład w przypadku rozszerzenia: https://chrome.google.com/webstore/detail/bjclhonkhgkidmlkghlkiffhoikhaajg
link do pobrania to:

https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA/extension_1_7_11.crx
Teraz zastanawiam się, czy istnieje uniwersalna metoda get crx przedłużenia, problemem jest to, jak zrobił Google szyfrowanie

bjclhonkhgkidmlkghlkiffhoikhaajg

w

OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA ?

każdy pomysł będzie pomocny.

wong2
źródło
2
Z tego, co wiemy, mogą to być po prostu dwie losowe liczby przechowywane gdzieś w bazie danych bez rzeczywistego mapowania. Dlaczego tego chcesz - chcesz mechanicznie usunąć wszystkie rozszerzenia z witryny?
Rup
1
Możesz także użyć „Give Me CRX”, rozszerzenia Google Chrome, aby uzyskać źródłowy plik .crx dowolnego rozszerzenia przeglądarki Chrome za pośrednictwem jego sklepu internetowego. PS: Stworzyłem i opublikowałem to rozszerzenie. Link do rozszerzenia: Give Me CRX (rozszerzenie Chrome)
iAnuj

Odpowiedzi:

30

W przypadku jednego z moich rozszerzeń musiałem automatycznie pobrać inne CRX, znając tylko identyfikator rozszerzenia. Rozwiązałem to, otwierając następujący adres URL:

http://clients2.google.com/service/update2/crx?response=redirect&x=id%3D<EXTENSION_ID_HERE>%26uc%26lang%3Den-US&prod=chrome

ta strona przekieruje Cię na ten https://clients2.googleusercontent.com/crx/download/adres.

Nie pamiętam już, jak wymyśliłem ten adres URL (albo był gdzieś w źródle strony, albo użyłem sniffera sieciowego), ale działa świetnie od grudnia zeszłego roku, więc wygląda na wiarygodny.

serg
źródło
1
Och, jesteś twórcą „Galerii rozszerzeń i inspektora sklepu internetowego”? Dziękuję bardzo!
wong2
16
Wygląda na to, że Google ostatnio coś zmieniło i to podejście już nie działa (zwraca 204). Czy ktoś ma pojęcie, co się zmieniło? Wydaje się, że autor chrome-extension-downloader.com naprawił to, ale nie zaktualizował dokumentacji.
Matthew Gertner
5
Nie działa. Rozumiem 204 No Content. Nawet po wymianie %3Dz =i %26z &.
Dan Dascalescu
8
Potwierdzam, że ten adres URL już nie działa, 204 No Contentteż otrzymuję . Zobacz odpowiedź wspominającą o PRODVERSION, która działa.
i336_
1
Oto ten, którego używam, który działa z rozszerzeniami natywnymi i innymi niż natywne: https://clients2.google.com/service/update2/crx?response=redirect&os=linux&arch=x86-64&nacl_arch=x86-64&prod=chromiumcrx&prodchannel=unknown&prodversion=49.0.2623.108&x=id%3D{ID}%26ucz {ID}identyfikatorem rozszerzenia.
damio
113

Sam plik CRX można pobrać bezpośrednio z
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&acceptformat=crx2,crx3&x=id%3D[EXTENSIONID]%26uc

  • [PRODVERSION] to wersja Chrome, która musi mieć co najmniej 31.0.1609.0 , a
  • [EXTENSIONID] to identyfikator rozszerzenia

(Nowość w 2018 r.) acceptformat=crx2,crx3 Instruuje serwer, aby odpowiadał również za pomocą rozszerzeń w formacie CRX3 (zamiast 204 No Content, gdy rozszerzenie nie jest dostępne jako CRX2).

Jeśli rozszerzenie używasz zawiera moduły SO-specyficznych (np NaCl), następnie trzeba dodać dodatkowe parametry ( os, arch,nacl_arch ).

Pełną logikę generowania pełnego adresu URL pobierania CRX można znaleźć w get_crx_urlfunkcji https://github.com/Rob--W/crxviewer/blob/master/src/cws_pattern.js .

To jest część rozszerzenia Chrome Extension Source Viewer, dostępnego w Chrome Web Store: https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin


Pamiętaj, że otwarcie poprzedniego adresu URL w Chrome nie spowoduje pobrania, ponieważ Chrome automatycznie przechwytuje odpowiedzi, dla których Content-Typeustawiono application/x-chrome-extension. Jeśli chcesz programowo pobrać plik crx w rozszerzeniu Chrome, zmień typ MIME naapplication/octet-stream (np. Jak zrobiono w src/lib/crx-to-zip.js).

Rob W
źródło
1
Uwaga: niektóre rozszerzenia zawierają moduły NaCl, które wymagają dodatkowych parametrów ciągu zapytania. Zobacz kod źródłowy mojego rozszerzenia crxviewer, aby sprawdzić skład adresu URL: github.com/Rob--W/crxviewer/commit/ ...
Rob W
Chrome wpadł w błąd, próbując otworzyć ten adres URL, jeśli korzystasz z systemu Windows, otwórz go w IE, aby pobrać go bez problemu.
craastad
@craastad Ponieważ Chrome rozpoznaje plik jako rozszerzenie. Zainstaluj rozszerzenie przeglądarki źródła rozszerzenia Chrome, aby łatwo uzyskać dostęp do kodu źródłowego rozszerzenia w przeglądarce Chrome / Opera.
Rob W,
Niech cię Bóg błogosławi, nieznajomy internetowy. To działa w momencie tego komentarza. Starszy adres URL, który miałem, działał tylko dla niektórych adresów URL, ale nie dla wszystkich. Ten rozwiązał to: D
BBerastegui
Można to wykorzystać do zainstalowania motywów w Microsoft Edge (Chromium) bez konieczności ufania witrynie lub rozszerzeniu strony trzeciej w celu uzyskania CRX; po prostu wbij adres URL zgodnie z opisem bezpośrednio w pasku adresu, a Edge zrobi resztę.
Ashley,
54

Jest ta strona internetowa, która właśnie to robi:

http://chrome-extension-downloader.com/

John Kentucky
źródło
25
... z wyjątkiem tego, że nigdy nie możesz być pewien, że pobierasz ten sam kod z ich witryny, który chciałeś.
törzsmókus
5
@ inf3rno skąd wiesz? tylko dlatego, że pobrane rozszerzenie „działa” dla Ciebie, może również wykraść Twoje dane lub zabić kocięta w tle. dlatego powinieneś pobierać tylko z serwerów Google, chyba że możesz sprawdzić integralność pliku crx (np. przez sumę kontrolną)
törzsmókus
6
@ törzsmókus Sprawdziłem kod w pliku crx, tak wiem. Ofc. nie ma gwarancji, że ten downloader jest zawsze bezpieczny.
inf3rno
2
Wiem, że ta odpowiedź jest trochę stara, ale póki ta strona wciąż żyje - próbuje załadować skrypty innych firm. Bądź świadomy przed użyciem.
Jonathan Walker,
7

Napisałem mały skrypt w Pythonie, aby zautomatyzować ten proces, co @serg @Rob W.

https://gist.github.com/arulrajnet/2424bc1ffc40324f3786

możesz też tego użyć.

python ChromeAppDownloader.py -u https://chrome.google.com/webstore/detail/google-maps/lneaknkopdijkpnocmklfnjbeapigfbh

Oto, jak musisz używać.

arulraj.net
źródło
3

Jest to mniej zaawansowany technicznie sposób niż użycie skrzypka i zdaję sobie sprawę, że ma to teraz trzy lata, ale zawsze sprawdzam, czy ktoś inny rozwiązał problem. Więc znalazłem, że ktoś to zrobił i po prostu kilka razy z powodzeniem użyłem ich rozwiązania. Ich rozwiązaniem jest rozszerzenie, które może pobierać inne rozszerzenia, o nazwie Give Me CRX:

https://chrome.google.com/webstore/detail/give-me-crx/acpimoebmfjpfnbhjgdgiacjfebmmmci

Bewc
źródło
3

Polecam również wypróbować tę stronę http://crxextractor.com . Tutaj możesz pobrać rozszerzenie według adresu URL sklepu internetowego Chrome i wyodrębnić jego kod źródłowy w przeglądarce, bez dodatkowego oprogramowania, a wszystko można zrobić jednym lub dwoma kliknięciami.

Vladimir Ignatyev
źródło
Chrome blokuje pobieranie, nie dając mi opcji zachowania pliku poza przyciskiem odrzucenia. Jak to obejść?
echo
3

Możesz użyć poniższego szablonu adresu URL,

https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&x=id%3D[EXTENSIONID]%26uc

PRODVERSION jest wersja Chrome. (pobierz to z ustawień -> Pomoc -> O Google Chrome). Np. Wersja 69.0.3497.100(oficjalna kompilacja) (64-bitowa)

EXTENSIONID jest id dla rozszerzenia. Przykład: Oto przykładowa wtyczka, https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji?hl=en identyfikator tohmhgeddbohgjknpmjagkdomcpobmllji

Tak więc przykładowe żądanie pobrania będzie https://clients2.google.com/service/update2/crx?response=redirect&prodversion=69.0.3497.100&x=id%3Dhmhgeddbohgjknpmjagkdomcpobmllji%26uc

główny
źródło
2

Utwórz zakładkę dodaj funkcję javascript jako adres. Przejdź do rozszerzenia Chrome, które chcesz pobrać, a następnie kliknij zakładkę i powinno rozpocząć się pobieranie.

javascript:(function(){
    var pathname = location.pathname;pathArray = pathname.split("/");   
    location = ("http://clients2.google.com/service/update2/crx?response=redirect&x=id"+"%" + "3D" + pathArray[pathArray.length -1]+"%" + "26uc%" + "26lang%" + "3Den-US&prod=chrome"); })();

Dzięki

Zalmy
źródło
1
@adardesign Czy próbowałeś tego? To nawet nie działa z dwóch powodów: 1. Użyj location.pathnamezamiast location.href. Jeśli adres URL zawiera ?lang=en, fragment ten nie powiedzie się. 2. Chrome nie „rozpocznie pobierania”, ale poprosi o zainstalowanie rozszerzenia.
Rob W,
Masz rację, właśnie próbowałem odpowiedzieć na to pytanie następującą treścią, ale potem zobaczyłem tę odpowiedź, w której ten sam pomysł został umieszczony w bookmarkletu… i nie, nie próbowałem tego. Zobacz streszczenie
adardesign
location.href = 'http://clients2.google.com/service/update2/crx?response=redirect&prodversion=42&x=' + encodeURIComponent('uc&id=' + location.pathname.split('/').pop());
Alf Eaton
1
to działa dla mniejavascript:(function(){ location.href = 'https://clients2.google.com/service/update2/crx?response=redirect&prodversion=38.0&x=' + encodeURIComponent('id=' + location.pathname.split('/').pop() + '%26installsource%3Dondemand%26uc'); })();
koza
2

Aby pobrać rozszerzenie Chrome z podanego identyfikatora, możesz po prostu użyć w ten sposób

var currentEXTId = 'bjclhonkhgkidmlkghlkiffhoikhaajg';    
let downloadURL = https://clients2.google.com/service/update2/crx?response=redirect&x=id%3D" + currentEXTId + "%26uc&prodversion=32;

Powyższy adres to adres URL pobierania rozszerzenia Chrome. Istnieje również rozszerzenie do Chrome, które może pomóc w pobraniu rozszerzenia Chrome w postaci pliku zip lub crx. https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda

Również kod pokazujący, jak to się robi, jest dostępny w tym repozytorium Github

Ashokkumar
źródło
1
Prosimy nie publikować w odpowiedzi tylko jakiegoś narzędzia lub biblioteki. Przynajmniej pokaż, jak rozwiązuje problem w samej odpowiedzi.
Zoe
0

Żaden z ręcznych sposobów w tym poście nie działa dla mnie, więc szukałem adresu URL, aby bezpośrednio pobrać rozszerzenie. Znajdź to i działa idealnie dla mnie.

https://clients2.google.com/service/update2/crx?response=redirect&prodversion=49.0&x=id%3D###EXTENSION_ID###%26installsource%3Dondemand%26uc

Musisz zastąpić ### EXTENSION_ID ### identyfikatorem rozszerzenia ze sklepu Chrome. Jego część adresu URL.

Przykładowe rozszerzenie Tłumacza Google:

https://clients2.google.com/service/update2/crx?response=redirect&prodversion=49.0&x=id%3Daapbdbdomjkkjkaonfhkkikfgjllcleb%26installsource%3Dondemand%26uc
Schmidko
źródło
0

Działa to w przypadku przeglądarki Microsoft Edge Chromium:

https://edge.microsoft.com/extensionwebstorebase/v1/crx?response=redirect&prod=chromiumcrx&prodchannel=&x=id%3D<EXTENSION_ID_HERE>%26installsource%3Dondemand%26uc 
Давид Манжула
źródło