Hi,
Is it possible to obfuscate or encrypt the code you upload on your arduino? My device contains an algorithm that is to be evaluated by a third party, so I wonder how can I protect my code?
Thanks,
cami
Hi,
Is it possible to obfuscate or encrypt the code you upload on your arduino? My device contains an algorithm that is to be evaluated by a third party, so I wonder how can I protect my code?
Thanks,
cami
You're uploading binary data. The command set that the binary data is created from is limited in scope, so, if you could get the binary data off of the Arduino, you could, conceivably reverse-engineer the source code.
There is not, so far as I know, though, a way to get the sketch off of the Arduino.
Besides, obfuscating or encrypting the source code goes against the whole open source concept behind the Arduino.
Remember that this advice is worth exactly what you paid for it.
you could, conceivably reverse-engineer the source code.
You won't be able to do this and recover source code in C. Not even conceivably because multi source code constructs can compile down to the same thing, so it's like modular arithmetic a one way street.
You could only ever get an assembler listing. As that has been generated by a compiler it is pretty obscure anyway.
However there is a fuse that protects the code from being read, this is normally set for the bootloader but could be set for the rest of the code once you have downloaded it.
However, you would need a programmer to do this, see the data sheet of the chip.
obfuscating or encrypting the source code goes against the whole open source concept behind the Arduino
I agree with you Paul on this, but the code I need to protect has nothing to do with Arduino. We use this platform because it simplifies the process of working with the microcontroller, which is great!
Thanks to the Arduino team for this!
However there is a fuse that protects the code from being read, this is normally set for the bootloader but could be set for the rest of the code once you have downloaded it.
However, you would need a programmer to do this, see the data sheet of the chip.
Thanks for the advice, Mike. I'll look into it.