software counterfeiting definition