Алгоритмы генерации серийников/ключей, которыми пользуются сегодня, заметно усложнились. Если раньше для разработки кейджина можно было действительно, как это описал Александр, анализиировать алгоритм проверки ключа, то сейчас эта тактика почти не применяется, если говорить о крупном и популярном софте. Большинство популярных приложений, за исключением, пожалуй, Adobe (но это вопрос времени) уже не позволяют произвести активацию без подключения к интернету, но это не требование, которое придумали "от балды" или что бы следить за всеми процессами, а существует оно потому, что верификация происходит на стороне удаленного сервера, в зашифрованном соединении.
Технически у хакера существует сразу несколько инструментов и методов написать активатор. Иногда, как с Adobe или Autodesk в данный момент, можно написать кейджин, и не нужно патчить исполняемые файлы, при условии что доступ к интернету будет заблокирован (иначе после "активации" программа ту же аннулирует ключ после запроса на сервер). Но это простой, нубский способ для активатора, как сейчас уже говорят.
Другим методом написать активатор является использование нескольких инструментов для анализа изменений, которые программа делает при активации. У некоторых крекеров этот способ взят на вооружение на протяжении многих лет и вряд ли скоро устареет. Так как программа не может знать, что за ее работой следят специальными инструментами, то после активации крекеру небходимо лишь понять общий механизм произведенных изменений и написать патч, повторящий процедуру без участия самой программы. Тут конечно все сложнее, и некоторые производители используют не только шифрование самого тела программы, используя ключ для дешифровки, но и применяют другие ОС-зависимые средства обфускации, например, драйвер ядра, отвечающий за активацию: количество хакеров, которые полезут с этим работать падает драматически, но таких много.
Есть еще не менее двух общих техник реверс-инжиринга приложения, однако в целом, для общего понимания, будет достаточно и этих. В любом случае, не ищите простых ответов)
благодарю за ответ)