main.pas
上传用户:graphite
上传日期:2020-09-09
资源大小:2587k
文件大小:4k
源码类别:

破解

开发平台:

Others

  1. unit main;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls;
  6. type
  7.   TfrmMain = class(TForm)
  8.     lRegKey: TLabel;
  9.     btnGenerate: TButton;
  10.     btnExit: TButton;
  11.     eRegKey: TEdit;
  12.     lRegName: TLabel;
  13.     eRegName: TEdit;
  14.     procedure btnGenerateClick(Sender: TObject);
  15.     procedure btnExitClick(Sender: TObject);
  16.   private
  17.     { Private declarations }
  18.   public
  19.     { Public declarations }
  20.   end;
  21. var
  22.   frmMain: TfrmMain;
  23. implementation
  24. {$R *.DFM}
  25. {$I includeaspr_KeyGen.inc}
  26. function RegistrationKeyGenerate( var Params : TParams ): DWORD; stdcall; external 'keygen.dll';
  27.   
  28. //------------------------------------------------------------------------------
  29. Function GenerateKey( var KeyStr, NameStr : String; Var Res : DWORD ): Boolean;
  30. var
  31.   Params  : TParams;
  32.   RegData : array[1..100] of Byte;
  33. begin
  34.   FillChar(Params,SizeOf(Params),0);
  35.   With Params do
  36.   begin
  37.     // Registration name
  38.     RegName := PChar(NameStr);
  39.     // Mode number (1..15)
  40.     ModeID  := 2;
  41.     // Expiration date
  42.     ExpirationDate.Day   := 0;
  43.     ExpirationDate.Month := 0;
  44.     ExpirationDate.Year  := 0;
  45.     // Constant for encryption
  46.     EncryptionConst := 699935518;
  47.     // HardwareID
  48.     HardwareID      := '';
  49.     // Signature size in bits
  50.     SignatureBits   := 96;
  51.     // Constants from project file
  52.     C1 := 
  53.      'AC08B45461D28EB';
  54.     C3 := 
  55.      'A93A5FB8C78D04F1';
  56.     C6 := 
  57.      '26D6BB434014649375231C68A655B81D314AEAF3CE32C6DC8BD'+
  58.      'CBCB9EEDC61EBA3C4A2119685E22205B782C88BFAF21FE98D4'+
  59.      '474FBDB1AFA539B05F09EF60DDF5BA8224161942B9582D37DD'+
  60.      'D624A97C373E5BB33BFC2335A674E4839D72253BA62B97F0B3'+
  61.      '6BCA5B4001353FED5D28FED31FA53C343F381BE121E106F669'+
  62.      '5B3CB';
  63.     C7 := 
  64.      '1726DAE1BD153379F1FB0F4F2E00C06D39A733B7715D108EF0C'+
  65.      '518A11DF528394E37F744E1CEE1B4B411FEAFD7DDE0E281042'+
  66.      'A728F85FEDB91C8C2ECECF31873C77D68053D550EB8549FDE2'+
  67.      'C1885F40B68E1F0FF3383B747882AA517EB6F9061E23650222'+
  68.      '85F1B1BEA91F83E2C4CD66BF0C636FC79B81A738D65D6F5BF8'+
  69.      '0234D7';
  70.     RegKey := @RegData[1];          // Buffer for registration key
  71.     RegKeySize := SizeOf(RegData);  // Size of a buffer for reg. key
  72.     // Generating...
  73.     Res := RegistrationKeyGenerate( Params );
  74.     Result := (Res = kgERROR_SUCCESS);
  75.     If Result then SetString( KeyStr, RegKey, RealKeySize );
  76.   end;
  77. end;
  78. //------------------------------------------------------------------------------
  79. procedure TfrmMain.btnGenerateClick(Sender: TObject);
  80. Var
  81.   KeyStr  : String;
  82.   NameStr : String;
  83.   Res     : DWORD;
  84.   ResStr  : String;
  85. begin
  86.   NameStr := eRegName.Text;
  87.   If not GenerateKey( KeyStr, NameStr, Res ) then
  88.   begin
  89.     case Res of
  90.      kgERROR_KG_ERROR            : ResStr := 'Key generator error!';
  91.      kgERROR_MODE_UNKNOWN        : ResStr := 'Unknown mode number!';
  92.      kgERROR_REGNAME_ERROR       : ResStr := 'Incorrect registration name!';
  93.      kgERROR_SIGNATURE_ERROR     : ResStr := 'Unknown mode signature!';
  94.      kgERROR_BUFFER_TOO_SMALL    : ResStr := 'Result buffer too small!';
  95.      kgERROR_CONSTANTS_UNDEFINED : ResStr := 'Incorrect constants!';
  96.      kgERROR_HARDWAREID_ERROR    : ResStr := 'Invalid HardwareID key!';
  97.     else
  98.      ResStr := 'Unknown error!';
  99.     end;
  100.     MessageBox(Handle,PChar(ResStr),'Error',0);
  101.   end else
  102.     eRegKey.Text := KeyStr;
  103. end;
  104. //------------------------------------------------------------------------------
  105. procedure TfrmMain.btnExitClick(Sender: TObject);
  106. begin
  107.   Close;
  108. end;
  109. //------------------------------------------------------------------------------
  110. end.