ginastub

昨天突然想到我已有一个U盘,为什么不做一个Windows登陆时的usb Check呢?

1。 在SDK Sample中有一个GinaStub的例子
    在WlxDisplaySASNotice 添加如下内容:


VOID
WINAPI
WlxDisplaySASNotice (PVOID pWlxContext)
{
    //=======================  C O D E  S N I P  =========================
    // Add These Below

    int count = 0;
    while(!CheckUsbKey())
    {
        MessageBox(NULL, "Please Insert USB KEY", "Tips", MB_OK);
        if(count == 10) break;
        count++;
    }
    //====================================================================

    pfWlxDisplaySASNotice(pWlxContext);
}

//=============================
//   CheckUsbKey is here!!!
//=============================
BOOL CheckUsbKey()
{
    char filename[MAX_PATH+1];
    char drivename[3] = "A:";
    DWORD fix = 0x0001;
    FILE *file;
    char list[30];
    int numread;
    int i;
   
    DWORD drivermap = GetLogicalDrives();
   
    for( i = 2; i<26; i++)
    {
        if(drivermap & fix<<i)
        {
            drivename[0] = 'A' + i;
           
            if(DRIVE_REMOVABLE == GetDriveType(drivename))
            {
                _snprintf(filename, MAX_PATH+1, "%s//license.dat", drivename);
               
                file = fopen(filename, "r");
                               
                numread = fread( list, sizeof( char ), 8, file );
                list[8] = '/0';
               
                if(numread == 8 && strcmp(list,"12345678") == 0)  // your key
                {
                    fclose(file);
                    return TRUE;
                }
               
                fclose(file);
               
            }
        }
    }
   
    return FALSE;
   
}


2。 新建一个内容如下注册表文件

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon]

"GinaDLL"="GinaStub.dll"

3。 在U盘的根目录中新建一个license.dat, 内容为12345678

4。 将GinaStub.dll拷贝到System32目录下, 导入注册表文件, 重启即可。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值