Google 크롬 확장 파일을 직접 수정하려면 어떻게합니까? (.CRX)


96

이러한 확장이 어떤 언어로되어 있는지 잘 모르겠습니다. Html, Javascript 또는 JSON으로 작성된 것 같습니다. 내가 아는 한 .CRX 파일에 "압축"되어 있습니다.

Chrome 확장 프로그램의 html, js, json (또는 사용하는 언어)을 직접 수정할 수 있습니까?


나는 이것을 알아 내려고 많은 시간을 낭비했고 여기에 나열된 많은 접근 방식을 시도했습니다. Mac을 사용 중이고 압축 해제가 작동하지 않으면 Keka를 다운로드하여 사용해보십시오. 7-Zip을 기반으로 한 무료 Mac 유틸리티입니다. CRX 파일의 이름을 바꿀 필요가 없습니다. 앱을 열고 CRX 파일을 그 위에 놓습니다. 내용을 폴더에 추출합니다. keka.io
Trevor

답변:


87

Google에서 검색 한 결과 다음을 찾았습니다.

Google 크롬 확장 프로그램 파일 유형은 CRX입니다. 본질적으로 압축 형식입니다. 따라서 확장, 스크립트 및 코드 뒤에 무엇이 있는지 확인하려면 파일 형식을 "CRX"에서 "ZIP"로 변경하십시오.

파일의 압축을 풀면 필요한 모든 정보를 얻을 수 있습니다. 이렇게하면 내장을 확인하고 확장 프로그램을 직접 작성하는 방법을 배우거나 필요에 맞게 수정할 수 있습니다.

그런 다음 자동으로 파일을 CRX로 다시 생성하는 Chrome의 내부 도구로 백업 할 수 있습니다. 클릭만으로 설치할 수 있습니다.


14
crx 파일에는 압축 된 콘텐츠 앞에 추가 헤더가 있습니다. developer.chrome.com/extensions/crx.html
se_pavel 2013 년

5
압축을 풀면 파일이 something.zip.cpgz가됩니까?
f01 2016-04-28

7
확장명을에서 crx로 변경 zip하고 클릭하면 작동하지 않습니다. 이 unzip명령은 crx확장 기능 에서도 작동 합니다.
iRonin

1
MacOS에서는 파일 형식을“CRX”에서“ZIP”로 변경하여 CRX를 추출 할 수 없습니다. zip 파일을 추출하려고하면 다른 파일이 생성되기 때문에 FileName.zip.cpgz
Ripon Kumar Saha

106

설치된 Chrome 확장 프로그램 디렉토리는 다음과 같습니다.

  1. 수정하려는 확장 폴더를 복사하십시오. (확장 ID에 따라 이름이 지정됩니다. 확장 ID를 찾으려면으로 이동 chrome://extensions/하십시오.) 복사 한 후에는 _metadata 폴더를 제거해야합니다.

  2. 에서 chrome://extensions개발자 모드 를 선택합니다 ...로드 압축을 푼 확장 이이이 버전이라는 하위 폴더를 포함하는 경우와 것은, 복사 한 확장 폴더를 선택 매니페스트 파일이이 버전의 폴더를 선택,이 파일은 크롬 필요합니다.

  3. 변경 한 다음 새로 고침을 선택하고 확장 프로그램의 페이지를 새로 고침하여 변경 사항을 확인하세요.


Chrome 확장 디렉토리

맥:

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

윈도우 7:

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

윈도우 XP:

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

Ubuntu 14.04 :

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

3
참고로, 적어도 Windows에서는 \Default확장 위치 경로 의 디렉터리가 확장이 설치된 프로필을 가리 킵니다. Chrome에서 여러 프로필을 사용하는 경우 \Default기본 프로필이며 \Profile1첫 번째 추가 프로필이 생성됩니다.
HeatfanJohn

2
확장 프로그램의 소스 코드에 빠르게 액세스하려면이 크롬 확장 프로그램을 확인하세요. chrome.google.com/webstore/detail/extension-source-locator/…
Shaihi

@Shaihi 나는 그것이 당신의 확장이라고 생각합니다. 여기에는 몇 가지 문제가 있습니다. 가장 중요한 것은 새 탭을 가로채는 것입니다. 또한 null사용자 이름을 반환 하므로 복사 된 경로가 작동하지 않습니다. 저는 OS X에 있습니다. 멋진 아이디어이지만 약간만 필요합니다. 작업. 아, 그리고 확장과 확장 ID 사이의 슬래시가 누락되었습니다.
JDavis 2013

@JDavis-입력 해 주셔서 감사합니다! 그것은 내 것입니다 ... 슬래시를 수정했습니다.-아직 Mac을 테스트하지 않았습니다. 새 탭을 하이재킹하는 것에 관해서는-클릭을 줄일 것이라고 생각했지만 일단 입력을 받으면 변경을 고려할 것입니다.
Shaihi

1
확장 폴더 어디에 복사 합니까? 다른 위치에 복사 한 후 "Load unpacked extensions ..."를 시도했을 때 "Error Loading Extension"... "Manifest 파일이 없거나 읽을 수 없습니다."라는 메시지가 표시됩니다.
jbyrd

45

서명 된 CRX 파일에는 대부분의 / 모든 압축 해제 기가 barf를 발생시키는 헤더가 있습니다. 이것이 가장 쉬운 방법은 아니지만 bash 명령 줄에서 수행하는 방법은 다음과 같습니다.

기본 아이디어는 원래 서명되지 않은 zip 파일이 시작되는 위치를 찾은 다음 CRX 파일을 zip 파일로 복사하지만 CRX 헤더는 제외하는 것입니다.

  1. hexdump -C the_extension.crx | more
  2. 출력에서 ASCII 바이트 "PK"인 zip 파일의 시작을 찾습니다. 내가 시도한 샘플에서 PK는 오프셋 0x132에 있습니다. (CRX 사양을 읽었을 때이 번호는 서명 길이가 다르기 때문에 파일마다 다를 것이라고 생각합니다.)이 번호는 다음 단계에서 사용할 것입니다.
  3. dd if=the_extension.crx of=the_extension.zip bs=1 skip=0x132 (skip 매개 변수의 경우 이전 단계에서 찾은 오프셋을 대체하십시오.)
  4. 이제 방금 만든 .zip의 압축을 풉니 다.
  5. 압축이 풀린 디렉토리의 파일을 조작 한 다음 서명되지 않은 / 압축 해제 된 확장 프로그램을 Chrome 설치에 설치하거나 다른 Chrome 확장 프로그램과 마찬가지로 다시 패키징합니다.

이 작업을 수행하는 더 간결한 방법이 있다고 확신합니다. Bash 전문가, 내 대답을 개선하십시오.


3
좋은 힌트! 내 PK 오프셋도0x132
Stefan Schmidt

21
실제로 명령 줄 유틸리티를 사용하여 압축을 풀 수있었습니다 unzip. 헤더의 추가 306 바이트에 대해 불평했지만 어쨌든 그렇게했습니다.
Lex R

2
unzip완벽하게 작동합니다 :warning [YouTubeCenter.crx]: 304 extra bytes at beginning or within zipfile (attempting to process anyway)
나빈

hexdump의 오프셋을 어떻게 알아 내나요? 나는 PK가 들어있는 다음 줄이00000230 63 d5 11 76 bf 9f 50 4b 03 04 14 00 08 08 08 00 |c..v..PK........|
kchoi

내가 "Bash 전문가"자격이되는지 모르겠지만 이것은 나를 위해 작동합니다 :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

참고 일부 압축 프로그램 문제 사티시 같은 CRX 설명 압축을 해제 가지고 -이 경우 사용해보십시오 7 - 우편 번호 - http://www.7-zip.org/


1
와! 적어도 비스타에서는 파일 확장자를 변경할 필요조차 없습니다. 7-zip은 그 나쁜 소년의 마을로 이동합니다!
JKirchartz

아니요, 그렇지 않습니다. .crx를 .zip으로 이름을 바꾸었고 7-ZIP은 ZIP을 열 수 없다는 오류를 표시합니다.
Jez

2

다른 답변을 읽었으며 몇 가지 다른 사항에 주목하는 것이 중요하다는 것을 알았습니다.

1.) Mac 사용자의 경우 : "압축 해제 된 확장 프로그램로드 ..."를 클릭하면 라이브러리 폴더가 기본적으로 숨겨지며 (Mac에서 숨김 파일 표시 옵션이 토글 된 경우에도) Chrome의 파인더 창에 표시되지 않을 수 있습니다. .

2.) 확장 프로그램이 포함 된 하위 폴더는 확장 프로그램의 ID를 따서 명명 된 임의의 영숫자 문자열이며 개발자 플래그가 true로 설정된 경우 Chrome 확장 프로그램 페이지에서 찾을 수 있습니다. (확장 프로그램 페이지의 오른쪽 상단 확인란)


그렇다면 # 1에 대한 해결책은 무엇일까요? 이미 숨겨진 폴더를 표시하고 있지만 말했듯이 확장 디렉터리의 위치를 ​​선택하려고 할 때 디렉터리가 표시되지 않습니다.
O_O

@o_O-오랜만에 왔지만 ... 여기 있습니다 : macworld.com/article/2057221/…
jenming

2

(이미 말 했음) Chrome 테마를 만드는 동안 이것을 발견했습니다 (지금은 오래되었습니다 ... :-P)

Chrome 테마, 확장 프로그램 등은 압축 된 파일입니다. 가져 7 - 우편 이나 WinRAR과를 압축을 해제 할 수 있습니다. 각 확장 / 테마에는 manifest.json 파일이 있습니다. 메모장에서 manifest.json 파일을 엽니 다. 그런 다음 코딩을 알고 있으면 코드를 수정하십시오. 다른 파일이있을 것입니다. 매니페스트 파일을 보면 해당 파일이 무엇인지 파악할 수 있습니다. 그러면 모든 것을 변경할 수 있습니다 ...


1

.CRX 파일은 .ZIP 파일과 유사합니다. 확장자를 변경하고 마우스 오른쪽 버튼으로 클릭> 파일 추출하기 만하면됩니다.

파일을 추출한 후-> 파일을 수정하고 zip에 추가하고 확장자를 .crx로 다시 변경하십시오.

다른 방법으로-> Chrome 열기-> 설정-> 확장 프로그램-> 개발자 옵션 활성화-> 압축을 푼 확장 프로그램 (수정 된 압축 해제 파일 폴더)을로드 한 다음 압축 확장을 클릭합니다.

출처


1

이제 Chrome은 다중 사용자이므로 ExtensionsOS 사용자 프로필, Chrome 사용자 프로필, 내 첫 번째 Chrome 사용자는 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 아카이브이기 때문에 수정할 수 있습니다. 확장을 다운로드하고, 소스 코드를 추출하고, 수정 (사용자 측에서 테스트 및 디버그)하고 .CRX 파일로 다시 패키징 할 수 있습니다.

.CRX 확장자를 다운로드하고 소스 코드를 추출하기 위해이 도구를 검색했습니다. http://crxextractor.com

.CRX 파일 형식을 구문 분석하고 소스 코드가 포함 된 실제 .zip을 추출합니다.


0

Chrome의 휴대용 버전을 설치했거나 사용자 지정 디렉터리에 설치 한 경우 위 답변에서 참조한 디렉터리에서 확장 프로그램을 사용할 수 없습니다.

Chrome의 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 "대상"디렉토리를 확인하십시오. 거기에서 위의 한 디렉토리로 이동하면 User Data폴더 를 볼 수 있으며 위에서 언급 한 답변을 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.