Retrieve programming from pre-programmed AVRs?

I took apart an old wireless laser mouse (ok, not that old) and discovered that it was apparently controlled by an attiny. Would it be possible to retrieve the program currently stored on it and then reprogram it?

Preferably I'd like to retrieve the program and then disassemble and decompile it into something readable (I don't know assembly of any kind and I'd rather not learn it yet), but just backing it up to be able to recover it later would be useful as well.

There are plenty of consumer products that use AVRs and it'd be really cool to put the arduino bootloader on them and fiddle around while still being able to return them to their original state. (not to mention reverse engineering the existing code)

You could try this ...

Cfr. page 12 of the PDF - Read the flash/hex/binary: http://mirror.its.uidaho.edu/pub/savannah/avrdude/avrdude-doc-5.5.pdf

Disassemble via AVRStudio: http://chiphacker.com/questions/339/arduino-chip-wipe-on-reset/341#341

Please update if you tried this ...

P.S.: If the AVR code protection fuse bits are set, you cannot read the AVR program flash memory, because it is protected. Cfr. http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=52370&start=0

Go for an ISP like the AVR ISP MKII. The MKII comes with AVR Studio and this can of course download. Avrdude can download as well. However if the fuses are set accordingly a download is almost impossible. At least impossible with cheap equipment. With very advanced enigneering skills (or enough money) you can download no matter what the fuses are. I doubt that you would be willing to go that far though.

Cheers, Udo