What I learnt from trying to reverse engineer a Drm Implementation