home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Quantico / km / newsrove.pas.txt < prev    next >
Encoding:
Text File  |  2000-05-25  |  9.3 KB  |  349 lines

  1. Program KeyGen_for_New_Rover;
  2. Uses Logo,Crt;
  3. Const
  4.     NB : Array[1..85] of String[24] = ( {This is the name database}
  5.     'ChrisLepezia'              ,
  6.     'ComengIseng'               ,
  7.     'DouglasGoodall'            ,
  8.     'Durkpc97'                  ,
  9.     'Durk'                      ,
  10.     'FrankMaier'                ,
  11.     'JennyMcCarthy'             ,
  12.     'JohnSeca'                  ,
  13.     'RogerGreene'               ,
  14.     'AlanGarrett'               ,
  15.     'DieterBach'                ,
  16.     'ScottMorgan'               ,
  17.     'RogerSmith'                ,
  18.     'MichaelGilbreath'          ,
  19.     'JudithWareham'             ,
  20.     'JanKlaassen'               ,
  21.     'TheGuardianAngelTgaGis'    ,
  22.     'TheGuardianAngel'          ,
  23.     'FreeRegisteredVersion'     ,
  24.     'Free'                      ,
  25.     'TellerbopTelGis'           ,
  26.     'Tellerbop'                 ,
  27.     'Me'                        ,
  28.     'You'                       ,
  29.     '2U'                        ,
  30.     '4U'                        ,
  31.     'Somebody'                  ,
  32.     'Nobody'                    ,
  33.     'Anybody'                   ,
  34.     'sysop'                     ,
  35.     'anyone'                    ,
  36.     'noone'                     ,
  37.     'xxx'                       ,
  38.     'MadJester'                 ,
  39.     'MadJesterGrs97'            ,
  40.     'BlackSheep'                ,
  41.     'WilliamMartinez'           ,
  42.     'NormanGTolman'             ,
  43.     'SteveFair'                 ,
  44.     'FazalMohammed'             ,
  45.     'CraigBruno'                ,
  46.     'MarcFeist'                 ,
  47.     'BobCouchman'               ,
  48.     'JVilleneuve'               ,
  49.     'EdwardRudman'              ,
  50.     'DanaWood'                  ,
  51.     'DaGiVeR'                   ,
  52.     'craks4u'                   ,
  53.     'pc97Teslacoil'             ,
  54.     'pc97'            {Yep!}    ,
  55.     'teslacoil'                 ,
  56.     'CowChicken'                ,
  57.     'Cow'                       ,
  58.     'Chicken'                   ,
  59.     'BiteMyLeg'                 ,
  60.     'SHComputerSystemsInc'      ,
  61.     'GeraldPaul'                ,
  62.     'MrLee'                     ,
  63.     'asaiharum'                 ,
  64.     'scotttsnt'                 ,
  65.     'CharlesKEllis'             ,
  66.     'MartinGagne'               ,
  67.     'DonDayton'                 ,
  68.     'Alpha'                     ,
  69.     'redinger'                  ,
  70.     'Igrowledforfiveseconds'    ,
  71.     'MichaelJaschek'            ,
  72.     'Arealkeyhere'              ,
  73.     'DeeZawel'                  ,
  74.     'Yogan'                     ,
  75.     'Havana'                    ,
  76.     'UnlimitedUse'              ,
  77.     'fsmith3'                   ,
  78.     'Dexter'                    ,
  79.     'SeasonsGreetings'          ,
  80.     'Mirnixdirnix'              ,
  81.     'asdfg'                     ,
  82.     'Registered'                ,
  83.     'Myasshurts'                ,
  84.     'Thiscomputer'              ,
  85.     'Mycomputer'                ,
  86.     'Klansmansuckblackdick'     ,       {Sick programmer}
  87.     'KKKsuckblackdick'          ,       {Really sick programmer!}
  88.     'AlienSoft'                 ,
  89.     'AnyComputer' );
  90.  
  91. Var Name : string[30];
  92.     I,j,K : byte;
  93.     A : Array[1..2] of word ;
  94.     B,C : Array[1..4] of byte;
  95.     S,H : String[4];
  96.     Code : Array[1..4] of Byte;
  97.     Y: String[6];
  98.  
  99.  
  100.  
  101. {──────────────────────────────────────────────────────────────────────────}
  102. Procedure Check_Name;
  103. Var ClnName : string[30];
  104.  
  105. Begin
  106.      j:=0;
  107.      For i:=1 to Length(Name) do    {Create ClnName - only Letters and dig}
  108.         Begin
  109.          K := Ord(Name[i]);
  110.          If (( K >= Ord('0')) And ( K <= Ord('9'))) Or
  111.             (( K >= Ord('a')) And ( K <= Ord('z'))) Or
  112.             (( K >= Ord('A')) And ( K <= Ord('Z'))) Then
  113.                Begin INc(j); ClnName[j]:=Name[i]; End;
  114.         End;
  115.      ClnName[0]:=Chr(j);
  116.  
  117.      For I:=1 to 85 do
  118.          If ClnName = NB[i] Then
  119.            Begin
  120.             TextColor(14);
  121.             write('Error:');
  122.             TextColor(15);
  123.             Writeln('The Name ',ClnName,' is not accepted In the Registration!(Blaim the programmer;)');
  124.             writeln('      Choose a different Name (Tip:CAPPITAL and small Letters are DiFfErEnT)!');
  125.             Halt(1);
  126.            End;
  127.  
  128. end;
  129.  
  130.  
  131. {──────────────────────────────────────────────────────────────────────────}
  132. procedure dec2hex(x : word);
  133. var g : Byte;
  134. Begin
  135.      S[0]:=Chr(4);
  136.      For g:=4 downto 1 do
  137.       Begin
  138.          s[g]:=Chr((x mod 16));
  139.          x := x div 16;
  140.       End;
  141.  
  142. End;
  143.  
  144.  
  145. {──────────────────────────────────────────────────────────────────────────}
  146. Procedure Cal1;
  147.           Function Hex2Dec(X : Byte) : Byte;
  148.             Begin
  149.                  Hex2Dec := Ord(S[x])*16+Ord(s[x+1]);
  150.             End;
  151. Begin
  152.      A[1]:=0;
  153.      J:=0;
  154.      For i:=1 to Length(Name) do
  155.         Begin
  156.          K := Ord(Name[i]);
  157.          If (( K >= Ord('0')) And ( K <= Ord('9'))) Or
  158.             (( K >= Ord('a')) And ( K <= Ord('z'))) Or
  159.             (( K >= Ord('A')) And ( K <= Ord('Z'))) Then
  160.                Begin
  161.                                    {small letters to cappital}
  162.                If ( K >= Ord('a')) And ( K <= Ord('z')) Then k:=k-$20;
  163.                K:=K Xor (j);
  164.                A[1] := A[1] + k;
  165.                Inc(j);
  166.                End;
  167.         End;
  168.      Dec2Hex(A[1]);     {Will put in S the Hex Value of A[1]}
  169.      B[3] := Hex2Dec(1);
  170.      B[4] := Hex2Dec(3);
  171. End;
  172. {──────────────────────────────────────────────────────────────────────────}
  173. Procedure Cal2;
  174. Begin
  175.      Randomize;
  176.      B[1]:=Random($ff);
  177.      B[2]:=Random($ff);
  178.      H:=S;
  179.  
  180.  
  181.      J:=0;
  182.      While J=0 do
  183.      Begin
  184.      Inc(B[2]);
  185.      A[2]:=B[1]*256+B[2];
  186.      Dec2Hex(A[2]);
  187.      If Ord(S[2]) Xor Ord(S[3]) Xor Ord(S[4]) Xor Ord(H[1]) Xor
  188.         Ord(H[2]) Xor Ord(H[3]) Xor Ord(H[4]) = Ord(S[1]) Then j:=1;
  189.      End;
  190.  
  191. End;
  192.  
  193. {──────────────────────────────────────────────────────────────────────────}
  194. Procedure Cal3;
  195. Var X : Array[1..2] of Word;
  196.     L : Array[1..2] of LongInt;
  197.     T : real;
  198.     g:byte;
  199.     q:integer;
  200.     p:Array[1..2] of byte;
  201.  
  202. Begin
  203.      C[1]:=B[3] Xor $17;
  204.      C[2]:=B[2] Xor $76;
  205.      C[3]:=B[1] Xor $51;
  206.      C[4]:=B[4] Xor $98;
  207.  
  208.      Randomize;
  209.      J:=0;
  210.      While j=0 do
  211.      Begin
  212.      X[1]:=random($ff);
  213.      X[2]:=random($ff);
  214.  
  215.      Dec2Hex(X[1]);
  216.      H:=S;
  217.      Dec2Hex(X[2]);
  218.      L[1]:=(Ord(h[3])*1048576);
  219.      L[1]:=L[1]+(Ord(h[4])*65536);
  220.      For g:=1 to Ord(s[3]) Do L[1]:=L[1]+4096;
  221.      L[1]:=L[1]+(Ord(s[4])*256);
  222.  
  223.      L[2]:=L[1] shr 2;
  224.  
  225.      Y[0]:=Chr(6);
  226.      For g:=6 downto 1 do
  227.       Begin
  228.          T:=L[2]/16;
  229.          L[2] := L[2] div 16;
  230.          q:=Round((T-L[2])*16);
  231.          Y[g]:=Chr(q);
  232.       End;
  233.  
  234.      P[1] := Ord(y[1])*16+Ord(y[2]);
  235.      P[2] := Ord(y[5])*16+Ord(y[6]);
  236.  
  237.      If ((Ord(y[3])*16+Ord(y[4])) = C[4])     And
  238.          ((P[1] Or P[2]) = C[3]) Then j:=1;
  239.  
  240.      End;
  241.  
  242.      Code[1]:=X[2];
  243.      Code[2]:=X[1];
  244.  
  245. End;
  246.  
  247. {──────────────────────────────────────────────────────────────────────────}
  248. Procedure Cal4;
  249. Var X : Array[1..3] of Word;
  250.     L : Array[1..2] of LongInt;
  251.     T : real;
  252.     g:byte;
  253.     q:integer;
  254.     p:Array[1..2] of byte;
  255. Begin
  256.      Randomize;
  257.      J:=0;
  258.      While j=0 do
  259.      Begin
  260.      X[1]:=random($ff);
  261.      X[2]:=random($ff);
  262.      X[3]:=0;
  263.  
  264.      Dec2Hex(X[1]);
  265.      H:=S;
  266.      Dec2Hex(X[2]);
  267.      L[1]:=(Ord(h[3])*1048576);
  268.      L[1]:=L[1]+(Ord(h[4])*65536);
  269.      For g:=1 to Ord(s[3]) Do L[1]:=L[1]+4096;
  270.      L[1]:=L[1]+(Ord(s[4])*256);
  271.  
  272.      L[2]:=L[1] shr 1;
  273.  
  274.      Y[0]:=Chr(6);
  275.      For g:=6 downto 1 do
  276.       Begin
  277.          T:=L[2]/16;
  278.          L[2] := L[2] div 16;
  279.          q:=Round((T-L[2])*16);
  280.          Y[g]:=Chr(q);
  281.       End;
  282.  
  283.      P[1] := Ord(y[1])*16+Ord(y[2]);
  284.      P[2] := Ord(y[5])*16+Ord(y[6]);
  285.  
  286.      If ((Ord(y[3])*16+Ord(y[4])) = C[2])     And
  287.          ((P[1] Or P[2]) = C[1]) Then j:=1;
  288.  
  289.      End;
  290.  
  291.      Code[3]:=X[2];
  292.      Code[4]:=X[1];
  293.  
  294.  
  295. End;
  296. {──────────────────────────────────────────────────────────────────────────}
  297. Procedure Show_Code;
  298. Var T : Real;
  299.     g : BYte;
  300.     V : String[8];
  301.     F_Code : String[10];
  302. Begin
  303.      V[0]:=Chr(8);
  304.      For g:=1 to 4 do
  305.      Begin
  306.      V[(g*2)-1]:=Chr( Code[g] Div 16);
  307.      V[(g*2)]:=Chr( Code[g] Mod 16);
  308.      End;
  309.  
  310.      T:=0;
  311.      For g:=1 to Ord(v[1]) Do T:=T+268435456;
  312.      For g:=1 to Ord(v[2]) Do T:=T+16777216;
  313.      For g:=1 to Ord(v[3]) Do T:=T+1048576;
  314.      For g:=1 to Ord(v[4]) Do T:=T+65536;
  315.      For g:=1 to Ord(v[5]) Do T:=T+4096;
  316.      For g:=1 to Ord(v[6]) Do T:=T+256;
  317.      For g:=1 to Ord(v[7]) Do T:=T+16;
  318.      T:=T+Ord(v[8]);
  319.  
  320.      Writeln('[Ω] Your Code Is : ',T:10:0);
  321.      Writeln;
  322.      Writeln('Enjoy!');Writeln('The+Q [Phrozen Crew]');
  323.  
  324. End;
  325.  
  326. {──────────────────────────────────────────────────────────────────────────}
  327. {──────────────────────────────────────────────────────────────────────────}
  328. Begin
  329.      PC_logo('News Rover v3.X');
  330.  
  331.      Writeln;Write('[?] Enter Your Name : ');Readln(Name);
  332.      If Length(Name) < 5 Then
  333.         Begin
  334.              TextColor(14);
  335.              Write('ERROR:');
  336.              TextColor(15);
  337.              Writeln('Name''s Length should be 5 or more chars !');
  338.              Halt(1);
  339.         End;
  340.  
  341.      Check_Name;
  342.      Cal1;Writeln('[■] Please wait , Calculating ...');
  343.      Cal2;
  344.      Cal3;
  345.      Cal4;
  346.      Show_Code;
  347.  
  348. end.
  349.