home *** CD-ROM | disk | FTP | other *** search
/ Hacks & Cracks / Hacks_and_Cracks.iso / vol1 / pc_ssh11.zip / SSH11KG.PAS < prev   
Pascal/Delphi Source File  |  1997-10-04  |  10KB  |  341 lines

  1. {
  2.   Keymaker Source code of a well know reg. library very often used by
  3.   the shareware scene now days, it may be very cool for other crackers
  4.  
  5.   please,
  6.     if you are going to use it on any keymaker please tnx Phrozen Crew
  7.     and me (Byte Ripper) for this source code
  8. }
  9. Uses crt;
  10. function getnum(a1,b2,c3,d4,e5:integer):byte;
  11. var bx:integer;
  12. label one,two, Sjump1, Sjump2;
  13. begin
  14. {It can be done in asm too, but why doing it??? no need for it here...}
  15.      bx:=e5;                   {mov bx,[bp+06]}
  16.      bx:=bx+d4;                {add bx,[bp+8]}
  17.      if bx<=9 then goto one;   {cmp bx,09 / jle}
  18.      bx:=bx-$0A;               {sub bx,0A}
  19. one:
  20.      bx:=bx-c3;                {sub bx,[bp+0A]}
  21.      if bx>=0 then goto Sjump1;{jns}
  22.      bx:=bx+$0A;               {add bx,0A}
  23. Sjump1:
  24.      bx:=bx+b2;                {add bx,[bp+0C]}
  25.      if bx<=9 then goto two;   {cmp bx,09 / jle}
  26.      bx:=bx-$0A;               {sub bx,0A}
  27. two:
  28.      bx:=bx-a1;                {sub bx,[bp-0E]}
  29.      if bx>=0 then goto Sjump2;{jns}
  30.      bx:=bx+$0A;               {add bx,0A}
  31. Sjump2:
  32.      getnum:=bx;               {mov [bp-62],ax}
  33. end;
  34. var num : string[16];
  35.     trialnum : string[16];
  36.     w1,w2,w3,w4,w5 : word;
  37.     b:byte;
  38. const cryptnum : string[6]='000011';
  39. begin
  40. ClrScr;
  41. Writeln('[wIN95/uTIL]─────[#PC97]─────[Oct 1997]');
  42. Writeln('         ▄▄▄█▀█▄        ▄██▄');
  43. Writeln('      ▀███▀   ▄█      ▄██▀  ▀');
  44. Writeln('        ██▄▄▄█▀      ▄██');
  45. Writeln('         ██▄ hRoZeN  ██▄ ReW ▄');
  46. Writeln('          ██▄   ''97   ▀██▄▄▄█▀');
  47. Writeln('           █▀▀          ▀▀▀');
  48. Writeln('──────────< Phrozen Crew 97 >──────────');
  49. Writeln('             KEYMAKER for:');
  50. Writeln('   F-SECURE SSH v1.1 windows client');
  51. Writeln('         (and maybe SSH 2.0');
  52. Writeln('───────────────────────────────────────');
  53. Writeln('────────··─═/[Byte Ripper]\═─··────────');
  54. Writeln('───────────────────────────────────────');
  55. writeln;
  56. write('Please enter your SSH reg number:');readln(num);
  57.      if ord(num[0])<>16 then
  58.      begin
  59.           Writeln('Enter all 16 numbers please, you have enter ',ord(num[0]),' numbers');
  60.           halt(1);
  61.      end;
  62. {1 number}
  63.      trialnum[0]:=#16;
  64.      w1:=ord(num[5])-48;
  65.      w2:=ord(num[16])-48;
  66.      w3:=ord(cryptnum[1])-48;
  67.      w4:=ord(num[8])-48;
  68.      w5:=ord(num[1])-48;
  69.      b:=getnum(w1,w2,w3,w4,w5);
  70.      trialnum[1]:=chr(b+48);
  71. {2 number}
  72.      w1:=ord(num[6])-48;
  73.      w2:=ord(num[15])-48;
  74.      w3:=ord(cryptnum[2])-48;
  75.      w4:=ord(num[7])-48;
  76.      w5:=ord(num[2])-48;
  77.      b:=getnum(w1,w2,w3,w4,w5);
  78.      trialnum[2]:=chr(b+48);
  79. {3 number}
  80.      w1:=ord(num[7])-48;
  81.      w2:=ord(num[14])-48;
  82.      w3:=ord(cryptnum[3])-48;
  83.      w4:=ord(num[6])-48;
  84.      w5:=ord(num[3])-48;
  85.      b:=getnum(w1,w2,w3,w4,w5);
  86.      trialnum[3]:=chr(b+48);
  87. {4 number}
  88.      w1:=ord(num[8])-48;
  89.      w2:=ord(num[13])-48;
  90.      w3:=ord(cryptnum[4])-48;
  91.      w4:=ord(num[5])-48;
  92.      w5:=ord(num[4])-48;
  93.      b:=getnum(w1,w2,w3,w4,w5);
  94.      trialnum[4]:=chr(b+48);
  95. {5 number}
  96.      w1:=ord(num[9])-48;
  97.      w2:=ord(num[12])-48;
  98.      w3:=ord(cryptnum[5])-48;
  99.      w4:=ord(num[4])-48;
  100.      w5:=ord(num[5])-48;
  101.      b:=getnum(w1,w2,w3,w4,w5);
  102.      trialnum[5]:=chr(b+48);
  103. {6 number}
  104.      w1:=ord(num[10])-48;
  105.      w2:=ord(num[11])-48;
  106.      w3:=ord(cryptnum[6])-48;
  107.      w4:=ord(num[3])-48;
  108.      w5:=ord(num[6])-48;
  109.      b:=getnum(w1,w2,w3,w4,w5);
  110.      trialnum[6]:=chr(b+48);
  111. {7 number}
  112.      w1:=ord(num[11])-48;
  113.      w2:=ord(num[10])-48;
  114.      w3:=ord(cryptnum[1])-48;
  115.      w4:=ord(num[2])-48;
  116.      w5:=ord(num[7])-48;
  117.      b:=getnum(w1,w2,w3,w4,w5);
  118.      trialnum[7]:=chr(b+48);
  119. {8 number}
  120.      w1:=ord(num[12])-48;
  121.      w2:=ord(num[9])-48;
  122.      w3:=ord(cryptnum[2])-48;
  123.      w4:=ord(num[1])-48;
  124.      w5:=ord(num[8])-48;
  125.      b:=getnum(w1,w2,w3,w4,w5);
  126.      trialnum[8]:=chr(b+48);
  127. {9 number}
  128.      w1:=ord(num[12])-48;
  129.      w2:=ord(num[16])-48;
  130.      w3:=ord(cryptnum[3])-48;
  131.      w4:=ord(num[16])-48;
  132.      w5:=ord(num[9])-48;
  133.      b:=getnum(w1,w2,w3,w4,w5);
  134.      trialnum[9]:=chr(b+48);
  135. {10 number}
  136.      w1:=ord(num[13])-48;
  137.      w2:=ord(num[15])-48;
  138.      w3:=ord(cryptnum[4])-48;
  139.      w4:=ord(num[15])-48;
  140.      w5:=ord(num[10])-48;
  141.      b:=getnum(w1,w2,w3,w4,w5);
  142.      trialnum[10]:=chr(b+48);
  143. {11 number}
  144.      w1:=ord(num[14])-48;
  145.      w2:=ord(num[14])-48;
  146.      w3:=ord(cryptnum[5])-48;
  147.      w4:=ord(num[14])-48;
  148.      w5:=ord(num[11])-48;
  149.      b:=getnum(w1,w2,w3,w4,w5);
  150.      trialnum[11]:=chr(b+48);
  151. {12 number}
  152.      w1:=ord(num[15])-48;
  153.      w2:=ord(num[13])-48;
  154.      w3:=ord(cryptnum[6])-48;
  155.      w4:=ord(num[13])-48;
  156.      w5:=ord(num[12])-48;
  157.      b:=getnum(w1,w2,w3,w4,w5);
  158.      trialnum[12]:=chr(b+48);
  159. {13 number}
  160.      w1:=ord(num[16])-48;
  161.      w2:=ord(num[12])-48;
  162.      w3:=ord(cryptnum[1])-48;
  163.      w4:=ord(num[12])-48;
  164.      w5:=ord(num[13])-48;
  165.      b:=getnum(w1,w2,w3,w4,w5);
  166.      trialnum[13]:=chr(b+48);
  167. {14 number}
  168.      w1:=ord(num[5])-48;
  169.      w2:=ord(num[11])-48;
  170.      w3:=ord(cryptnum[2])-48;
  171.      w4:=ord(num[11])-48;
  172.      w5:=ord(num[14])-48;
  173.      b:=getnum(w1,w2,w3,w4,w5);
  174.      trialnum[14]:=chr(b+48);
  175. {15 number}
  176.      w1:=ord(num[6])-48;
  177.      w2:=ord(num[10])-48;
  178.      w3:=ord(cryptnum[3])-48;
  179.      w4:=ord(num[10])-48;
  180.      w5:=ord(num[15])-48;
  181.      b:=getnum(w1,w2,w3,w4,w5);
  182.      trialnum[15]:=chr(b+48);
  183. {16 number}
  184.      w1:=ord(num[7])-48;
  185.      w2:=ord(num[9])-48;
  186.      w3:=ord(cryptnum[4])-48;
  187.      w4:=ord(num[9])-48;
  188.      w5:=ord(num[16])-48;
  189.      b:=getnum(w1,w2,w3,w4,w5);
  190.      trialnum[16]:=chr(b+48);
  191.      writeln;
  192. {
  193. I will now print a var called trialnum but it's not the trial
  194. number, it's the REG number, I call it trialnum because I use it on the
  195. next decryption rotine.
  196. }
  197.      writeln('SSH Register number is:',trialnum);
  198. {1 trial number}
  199.      w1:=ord(num[5])-48;
  200.      w2:=ord(num[5])-48;
  201.      w3:=ord(cryptnum[1])-48;
  202.      w4:=ord(num[8])-48;
  203.      w5:=ord(num[1])-48;
  204.      b:=getnum(w1,w2,w3,w4,w5);
  205.      trialnum[1]:=chr(b+48);
  206. {2 trial number}
  207.      w1:=ord(num[6])-48;
  208.      w2:=ord(num[10])-48;
  209.      w3:=ord(cryptnum[3])-48;
  210.      w4:=ord(num[10])-48;
  211.      w5:=ord(num[15])-48;
  212.      b:=getnum(w1,w2,w3,w4,w5);
  213.      trialnum[2]:=chr(b+48);
  214. {3 trial number}
  215.      w1:=ord(num[7])-48;
  216.      w2:=ord(num[9])-48;
  217.      w3:=ord(cryptnum[4])-48;
  218.      w4:=ord(num[9])-48;
  219.      w5:=ord(num[16])-48;
  220.      b:=getnum(w1,w2,w3,w4,w5);
  221.      trialnum[3]:=chr(b+48);
  222. {4 trial number}
  223.      w1:=ord(num[10])-48;
  224.      w2:=ord(num[3])-48;
  225.      w3:=ord(cryptnum[6])-48;
  226.      w4:=ord(num[3])-48;
  227.      w5:=ord(num[6])-48;
  228.      b:=getnum(w1,w2,w3,w4,w5);
  229.      trialnum[4]:=chr(b+48);
  230. {5 trial number}
  231.      w1:=ord(num[11])-48;
  232.      w2:=ord(num[13])-48;
  233.      w3:=ord(cryptnum[1])-48;
  234.      w4:=ord(num[2])-48;
  235.      w5:=ord(num[7])-48;
  236.      b:=getnum(w1,w2,w3,w4,w5);
  237.      trialnum[5]:=chr(b+48);
  238. {6 trial number}
  239.      w1:=ord(num[12])-48;
  240.      w2:=ord(num[9])-48;
  241.      w3:=ord(cryptnum[2])-48;
  242.      w4:=ord(num[1])-48;
  243.      w5:=ord(num[8])-48;
  244.      b:=getnum(w1,w2,w3,w4,w5);
  245.      trialnum[6]:=chr(b+48);
  246. {7 trial number}
  247.      w1:=ord(num[6])-48;
  248.      w2:=ord(num[5])-48;
  249.      w3:=ord(cryptnum[2])-48;
  250.      w4:=ord(num[7])-48;
  251.      w5:=ord(num[2])-48;
  252.      b:=getnum(w1,w2,w3,w4,w5);
  253.      trialnum[7]:=chr(b+48);
  254. {8 trial number}
  255.      w1:=ord(num[7])-48;
  256.      w2:=ord(num[7])-48;
  257.      w3:=ord(cryptnum[3])-48;
  258.      w4:=ord(num[6])-48;
  259.      w5:=ord(num[3])-48;
  260.      b:=getnum(w1,w2,w3,w4,w5);
  261.      trialnum[8]:=chr(b+48);
  262. {9 trial number}
  263.      w1:=ord(num[8])-48;
  264.      w2:=ord(num[10])-48;
  265.      w3:=ord(cryptnum[4])-48;
  266.      w4:=ord(num[5])-48;
  267.      w5:=ord(num[4])-48;
  268.      b:=getnum(w1,w2,w3,w4,w5);
  269.      trialnum[9]:=chr(b+48);
  270. {10 trial number}
  271.      w1:=ord(num[9])-48;
  272.      w2:=ord(num[11])-48;
  273.      w3:=ord(cryptnum[5])-48;
  274.      w4:=ord(num[4])-48;
  275.      w5:=ord(num[5])-48;
  276.      b:=getnum(w1,w2,w3,w4,w5);
  277.      trialnum[10]:=chr(b+48);
  278. {11 trial number}
  279.      w1:=ord(num[5])-48;
  280.      w2:=ord(num[15])-48;
  281.      w3:=ord(cryptnum[2])-48;
  282.      w4:=ord(num[11])-48;
  283.      w5:=ord(num[14])-48;
  284.      b:=getnum(w1,w2,w3,w4,w5);
  285.      trialnum[11]:=chr(b+48);
  286. {12 trial number}
  287.      w1:=ord(num[12])-48;
  288.      w2:=ord(num[16])-48;
  289.      w3:=ord(cryptnum[3])-48;
  290.      w4:=ord(num[16])-48;
  291.      w5:=ord(num[9])-48;
  292.      b:=getnum(w1,w2,w3,w4,w5);
  293.      trialnum[12]:=chr(b+48);
  294. {13 trial number}
  295.      w1:=ord(num[13])-48;
  296.      w2:=ord(num[12])-48;
  297.      w3:=ord(cryptnum[4])-48;
  298.      w4:=ord(num[15])-48;
  299.      w5:=ord(num[10])-48;
  300.      b:=getnum(w1,w2,w3,w4,w5);
  301.      trialnum[13]:=chr(b+48);
  302. {14 trial number}
  303.      w1:=ord(num[14])-48;
  304.      w2:=ord(num[14])-48;
  305.      w3:=ord(cryptnum[5])-48;
  306.      w4:=ord(num[14])-48;
  307.      w5:=ord(num[11])-48;
  308.      b:=getnum(w1,w2,w3,w4,w5);
  309.      trialnum[14]:=chr(b+48);
  310. {15 trial number}
  311.      w1:=ord(num[15])-48;
  312.      w2:=ord(num[16])-48;
  313.      w3:=ord(cryptnum[6])-48;
  314.      w4:=ord(num[13])-48;
  315.      w5:=ord(num[12])-48;
  316.      b:=getnum(w1,w2,w3,w4,w5);
  317.      trialnum[15]:=chr(b+48);
  318. {16 trial number}
  319.      w1:=ord(num[16])-48;
  320.      w2:=ord(num[12])-48;
  321.      w3:=ord(cryptnum[1])-48;
  322.      w4:=ord(num[12])-48;
  323.      w5:=ord(num[13])-48;
  324.      b:=getnum(w1,w2,w3,w4,w5);
  325.      trialnum[16]:=chr(b+48);
  326.      writeln;
  327.      writeln('MORE trial time number is:',trialnum);
  328.      writeln;
  329.      writeln('Be very carefull when registering SSH 1.1 because build 39 (beta) can');
  330.      writeln('only be TRIAL time extended, if you register the beta with the register');
  331.      writeln('number it will be registered but WILL NO RUN anymore, maybe when the final');
  332.      writeln('SSH client (maybe 2.0) is out, it may be registered, then maybe this');
  333.      writeln('keymaker will full work! :)');
  334.      writeln('Until there USE ONLY the TRIAL NUMBER REG CODE!!!');
  335.      writeln('Byte Ripper');
  336.      writeln;
  337.      writeln('With this crack goes the KEYMAKER SOURCE CODE in pascal');
  338.      writeln('Why I do it??? Well, maybe UCF knows why...');
  339.      writeln('Doing this no one can say anymore that I dupe or stolen');
  340.      writeln('any reg code or reg key!!!');
  341. end.