Encontrei sistemas de licença que estão de alguma forma vinculados ao meio de armazenamento. Embora basear isso no UUID do sistema de arquivos seja bastante simples, não acredito que seja esse o caso (veja abaixo). Um exemplo típico desse comportamento é o seguinte:
- Em cada inicialização, um arquivo de identificação é gerado.
- O sistema verificará um arquivo-chave em busca de uma licença. Se a chave corresponder ao ID, tudo bem.
- Se não houver chave ou se a chave não corresponder ao ID (como copiada de um sistema diferente), a licença não será válida.
Observei o seguinte comportamento:
- Limpar completamente o cartão CF e reinstalar resulta na geração do mesmo arquivo de identificação, portanto, nenhum novo arquivo de chave é necessário.
- Usar a mesma chave em um CF diferente não funciona, pois não corresponde ao conteúdo do novo arquivo de identificação.
Isso me leva a concluir que existe uma maneira de obter de alguma forma uma identificação exclusiva do cartão CF. Como alguém pode conseguir isso no Linux?
PS:Omiti propositalmente todos os detalhes do produto em si, pois estou me perguntando mais em termos gerais como um sistema como esse pode criar uma identificação exclusiva do cartão CF.
Responder1
O cartão terá muitas informações registradas somente para leitura.
O artigoLendo informações internas do cartão SDtem isto a dizer:
Informações internas do cartão SD
As informações sobre um cartão SD são codificadas nos registros internos do cartão. Um deles é oIdentificação do Cartão (CID)Register, um código de 16 bytes que contém informações que identificam exclusivamente o cartão SD, incluindo o número de série do cartão (PSN), número de identificação do fabricante (MID) e data de fabricação (MDT). O registro CID é definido quando o cartão é fabricado e não pode ser alterado depois de configurado. (De acordo com a especificação do cartão SD, a informação só deve ser escrita uma vez; no entanto, se um cartão não estiver em conformidade com a especificação, esta informação poderá ser alterada!)
Como ler o CID de um cartão SD
Uma maneira de ler o CID é usar um laptop com slot para cartão SD. Os leitores de cartão em laptops geralmente são conectados diretamente através do barramento PCI (ou barramento IDE). Isso não funcionará através de um leitor de cartão USB porque o comando para recuperar as informações do cartão é interceptado e não é compreendido pelos leitores de cartão. Nem todos os computadores com slots de cartão integrados funcionarão; alguns leitores de cartão internos são conectados através de um barramento USB.
Supondo que você tenha o hardware adequado, existem vários métodos que você pode usar para obter as informações do cartão. Com o Linux, ler as informações internas do cartão SD é simples. Insira o cartão e olhe abaixo
/sys/block/mmcblk0/device/
(este local pode mudar dependendo do seu dispositivo). Você verá vários atributos disponíveis que incluem o registro CID e as informações contidas nele.
Responder2
Como outros comentaram, isso pode estar relacionado à maneira como o cartão CF foi apagado, mas é mais provável que o software esteja identificando o cartão CF com base no firmware do cartão -
Essas informações normalmente podem ser lidas usando "udevinfo" - por exemplo, se o cartão CF for /dev/sdb udevinfo -a -p $(udevinfo -q path -n /dev/sdb) - isso provavelmente incluirá informações suficientes para identificar exclusivamente o cartão.
Observação: em distros baseadas em Debian udevadm info
substitui udevinfo
:
udevadm info -a -p $( udevadm info -q path -n /dev/sdb )