Skip to main content

Automatic Diverse Machine Code Generator


Suitable for

MSc in Computer Science


Supervisors: Daniel Kroening, Tom Melham, Alastair Donaldson

The target of this project is safety relevant, embedded, automotive applications (steering, braking, airbags, drive by wire controls) where the computational state of an embedded controller can be disturbed by transient effects (EM and RF fields, ESD and voltage transients). The suggested project is to demonstrate a system taking one image of machine code and using a binary to binary translator, transform it into a functionally equivalent image (a diverse image) which has a high degree of architectural diversity (differing opcode, differing intermediate values etc.). The two images can then be independently executed in real-time embedded controllers and the outputs cross-checked to hopefully detect disturbances to the machine state and operations. Having a diverse executable is advocated in the new ISO26262 automotive functional safety standard - but no tools or methods exist today to automatically derive diverse images.

A related project could be to measure the degree of diversity between code images, although the best measure might be based on the hardware footprint of the software - at a lower level, it could be measured via some architectural properties, unique instructions/register resources/memory address ranges/etc.

There is scope in this project for collaboration project with Infineon Technologies (Bristol, UK).