Discovering call graphs in binary programs from unknown instruction set architectures
Abstract
Denne studien tar for seg utfordringen med reverse engineering av binærfiler fra ukjente instruksjonssett-arkitekturer, en kompleks oppgave med potensielle implikasjoner for programvarevedlikehold og cyber-sikkerhet. Den foreslåtte løsningen er et nyskapende program designet for å oppdage opkoder og lage call grafer, noe som potensielt kan lette og forenkle prosessen med reverse engineering. Empirisk testing på ulike binærfiler i forskjellige arkitekturer viser at programmet nøyaktig kan oppdage spesifikke opkoder og håndtere data med støy effektivt. Det bemerkes imidlertid at det krever at binærfilen har visse egenskaper, som fast lengde på instruksjoner. Til tross for disse begrensningene, kan programmet være et verdifullt verktøy for reverse engineering, hvor det er en klar mangel i nåværende forskning, samt legge grunnlaget for videre forskning. This study addresses the challenge of reverse engineering binaries from unknown instruction set architectures, a complex task with potential implications for software maintenance and cyber-security. The proposed solution is a novel program designed to detect opcodes and create call graphs, potentially facilitating and simplifying the reverse engineering process. Empirical testing on various binary files in different architectures shows that the program can accurately detect specific opcodes and handle noisy data effectively. However, it is noted that it requires the binary file to have certain properties, such as fixed-length instruction size. Despite these limitations, the program may provide a valuable tool for reverse engineering, offering a new tool where there is a clear research gap, while laying the groundwork for further research.