diff --git a/README.md b/README.md deleted file mode 100644 index ee79408..0000000 --- a/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Chzzk Bypass - -치지직(CHZZK) 관련 Chrome 계열 확장. **1.2.2 부터 모든 우회 기능이 제거되었습니다.** - -## 우회 기능 중단 안내 - -이 확장은 더 이상 치지직 페이지에 개입하지 않습니다. - -- `content_scripts` 제거 -- `declarativeNetRequest` 규칙 / 권한 제거 -- `navigator.userAgent` / `platform` / `userAgentData` 위장 코드 제거 -- HTTP 요청 헤더 (`User-Agent`, `sec-ch-ua*`) 수정 규칙 제거 - -이전 버전(`1.1.x` ~ `1.2.1`) 의 기능과 제거 사유는 아래와 같습니다. - -### 타임머신 강제 활성화 (`1.1.x`) - -스트리머가 타임머신을 꺼둔 라이브에서도 되감기 바 UI 를 띄우는 기능. `1.2.0` 부터 제거. - -- 치지직의 DVR window 는 스트리머가 타임머신을 켰을 때만 CDN 이 프로비저닝합니다. 클라이언트에서 `timeMachineActive` 플래그만 `true` 로 바꿔도 HLS 매니페스트(`timemachine=false`) 와 어긋나서 실제 되감기는 동작하지 않습니다. -- 이 클라이언트-사이드 상태 불일치가 치지직의 비정상 접근 감지를 트리거해 **"허용되지 않는 비정상적 접근입니다. 반복적인 접근 시 운영 정책에 따라 조치될 수 있습니다."** 팝업을 띄우는 것이 실측으로 확인되었습니다. - -### 그리드 우회 / 1080p Mac 위장 (`1.2.0` ~ `1.2.1`) - -`navigator.*` 와 HTTP 요청 헤더를 Mac 으로 위장해 그리드 설치 없이 1080p 시청을 시도. `1.2.2` 부터 제거. - -- JS 레벨만 위장한 `1.2.0`, JS + 저엔트로피 HTTP 헤더까지 위장한 `1.2.1` 모두 동일한 비정상 접근 팝업을 트리거하는 것이 실측으로 확인되었습니다. -- 치지직은 고엔트로피 Client Hints (`sec-ch-ua-platform-version`, `sec-ch-ua-arch`, `sec-ch-ua-bitness`, `sec-ch-ua-full-version-list`), WebGL `UNMASKED_RENDERER_WEBGL`, Canvas / AudioContext, 폰트 목록 등 다수의 핑거프린팅 신호를 추가로 보고 있습니다. 클라이언트 확장만으로는 이 신호를 모두 일관되게 위장할 수 없으며, lockstep 으로 따라가는 것도 의미가 없습니다. -- 반복 접근 시 계정 제재 위험이 명시되어 있어, 우회 시도 자체를 중단했습니다. - -대안: 그리드(Grid) 정식 설치, 또는 720p 시청. - -## 설치 / 제거 - -설치 의미가 없습니다. 이미 설치되어 있다면 `chrome://extensions` 에서 제거하시는 걸 권장합니다. - -## 파일 구조 - -``` -manifest.json 확장 정의 (MV3, 권한 없음, content_scripts 없음) -popup.html/css/js 툴바 팝업 (상태 안내만 표시) -icons/ 확장 아이콘 -``` - -## 면책 - -본 확장은 학습 및 개인 사용 목적의 우회 도구였습니다. `1.2.2` 부터 우회 기능을 제공하지 않습니다. 사용에 따른 모든 책임은 사용자에게 있으며, 치지직 약관 및 관련 법령을 준수하여 사용하시기 바랍니다. diff --git a/content.js b/content.js new file mode 100644 index 0000000..860a910 --- /dev/null +++ b/content.js @@ -0,0 +1,26 @@ +// 치지직 플레이어가 OS를 검사할 때 Mac으로 인식하도록 속임 +Object.defineProperty(navigator, 'userAgent', { + get: function () { + return 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'; + } +}); + +Object.defineProperty(navigator, 'platform', { + get: function () { + return 'MacIntel'; + } +}); + +Object.defineProperty(navigator, 'userAgentData', { + get: function () { + return { + brands: [ + { brand: "Chromium", version: "122" }, + { brand: "Google Chrome", version: "122" }, + { brand: "Not-A.Brand", version: "24" } + ], + mobile: false, + platform: "macOS" + }; + } +}); \ No newline at end of file diff --git a/manifest.json b/manifest.json index 9eb309e..103673f 100644 --- a/manifest.json +++ b/manifest.json @@ -1,8 +1,8 @@ { - "name": "Chzzk Bypass", - "version": "1.2.2", + "name": "Chzzk Mac Spoofer (Grid Bypass)", + "version": "1.0.0", "manifest_version": 3, - "description": "치지직(CHZZK) 우회 기능은 비정상 접근 팝업 위험으로 인해 중단되었습니다. 확장은 더 이상 페이지에 개입하지 않습니다.", + "description": "치지직(CHZZK) 시청 시 브라우저 환경을 Mac으로 위장하여 그리드 설치 없이 1080p 화질을 쾌적하게 시청합니다.", "icons": { "16": "icons/icon16.png", "48": "icons/icon48.png", @@ -10,6 +10,35 @@ }, "action": { "default_popup": "popup.html", - "default_title": "Chzzk Bypass (비활성)" - } -} + "default_title": "Chzzk Bypass Status" + }, + "permissions": [ + "declarativeNetRequest", + "declarativeNetRequestWithHostAccess" + ], + "host_permissions": [ + "*://*.naver.com/*", + "*://*.ncloud.com/*" + ], + "declarative_net_request": { + "rule_resources": [ + { + "id": "rules", + "enabled": true, + "path": "rules.json" + } + ] + }, + "content_scripts": [ + { + "matches": [ + "*://chzzk.naver.com/*" + ], + "js": [ + "content.js" + ], + "run_at": "document_start", + "world": "MAIN" + } + ] +} \ No newline at end of file diff --git a/popup.html b/popup.html index a9d6479..0ef33f5 100644 --- a/popup.html +++ b/popup.html @@ -8,18 +8,18 @@

Chzzk Bypass

- 비활성 + 작동 중
-

우회 기능은 중단되었습니다.

+

현재 Mac OS로 위장하여
그리드를 우회하고 있습니다.

- 상태 - 페이지에 개입하지 않음 + 대상 사이트 + chzzk.naver.com
- 사유 - 치지직 비정상 접근 팝업 위험 + 우회 상태 + 정상 (1080p)
@@ -29,4 +29,4 @@
- + \ No newline at end of file diff --git a/popup.js b/popup.js index 5085174..3f21270 100644 --- a/popup.js +++ b/popup.js @@ -1,2 +1,5 @@ -// 팝업 UI 로드만 처리합니다. 페이지 개입 기능은 1.2.2 에서 제거되었습니다. -document.addEventListener('DOMContentLoaded', function () {}); +// 팝업이 로드될 때 실행됩니다. +document.addEventListener('DOMContentLoaded', function () { + console.log("Chzzk Bypass 팝업 UI 로드 완료"); + // 향후 우회 On/Off 토글 버튼 등을 구현할 공간입니다. +}); \ No newline at end of file diff --git a/rules.json b/rules.json new file mode 100644 index 0000000..e386fd1 --- /dev/null +++ b/rules.json @@ -0,0 +1,31 @@ +[ + { + "id": 1, + "priority": 1, + "action": { + "type": "modifyHeaders", + "requestHeaders": [ + { + "header": "user-agent", + "operation": "set", + "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" + }, + { + "header": "sec-ch-ua-platform", + "operation": "set", + "value": "\"macOS\"" + } + ] + }, + "condition": { + "urlFilter": "||chzzk.naver.com", + "resourceTypes": [ + "main_frame", + "sub_frame", + "xmlhttprequest", + "ping", + "script" + ] + } + } +] \ No newline at end of file