Reverse Engineering Software Protection