Problemförklaring
Jag har en fil som helt består av datastrukturer; Jag har försökt hitta ett verktyg som gör det möjligt för mig att öppna den här filen och förklara (kanske) en typ och förskjutning så att jag kan arbeta med den antagna primitiva datatypen individuellt.
t.ex. Jag förklarar de 4 byte som ligger vid offset 0x04 som ett 32-bitars osignerat heltal och vill inspektera värdet på den här platsen (läs som stor-endian kanske) och arbeta sedan med detta heltal individuellt (se kanske hur det ser ut kodad som en 4-byte ascii-sträng och försök att läsa den, etc.)
Specifikationer
Jag har en 4096 bytefil som innehåller C-strukturer med medlemselement som heltal från 16 -64 bitar i längd; följande är ett exempel:
struct my_struct {uint_32 magic} // sizeof (my_struct) == 0x04
I detta fall, magic = 'ball ', och så när filen öppnas i en textredigerare läser den som' llab ... ', och kan självklart också representeras som ett 32-bitars heltal
Fråga
Finns det ett verktyg som möjliggör statisk analys av platta datastrukturfiler?
Vad jag hittills har betraktat som en lösning
Jag har övervägt att skriva ett kommandoradsverktyg i Python till gör detta, men om något redan finns föredrar jag att spara tid och kanske lära mig mer om detta ämne med hjälp av ett verktyg som designats av någon mer erfaren. Om det verkar för dig som om jag går fel med detta (det här är min första seriösa undersökning av denna typ av reversering), vänligen vägleda min förståelse, tack.
Där jag redan har undersökt
Googlade "reverse engineering tools" och bläddrade i länkarna
Kontrollerade wikipedias sidor för reverse engineering
Testade några första principer resonemang
Kontrollerad pypi
Resultat
Det finns tre helt giltiga och korrekta svar, men jag har markerat de mest detaljerade och billigaste av dem som korrekta, eftersom det är det mest tillgängliga för medlemmar i samhället som granskar denna fråga.