home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Stone / algo / crackme.asm < prev    next >
Encoding:
Assembly Source File  |  2000-05-25  |  1.6 KB  |  70 lines

  1. ; Crackme's are Lame
  2. ; So why did I write on? Because I'm a lamer!
  3. ; POINT IS: it's easy to make good protection even with small means.
  4. ; BTW: the possibility for possible complexity expands geometrically with 
  5. ; the number of chars you use... Write an algorithm in the spirit of this one
  6. ; with 10 chars and you might aswell forget about finding a key
  7. ;
  8. ; > (Unless you reverse the algorithm :-)   -acpizer.
  9. ;
  10. ;
  11. ; (BTW the rules are: No patching.. only Keys!)
  12. ; While this algorithm because of only one letter used is fully reversible
  13. ; algorithms of this type with multiple letters are not!
  14. ; Btw.. it takes some 120 binary calculations to reverse engeneer this :)
  15. ;
  16. ;
  17. ;
  18. ; answer for the older crackme is 'K'  cracked by acpizza :)
  19. ;
  20. ;
  21. ; now i modded this crack me just a LITTLE bit, and the lamer who cracks it
  22. ; will be forced to REVERSE the routine, not just BRUTE one letter :)
  23. ; and this version is only *1* byte longer than the old one, <g>.
  24.  
  25.  
  26.  
  27.  
  28. model tiny
  29. .Code                    ; Code starts
  30. Org      100h                ; COM!
  31.  
  32.  Start:
  33. .386
  34.     mov dx, offset intro
  35.     call write
  36.     mov dx, offset input
  37.     mov ax,0a00h
  38.     int 21h
  39.     mov dx, offset string1
  40.  
  41.     mov eax, 'STEN'            ; Keycheck
  42.     mov ecx, dword ptr [offset input+2]
  43. loopme:                    
  44.     rol eax,6
  45.     xor ah,al
  46.     add al, cl
  47.     dec ecx
  48.         jnz loopme  ; looooooong loop :)
  49.  
  50.     cmp eax, 0A4C536E8h
  51.     je done
  52.  
  53.     mov dx, offset string2
  54. done:
  55.     call write
  56.  
  57.     ret            ; Terminat0r
  58.  
  59. write PROC
  60.     mov ah,9h
  61.     int 21h
  62.     ret
  63. write ENDP
  64.  
  65. intro         db 'Type yer attempt: $'
  66. string1      db 10,13,'kewl!$'
  67. string2      db 10,13,'lame!$'
  68. input        db 5,0,0,0,0,0
  69.  
  70. End Start