Je suis en train de faire un désassembleur exécutable Mach-O avancé et je suis confus au sujet de la partie Magic et Cigam d'un en-tête exécutable. Je comprends comment ils fonctionnent et comment ils déterminent l'ordre des octets de l'exécutable et si son 32/64-Bit, mais la seule chose que je suis coincé est: quel ordre hexadécimal représente Magic et Cigam:Mach-O Magic et Cigam Clarification
Ceci est la hexadécimal brut d'un en-tête commun (directement à partir de hexdump):
cffaedfe
- Il s'agit d'un en-tête 64 bits, mais c'est un Magic ou un Cigam.
La raison pour laquelle je suis confondu avec ceci est à cause de toute la commande comme le cigam exige renverser tous les 4 octets dans la direction opposée et fais je lise les octets dans Endianness ou pas ??? Je l'ai regardé les en-têtes de mach et je l'ai trouvé ce genre de choses:
MH_MAGIC_64 = 0xfeedfacf
MH_CIGAM_64 = 0xcffaedfe (MH_MAGIC permuté)
mais est 0xcffaedfe destiné à être adapté à partir du hexadécimal direct le fichier mach-o signifiant son CIGAM ou est-ce que je le lis dans Endian et cffaedfe
devient feedfacf
le rendant MAGIQUE ????
juste s'il vous plaît me dire:
(direct à partir du fichier hexdump) cffaedfe
- Est-ce ou de la magie Cigam ????
Merci
Comment savoir si ma machine utilise un petit boutiste ou un big endian? – Lucasware
'uint16_t u = 1; printf ("% s endian \ n", * (uint8_t *) & u "petit": "grand"); ' – Siguza