home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / +Sandman / dabert1.txt < prev    next >
Text File  |  2000-05-25  |  7KB  |  103 lines

  1. How to find the password for Davids Backgammon by DABERT
  2.  
  3. Hell0 and welcome to my first tutorial.Best viewed in full screen with word wrap on.
  4.  
  5. David's Backgammon  
  6. Version; 2.7.7
  7. Size; 458 Kb
  8. Type of software; Shareware
  9.  
  10. Author: David Byrum
  11. David's Backgammon Home Page
  12. http://members.aol.com/WinGammon/backgammon/
  13.  
  14. Tools used; Softice 3.25
  15. Type of protection; serial [three letter password]
  16.  
  17. David's Backgammon is an excellent version of the classic board game played against a friend or a computer opponent.
  18. David's Backgammon lets you get advice on moves and the doubling cube, take back moves and doubles of the cube, pick up more than one piece at a time, display the best moves, set up any board situation, change board colors or create your own, choose from multiple board sizes, keep statistics on up to four pairs of players, and more. You can choose from five skill levels for your computer opponent, so all players from beginner to advanced can enjoy the game. It also features an extensive help system including rules of the game, tournament play, an easy-to-use interface with great graphics, sound effects, and more.
  19.  
  20. Limitations in downloadable version:
  21. You cannot save games. You are able to finish about only half of the games.Well we're going to fix that are'nt we.
  22.  
  23. Well first of all unzip the game to a directory of your choice and run the game.A little dialog screen pop's up saying that this is a demo version and that you can only finish about half the games you play unless you send the author the three letters shown and $20 so you can receive an unlock code to make the game fully functional.So what we want to do now is click on the ok button and then click on REGISTRATION on the menu bar and down to ENTER PASSWORD.Ok enter any three letters [I done dab] but don't click OK.Enter Softice [ctrl-d] and put a breakpoint on HMEMCPY,just type bpx hmemcpy and hit return,ctrl-d again to get out of softice and return to the game.Now you can hit the OK button and you should be back in softice.
  24.  
  25. KERNELL!HMEMCPY
  26. 012F:9E18  55                  PUSH    BP    <-------- WE LAND HERE
  27. 012F:9E19  8BEC                MOV     BP,SP
  28. 012F:9E1B  1E                  PUSH    DS
  29. 012F:9E1C  6657                PUSH    EDI
  30. 012F:9E1E  6656                PUSH    ESI
  31. 012F:9E20  FC                  CLD
  32. 012F:9E21  668B4E06            MOV     ECX,[BP+06]
  33. 012F:9E25  67E377              JECXZ   9E9F                          
  34. 012F:9E28  6633F6              XOR     ESI,ESI
  35. 012F:9E2B  668BFE              MOV     EDI,ESI
  36. 012F:9E2E  C5760A              LDS     SI,[BP+0A]
  37. 012F:9E31  C47E0E              LES     DI,[BP+0E]
  38. 012F:9E34  668B460A            MOV     EAX,[BP+0A]
  39. 012F:9E38  663B460E            CMP     EAX,[BP+0E]
  40. 012F:9E3C  734E                JAE     9E8C      
  41.  
  42. Now we'll disable the breakpoint we set like this; type bd 00  and hit return
  43. We don't want to be here so press F11 to get out of this function and we should end up here.
  44.  
  45. 17C7:0B40  9A189E2F01          CALL    KERNEL!HMEMCPY
  46. 17C7:0B45  FF35                PUSH    WORD PTR [DI]    <-------- WE LAND HERE 
  47. 17C7:0B47  9AB0013701          CALL    KERNEL!LOCALUNLOCK
  48. 17C7:0B4C  8BC6                MOV     AX,SI
  49. 17C7:0B4E  5E                  POP     SI
  50. 17C7:0B4F  5F                  POP     DI
  51. 17C7:0B50  C9                  LEAVE
  52. 17C7:0B51  C20A00              RET     000A
  53.  
  54. We don't want to be here also,so we press F12 4 times then F10 a number of times until we end up at this piece of code.You should see DGAMMON!CODE+000214e1 at the bottom of the code window.F10 all the way to where I've marked WE WANT TO FOLLOW THIS CALL.
  55.  
  56. 014F:004224E1  E8937D0400          CALL    USER32!SendDlgItemMessageA
  57. 014F:004224E6  0FBFD6              MOVSX   EDX,SI             <--------WE LAND HERE
  58. 014F:004224E9  C64415F500          MOV     BYTE PTR [EDX+EBP-0B],00    
  59. 014F:004224EE  6A01                PUSH    01
  60. 014F:004224F0  53                  PUSH    EBX
  61. 014F:004224F1  8B4B0C              MOV     ECX,[EBX+0C]
  62. 014F:004224F4  FF5120              CALL    [ECX+20]
  63. 014F:004224F7  83C408              ADD     ESP,08
  64. 014F:004224FA  8B4319              MOV     EAX,[EBX+19]
  65. 014F:004224FD  0584CE0000          ADD     EAX,0000CE84
  66. 014F:00422502  8D55F4              LEA     EDX,[EBP-0C]
  67. 014F:00422505  50                  PUSH    EAX
  68. 014F:00422506  52                  PUSH    EDX
  69. 014F:00422507  FF7319              PUSH    DWORD PTR [EBX+19]
  70. 014F:0042250A  E83579FFFF          CALL    00419E44    <--------WE WANT TO FOLLOW THIS CALL
  71.  
  72. Press F8 where I've marked FOLLOW THIS CALL and we should end up here at the following piece of code.
  73.  
  74. 014F:00419E44  53                  PUSH    EBP    <--------WE LAND HERE
  75. 014F:00419E45  8BEC                MOV     EBP,ESP
  76. 014F:00419E47  51                  PUSH    ECX
  77. 014F:00419E48  53                  PUSH    EBX
  78. 014F:00419E49  8B4508              MOV     EAX,[EBP+08]
  79. 014F:00419E4C  8D55FC              LEA     EDX,[EBP-04]
  80. 014F:00419E4F  52                  PUSH    EDX
  81. 014F:00419E50  FF7510              PUSH    DWORD PTR [EBP+10]
  82. 014F:00419E53  50                  PUSH    EAX
  83. 014F:00419E54  E81D020000          CALL    0041A076
  84. 014F:00419E59  83C40C              ADD     ESP,0C
  85. 014F:00419E5C  8B5D0C              MOV     EBX,[EBP+0C]
  86. 014F:00419E5F  53                  PUSH    EBX    <--------OUR FAKE PASSWORD
  87. 014F:00419E60  8D45FC              LEA     EAX,[EBP-04]
  88. 014F:00419E63  50                  PUSH    EAX    <--------THE GOOD PASSWORD 
  89. 014F:00419E64  E8EC000500          CALL    KERNEL32!lstrcmp
  90. 014F:00419E69  85C0                TEST    EAX,EAX
  91. 014F:00419E6B  7507                JNZ     00419E74                  
  92. 014F:00419E74  33C0                XOR     EAX,EAX
  93. 014F:00419E76  5B                  POP     EBX
  94. 014F:00419E77  59                  POP     ECX
  95. 014F:00419E78  5D                  POP     EBP
  96. 014F:00419E79  C3                  RET
  97.  
  98. Now if you sit on PUSH EBX and do d ebx you will see your fake password in the data window,F10 down to PUSH EAX and do d eax you will see the correct password in the data window.Make sure you write your 3 letter password down and ctrl-d to get out of softice.Now enter what you found and you will have a fully functional copy of Davids Backgammon,for evaluation of course.
  99. I don't have to tell you that if you want to keep this game please send David the $20 he's asking for this excellent backgammon game.He's gone to a lot of trouble to make this one of the best around.
  100. Well thats it for my first tutorial,I hope I've helped you out in some way to becoming a cracker.I'm still in the learning stage myself and reading as much as I can.
  101. SEEYA;
  102. DABERT 
  103.