首页
社区
课程
招聘
[原创]莱鸟破解入门之算法分析
发表于: 2005-8-23 16:48 12070

[原创]莱鸟破解入门之算法分析

2005-8-23 16:48
12070
收藏
免费 7
支持
分享
最新回复 (27)
雪    币: 242
活跃值: (163)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
26
修正了公式(简化下),加密字串函数完成.
2005-8-25 09:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
好复杂!我得慢慢学习!
2005-9-1 20:24
0
雪    币: 242
活跃值: (163)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
28
给出dephli写的key:

unit Unit2;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Edit4: TEdit;
    Timer1: TTimer;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure ClearMemory;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
application.ProcessMessages;
end;
end;

function Strjm(tr:string): int64;
var
  i:integer;
  h,g,k:int64;
begin
   h:=0;
  if Length(tr) = 1 then  Result :=59
   else
   begin
   for i := 1 to Length(tr) do
     begin
     h := h shl 4;
     h := h+ord(tr[i]);
     g := h;
     k := g and 4026531840;
     if k > 0 then
     h := h xor (k shr 24);
     k:= not k;
     h:=h and k;
     end;
    Result:=h;
   end;
end;

function zcml(a,b:int64;c:byte): int64;
var
d,e:integer;
begin
  d:= a+b;
  e:=d shl c ;
  Result:= e xor d ;
end;

function zcmr(a,b:int64;c:byte): int64;
var
d,e:integer;
begin
  d:= a+b;
  e:=d shr c ;
  Result:= e xor d ;
end;

function zcmjs(a,b,c,d,st:int64): integer;
var
f,g,h,j,k,l,t:integer;
begin
  f:=zcmr(a,b,7);
  h:=f;
  g:=zcml(d,f,13);
  j:=g;
  f:=zcmr(c,g,17);
  k:=f;
  g:=zcml(a+b*2,f,9);
  l:=g+h;
  f:=zcmr(h*2+d,g,3);
  g:=zcml(j*2+c,f,7);
  f:=g+(k+b)*2+a;
  g:=l*2+d;
  t:=g;
  g:=g shr 15;
  f:=f xor g;
  t:=f+t;
  g:=t shl 11;
  f:=g xor t;
  Result:=f xor st;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   close;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
   A,B,C,D,e:integer;
   mytr:string;
begin
   mytr:=AnsiUpperCase(Edit1.Text+';'+Edit2.Text);
   e:=Strjm(mytr);
   A:=zcmjs(55798,3776713814,3607463695,80963102,e);
   B:=zcmjs(A,3607463695,3776713814,2623553675,55798);
   C:=zcmjs(B,80963102,2623553675,3607463695,A);
   D:=zcmjs(C,2623553675,80963102,3776713814,B);
   mytr:=inttohex(C,8)+inttohex(D,8);
   Edit4.Text:=mytr[7]+mytr[8]+mytr[5]+mytr[6]+mytr[3]+mytr[4]+mytr[1]+mytr[2]+mytr[15]+mytr[16]+mytr[13]+mytr[14]+mytr[11]+mytr[12]+mytr[9]+mytr[10];
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  ClearMemory;
end;

end.附件:key.src.rar
2005-9-2 10:55
0
游客
登录 | 注册 方可回帖
返回
//