Creating or distributing keygens for software typically violates laws (such as the Digital Millennium Copyright Act in the U.S.) and the terms of service of the software. It also encourages unethical behavior, such as stealing intellectual property. Reverse engineering for personal research or educational purposes may be legal in some contexts, but sharing or creating tools to bypass licensing systems is not.