본문으로 건너뛰기
피드

광고를 숨기는 대신 ‘OBEY’ 타일로 바꿔버리는 uBO Lite 포크

open-source 약 7분
vote
0
댓글
북마크

uBlock Origin Lite를 포크해서, 숨겨진 광고 자리에 영화 ‘화성인 지구 정복’의 선전 문구를 흰 타일로 띄우는 장난감성 확장 프로그램이 나왔다. 네트워크 차단으로 사라진 광고는 건드릴 수 없고, CSS 기반 cosmetic filtering으로 잡힌 광고 요소만 DOM에서 찾아 바꾼다.

  • 1

    uBO Lite의 cosmetic filtering 동작을 패치해 광고 요소를 숨기지 않고 흰 박스와 문구 오버레이로 대체함

  • 2

    문구는 ‘OBEY’, ‘CONSUME’, ‘WATCH TV’, ‘NO INDEPENDENT THOUGHT’ 같은 영화 속 슬로건에서 랜덤 선택됨

  • 3

    Basic 모드에서는 네트워크 차단이 대부분이라 타일이 안 보이고, Optimal 또는 Complete 모드에서 cosmetic-filtered 광고에만 적용됨

  • 4

    Node 22가 필요하며 Chromium, Firefox, Edge, Safari 빌드를 만들 수 있지만 공식 uBlock Origin 제품은 아님

  • uBlock Origin Lite를 포크해서, 광고를 그냥 숨기는 대신 영화 ‘They Live’풍 선전 문구 타일로 바꾸는 확장 프로그램이 나옴

    • 광고 자리에 흰 박스가 생기고, 그 위에 OBEY, CONSUME, WATCH TV, SLEEP, SUBMIT, CONFORM, BUY, NO INDEPENDENT THOUGHT 같은 문구가 랜덤으로 박힘
    • 원작 아이디어는 만든 사람이 2015년에 블로그에 썼던 ‘They Live adblock mode’에서 온 것이라고 함
  • 핵심은 uBO Lite의 cosmetic filtering을 살짝 비트는 것임

    • 원래 uBO Lite는 매칭된 광고 요소에 display: none !important 같은 CSS를 주입해서 안 보이게 만듦
    • 이 포크는 그 주입 지점을 패치해서, 요소를 숨기는 대신 흰색 마스크와 ::after 오버레이를 적용함
    • 오버레이 문구는 data-ubol-they-live 속성에서 읽고, DOM을 훑으면서 각 광고 요소에 랜덤 문구를 붙임
  • 단, 모든 광고가 ‘OBEY’ 타일로 바뀌는 건 아님

    • uBO Lite의 기본값인 Basic filtering은 네트워크 레벨에서 광고 요청을 막는 방식이라 DOM 요소 자체가 안 생김
    • DOM 요소가 없으면 꾸밀 대상도 없어서, 그냥 일반 광고 차단기처럼 빈 공간만 남음
    • 타일을 보고 싶으면 uBO Lite 대시보드에서 해당 사이트의 필터링 모드를 Optimal 또는 Complete로 올리고 새로고침해야 함

중요

> 이 확장 프로그램이 바꾸는 건 네트워크 차단 광고가 아니라 cosmetic-filtered 광고임. 즉 ‘광고 요청을 막은 결과’가 아니라 ‘페이지에 남은 광고 DOM을 어떻게 보여줄지’가 포인트임.

  • 설치는 아직 수동 언팩 확장 프로그램 방식임

    • Releases 페이지에서 uBOLite_theylive.chromium.zip을 받고 압축을 푼 뒤, Chrome 계열 브라우저의 chrome://extensions에서 Developer mode를 켜고 Load unpacked로 폴더를 선택함
    • 확장 프로그램은 해당 폴더 경로에서 직접 로드되므로, 압축을 푼 폴더를 지우면 안 됨
  • 직접 빌드하려면 Node 22가 필요함

    • 저장소를 --recursive로 클론한 뒤 davmlaw/uBlock 서브모듈 안에서 빌드 스크립트를 돌리는 구조임
    • 예시는 tools/make-mv3.sh chromium이고, 대상은 firefox, edge, safari도 가능하다고 적혀 있음
    • 빌드 결과물은 uBlock/dist/build/uBOLite.chromium/에 생기며, 이것도 unpacked extension으로 로드함
  • 건드린 파일도 꽤 명확하게 공개돼 있음

    • 새 파일 platform/mv3/extension/js/scripting/they-live.js에는 문구 목록, CSS 생성기, DOM 태깅 로직이 들어감
    • css-specific, css-generic, procedural-api 쪽 호출부도 패치됨
    • scripting-manager.js에서는 they-live.js를 먼저 등록해서 소비자 코드보다 앞서 동작하게 함
  • 주의점도 있음. 이건 공식 uBlock Origin 제품이 아니라 개인 취미 포크임

    • 문제가 생겨도 uBO 쪽에 이슈를 올리면 안 된다고 못 박아둠
    • 원래 숨겨져야 할 요소를 다시 보이게 만드는 방식이라, 사이트 CSS가 광고 슬롯이 접힌다고 가정한 경우 레이아웃이 흔들릴 수 있음
    • 사용자 정의 cosmetic filter는 기존처럼 그냥 숨겨지고, ‘OBEY’ 처리는 적용되지 않음

기술 맥락

  • 이 프로젝트가 건드린 지점은 광고 차단의 ‘요청 차단’이 아니라 ‘화면 표시’ 레이어예요. 네트워크에서 광고를 막아버리면 DOM에 요소가 안 남기 때문에, 문구 타일로 바꿀 대상 자체가 없거든요.

  • 그래서 Basic 모드에서는 기대한 효과가 잘 안 보여요. uBO Lite가 기본적으로 네트워크 차단을 많이 쓰기 때문이고, 이 포크가 재미를 발휘하는 건 CSS로 숨겨지는 cosmetic filtering 영역이에요.

  • 구현 방식도 꽤 브라우저 확장답게 현실적이에요. CSS 주입부를 바꿔 흰 박스와 ::after 오버레이를 만들고, MutationObserver로 늦게 붙는 광고 DOM까지 따라가야 동적 페이지에서도 빠지는 광고가 줄어들거든요.

  • 개발자 입장에서 볼 만한 포인트는 ‘차단기를 새로 만든 것’이 아니라 기존 uBO Lite 파이프라인의 특정 단계만 바꿨다는 점이에요. 덕분에 필터 매칭 같은 무거운 문제는 그대로 upstream에 맡기고, 표시 방식만 장난스럽게 바꿀 수 있어요.

광고 차단기를 ‘없애는 도구’가 아니라 ‘보이게 비꼬는 도구’로 바꾼 케이스라 꽤 개발자 감성에 맞다. 실용성보다 Manifest V3 시대 uBO Lite 내부가 cosmetic filtering을 어떻게 처리하는지 훔쳐보는 재미가 더 큼.

댓글

댓글

댓글을 불러오는 중...

open-source

차세대 데이터 파일 포맷 F3, 디코더를 Wasm으로 파일 안에 넣자는 실험

F3는 Parquet, ORC 같은 기존 컬럼형 파일 포맷의 한계를 줄이기 위해 제안된 오픈소스 연구 프로토타입이다. 핵심 아이디어는 데이터와 메타데이터뿐 아니라 WebAssembly(Wasm) 디코더까지 파일에 함께 넣어, 새 인코딩 방식이 나와도 플랫폼 호환성을 유지하자는 것이다.

open-source

에코백스, 1,134만원짜리 오픈소스 가정용 로봇 ‘빠졔’ 판매 시작

중국 청소 로봇 기업 에코백스가 첫 오픈소스 로봇 ‘빠졔’를 정식 판매하기 시작했음. 가정용 로봇을 개발자가 직접 조율하고 프로그래밍하고 2차 개발할 수 있게 만든 플랫폼이고, 가격은 4만9990위안, 약 1,134만원 수준임.

open-source

BMW·폭스바겐·스텔란티스, 자동차 소프트웨어 오픈소스 동맹 키운다

BMW, 폭스바겐그룹, 스텔란티스 등 유럽 완성차 업체들이 소프트웨어 정의 자동차(SDV) 경쟁력 강화를 위해 오픈소스 공동 개발에 나서고 있다. 독일자동차산업협회 주도 프로젝트에는 완성차, 부품사, 반도체 기업 등 30개 이상 기업이 참여하며 차량 OS, 미들웨어, 통신 소프트웨어 같은 공통 영역을 함께 만든다. 기대 효과는 개발·유지 비용 최대 40% 절감, 차량 개발 기간 최대 30% 단축이다.

open-source

AI 시대 오픈소스, ‘공개됐으니 막 써도 됨’은 진짜 위험한 착각

생성형 AI 서비스가 오픈소스 코드, 모델, 데이터셋, 외부 API를 섞어 쓰면서 라이선스와 이용 조건 관리가 훨씬 복잡해졌다는 내용이다. 공개된 기술이라도 저작권과 사용 조건은 남아 있고, 기업은 제품 안에 무엇이 들어갔는지 지속적으로 추적해야 한다.

open-source

에코백스, 1,134만원짜리 오픈소스 가정용 로봇 ‘빠졔’ 출시

중국 청소 로봇 기업 에코백스가 첫 오픈소스 로봇 ‘빠졔’를 판매하기 시작했다. 개발자가 로봇의 동작, 조작, 환경 인식 기능을 기반으로 임바디드 인텔리전스 애플리케이션을 만들고 상용화할 수 있게 하겠다는 전략이다.