これは、Apple Content Caching システムのリバース エンジニアリングの試みです。
このプロジェクトの目標は、本格的なリバース エンジニアリングの試みに挑戦しながら、私が作りたいもの、つまり Linux サーバー上で動作する Apple Content Cache を作成することです。
注:asset-cache-tool は、この作業の一部の継続です。
親愛なるアップル様
私は善意の行為者であり、キャッシュの設計により、これが害を及ぼすはずはないと考えています。別の方法を検討する場合は、私の電子メールで私に連絡してください: [email protected]
ありがとう、アレックス
ここに表示されるコンテンツを悪用しないでください。私はこれを誠実に行うよう努めており、それがどのようなものであれ、Apple Content Cache システムの悪意のある使用を容認しません。
コンテンツ キャッシュは、システム環境設定の共有セクションで利用できます。これは、パブリック Apple コンテンツまたは iCloud コンテンツのローカル ネットワーク上のコンテンツをキャッシュするために使用されます。 /usr/libexec/AssetCache/AssetCache
が作業の大部分を担当します。サーバーからのコンテンツの取得とアップロードを可能にする API を備えた HTTP サーバーがあります。
さらに、パケット キャプチャはcaptures
ディレクトリに提供されます。
ここでの作業は、Charles Proxy と Frida を使用して行われました。
tools/frida-ssl-pin.js
ファイルは、任意の macOS プロセスにアタッチして、すべての SSL 検証と SSL 証明書の固定を無効にすることができる Frida スクリプトです。これにより、Apple のサーバーに送信されるリクエストを詳しく調査できるようになりました。このスクリプトは、他の多くのユースケースにも役立つ可能性があります。他の人がそれを使用している場合は、それがどのように使用されたかについてぜひ聞きたいです(私は超大のオタクで、リバースエンジニアリングに非常に興味があります)。 SIP を正しく使用するには、SIP を無効にする必要があることに注意してください。
また、 launchd
ターゲットにして SSL ピン留めと検証を無効にするスクリプトを挿入する、変更された Frida Python スクリプトもあります。 AssetCache
は launchd によって生成されるため、Frida を launchd にアタッチし、サービス経由でAssetCache
生成されるのを待つことができます。スクリプトはtools/frida-ssl-pin-target.py
にあります。pip3 pip3 install frida frida-tools
てスクリプトを実行するだけです。