Pages: [1]   Go Down
Author Topic: discover the algorithm running on an Ardn.  (Read 1062 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi, everyone.
Does anyone know if its possible (somehow) to discover the algorythm running on an Arduino, once it's been uploaded? If, yes is it possible to prevent that?

For example, if I develop a product that uses Ardn. as the processing unit and its source code, developed by me, is classified. Is there any possibility to someone who buy the product to know that code?

Thanks.
Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 514
Posts: 31567
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
to discover the algorythm running on an Arduino
Yes it is difficult but it is possible.

Quote
Is there any possibility to someone who buy the product to know that code?
Yes they could if they wanted to disassemble the code into machine code. The underlying C code is not always clear from this.
It is possible on other processors to lock the device so it can't be read but not this one.

Some processors even have a scrambling algorithm built in so you have to use your "password" in order to program and run the processor.
Logged

Global Moderator
Boston area, metrowest
Offline Offline
Brattain Member
*****
Karma: 444
Posts: 23861
Author of "Arduino for Teens". Available for Design & Build services. Now with Unlimited Eagle board sizes!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Section 28 of the datasheet discusses the lock bits.
The way I read it, it possible to set the bits such that no further sketches can be downloaded - and once set can only be cleared using High Voltage programming mode that also clears the flash.

If one cannot upload a new sketch, then one cannot run a sketch that can read out the memory contents.
Is there another method one could use to dump the flash contents?


Logged

Designing & building electrical circuits for over 25 years. Check out the ATMega1284P based Bobuino and other '328P & '1284P creations & offerings at  www.crossroadsfencing.com/BobuinoRev17.
Arduino for Teens available at Amazon.com.

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 514
Posts: 31567
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes you are right although it is section 27 on my data sheet.
Setting those will protect it.

However if someone is determined then you can slice the top off to expose the chip and look at it under a scanning electron microscope to see the state of each cell. But that is quite a high hurdle.
Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 170
Posts: 12487
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Another way is the black box approach. Make a list of all inputs and generated outputs to deduce the working of the algorithm inside.
In the end the algorithm describes the detailed behaviour ...

easier to use the electron microscope I think smiley-wink
Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 170
Posts: 12487
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


For the dissasembly route you need to read

...\arduino-0022\hardware\tools\avr\doc\avrdude
.../arduino-0022/hardware/tools/avr/doc/binutils/binutils.html/objdump.html
Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Pages: [1]   Go Up
Jump to: