登录
首页 » VC++源码 » VC++ 实现对软件的简单加密(注册)功能

VC++ 实现对软件的简单加密(注册)功能

于 2022-11-07 发布 文件大小:20.53 kB
0 264
下载积分: 2 下载次数: 1

代码说明:

VC++ 实现对软件的简单加密,本程序是通过C盘序列号来加密文件,实现软件的注册功能,软件号和C盘序列号同时正确才可验证,而C盘的序列号是唯一的,获得c盘序列号的代码如下:   DWORD VolumeSerialNumber;   GetVolumeInformation("c:",NULL,12,&VolumeSerialNumber,NULL,NULL,NULL,10);   VolumeSerialNumber^=0x12345678;//本机c盘序列号简单运算   m_usernum=VolumeSerialNumber;   UpdateData(false);   然后通过序列的判断,来验证加密是否正确,比如下边的代码来做加密验证:   UpdateData(true);   DWORD num;   num=m_usernum;   num^=0x1999aa98+12;//加密算法   if(!(num==m_serialnum))   {    AfxMessageBox("输入的序列号不正确!");    return;   }

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • VC 6.0 获得驱动器序列号
    VC 6.0 获得驱动器序列号,本例子中可以指定驱动器分区,也就是大家说的D盘、E盘,每个磁盘分区的序列号,这个序列号标识ID分区后由系统自动指定,我们可编写以下代码实现此功能:   //获得实际存储驱动器号的字符串长度   dwNumBytesForDriveStrings=GetLogicalDriveStrings(0,NULL)*sizeof(TCHAR);   //如果字符串不为空,则表示有正常的驱动器存在   if (dwNumBytesForDriveStrings!=0) {    //分配字符串空间    hHeap=GetProcessHeap();    lp=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,    dwNumBytesForDriveStrings);    //获得标明所有驱动器的字符串    GetLogicalDriveStrings(HeapSize(hHeap,0,lp),lp);    //将驱动器一个个放到下拉框中    while (*lp!=0) {    Driver->AddString(lp);    lp=_tcschr(lp,0)+1;    }   }
    2022-02-06 01:57:21下载
    积分:1
  • 一个老式的视频播放器程序 VC++编写
    VC++编写 实现的一款老式的视频播放器,视频:用Media Player组件制作的视频播放器,看上去,是调用了Windows系统自带的MediaPlayer插件而实现的,具体windows mediaPlayer播放器的功能,使用这个插件,不管是VC或是VB、Delphi,都可以快速实现这个播放器功能,不过播放器播放的格式同样受限于windows mediaPlayer播放器。
    2023-06-27 02:50:03下载
    积分:1
  • vc++ 弹窗拦截程序-阻止创建窗口源码
    VC6.0阻止弹窗程序 弹窗免疫,阻止创建窗口,基于MFC实现,本弹窗拦截程序主要是根据窗口标题来阻止的,启动程序后在编缉控件中输入窗口标题,如果要输入多个就用空格或回车隔开,然后按开始就可以在以此为标题对话框在刚建立时就被自动关闭,就像没看到它们出现一样.   如果要阻止所有窗口,可以去Hook类中把 WM_INITDIALOG改为WM_CREATE就可以了.这个程序主要用于学习,并没有为实际使用而做过多改善。
    2022-03-26 04:43:26下载
    积分:1
  • VC++ 制作的 TextProgress文本进度条样例
    这是VC++ 制作的 TextProgress文本进度条样例,可自定义步长和进度条数字变化范围,根据窗口中的提示设置相关参数后,即可看到进度条的变化效果,下面是具体的实现代码:   void CTextProgressDlg::OnButtonStart()   {    UpdateData();    m_ctrProgressBar.SetPos(0);//设定当前位置    m_ctrProgressBar.SetRange(m_nRangeFrom,m_nRangeTo); //设定范围    m_ctrProgressBar.SetStep(m_nStep);//设定步长    m_ctrProgressBar.SetShowText(TRUE);//允许显示文字    for (int i = 0; i
    2022-11-21 13:20:03下载
    积分:1
  • VC++ 实现屏幕取词功能的鼠标钩子
    VC++实现类似早期金山词霸屏幕取词功能的鼠标钩子HOOK,鼠标HOOK,钩子的实现例子附上源码,里面包括了两个源码:   Mousehook为类似金山词霸屏幕取词功能的鼠标钩子   TestMouseHook文件夹内为鼠标钩子生成DLL的源码例子   在调用这个钩子时,要把MouseHook文件夹内生成的DLL拷贝至TestMousehook的BIN目录下。   调用钩子时,要做相关设置:   #pragma data_seg("mydata")   HWND glhPrevTarWnd = NULL; //上次鼠标所指的窗口句柄   HWND glhDisplayWnd = NULL; //显示目标窗口标题编辑框的句柄   HHOOK glhHook = NULL; //安装的鼠标勾子句柄   HINSTANCE glhInstance = NULL; //DLL实例句柄   #pragma data_seg()   还有安装钩子并设定接收显示窗口句柄、设置显示目标窗口标题编辑框的句柄、得到光标(point)所在点的窗口句柄、得到整个窗口在屏幕上的矩形框位置等。
    2023-05-25 03:10:04下载
    积分:1
  • VC++6.0 执行数据库事务的范例
    在VC++6.0程序中执行数据库事务的一个范例,是一个数据库的高级应用例子,关于设置ADO控件,方法如下:   (1)在程序中选择ResourceView视图,打开“Dialog”节点下的“IDD_AFFAIR_DIALOG”对话框资源,右键单击ADO Data控件,在弹出的菜单中选择Properties菜单项,选择通用选项卡,单击“生成”按钮,在连接选项卡中单击“…”按钮,打开当前文件夹中的Access数据库,单击“测试连接”按钮,单击“确定”按钮。   (2)右键单击DataGrid控件,在弹出的菜单中选择Properties菜单项,选择All选项卡,在DataSource项对应的Value值中重新选择IDC ADODC1项。   
    2022-07-23 05:48:05下载
    积分:1
  • 3个VC++ win注册表编程操作实例
    本源码中有三个VC++操作表的相关例子,每一个都属于比较简单那种,展示注册表的操作技巧,有兴趣的下载源码包。   HKEY hKEY; //定义有关的 hKEY, 在查询结束时要关闭。   LPCTSTR data_Set="SoftwareMicrosoftWindowsCurrentVersion"; //子键目标   //打开与路径 data_Set 相关的 hKEY,第一个参数为根键名称,第二个参数表。   //表示要访问的键的位置,第三个参数必须为0,KEY_READ表示以查询的方式。   //访问注册表,hKEY则保存此函数所打开的键的句柄。   long retopen=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_READ, &hKEY));   if(retopen!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行   {    MessageBox("错误: 无法打开有关的hKEY!");    return;   }   //查询有关的数据 (系统用户姓名 owner_Get)。   LPBYTE owner_Get=new BYTE[80];   DWORD type_1=REG_SZ ;   DWORD cbData_1=80;   //hKEY为刚才RegOpenKeyEx()函数所打开的键的句柄,"RegisteredOwner"。   //表示要查 询的键值名,type_1表示查询数据的类型,owner_Get保存所。   //查询的数据,cbData_1表示预设置的数据长度。   //与RegQureyValueEx()类似,hKEY表示已打开的键的句柄,"RegisteredOwner"   //表示要访问的键值名,owner_Set表示新的键值,type_1和cbData_1表示新值。   //的数据类型和数据长度   UpdateData(true);//获得编辑框数据   if(m_Adduser.IsEmpty()||m_Addpassword.IsEmpty())//用户名、密码不能为空   {    AfxMessageBox("输入用户名、密码不能为空!");    return;   }
    2022-02-22 09:55:12下载
    积分:1
  • VC++ 设置打印图形的位置
    VC++ 6.0 设置打印图形的位置,实现所见即所得的打印功能。   if(pDC->IsPrinting())//判断是否因打印或打印预览而调用OnPrepareDC()函数   {    pDC->SetViewportOrg(250,400);//设置视口坐标原点   }   //以下为显示和打印的内容   pDC->TextOut(10,10,"实现所见即所得的打印");   pDC->SetBkMode(TRANSPARENT);   pDC->Rectangle(10,40,310,350);   pDC->Ellipse(50,50,210,220);   pDC->Ellipse(70,240,280,320)   //设置映射模式   pDC->SetMapMode(MM_ANISOTROPIC);   CSize winSize = CSize(1024,768);   pDC->SetWindowExt(winSize); //设定窗口大小   //得到实际设备每逻辑英寸的像素数量   int xLogPixPerInch,yLogPixPerInch;   xLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSX);   yLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSY);   //得到设备坐标和逻辑坐标的比例   以下是实现打印:   int xExt,yExt;   xExt=winSize.cx*600/xLogPixPerInch; //按照打印机扩大视口   yExt=winSize.cy*600/yLogPixPerInch;   pDC->SetViewportExt(xExt,yExt); //设定视口大小
    2022-01-27 16:52:24下载
    积分:1
  • VC++基于VC++写的登录程序
    VC++基于VC++写的登录程序,结合数据库实现的,是一个简单数据库程序,测试前请做以下工作:   1.配置ODBC数据源   2.新建CAdminDatasets类(方便登录对话框的调用),新建过程当中以CRecordset为基类,数据源选中对应数据库,然后选中对应用户登录表   3.新建登录对话框,以CDialog为基类。然后按程序代码执行登录检查
    2022-08-22 14:43:26下载
    积分:1
  • VC++ 删除已存在的存储过程
    VC++ 演示在程序中删除已存在的存储过程,VC6存储过程相关操作实例,删除方法很简单,创建对象,如下代码示:   UpdateData(true);   BOOL result;   ADOConn m_AdoConn;   m_AdoConn.OnInitADOConn();   _bstr_t sql;   sql = "drop procedure "+m_edit+" ";   result = m_AdoConn.ExecuteSQL(sql);   m_AdoConn.ExitConnect();   if(result)    MessageBox("存储过程已删除!");   else    MessageBox("存储过程不存在!");
    2022-12-24 15:50:03下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载