Задача делится на две
1. определение конфигурации
2. защита от мошенничества
реализация одного будет зависеть от другого, например можно спросить у операционной системы, сколько ядер доступно, можно спросить что за железо и по базе данных определить его возможности, можно бенчмарк провести, а можно ничего не делать, а поверить пользователю
Защита от мошенничества крутится вокруг усложнения кода проверок и обфускации, можно размазать проверки по всему коду разными методами, можно завязать функционал на количество ядер, т.е. приложение тупо не сможет работать на большем количестве ядер чем дает лицензия, потому что именно для этого пользователя ему собран соответствующий бинарник, в котором в алгоритме заложены ограничения.
В конце концов взламывается все, вопрос только в цене