注册 登录
编程论坛 VC++/MFC

获得CPU-ID(序列号、机器码)的C++代码源码

wsgsoft 发布于 2023-09-13 14:32, 369 次点击
本篇文章属于《518抽奖软件开发日志》系列文章的一部分。

我在开发《518抽奖软件》(www.)的时候,在软件的注册部分,需要获得CPU的序列号(ID/机器码)。在网上找了一些代码,很多不好用,最后选了下面的一个,并经过自己的优化测试。

    unsigned long a = 0;
    unsigned long d = 0;
    __asm
    {
        mov eax, 01h
        xor edx, edx
        cpuid
        mov d, edx
        mov a, eax
    };

    char s[256] = { 0 };
    sprintf(s, "%08X%08X", d, a);
    unsigned int hashcode = Tfuns::ELFHash((unsigned char*)s, strlen(s));
    unsigned int cpuid = hashcode % 1000;

主要通过上面的汇编指令,然后经过hash运算可以缩小序列号的长度。

0 回复
1