( b ) undertake , cause , permit or authorise the modification , creation of derivative works or improvements , translation , reverse engineering , decompiling , disassembling , decryption , emulation , hacking , discovery or attempted discovery of the source code or protocols of the software or any part or features thereof ( except to the extent permitted by law ) ; 
