[Code] Sistema de Serial

Started by Hacker Xtreme, 28 de November , 2006, 09:27:33 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Hacker Xtreme

Ae pessoal desenvolvi este códigozinho é básico é só pra entender como   funciona um pouco.. é bem simples de se entender, desta vez eu não comentei... ;)

Código:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Registry;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Button2: TButton;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Grava;
    procedure Abre;
    procedure Checa;
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1 : TForm1;
  Reg : TRegistry;
  Estado : String;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Grava;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.CreateKey('Software\Hacker Xtreme\Registro');
Reg.OpenKey('Software\Hacker Xtreme\Registro', False);
Reg.WriteString('Estado', '0AOBSX98KSPD');
Reg.CloseKey;
end;

procedure TForm1.Abre;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\Hacker Xtreme\Registro', False);
Label3.Caption := Reg.ReadString('Estado');
Reg.CloseKey;
end;

procedure TForm1.Checa;
begin
if (Label3.Caption = '0AOBSX98KSPD') then
begin
Form2.ShowModal;
end
else
begin
Form1.Show;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Nome : String;
Serial : String;
begin
Nome := 'Xtreme';
Serial := '0156-8596-2457';
if (Edit2.Text = Nome) and (Edit1.Text = Serial) then
begin
Form1.Hide;
MessageBox(Application.Handle, 'Parabéns! Este software é original. Agora você poderá usa-lô por tempo ilimitado!', 'Original', MB_ICONINFORMATION+MB_OK);
Form2.Show;
Form1.Grava;
end
else
begin
Form1.Show;
MessageBox(Application.Handle, 'Nome ou Serial inválido. Tente novamente!', 'Pirata', MB_ICONERROR+MB_OK);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Clear;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
Form1.Abre;
Form1.Checa;
end;

Coded by Xtreme

...by Xtreme

TGA

TGA

Xtreme, blx cara,

tenho uma dúvida, seguinte, qual a finalidade do Procedimento TForm1.Grava;?

Se o programa só funciona se :

Quote(Edit2.Text = Nome) & (Edit1.Text = Serial)

O procedimento Grava, apenas criar no registro um valor  'Estado' com os dados '0AOBSX98KSPD';
Mais não valida nada, bom pelo menos é o que eu endi.

Vlw..abraços..
"A IMAGINAÇÃO É MAIS IMPORTANTE QUE O CONHECIMENTO"
__________________________________________________________

anakim

bem simples, eu considero algo pra 1 iniciante bom, mais tipo, aconselho a nao usar isso no lado profissional, sendo simples descobrir, no caso era melhor usar criptografia num bd, tipo e outra, pra q criar chave no registro?, se no codigo tem uma parte q testa se a chave = 'tal', entao pq nao inserir nada no registro pra tornar mais logico, no caso usuario algo remoto pra testar senha se pudesse mudar , cadastrar etc, novas contas e no caso deveria utilizar um bd com suporte a criptografia.
Why use Windows? If I have the door ;-)

rodweb

Acho que seria interessante um do tipo que gere o serial de acordo com o nome da pessoa, igual os programas normais...

Flws...

Hacker Xtreme

quando o serial é valido ele grava akele valor, e com akeles dados, quando a aplicação é iniciada ele verifica se contém akeles dados, se tiver ele inicia sem pedir serial caso contrário não...