Polyglot: One binary multiple architectures

One blinky to rule them all: ARM, AVR, 8051 (?MSP430)

Similar projects worth following
One binary to rule them all.

Follow this project for future explaining video on my channel and further development.


This project was created and added to the 1kB challenge as a proof of concept. Because the 1kB challenge could use any architecture and 1kB code - it brought to me the idea of creating single binary file which would run on many architectures.

Right now there's only blinking LED demo for each architecture. In a few days I'll add more explanation of some tricks I used to deal with a fact that AVR and 8051 have the same reset vetor at address 0x0000.

This polyglot can be improved to share some kind of common data across all architectures. For example you can code brainfuck interpreter for every architecture and use common data space where th

Added explanation video of the hack:

  • Firmware hacking video

    Martin Hub11/17/2017 at 19:16 0 comments

    I've created a video explaining the whole process. Check also my other reverse engineer videos on my youtube channel.

  • Basic proof of concept

    Martin Hub11/27/2016 at 20:23 0 comments

    Right now I have hand-crafted vector/boot table which will correctly "guide" the architecture's CPU to the beginning of their own code in the binary. AVR and ARM are easy because they have reset vectors at different addresses, but the 8051 added small complication which I will explain in later project logs

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates