Question:
Comment trouver tous les appels de sous-programmes à l'aide de Hopper?
Hector
2017-09-26 01:25:53 UTC
view on stackexchange narkive permalink

Comment trouver tous les appels de sous-programme une fois qu'une application iOS a été chargée dans Hopper?

Si je comprends bien, un sous-programme est identifié par une adresse unique. Donc, dans le binaire, tous les appels à ce sous-programme doivent pointer vers cette adresse. Ainsi, il devrait être possible de lister tous les appels à cette adresse, je me trompe? Cela semble être une chose simple à rechercher, mais je ne trouve rien à ce sujet ailleurs.

votre titre demande une chose mais le corps semble être quelque peu différent ... une clarification peut aider
Deux réponses:
Megabeets
2017-09-27 14:31:41 UTC
view on stackexchange narkive permalink

Si je comprends bien votre question, vous recherchez la fonctionnalité de références croisées dans Hopper.

Références croisées

Les références croisées (ou simplement les XREF) sont une fonctionnalité des désassembleurs pour vous montre où certaines fonctions et objets ont été appelés ou les fonctions et objets utilisés par une fonction spécifique. Nous pouvons le simplifier en s'y rapportant comme XREF-To et XREF-From. Le référencé peut être Data ou Code.

Les XREF sont une ressource précieuse lorsque nous voulons savoir exactement d'où une fonction a été appelée ou quelles fonctions la fonction actuelle appelle. Ceci, comme vous le comprenez, peut être très utile, donc nous n'avons pas à parcourir la pile pour que les pointeurs d'image recherchent la fonction qui a appelé la fonction actuelle ou à rechercher à la main un CALL s à des adresses spécifiques.

Hopper

Dans le désassembleur de trémie, vous pouvez voir les adresses XREFs-To en appuyant sur X pendant que vous marquez l'adresse souhaitée. Les XREFs-From peuvent être affichés en utilisant Alt + X . Vous pouvez également trouver les listes de références croisées sous Naviguer dans la barre d'outils supérieure du Hopper.Vous pouvez également trouver les références vers et depuis une adresse en cliquant dessus avec le bouton droit puis en choisissant soit "Références à ... "ou" Références de ... ".

enter image description here

Néanmoins, lorsqu'un programme est analysé, Hopper ajoute une liste de XREFs-From dans les commentaires:

  j_puts: 08048390 jmp dword [met @ GOT]; met @ GOT, met, CODE XREF = sous_8048662 + 15, sous_8048662 + 31, sous_8048662 + 86, sous_8048662 + 104  
Ismael Vazquez
2017-09-26 02:05:05 UTC
view on stackexchange narkive permalink

Je ne sais pas comment cela fonctionne sur IOS ou hopper, mais d'après mon expérience, les appels de fonction peuvent être obscurcis.J'ai vu des valeurs chargées dans des registres, puis un algorithme est exécuté avant qu'un appel soit fait audit registre.

Ex. Une fonction est localisée à VA 1000

  1. Charger la valeur 100 dans le registre1
  2. Multiplier le registre1 par 5
  3. Ajouter 500 au registre1
  4. Poussez les arguments sur la pile
  5. Call register1

J'espère que cela vous aidera un peu.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...