| 
注册时间2005-6-29
阅读权限255
最后登录1970-1-1UID2198 副坛主   
 
 该用户从未签到 | 
 
| 这个东西大家都知道哈 
 九期教学中的一个练习作业 这里我把破文给大家
 
 破解方法还是那种 函数等效替换法 这里大家要注意下关键值的保存位置及堆栈平衡
 
 
 01.先搞定注册验证:
 
 004CB92C  /$  55            PUSH EBP
 
 004CBA38  |.  E8 E78FF3FF   CALL spx.00404A24
 004CBA3D  |.  0F94C0        SETE AL
 004CBA40  |.  8843 34       MOV BYTE PTR DS:[EBX+34],AL  // EBX == EAX
 004CBA43  |.  807B 34 00    CMP BYTE PTR DS:[EBX+34],0
 004CBA47  |.  74 34         JE SHORT spx.004CBA7D
 
 
 // Patch 代码
 004CB92C  /$  8BD8                 MOV EBX,EAX
 004CB92E  |.  B0 01                MOV AL,1
 004CB930  |.  8843 34              MOV BYTE PTR DS:[EBX+34],AL
 004CB933  |.  BB 0F000000          MOV EBX,0F    // 还原一下EBX数值 无所谓的
 004CB938  \.  C2 0400              RETN 4        // 注意这里要保持堆栈平衡
 
 
 
 02.然后我们看一下程序的About:
 
 004CC354   .  53            PUSH EBX
 004CC355   .  8BD8          MOV EBX,EAX
 004CC357   .  83BB 3C030000>CMP DWORD PTR DS:[EBX+33C],0  // 用户名
 004CC35E   .  0F84 DC000000 JE spx3.004CC440
 004CC364   .  83BB 40030000>CMP DWORD PTR DS:[EBX+340],0  // 注册码
 004CC36B   .  0F84 CF000000 JE spx3.004CC440
 004CC371   .  33D2          XOR EDX,EDX
 004CC373   .  8B83 30030000 MOV EAX,DWORD PTR DS:[EBX+330]
 004CC379   .  E8 3AF6F7FF   CALL spx3.0044B9B8
 004CC37E   .  BA 4CC44C00   MOV EDX,spx3.004CC44C                    ;  This product is licensed.
 
 
 找个空地写上注册信息:
 
 004EA870      04 00         ADD AL,0
 004EA872      0000          ADD BYTE PTR DS:[EAX],AL
 004EA874      4E            DEC ESI
 004EA875      6973 79 00000>IMUL ESI,DWORD PTR DS:[EBX+79],0
 004EA87C      00            DB 00
 004EA87D      00            DB 00
 004EA87E      00            DB 00
 004EA87F      00            DB 00
 004EA880      0800          OR BYTE PTR DS:[EAX],AL
 004EA882      0000          ADD BYTE PTR DS:[EAX],AL
 004EA884      43            INC EBX
 004EA885      68 696E6150   PUSH 50616E69
 004EA88A      59            POP ECX
 004EA88B      47            INC EDI
 
 04 00 00 00 4E 69 73 79 00 00 00 00 00 00 00 00 08 00 00 00 43 68 69 6E 61 50 59 47
 
 用户名地址:004EA874
 注册码地址:004EA884
 
 Patch代码如下:
 
 004CC354   .  53                   PUSH EBX
 004CC355   .  8BD8                 MOV EBX,EAX
 004CC357      C783 3C030000 74A84E>MOV DWORD PTR DS:[EBX+33C],spx.004EA874  ;  ASCII "Nisy"
 004CC361      90                   NOP
 004CC362      90                   NOP
 004CC363      90                   NOP
 004CC364      C783 40030000 84A84E>MOV DWORD PTR DS:[EBX+340],spx.004EA884  ;  ASCII "ChinaPYG"
 004CC36E      90                   NOP
 004CC36F      90                   NOP
 004CC370      90                   NOP
 
 
 C7 83 3C 03 00 00 74 A8 4E 00 90 90 90 C7 83 40 03 00 00 84 A8 4E 00 90 90 90
 
 OK 完工 ~~
 | 
 |