//coded by IMPosTOR //impostor@de-compiler.me //www.de-compiler.me Random_Serial char ---> 23456789AaBbDdEeFfGgHhMmNnQqRrTt function Decode(input : integer): string; var i : integer; M_2 : string; Magic : array[1..8]of cardinal; r1 : string; cal_1 : array[0..13]of cardinal; begin result := 'Error : 01'; M_2 := '23456789AaBbDdEeFfGgHhMmNnQqRrTt'; cal_1[00] := (input shl 8) or input; cal_1[01] := (cal_1[0] shl $10) or cal_1[0]; Magic [01] := $35343332; Magic [02] := $39383736; Magic [03] := $62426141; Magic [04] := $65456444; Magic [05] := $67476646; Magic [06] := $6D4D6848; Magic [07] := $71516E4E; Magic [08] := $74547252; for i := 1 to 8 do begin cal_1[02] := Magic [i]; cal_1[03] := $7EFEFEFF ; cal_1[04] := cal_1[01] xor cal_1[02] ; cal_1[05] := cal_1[02] + cal_1[03] ; cal_1[06] := cal_1[04] + cal_1[03] ; cal_1[07] := cal_1[04] xor $FFFFFFFF ; cal_1[08] := cal_1[02] xor $FFFFFFFF ; cal_1[09] := cal_1[06] xor cal_1[07] ; cal_1[10] := cal_1[05] xor cal_1[08] ; cal_1[11] := cal_1[09] and $81010100 ; if cal_1[11] <> 0 then break; cal_1[12] := cal_1[10] and $81010100 ; if cal_1[12] <> 0 then break; end; if (cal_1[01] and $FF) = (Magic[i] and $FF) then begin r1 := copy(M_2,(i * 4) + 1 - 4,length(M_2)); r1 := inttostr($20 - length(r1)); result := r1; exit; end; if (cal_1[01] and $FF) = ((Magic[i] and $0000FF00)shr 8) then begin r1 := copy(M_2,(i * 4) + 1 - 3,length(M_2)); r1 := inttostr($20 - length(r1)); result := r1; exit; end; cal_1[13] := Magic[i] shr $10; if (cal_1[01] and $FF) = (cal_1[13] and $FF) then begin r1 := copy(M_2,(i * 4) + 1 - 2,length(M_2)); r1 := inttostr($20 - length(r1)); result := r1; exit; end; if (cal_1[01] and $FF) = ((cal_1[13] and $0000FF00)shr 8) then begin r1 := copy(M_2,(i * 4) ,length(M_2)); r1 := inttostr($20 - length(r1)); result := r1; exit; end; //result := end; function Generate_Serial_by_IMPosTOR(User_Name : string) : string; var i : integer; cal_1 : array[1..4]of cardinal; cal_2 : array[0..4]of cardinal; M : integer; part1,part2,part3,part4 : string; begin result := 'Error : 01'; repeat Part1 := Random_Serial(4,7); for i := 1 to length(Part1) do begin M := (ord(Part1[i])); cal_1 [i] := strtoint(Decode(M)); end; cal_2 [00] := (((((cal_1 [01] shl 5) or cal_1 [02]) shl 5) or cal_1 [03]) shl 5) or cal_1 [04]; Part2 := Random_Serial(4,7); for i := 1 to length(Part2) do begin M := (ord(Part2[i])); cal_1 [i] := strtoint(Decode(M)); end; cal_2 [01] := (((((cal_1 [01] shl 5) or cal_1 [02]) shl 5) or cal_1 [03]) shl 5) or cal_1 [04]; Part3 := Random_Serial(4,7); for i := 1 to length(Part3) do begin M := (ord(Part3[i])); cal_1 [i] := strtoint(Decode(M)); end; cal_2 [02] := (((((cal_1 [01] shl 5) or cal_1 [02]) shl 5) or cal_1 [03]) shl 5) or cal_1 [04]; Part4 := Random_Serial(4,7); for i := 1 to length(Part4) do begin M := (ord(Part4[i])); cal_1 [i] := strtoint(Decode(M)); end; cal_2 [03] := (((((cal_1 [01] shl 5) or cal_1 [02]) shl 5) or cal_1 [03]) shl 5) or cal_1 [04]; cal_2 [04] := (cal_2[03] xor cal_2[02]) xor cal_2[00]; until (cal_2 [04] = cal_2[01]) and (cal_2 [03] <> cal_2 [02]); result := Part1 + '-' + Part2 + '-' + Part3 + '-' + Part4 ; end;