Commit Graph

7 Commits

Author SHA1 Message Date
chzzk-bypass owner
a59992dc87 v1.2.2: 우회 기능 전면 제거 (비정상 접근 팝업 위험)
v1.2.0(JS UA 위장), v1.2.1(JS + 저엔트로피 HTTP 헤더 위장) 모두
치지직의 "허용되지 않는 비정상적 접근입니다" 팝업을 실측에서 트리거함이
확인됐다. 치지직은 고엔트로피 Client Hints, WebGL renderer, Canvas/Audio
등 다수의 핑거프린팅 신호를 추가로 보고 있으며, 클라이언트 확장만으로는
이를 일관되게 위장할 수 없다. 반복 접근 시 계정 제재 위험이 명시되어
있어 우회 시도 자체를 중단한다.

변경:
- content.js 삭제 (navigator.userAgent / platform / userAgentData 위장 제거)
- rules.json 삭제 (declarativeNetRequest 헤더 위장 규칙 제거)
- manifest.json: content_scripts / declarative_net_request / permissions /
  host_permissions 전부 제거. 1.2.1 → 1.2.2, description 갱신
- popup.html / popup.js: 상태 안내만 표시. "Mac 위장 (1080p)" 등 우회 표현 제거
- README.md: 우회 기능 중단 사유 명시, 대안으로 그리드 정식 설치 / 720p 안내

검증:
- 콘솔에 [chzzk-bypass:*] 런타임 로그 발생하지 않음 (content.js 부재)
- nlog.js getHighEntropyValues 오류 본 확장에서 트리거 안 함
- manifest 누락 참조 없음 (rules.json / content.js 참조 전부 제거)
2026-05-28 19:21:30 +09:00
chzzk-bypass owner
15a852c8ad v1.2.1: HTTP 헤더(User-Agent / sec-ch-ua*)도 Mac 으로 위장
v1.2.0 까지는 navigator.* JS 값만 Mac 으로 덮어쓰고 실제 HTTP 요청 헤더는
원본(Windows)으로 나가서, 치지직 핑거프린팅이 클라이언트 사이드 불일치를
잡아내 "허용되지 않는 비정상적 접근" 팝업을 띄우는 것으로 추정됨.

declarativeNetRequest modifyHeaders 규칙으로 다음 요청 헤더를 Mac 값으로
덮어써 JS 레벨 (navigator.*) 과 네트워크 레벨이 일치하도록 한다:

- User-Agent
- sec-ch-ua
- sec-ch-ua-platform
- sec-ch-ua-mobile

부수 변경:
- host_permissions 에 *.pstatic.net 추가 (치지직 비디오/이미지 CDN)
- README / content.js 주석에 두-레이어 위장 구조 명시
2026-05-28 18:27:31 +09:00
chzzk-bypass owner
0a326e5d80 v1.2.0: 타임머신 강제 활성화 기능 제거 + nlog.js getHighEntropyValues 오류 수정
- timemachine.js 제거 및 manifest content_scripts 에서 빼냄
  스트리머가 끈 타임머신은 서버 측 DVR 프로비저닝이 없어 cosmetic 우회만
  가능했고, 클라이언트-사이드 상태 불일치가 치지직 비정상 접근 감지를
  트리거해 "허용되지 않는 비정상적 접근입니다" 팝업 + 계정 제재 위험이
  실측으로 확인되어 제거.
- content.js 의 navigator.userAgentData override 에 getHighEntropyValues /
  toJSON 까지 일관된 Mac 값으로 구현. 기존엔 메서드가 없어서 nlog.js 가
  Uncaught TypeError: e.getHighEntropyValues is not a function 을 던졌음.
- popup.html 의 "타임머신: 강제 활성화" 상태 항목 제거.
- README 를 현재 동작 (그리드 우회만) 에 맞춰 재작성, 타임머신 미지원
  사유 명시.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 15:15:43 +09:00
tkrmagid
ed2c9c9fc3 docs: v1.1.3 동작 설명과 일치하도록 주석/README 정리
- timemachine.js 헤더에서 'live-playback-json 매니페스트 교체로 실제 seek 살린다'
  설명을 제거하고 cosmetic UI-only 패치임을 명시
- README 파일 구조: 'fetch 후킹' -> 'fetch + XHR 후킹'
- README 동작 확인 로그: 'livePlaybackJson swapped for DVR manifest' (현재 코드에
  없는 문자열) 를 실제 출력되는 'inner livePlaybackJson meta/live patched
  (liveRewind, duration, timeMachine)' 로 교체
2026-05-28 14:39:59 +09:00
Claude (chzzk-bypass owner)
9a07bf87a7 v1.1.3: livePlaybackJson 내부 meta/live 도 패치 (cosmetic UI only)
발견: live-detail 의 outer boolean (timeMachineActive, timeMachinePlayback)
두 개를 true 로 만들어도 재생바가 안 뜸. 외부 자료
(jaesung9507/nvver playback.go) 확인 결과, 플레이어는 livePlaybackJson 내부의
meta.liveRewind / meta.duration / live.timeMachine 을 보고 UI 를 결정함.
이 필드들은 omitempty 라서 DVR ON 일 때만 응답에 존재.

수정:
- patchLiveDetailData 에서 livePlaybackJson 을 파싱해 meta.liveRewind=true,
  meta.duration 보강 (1h 기본), live.timeMachine=true 주입 후 재직렬화.
- 깨진 live-playback-json 외부 호출은 이전 커밋에서 이미 제거됨.

근본적 한계 (README 에 명시):
- 이건 cosmetic 패치다. CDN 의 DVR window 는 스트리머가 타임머신을 켰을 때만
  서버가 프로비저닝하므로, 스트리머가 꺼둔 라이브는 HLS 매니페스트에 과거
  segment 자체가 없음. 재생바가 떠도 실제 seek 은 동작 안 할 가능성 높음.
- live-playback-json 엔드포인트가 timeMachine-off 채널에서 404 인 것도 같은
  이유. Streamlink/ChzzkDownloader 도 timeMachineActive 일 때만 부름.
- 진짜 force-timemachine 은 서버 사이드(CDN) 의 결정이라 클라이언트에서
  근본적으로 우회 불가.

manifest 버전 1.1.2 → 1.1.3, README 한계 명시.
2026-05-28 14:33:14 +09:00
Claude (chzzk-bypass owner)
7fa34bf6ea XHR 후킹 추가: 치지직이 axios 로 부르는 live-detail 도 가로채도록 수정
문제: v1.1.0 의 fetch 후킹은 작동(`fetch hook installed` 로그 확인)했지만
실제 라이브 페이지에서 `forcing timeMachine ON` 로그가 한 번도 안 떴음.
콘솔 스택트레이스에 `XMLHttpRequest.send` 와 `xhr @ main.d2cbcc55.js` 가
반복 등장해 치지직 React 앱이 axios over XHR 로 live-detail 을 호출하는
것이 확인됨 → fetch 만 후킹한 v1.1.0 은 무용지물이었음.

수정:
- timemachine.js: XMLHttpRequest 의 open/setRequestHeader/send 를 후킹.
  live-detail URL 이면 native send 대신 우리가 fetch 로 직접 요청을
  날리고, 응답을 patchLiveDetailData 로 패치한 뒤 defineProperty 로
  readyState/status/responseText/response/responseURL 등을 덮어쓰고
  readystatechange/load/loadend 이벤트를 합성 발화. responseType
  (text/json/arraybuffer/blob) 별 response 값도 맞춰 만든다.
- fetch 후킹도 유지 (혹시 일부 경로가 fetch 쓸 수 있음).
- 로그 메시지를 `hooks installed (fetch + XHR)` 로 변경하고 XHR 진입
  지점에 `XHR live-detail intercepted for <channelId>` 진단 로그 추가.
- urlOf() 헬퍼로 string/Request/URL 입력을 일관 처리.
- manifest 버전 1.1.0 → 1.1.1.
- README 동작 방식 설명/확인 로그 갱신.
2026-05-28 01:43:29 +09:00
Claude (chzzk-bypass owner)
2c6a345219 타임머신 강제 활성화 기능 추가 및 README 작성
- timemachine.js: live-detail 응답을 fetch 후킹으로 가로채
  timeMachineActive 를 true 로 만들고, live-playback-json 의 DVR
  매니페스트로 livePlaybackJson 을 교체해 되감기 UI 와 실제 seek
  동작을 살린다. 스트리머가 타임머신을 꺼둔 라이브에서도 동작.
- manifest.json: timemachine.js 를 content_scripts 에 추가하고
  버전을 1.1.0 으로 올림. name/description 을 다기능에 맞게 갱신.
- popup.html: 타임머신 강제 활성화 상태 표시 항목 추가.
- README.md: 기능 설명, 설치 방법, 동작 확인 로그, 면책 명시.
2026-05-28 01:27:58 +09:00