私は現在、モバイル アプリケーションをフックする手法について調査を行っており、Xposed (Android)、Frida (Android および iOS)、Cycript (iOS) などのフレームワークに出会いました。
Xposed と Frida に関するドキュメントは、彼らがどのようにそれを行っているかをかなりよく説明しています。Zygote プロセスを開始し、メソッドのフックを支援する追加の JAR ファイルをロードするバイナリを操作するための Xposed 状態。Frida のドキュメントでは、(Linux 環境で) ptrace を使用してプロセスにアタッチし、スレッドをロードして frida エージェントを含む .so ファイルを起動するブートストラップを割り当ててデータを入力することを説明しています。
Cycript が追求する戦略に関する有益なドキュメントは見つかりませんでした。実際のフックを行うCydia Substrateの上に構築されていることを私は知っています。Substrateがこれをどのように正確に達成するかについての詳細も見つけることができませんでした.
iOS では、objective-c ランタイムはランタイム指向であるため、ランタイム操作が可能であることをさらに理解しています。
Cycript / Cydia Substrateがアプリケーションにフック/インジェクトするためにどのように機能するかを知っている人はいますか?
前もって感謝します。