home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Texty / crackme / keygen.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1999-12-13  |  2.3 KB  |  107 lines

  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include "abc.h"
  4.  
  5. void GenerateCode(HWND);
  6. BOOL CALLBACK KeygenDialogProcedure(HWND, UINT, WPARAM, LPARAM);
  7. int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
  8.  
  9. unsigned char myname[]="ACiD BuRN [ID]";
  10. unsigned char prog_name[200]="ID Crackme 8 *keygen*";
  11. HINSTANCE hInstance2;
  12.  
  13. void GenerateCode(HWND hDlg){
  14.    HWND hwndName, hwndCode;
  15.  
  16.    unsigned char name[101]={0},code_string[100]={0};
  17.    int i,len;
  18.  
  19.     unsigned long check=0;
  20.  
  21.    hwndName=GetDlgItem(hDlg,IDC_NAMEEDIT);
  22.    SendMessage(hwndName,EM_SETLIMITTEXT,100,0);
  23.    GetWindowText(hwndName,name,sizeof(name));
  24.  
  25.    hwndCode=GetDlgItem(hDlg,IDC_SERIALEDIT);
  26.  
  27.       len=strlen(name);
  28.  
  29.       if(len==0){
  30.       SetWindowText(hwndCode,"Enter Your Name....");
  31.       return;
  32.       }
  33.  
  34. if(i>=1){
  35. asm
  36. {
  37.        
  38.     xor ecx, ecx
  39.     xor edx, edx
  40.     xor eax, eax
  41.     xor edi, edi
  42.  
  43. start:
  44.         mov ecx , [len]
  45.         dec ecx
  46.         movsx eax, [name+ecx]
  47.         imul eax, 13
  48.         add eax, 161
  49.     imul eax, eax
  50.         imul eax, 154
  51.         mov [check], eax
  52.  
  53. }
  54.  
  55.  
  56.          sprintf(code_string,"%lu",check);
  57.  
  58.          SetWindowText(hwndCode,code_string);
  59. }
  60.  
  61.       else{
  62.          SetWindowText(hwndCode,"Name must be at least 3 chars long");
  63.       }
  64. }
  65.  
  66. BOOL CALLBACK KeygenDialogProcedure(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam){
  67.  
  68.    switch(uMsg){
  69.  
  70.       case WM_SHOWWINDOW:
  71.  
  72.          SetWindowText(hDlg,prog_name);
  73.          SetWindowText(GetDlgItem(hDlg,IDC_NAMEEDIT),myname);
  74.          SendMessage(GetDlgItem(hDlg,IDC_NAMEEDIT),EM_SETSEL,0,-1);
  75.          SetFocus(GetDlgItem(hDlg,IDC_NAMEEDIT));
  76.          GenerateCode(hDlg);
  77.          break;
  78.  
  79.       case WM_CLOSE:
  80.          EndDialog(hDlg,1);
  81.          return 1;
  82.  
  83.       case WM_COMMAND:
  84.          switch(LOWORD(wParam)){
  85.             case IDC_NAMEEDIT:
  86.                if(HIWORD(wParam)==EN_UPDATE){
  87.                   GenerateCode(hDlg);
  88.                   break;
  89.                }
  90.                break;
  91.  
  92.          }
  93.       break;
  94.  
  95.       default:
  96.          return FALSE;
  97.    }
  98.    return TRUE;
  99. }
  100.  
  101. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow){
  102.  
  103.    hInstance2=hInstance;
  104.    DialogBox(hInstance,MAKEINTRESOURCE(DIALOG_1),NULL,(DLGPROC)KeygenDialogProcedure);
  105.    return FALSE;
  106. }
  107.