This question already has an answer here:
I have a cute robot built on Arduino Uno and Ardumoto, and I am trying to reverse engineer it first, and to add some new sensors afterwards.
I am stuck at how to deal with its program. I don't have the source code but I do not want to loose the program, yet in order to reverse engineer it I must write my own code and see if I can make it work.
Beware, I am a n00b to microcontrolers, and pretty lame to electronics (full of enthusiasm though).