home *** CD-ROM | disk | FTP | other *** search
/ KeyGen Studio 2002 / KeyGen_Studio_2002.iso / Tutorials / CrackMesCbjNet / eod-powerlame.txt < prev    next >
Encoding:
Text File  |  2001-09-21  |  2.0 KB  |  60 lines

  1. crackme name: powerlame
  2. by:           ^heiko[BLiZZARD]
  3. type:         dos
  4. Level: Absolute beginnerz - 1
  5. -------------------------------
  6. Solution written by E_O_D
  7. -------------------------------
  8.  
  9. to use this solution you need Soft-Ice (with DOS loader - ldr.exe)
  10.  
  11. So, Lets start.
  12.  
  13.     Load b-plame.com with ldr.exe (ldr b-plame.com - ldr must be in hot
  14. dir). Set Soft-Ice breakpoint on int 21h (bpint 21). Press F5. Soft Ice will
  15. break on int 21h instruction (it will be Display String function). Next one
  16. is Buffered Keyboard Input, it will looks like this:
  17.  
  18.     mov ah,0A
  19.     mov dx,273    ;address of buffer
  20.     int 21
  21.  
  22. Use "d cs:273" command to see where your entered code will be stored. First
  23. byte here is 6 (length of input plus 1, so the length is 5), second will
  24. be the length of string you have entered. So press some times F10 and enter
  25. the code "12345". Then press F10 some times again untill you'll see the
  26. following:
  27.  
  28.     call 158
  29.     cmp eax,0
  30.     jz 0149        ;if the program will jump here you'll win :)
  31.  
  32. So, when you will be on instruction "call 158" step into it by pressing F8.
  33. By analizing the next code you will find that characters from your input
  34. will be xored with numbers and the result will be stored over your input
  35. for example the first character 1 (31h) will be xored with 35h and the
  36. result will be stored on the place of your 31h.
  37.  
  38. 1 (31h) = 1 (31h) xor 5 (35h)
  39. 2 (32h) = 2 (32h) xor m (6Dh)
  40. 3 (33h) = 3 (33h) xor i (69h)
  41. 4 (34h) = (4 (34h) + 1) xor o (6Fh)
  42. 5 (35h) = 5 (35h) xor s (73h)
  43.  
  44. The first 4 bytes of your result will be stored in eax and after that eax
  45. will be compared with 0. To take zero result in xor operation you need to
  46. give the first operand the same as second. So, your code must be "5mins".
  47. But cause only the 4 bytes will sense you can enter as the 5th one everything
  48. you like.
  49. So the answer is:     5mins    (this one will give you all zeros)
  50.             5min
  51.             5minX
  52.             ...
  53.  
  54. It took me about a minute to find this code. Hope you'll like this solution.
  55.  
  56. Written by E_O_D
  57.  
  58. /13 july 2000 year/
  59.  
  60.