Upload Binary from arduino?

Say I have arduino that I got from someone else, but I don't have the source code. So I want to save the binary from the arduino in the event that I have to reload it to another ardunio because of a board failure, and how would I do this or are there tools already available that accomplish this.

Thank you

The program 'avrdude' which the Arduino IDE uses to upload your sketch can also download from the ATmega memory. I think the Arduino bootloader supports reading (so the upload can be verified) so you should be able to run avrdude in a command window and get it to download the memory contents. Hopefully it can download it in .hex format for later upload.

Thank you