Quel est le principe de classe dump et hopper? Pourquoi peuvent-ils rejeter la méthode d'objc? Et pourquoi ne peuvent-ils pas vider la fonction écrite en style C?Quel est le principe de la classe dump et hopper
0
A
Répondre
0
Les fonctions C du binaire sont des blocs de code identifiés chacun par une adresse virtuelle. Objective-c l'exécution est implémenté en C, alors quand un sélecteur est envoyé une fonction C est appelée à faire réellement:
id objc_msgSend(id self, SEL op, ...);
Le premier argument est soit la classe ou de l'instance qui recevra le sélecteur. Deuxième est un selector
aka char*
nom. Puisque ces noms de sélecteurs sont explicitement passés en arguments, tout ceci doit être géré dans le binaire exécutable. Et c'est là que les classes de dumping entrent en jeu car il y a beaucoup plus d'informations comparées aux adresses virtuelles des fonctions C.