?? generic.cpp
字號:
#include <windows.h>
#include "generic.h"
#include "resource.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#if defined (win32)
#define IS_WIN32 TRUE
#else
#define IS_WIN32 FALSE
#endif
HINSTANCE hInst; // current instance
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
hInst = hInstance;
DialogBox(hInst, MAKEINTRESOURCE( IDD_DIALOG1 ), 0, (DLGPROC)gen);
return(0);
}
LRESULT CALLBACK gen( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
char username[255]="", serial[255]="";
char *upper;
int i, j, length, con=4129;
long int result1=0, current_letter=0, tmp_letter=0;
long int result2=0;
switch (uMsg)
{
case WM_COMMAND :
switch (LOWORD (wParam))
{
case IDGEN :
GetDlgItemText( hDlg, IDC_USERINPUT, username, 255);
// put key generation code here!!
length = strlen( username );
for (i=0 ; i < length ; i++)
{
current_letter = username[i];
current_letter = current_letter << 8;
result1 += username[i]*i;
for (j=0 ; j < 8 ; j++)
{
tmp_letter = current_letter;
tmp_letter = tmp_letter ^ result2;
if ( (LOWORD(tmp_letter) & 32768) )
{
result2 += result2;
result2 = result2 ^ con;
current_letter *= 2;
}
else
{
result2 *= 2;
current_letter *= 2;
}
}
}
result2 += 99;
sprintf ( serial, "%x%4x", LOWORD(result2), result1);
for (i=0 ; i < strlen(serial) ; i++)
if (serial[i] == ' ') serial[i] = '0';
upper = _strupr (serial);
//finish and bug out!
SetDlgItemText( hDlg, IDC_RESULTKEY, upper);
break;
case IDEXIT :
EndDialog( hDlg, IDEXIT);
break;
}
default : return(FALSE);
}
return(TRUE);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -