Помимо того, что это незаконно, это очень сложная задача.
Говоря просто на теоретическом уровне, обычным способом является разборка программы для взлома и попытка найти, где проверяется ключ или серийный код.
Проще сказать, чем сделать, поскольку любая серьезная схема защиты будет проверять значения в нескольких местах, а также будет извлекать критическую информацию из серийного ключа для последующего использования, поэтому, когда вы думаете, что вы догадались, программа потерпит крах.
Чтобы создать трещину, вы должны идентифицировать все точки, где выполняется проверка, и соответствующим образом изменить код сборки (часто инвертируя условный переход или сохраняя стоимостные элементы в ячейках памяти).
Чтобы создать кейген, вы должны понять алгоритм и написать программу для повторного выполнения тех же самых вычислений (я помню старую версию MS Office, в сериале которой было очень простое правило, сумма цифры должна была быть кратное 7, так что написание кейгена было довольно тривиальным).
Оба действия требуют, чтобы вы следили за выполнением приложения в отладчике и пытались выяснить, что происходит. И вам нужно знать API низкого уровня вашей операционной системы.
Некоторые сильно защищенные приложения имеют зашифрованный код, чтобы файл не мог быть разобран. Он дешифруется при загрузке в память, но затем отказывается запускаться, если обнаруживает, что запущен отладчик в памяти,
По сути, это то, что требует очень глубоких знаний, изобретательности и много времени! О, я упоминал, что это незаконно в большинстве стран?
Если вы хотите узнать больше, Google для Учебников по взлому + ORC, они очень старые и, вероятно, бесполезные в наши дни, но дадут вам хорошее представление о том, что это значит.
В любом случае, очень хорошая причина знать все это, если вы хотите написать свою собственную схему защиты.