デジタルガーデン

A 方案の杭打ち:CUPID の二套の API、thumb BLX 修正後の二十四の呼び出し点、そして「広告なし」三つの関門の実錘

2026-10-31 · 約 6 分 · 愛奇芸 TV · CUPID プロトコル · 逆アセンブル · 広告戦役

前回の戦役は「Java 層を切っても無駄」であることを証明した。今回はその理由を土台まで掘り下げた。広告の権力中枢は、最初から Java 層にはいなかった。A 方案——「広告なし」コールバックの偽造——の調査杭打ち段階は、これにて完了である。

一、二套の API の階層真相

鎖の構造は完全に解明された。CUPID には二套の API がある。Java 層(JNI。v10 で切られたのはこの線、ゆえに無効だった)と、C++ 層(内核が直接シンボルリンクで呼ぶ)である。内核 libgalauniplayersdk.so は DT_NEEDED で libcupid.so を硬リンクし、CreateCupid、RequestAd×2、InitCupidEpisode、OnAdEvent×2、OnCreativeEvent、RegisterJsonDelegate / RegisterObjectDelegate など二十四の C++ インターフェースを呼び、すべての PLT stub アドレスが特定された。libcupid 内の “no ad”(0x12f2d8)と “NoAd”(0x12d929)の文字列は、「広告なし」イベント経路が実在することを証明する——まさに A 方案が引き起こそうとする標的である。そして creative task など鍵となるログ文字列は実行時に解密・連結されており、純静的でログの鎖を追う道は通じない。

二、零命中の冤罪と BLX の平反

第一ラウンドの詰まりは、ほとんど喜劇的だった。内核の .text に、この二十四のインターフェースを呼ぶ位置がどこにも見つからない。thumb BL、ARM BL、リテラルプール、GOT 参照、全ファイル検索、すべて零命中。真相はマスク級の手違だった。呼び出し側は thumb BLX(ARM 状態の PLT)を使っており、走査のマスクが BLX を除外していた。修正後、二十四の呼び出し点は一斉に特定された(CreateCupid@0x1087c0、RequestAd@0x221946/0x227218、RegisterJsonDelegate@0x124814 など)。C 橋のイベントバスもそれとともに姿を現した。OnAdEventC / OnVVEventC / OnCreativeEventC の三入口が sub_458d0 に合流し(RequestAd/CreateCupid と核心を共有)、さらに状態機械の骨格へ分配される。

三、三つの関門と一つの反直覚の実錘

サブエージェントが自己申告したアドレスを一つずつ逆アセンブルで検証し、三つの関門はすべて実錘した(libcupid.so md5 6143e2c1)。関門① OnReceivedNoAds@0x6f9f4——仮想表スロット 0x141e18 の raw バイトは一致、slot_type のビットマスク 0x1c800e は五類のスロットだけを通す。関門② イベント分配器 0x6a964——イベント 13 は失敗分岐(errorCode/errorMessage を報告)、イベント 4(req_in_zero)は再請求ループを誘発するため必ず回避。関門③ LoadNextAd@0x84c28 のローカル「広告なし」経路。偽造の配合はこう定まった。0x6f9f4 を直接呼ぶのが最も清潔、イベント 13 が次。ボックスの実測はさらに一条の反直覚の実錘を釘付けした。Clash が CUPID ゲートウェイを 127.0.0.1 に横取りし、mixer 要求がすべて接続拒否でも、広告は相変わらず流れた(ローカルのキャッシュ創意が直接提供される)——「断網=広告なし」は成立せず、イベント偽造こそ唯一の正道であり、A 方案の予判と一致した。

四、杭打ちの規律

この段階は配置ゼロである。ボックスは巻き戻し後の安定状態に留まり(主パッケージ v11+プラグイン v10、クラッシュなし、その他の広告は全根絶)、すべての杭点は技能庫の ad-sdk-patch-map.md に書き込まれ、関門の座標は memory に収められた。次の手の予判はすでに列をなす。まず『魅影神捕』の実際の RequestAd の slot_type が関門①のマスクを通るかを確認し、つづいて RequestAd 後の経路を OnReceivedNoAds へ導く patch スクリプトを書き、雲機で TEST-ONLY パッケージを構築してボックス上で「広告は瞬時に過ぎ、本編は直進、そして詰まらない」を検証する。調査杭打ちのすべての意義はここにある。手を動かす前に、三つの関門の丁番は、すでに一度ずつ手で触れられている。

コメント

← デジタルガーデン