不做任何变换,md5(Username) == RegcodeBOOL CCrackWindow::OnInitDialog() ... { CDialog::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) ...{ CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) ...{ pSysMenu->DeleteMenu(0,MF_BYPOSITION); pSysMenu->DeleteMenu(1,MF_BYPOSITION); pSysMenu->DeleteMenu(2,MF_BYPOSITION); pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 FSOUND_Init (44100, 32, 0); HINSTANCE hInst; HRSRC hSrc; HGLOBAL hRes; hInst = AfxGetInstanceHandle(); hSrc = FindResource(hInst,MAKEINTRESOURCE(IDR_IDR_OGG1),"IDR_OGG"); hRes = LoadResource(hInst,hSrc); char *logo = (char *)LockResource(hRes); DWORD dFileLength = SizeofResource(hInst, hSrc); handle=FSOUND_Stream_Open(logo,FSOUND_LOOP_NORMAL|FSOUND_LOADMEMORY, 0, dFileLength); //详细参见http://news.newhua.com/html/vc/2006-3/6/063611375235000_27.shtml hMutex = NULL; char strAppName[MAX_PATH] = ...{0xD6,0xF7,0xB3,0xCC,0xD0,0xF2}; char m_ErrContent[MAX_PATH] = ...{0xB3,0xCC,0xD0,0xF2,0xD2,0xD1,0xD4,0xCB,0xD0,0xD0,0xA3,0xA1}; hMutex = ::CreateMutex(NULL, FALSE, strAppName);//创建互斥对象 if (hMutex != NULL) ...{ bAnimRun = TRUE; if (GetLastError() == ERROR_ALREADY_EXISTS) ...{ bAnimRun = FALSE; AfxMessageBox(m_ErrContent,MB_ICONERROR); ::CloseHandle(hMutex);//关闭互斥对象 OnCancel(); } else ...{ if(bAnimRun) ...{ if(IsInDebugger()) ...{ ExitProcess(0); } //程序运行 CenterWindow();//设置中心 SetForegroundWindow();//设置为Top AnimateWindow(500,AW_SLIDE|AW_HOR_NEGATIVE|AW_ACTIVATE); FSOUND_Stream_Play (0,handle); } } } else ...{ //创建互斥对象失败 } return TRUE; // 除非设置了控件的焦点,否则返回 TRUE} void CCrackWindow::OnBnClickedOk() ... { // TODO: 在此添加控件通知处理程序代码 char buffer[MAX_PATH]; unsigned char md[16]; unsigned char rc[16]; char m_Caption[MAX_PATH] = ...{0xB9,0xA7,0xCF,0xB2}; char m_Content[MAX_PATH] = ...{0xD7,0xA2,0xB2,0xE1,0xB3,0xC9,0xB9,0xA6}; m_UserName.GetWindowText(buffer,MAX_PATH); MD5_CTX md5; md5.MD5Update((unsigned char *)buffer,(unsigned int)strlen(buffer)); md5.MD5Final(md); m_RegCode.GetWindowText(buffer,MAX_PATH); if(VerifyBuffer(buffer)) ...{ ConvertByteString(buffer,rc); if(memcmp(md,rc,16)==0) ...{ MessageBox(m_Content,m_Caption,MB_OK); return ; } } //OnOk();}