Est-ce que quelqu'un connaît une manière spiffieuse d'utiliser des fichiers d'en-tête C en Python? Par exemple, j'ai un programme C qui comprend une variable globale:Comment analyser un fichier d'en-tête C?
typedef struct ImageInfo
{
uint8_t revisionMajor;
uint8_t revisionMinor;
uint16_t checksum;
} ImageInfo;
ImageInfo gImageInfo; /* Placed at a specific address by the linker */
Je voudrais être en mesure de prendre le binaire généré par le compilateur/éditeur de liens C et analyser cette structure (et modifier éventuellement il) avec un Python scénario.
La structure n'existe probablement pas "dans le binaire" en tant que telle - elle ne "existe" réellement qu'après l'exécution du programme dans la RAM par le système d'exploitation. Alors qu'essayez-vous exactement de faire? –
Oups J'ai oublié de mentionner que la variable globale est placée dans une mémoire en lecture seule (c'est-à-dire Flash ou ROM). Dans l'exemple ci-dessus gImageInfo serait placé au décalage 0x1000 dans le binaire et je veux être capable de lire la structure avec Python et obtenir les informations de révision pour vérifier la somme de contrôle. – waffleman