home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Texty / crackme / 1.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-01-05  |  1.3 KB  |  73 lines

  1. {look at the jmpcrk1 first}
  2. var
  3.  byte1, byte2, byte3, byte4 :byte;
  4.  i1, i2, i4 : integer;
  5.  tmp:word;
  6. _fl:file of char;
  7.   tmpbyte:char;
  8.   counter:longint;
  9.  
  10. begin
  11.  
  12.   assign(_fl,'out');
  13.   rewrite(_fl);
  14.  
  15.  
  16.   byte3:=$7c; {'|'}
  17.  
  18. {
  19. 70
  20. ok, change this symbol to $7c, $90, $9c, $f0, $fc,
  21. and you get all 'correct' values. PSA made good joke :-)
  22. }
  23.  
  24.   writeln('(x) PSA jmp!crk crack by Shaman //IHC //UCL');
  25.  
  26.   write('Calculating [');
  27.  
  28.   for i1:=$20 to $7e do
  29.   begin
  30.     byte1:=i1;
  31.     for i2:=$20 to $7e do
  32.     begin
  33.       byte2:=i2;
  34.       for i4:=$20 to $7e do
  35.       begin
  36.         byte4:=i4;
  37.  
  38.         asm
  39.       mov ah,[byte2]
  40.       mov al,[byte1]
  41.       xor ah,al
  42.       mov bh,[byte4]
  43.       mov bl,[byte3]
  44.       xor ax,bx
  45.       xor al,$82
  46.       mov [tmp],ax
  47.         end;
  48.  
  49.         if (tmp<$400) and (tmp>$100) then 
  50.         begin
  51.           inc(counter);
  52.           tmpbyte:=chr(byte1);
  53.           write(_fl,tmpbyte);
  54.           tmpbyte:=chr(byte2);
  55.           write(_fl,tmpbyte);
  56.           tmpbyte:=chr(byte3);
  57.           write(_fl,tmpbyte);
  58.           tmpbyte:=chr(byte4);
  59.           write(_fl,tmpbyte);
  60.           tmpbyte:=chr($d);
  61.           write(_fl,tmpbyte);
  62.           tmpbyte:=chr($a);
  63.           write(_fl,tmpbyte);
  64.         end;
  65.       end;
  66.     end;
  67.     write('.');
  68.   end;
  69.  
  70.   close(_fl);
  71.   writeln(']');
  72.   writeln('Count: ', counter);
  73. end.