Recover Sketch from UNO after PC failure

Is it at all possible to recover a Sketch from UNO after PC failure?
My system recently did an auto update (windows 10) after which I had a system crash and ended up loosing all of my Arduino files and many others. I have been looking for a means of recovering the sketch I currently have on my protoboard and the IDE doen't seem to have this ability.
Thanx for any help.


You can manually invoke avrdude to get the binary off the arduino.

However, all that lets you do is copy the sketch in it's current condition to another arduino. The information needed to reconstruct the C source code is not stored on the Arduino board; notice how the Arduino IDE compiles hundreds of kilobytes of code (all of the core, all libraries included, plus the sketch) yet generates a binary smaller than 32KBytes from all that.

The thing that's uploaded is raw machine code, which unless you are a real wizard (ie, able to interpret raw AVR machine code or assembly (since machine code can be converted into assembly)), is not really usable if you want to modify the code.

This is an unfortunate case study (and yet another kick in the balls from Microsoft. If the usability of desktop linux wasn't as bloody awful as it is, windows would be dead as a doornail - in spite of two consecutive windows releases that significantly degraded the user experience, windows usability still crushes that of linux...)in the importance of backing up your files. I recommend using Github, and making sure you always push changes to your repo (this also makes it easy to develop on other machines, or examine/edit/etc your code on the road), at a minimum. (I do this, and also have two computers with the repo recently sync'ed on in case github vanished tomorrow)