Variablenwerte in ELF-Datei bearbeiten?

Ich muss ein paar Variablen in einer kompilierten ELF-Datei ändern. Um dies klar zu erklären, verwende ich eine einfache C-Struktur als Beispiel.

Die einzelne Quelldatei wird kompiliert und von MyFile.c aus mit MyFile.elf verknüpft (@ 0x1000):

typedef struct {
    uint32_t SerialNumber;      /* Increments for every time it's programmed */
    uint32_t PartNumber;        /* Always the same */
    char     ProdDateTime[32];  /* "YYYY-MM-DD HH:MM:SS" date/time when programmed */
    uint32_t CalcCrc32;         /* Checksum of the above data */
} MyData_T;

const MyData_T MyData = {
    /* SerialNumber      */ 0x11111111,
    /* PartNumber        */ 0x12345678,
    /* ProdDateTime[32]  */ "2013-11-10 12:49:30",
    /* CalcCrc32         */ 0xC0CAC01A
                        };

Jetzt brauche ich ein "Konsolen-Tool", das (ohne zu kompilieren):

Schreibt eine neue Seriennummer in 0x1000Schreibt eine neue Zeichenfolge in 0x1008Aktualisiert die Prüfsumme um 0x1028.

Ich habe noch kein Werkzeug (objcopy etc?) Gefunden, das auch nur die erste (1) Aufgabe erledigt. Scheint dies ein eher verbreitetes Szenario zu sein? Ich habe mein eigenes Tool geschrieben, bevorzuge aber ein Open-Source-Tool oder ähnliches.

Anregungen / Ideen / Kommentare / Kritik sind sehr willkommen: D Danke !!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage