[q]С термином keymaker - ситуация не столь однозначна, одни авторы понимают под этим термином синоним keygen, другие синоним pach.[/q]
Вся разница в способе регистрации программы.Если программа для регистрации использует внешний файл-и другая программа именно его его генерирует,то это keymaker.
Если программа(требующая регистрации) сама генерирует файл,или хранит данные регистрации в реестре,о программа генерирующая подходящие данные-keygen.
Или наоборот
Patch-подразумевает внесение изменения в код программы,а авторы понимающие этот термин как синоним keygen,либо в русском языке не разбираются,либо в теме на какую пишут статьи
Думаю, что с точки зрения существующего законодательства, эти нюансы несуществены.
Согласно "Закону о правовой защите программ..."
программа для ЭВМ - это объективная форма представления совокупности данных и команд, предназначенных для функционирования электронных вычислительных машин (ЭВМ) и других компьютерных устройств с целью получения определенного результатаМодификация программы согласно этому же закону относится к исключительным правам автора.
Хотя это определение программы и не лишено на мой взгляд недостатков - я бы предпочел (хотя и не готов сам сформулировать), чтобы было четкое разделение пользовательских данных и служебных данных самой программы, при этом пользовательские данные не должны включаться в понятие программы.
Тем не менее, очевидно, что все указанные подтипы осуществляют в терминах закона одно и то же - модификацию программы: patch - модифицирует последовательность команд, keygen и keymaker - служебные данные, являющиеся в соответствии с определением составной частью программы.
Хотя, если принять во внимание аргументацию Николая Николаевича, иногда, возможно, получится подвести использование этих программ под понятие адаптации, как это определено все в том же законе.