Application of reverse engineering as fair use exceptions