0
クラスダンプとホッパーの原理は何ですか?なぜ彼らはobjcの方法を捨てることができますか?なぜCスタイルで書かれた関数を投げ捨てることができないのですか?クラスダンプとホッパーの原理は何ですか
クラスダンプとホッパーの原理は何ですか?なぜ彼らはobjcの方法を捨てることができますか?なぜCスタイルで書かれた関数を投げ捨てることができないのですか?クラスダンプとホッパーの原理は何ですか
バイナリ内のC関数は、それぞれ仮想アドレスで識別されるコードの塊です。 Objective-Cのランタイムは、セレクタが送信されたときにC関数は、実際にそれを行うために呼び出され、Cで実装されています
id objc_msgSend(id self, SEL op, ...);
最初の引数は、セレクタを受け取ることになります、そのクラスまたはインスタンスのいずれかです。 2番目はselector
別名char*
です。これらのセレクタ名は引数として明示的に渡されるので、このすべては実行可能バイナリで処理する必要があります。 C関数の仮想アドレスと比較してより多くの情報があるので、ダンピングクラスが始まるところです。