I once broke the "DRM" of a site which displayed images by downloading them obfuscated and using a big blob of JS to unfsck them and display them on a canvas. Grabbing the image should be easy, no? Just use `.toDataURL()`, right? Well, this site deleted all the methods on the canvas object which could be used to grab the image data, and then `.freeze()` (or maybe it was `.seal()`, this was a while ago) to prevent the method being added back in.
In the end I said 'fuck it' and made a patched firefox build in a VM with freeze and/or seal disabled completely, then a small jetpack addon (remember them?) to unfsck the canvas element and grab them images.