Como Frank Thomas observa, como a Apple faz isso é sem dúvida considerado um segredo comercial. Como você pode fazer isso, ou como eu poderia fazê-lo, é mais aberto à discussão.
Eu provavelmente teria meu software acompanhando, em algum lugar, o tempo que passa no relógio do sistema - não a hora / data que o relógio do sistema diz, mas simplesmente a passagem do tempo, e registra isso (criptografado) em vários locais . Quando eu comecei, checava se todos os locais concordavam e, se não o fizessem, eu os definiria para o valor mais alto em qualquer local, antes de continuar a incrementar a partir daí.
Eu posso ver falhas potenciais nessa abordagem (possibilidade de perder tempo enquanto o computador está desligado), mas algo assim funcionaria, até certo ponto.