Analyse de fichiers binaires avec Python

Comme un projet à part, je voudrais essayer d'analyser des fichiers binaires (Mach-O fichiers en particulier). Je sais que les outils existent déjà (otool) donc considérer cela comme un exercice d'apprentissage.

Le problème, je vais frapper, c'est que je ne comprends pas comment convertir les éléments binaires d'un python de la représentation. Par exemple, le Mach-O format de fichier commence par un en-tête qui est défini par un C Struct. Le premier élément est un uint_32 "nombre magique". Quand je fais

magic = f.read(4)

- Je obtenir

b'\xcf\xfa\xed\xfe'

C'est ce qui commence à faire sens pour moi. C'est littéralement un tableau d'octets 4 octets. Mais je tiens à le traiter comme un 4-byte int qui représente l'origine de nombre magique. Un autre exemple est la numberOfSections champ. Je veux juste le nombre représenté par 4 octets de terrain, pas un tableau de littéral octets.

Je suis peut-être penser à propos de cette erreur. Personne n'a travaillé sur quelque chose de semblable? Ai-je besoin d'écrire des fonctions à regarder ces 4 octets tableaux d'octets et de changement et de combiner leurs valeurs pour produire le nombre je veux? Est endienness aller à vis de moi ici? Tous les pointeurs serait le plus utile.

source d'informationauteur D.C.