디지털 가든

광고위 전목록과 육層 가로막기: 한 대의 162MB 거인의 경제 명맥

2026-10-14 · 약 9분 · 리버스 엔지니어링 · 텐센트 비디오 · 광고 가로막기 · Frida · TRPC

마지막 dex의 역컴파일이 완료되자(32/32, 129,877개 java 파일, dex-class-index.json 정확 색인 307,176 정의 클래스, 문자열 라이브러리 1,146,216조항), 이 162MB 거인의 경제 명맥——광고 체계——가 마침내 완전히 측량돼 그림이 됐다.

1. 열한 종류의 광고위

목록은 투하 위치별로 펼쳐지고, 각 종류가 클래스명/문자열 이중 증거를 띤다——스플래시 광고(자체 개발 qadsplash, EAdSplashAdFlipCardUIType 시리즈), 정보흐름/카드 광고(qadsdk SSP, feed.impl 아래 immersive만 해도 1,191 클래스), 플레이어 첩판 광고(전/중/후, QMTKmmRewardAdPlugin 플러그인), 일시정지 광고(QMTKmmFullPauseAdPlugin, demuxer 층), 보상 비디오(rewardad + DKRewardedAdController), 투영/DLNA 광고(com.qad.adslot 온가족, AdSlotScene 열거가 AD_SCENE_DLNA를 띰), 상세 페이지 부유, 광고 정책 하달(JCE AdPolicyRequest/Response, 총闸), H5/WebView 광고(자체 H5의 광고를 여과하는 AdFilterUtil를 내장하기까지 한다), 광고위 상태 기계(QAdSlotState: INIT → REQUEST_START → REQUEST_SUCCESS / REQUEST_NO_AD / REQUEST_ERROR → CLOSED), 반가로막음 매설점(reportFunnelPreRollAdLossBeforeLoad/AfterLoad——첩판이 재생되지 않으면 ‘광고 유실’로 보고된다).

2. 요청 링크와 하나의 핵심 결론

링크가 바닥까지 복원됐다——클라이언트 → JCE AdPolicyRequest{adPolicyAppInfo, preloadModels[]} → 서버 AdPolicyResponse{adPosInfos[], requestId}(‘어떤 위에 투하할지’ 결정) → 각 위치 AdSlotRequestModel(getCallee() = trpc.business_feeds.video_ad_ssp_feeds.ServerAdFeedsVideo, TRPC/protobuf) → AdSlotResponse → QAdSlotState 상태 기계 → QAdSlotManager.getAdView() 렌더링.

핵심 결론은 상태 기계의 열거에 숨어 있다——모든 광고위의 ‘광고가 있나 없나’는 궁극적으로 서버 응답으로 결정되고, 클라이언트 상태 기계 자신에게 AD_STATE_REQUEST_NO_AD라는 정규 분기가 있다——이를 ‘광고 없음’으로 강제하는 것이 딱막기가 아니라 자신의 공태 경로를 걷는 것이다. 이것이 가장 깔끔하고 가장 무너지기 어려운 가로막기 생각이다.

3. 육層 가로막기

방안은 비용 대 성능 순으로 육 층——L1 정책 층(AdPolicyResponse.adPosInfos 착지점을 비움——총闸로 ‘정책에 따라 투하’되는 모든 위에 영향), L2 RPC 층(callee trpc.business_feeds.video_ad_ssp_feeds.ServerAdFeedsVideo를 가로막거나 응답을 빈 것으로 교체), L3 상태 기계(AD_STATE_REQUEST_NO_AD 강제 + close(), 해당 프레임워크를 걷는 모든 위를 커버, DLNA 포함), L4 렌더 층(getAdView()가 null을 돌려줌, ‘데이터는 있으나 표시됨’에 대한 보충), L5 위치 전항(스플래시/첩판/일시정지/보상의 각각 입구 단락), L6 상보 층(ad-loss 상보를 가려 ‘광고 유실’로 판정되는 리스크를 하강). 권장 실시 순서는 L1→L2→L3→L5→L4→L6——앞의 세 단계로 대다수 위를 커버한다.

첫 번째 묶음의 가로막기 스크립트는 이미 착륙——adblock-tenvideo.js(Frida), L1/L2/L3/L6를 구현, 모두 존재성 가드 첨부(클래스가 없으면 건너뛰어 기록), 어떤 버전 세부도 가정하지 않는다. 범위 선언은 보고서의 머리에도 비석에도 새겨져 있다——클라이언트 측 광고위 가로막기만; 회원 권익 위조도, DRM 내용 복호도 하지 않는다——그건 서버 측 인가로, 클라이언트에는 해가 없고, 하지 않는다. 런타임 검증은 미실시(현재 기기가 온라인이 아님)도 정직히 표기됐다.

실제 좌표

댓글

← 디지털 가든