飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7946|回复: 9

[原创] Chess 3D 2.1 算法分析

[复制链接]

该用户从未签到

发表于 2007-8-12 02:01:22 | 显示全部楼层 |阅读模式
Play a game of chess against your PC or another player. The realistic 3D view can be rotated & zoomed and there are different sets of boards and chess pieces chooseable. Some sets of pieces are animated and displayed in a suitable environment such as dungeon, medieval and graveyard. You can watch the figures walking and fighting at every move. Also included are hundreds of famous games you can analyze and continue to play at any point and other chess games in PGN format can be imported. Network playing over LAN or Internet is supported.

软件详细信息
    漂亮的3D立体国际象棋,可以选择两种拟人化棋子。如果你喜欢国际象棋,那么一定要下载来看看,除了界面的漂亮,在操作上也也比较简单,实时显示已走过的步骤。在option菜单里有多种背景、棋子、棋盘等样式可供选择,但是总的来说整个场景比较暗淡(棋盘放在一张桃木桌子上,所以黑了些;可以点击鼠标右键拖动桌子大小)!

华军下载:http://www.onlinedown.net/soft/17593.htm
官方下载:http://www.sw-winsoft.de/eng/index.htm

DeDe找到关键点:

01.gif



00531728  /.  55            PUSH EBP                                 ;  我们在这里下断
00531729  |.  8BEC          MOV EBP,ESP
0053172B  |.  B9 75000000   MOV ECX,75
00531730  |>  6A 00         /PUSH 0
00531732  |.  6A 00         |PUSH 0
00531734  |.  49            |DEC ECX
00531735  |.^ 75 F9         \JNZ SHORT Chess.00531730
00531737  |.  8955 F0       MOV DWORD PTR SS:[EBP-10],EDX
0053173A  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
0053173D  |.  33C0          XOR EAX,EAX
0053173F  |.  55            PUSH EBP
00531740  |.  68 D4195300   PUSH Chess.005319D4
00531745  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
00531748  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
0053174B  |.  8D95 80FDFFFF LEA EDX,DWORD PTR SS:[EBP-280]
00531751  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00531754  |.  8B80 DC040000 MOV EAX,DWORD PTR DS:[EAX+4DC]
0053175A  |.  E8 49DBF7FF   CALL Chess.004AF2A8
0053175F  |.  8B95 80FDFFFF MOV EDX,DWORD PTR SS:[EBP-280]           ;  取用户名
00531765  |.  8D85 85FEFFFF LEA EAX,DWORD PTR SS:[EBP-17B]
0053176B  |.  E8 7888EDFF   CALL Chess.00409FE8
00531770  |.  8D85 85FEFFFF LEA EAX,DWORD PTR SS:[EBP-17B]
00531776  |.  E8 D587EDFF   CALL Chess.00409F50
0053177B  |.  8845 FB       MOV BYTE PTR SS:[EBP-5],AL
0053177E  |.  807D FB 05    CMP BYTE PTR SS:[EBP-5],5
00531782  |.  7D 0F         JGE SHORT Chess.00531793
00531784  |.  B8 E8195300   MOV EAX,Chess.005319E8                   ;  ASCII "The ID must be at least 5 letters!"
00531789  |.  E8 FECBF0FF   CALL Chess.0043E38C
0053178E  |.  E9 13020000   JMP Chess.005319A6
00531793  |>  8D95 7CFDFFFF LEA EDX,DWORD PTR SS:[EBP-284]
00531799  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0053179C  |.  8B80 E0040000 MOV EAX,DWORD PTR DS:[EAX+4E0]
005317A2  |.  E8 01DBF7FF   CALL Chess.004AF2A8                      ;  取注册码
005317A7  |.  83BD 7CFDFFFF>CMP DWORD PTR SS:[EBP-284],0
005317AE  |.  0F84 F2010000 JE Chess.005319A6
005317B4  |.  E8 A799EDFF   CALL Chess.0040B160
005317B9  |.  83C4 F8       ADD ESP,-8                               ; /
005317BC  |.  DD1C24        FSTP QWORD PTR SS:[ESP]                  ; |Arg1 (8 字节)
005317BF  |.  9B            WAIT                                     ; |
005317C0  |.  E8 7398F9FF   CALL Chess.004CB038                      ; \Chess.004CB038
005317C5  |.  8B15 60A75400 MOV EDX,DWORD PTR DS:[54A760]            ;  Chess.0054C53C
005317CB  |.  66:8942 1A    MOV WORD PTR DS:[EDX+1A],AX
005317CF  |.  8D95 6CFDFFFF LEA EDX,DWORD PTR SS:[EBP-294]
005317D5  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
005317D8  |.  8B80 DC040000 MOV EAX,DWORD PTR DS:[EAX+4DC]
005317DE  |.  E8 C5DAF7FF   CALL Chess.004AF2A8
005317E3  |.  8B85 6CFDFFFF MOV EAX,DWORD PTR SS:[EBP-294]           ;  用户名
005317E9  |.  8D95 70FDFFFF LEA EDX,DWORD PTR SS:[EBP-290]
005317EF  |.  E8 FC7EEDFF   CALL Chess.004096F0
005317F4  |.  8B85 70FDFFFF MOV EAX,DWORD PTR SS:[EBP-290]
005317FA  |.  8D8D 74FDFFFF LEA ECX,DWORD PTR SS:[EBP-28C]
00531800  |.  8B15 60A75400 MOV EDX,DWORD PTR DS:[54A760]            ;  Chess.0054C53C
00531806  |.  66:8B52 1A    MOV DX,WORD PTR DS:[EDX+1A]
0053180A  |.  E8 8971FBFF   CALL Chess.004E8998                      ;  算法CALL
0053180F  |.  8B85 74FDFFFF MOV EAX,DWORD PTR SS:[EBP-28C]           ;  真码
00531815  |.  8D95 78FDFFFF LEA EDX,DWORD PTR SS:[EBP-288]
0053181B  |.  E8 D07EEDFF   CALL Chess.004096F0
00531820  |.  8B85 78FDFFFF MOV EAX,DWORD PTR SS:[EBP-288]
00531826  |.  50            PUSH EAX
00531827  |.  8D95 64FDFFFF LEA EDX,DWORD PTR SS:[EBP-29C]
0053182D  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00531830  |.  8B80 E0040000 MOV EAX,DWORD PTR DS:[EAX+4E0]
00531836  |.  E8 6DDAF7FF   CALL Chess.004AF2A8
0053183B  |.  8B85 64FDFFFF MOV EAX,DWORD PTR SS:[EBP-29C]
00531841  |.  8D95 68FDFFFF LEA EDX,DWORD PTR SS:[EBP-298]
00531847  |.  E8 A47EEDFF   CALL Chess.004096F0
0053184C  |.  8B95 68FDFFFF MOV EDX,DWORD PTR SS:[EBP-298]           ;  假码
00531852  |.  58            POP EAX                                  ;  真码出栈
00531853  |.  E8 C839EDFF   CALL Chess.00405220                      ;  比较函数
00531858  |.  74 0F         JE SHORT Chess.00531869
0053185A  |.  B8 141A5300   MOV EAX,Chess.00531A14                   ;  ASCII "Wrong key! Please try again or contact [email protected] for a valid key."
0053185F  |.  E8 28CBF0FF   CALL Chess.0043E38C
00531864  |.  E9 3D010000   JMP Chess.005319A6
00531869  |>  8D95 60FCFFFF LEA EDX,DWORD PTR SS:[EBP-3A0]
0053186F  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00531872  |.  8B80 DC040000 MOV EAX,DWORD PTR DS:[EAX+4DC]
00531878  |.  E8 2BDAF7FF   CALL Chess.004AF2A8
0053187D  |.  8B95 60FCFFFF MOV EDX,DWORD PTR SS:[EBP-3A0]
00531883  |.  8D85 64FCFFFF LEA EAX,DWORD PTR SS:[EBP-39C]
00531889  |.  B9 FF000000   MOV ECX,0FF
0053188E  |.  E8 2538EDFF   CALL Chess.004050B8
00531893  |.  8D95 64FCFFFF LEA EDX,DWORD PTR SS:[EBP-39C]
00531899  |.  A1 60A75400   MOV EAX,DWORD PTR DS:[54A760]
0053189E  |.  B1 19         MOV CL,19
005318A0  |.  E8 5718EDFF   CALL Chess.004030FC
005318A5  |.  8D95 5CFCFFFF LEA EDX,DWORD PTR SS:[EBP-3A4]
005318AB  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
005318AE  |.  8B80 E0040000 MOV EAX,DWORD PTR DS:[EAX+4E0]
005318B4  |.  E8 EFD9F7FF   CALL Chess.004AF2A8
005318B9  |.  8B95 5CFCFFFF MOV EDX,DWORD PTR SS:[EBP-3A4]
005318BF  |.  8D85 64FCFFFF LEA EAX,DWORD PTR SS:[EBP-39C]
005318C5  |.  B9 FF000000   MOV ECX,0FF
005318CA  |.  E8 E937EDFF   CALL Chess.004050B8
005318CF  |.  8D95 64FCFFFF LEA EDX,DWORD PTR SS:[EBP-39C]
005318D5  |.  A1 60A75400   MOV EAX,DWORD PTR DS:[54A760]
005318DA  |.  83C0 1C       ADD EAX,1C
005318DD  |.  B1 19         MOV CL,19
005318DF  |.  E8 1818EDFF   CALL Chess.004030FC
005318E4  |.  A1 C8A45400   MOV EAX,DWORD PTR DS:[54A4C8]
005318E9  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
005318EB  |.  E8 F474FBFF   CALL Chess.004E8DE4
005318F0  |.  8B15 60A75400 MOV EDX,DWORD PTR DS:[54A760]            ;  Chess.0054C53C
005318F6  |.  8942 38       MOV DWORD PTR DS:[EDX+38],EAX
005318F9  |.  8B15 E8A25400 MOV EDX,DWORD PTR DS:[54A2E8]            ;  Chess.0054C064
005318FF  |.  8B12          MOV EDX,DWORD PTR DS:[EDX]
00531901  |.  8D85 58FCFFFF LEA EAX,DWORD PTR SS:[EBP-3A8]
00531907  |.  B9 6C1A5300   MOV ECX,Chess.00531A6C                   ;  ASCII "\register.dat"
0053190C  |.  E8 1738EDFF   CALL Chess.00405128
00531911  |.  8B95 58FCFFFF MOV EDX,DWORD PTR SS:[EBP-3A8]
00531917  |.  8D85 A4FEFFFF LEA EAX,DWORD PTR SS:[EBP-15C]
0053191D  |.  E8 CA15EDFF   CALL Chess.00402EEC
00531922  |.  BA 3C000000   MOV EDX,3C
00531927  |.  8D85 A4FEFFFF LEA EAX,DWORD PTR SS:[EBP-15C]
0053192D  |.  E8 CE1EEDFF   CALL Chess.00403800
00531932  |.  E8 0510EDFF   CALL Chess.0040293C
00531937  |.  8B15 60A75400 MOV EDX,DWORD PTR DS:[54A760]            ;  Chess.0054C53C
0053193D  |.  8D85 A4FEFFFF LEA EAX,DWORD PTR SS:[EBP-15C]
00531943  |.  E8 3020EDFF   CALL Chess.00403978
00531948  |.  E8 EF0FEDFF   CALL Chess.0040293C
0053194D  |.  8D85 A4FEFFFF LEA EAX,DWORD PTR SS:[EBP-15C]
00531953  |.  E8 1017EDFF   CALL Chess.00403068
00531958  |.  E8 DF0FEDFF   CALL Chess.0040293C
0053195D  |.  A1 60A25400   MOV EAX,DWORD PTR DS:[54A260]
00531962  |.  C600 00       MOV BYTE PTR DS:[EAX],0
00531965  |.  8B0D 14A45400 MOV ECX,DWORD PTR DS:[54A414]            ;  Chess.00554B1C
0053196B  |.  8B09          MOV ECX,DWORD PTR DS:[ECX]
0053196D  |.  A1 50A05400   MOV EAX,DWORD PTR DS:[54A050]
00531972  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
00531974  |.  B2 04         MOV DL,4
00531976  |.  E8 F192FDFF   CALL Chess.0050AC6C
0053197B  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX
0053197E  |.  837D F4 FF    CMP DWORD PTR SS:[EBP-C],-1
00531982  |.  7E 11         JLE SHORT Chess.00531995
00531984  |.  A1 50A05400   MOV EAX,DWORD PTR DS:[54A050]
00531989  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0053198B  |.  8B4D F4       MOV ECX,DWORD PTR SS:[EBP-C]
0053198E  |.  B2 04         MOV DL,4
00531990  |.  E8 CF85FDFF   CALL Chess.00509F64
00531995  |>  B8 841A5300   MOV EAX,Chess.00531A84                   ;  ASCII "The full version was unlocked successfully! To prevent unauthorizied copying entering this unlock key is only valid one month. Your unlock key was written into the file register.dat, please keep this file save and simply copy it into the"...
0053199A  |.  E8 EDC9F0FF   CALL Chess.0043E38C
0053199F  |.  33C0          XOR EAX,EAX
005319A1  |.  E8 46A3FFFF   CALL Chess.0052BCEC
005319A6  |>  33C0          XOR EAX,EAX
005319A8  |.  5A            POP EDX
005319A9  |.  59            POP ECX
005319AA  |.  59            POP ECX
005319AB  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
005319AE  |.  68 DB195300   PUSH Chess.005319DB
005319B3  |>  8D85 58FCFFFF LEA EAX,DWORD PTR SS:[EBP-3A8]
005319B9  |.  BA 03000000   MOV EDX,3
005319BE  |.  E8 8534EDFF   CALL Chess.00404E48
005319C3  |.  8D85 64FDFFFF LEA EAX,DWORD PTR SS:[EBP-29C]
005319C9  |.  BA 08000000   MOV EDX,8
005319CE  |.  E8 7534EDFF   CALL Chess.00404E48
005319D3  \.  C3            RETN
005319D4   .^ E9 EF2DEDFF   JMP Chess.004047C8
005319D9   .^ EB D8         JMP SHORT Chess.005319B3
005319DB   .  8BE5          MOV ESP,EBP
005319DD   .  5D            POP EBP
005319DE   .  C3            RETN

F7跟进算法CALL:

004E8998  /$  55            PUSH EBP                                 ;  算法CALL
004E8999  |.  8BEC          MOV EBP,ESP
004E899B  |.  83C4 98       ADD ESP,-68
004E899E  |.  53            PUSH EBX
004E899F  |.  33DB          XOR EBX,EBX
004E89A1  |.  895D BC       MOV DWORD PTR SS:[EBP-44],EBX
004E89A4  |.  895D A0       MOV DWORD PTR SS:[EBP-60],EBX
004E89A7  |.  895D 9C       MOV DWORD PTR SS:[EBP-64],EBX
004E89AA  |.  895D 98       MOV DWORD PTR SS:[EBP-68],EBX
004E89AD  |.  895D C0       MOV DWORD PTR SS:[EBP-40],EBX
004E89B0  |.  895D E4       MOV DWORD PTR SS:[EBP-1C],EBX
004E89B3  |.  894D F4       MOV DWORD PTR SS:[EBP-C],ECX
004E89B6  |.  66:8955 FA    MOV WORD PTR SS:[EBP-6],DX
004E89BA  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
004E89BD  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004E89C0  |.  E8 FFC8F1FF   CALL Chess.004052C4
004E89C5  |.  33C0          XOR EAX,EAX
004E89C7  |.  55            PUSH EBP
004E89C8  |.  68 BA8B4E00   PUSH Chess.004E8BBA
004E89CD  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
004E89D0  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
004E89D3  |.  8D55 C0       LEA EDX,DWORD PTR SS:[EBP-40]
004E89D6  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004E89D9  |.  E8 FE0AF2FF   CALL Chess.004094DC                      ;  把用户名变换为小写
004E89DE  |.  8B55 C0       MOV EDX,DWORD PTR SS:[EBP-40]
004E89E1  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
004E89E4  |.  E8 D3C4F1FF   CALL Chess.00404EBC
004E89E9  |.  8D45 C4       LEA EAX,DWORD PTR SS:[EBP-3C]
004E89EC  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
004E89EF  |.  E8 F415F2FF   CALL Chess.00409FE8
004E89F4  |.  8D45 C4       LEA EAX,DWORD PTR SS:[EBP-3C]
004E89F7  |.  E8 5415F2FF   CALL Chess.00409F50
004E89FC  |.  8845 F2       MOV BYTE PTR SS:[EBP-E],AL
004E89FF  |.  33C0          XOR EAX,EAX
004E8A01  |.  8945 E8       MOV DWORD PTR SS:[EBP-18],EAX
004E8A04  |.  33C0          XOR EAX,EAX
004E8A06  |.  8945 EC       MOV DWORD PTR SS:[EBP-14],EAX
004E8A09  |.  33C0          XOR EAX,EAX
004E8A0B  |.  8A45 F2       MOV AL,BYTE PTR SS:[EBP-E]
004E8A0E  |.  83E8 01       SUB EAX,1
004E8A11  |.  71 05         JNO SHORT Chess.004E8A18
004E8A13  |.  E8 5CB5F1FF   CALL Chess.00403F74
004E8A18  |>  84C0          TEST AL,AL
004E8A1A  |.  0F82 9F000000 JB Chess.004E8ABF
004E8A20  |.  40            INC EAX
004E8A21  |.  8845 E3       MOV BYTE PTR SS:[EBP-1D],AL
004E8A24  |.  C645 F3 00    MOV BYTE PTR SS:[EBP-D],0
004E8A28  |>  33C0          /XOR EAX,EAX                             ;  KEY第二部分算法开始
004E8A2A  |.  8A45 F3       |MOV AL,BYTE PTR SS:[EBP-D]
004E8A2D  |.  0FB64405 C4   |MOVZX EAX,BYTE PTR SS:[EBP+EAX-3C]      ;  字符串依次送EAX
004E8A32  |.  33D2          |XOR EDX,EDX
004E8A34  |.  8A55 F3       |MOV DL,BYTE PTR SS:[EBP-D]              ;  已取KEY的位数
004E8A37  |.  03C2          |ADD EAX,EDX                             ;  EAX+=EDX
004E8A39  |.  71 05         |JNO SHORT Chess.004E8A40
004E8A3B  |.  E8 34B5F1FF   |CALL Chess.00403F74
004E8A40  |>  8945 E8       |MOV DWORD PTR SS:[EBP-18],EAX           ;  累加和放[EBP-18]
004E8A43  |.  8B45 E8       |MOV EAX,DWORD PTR SS:[EBP-18]           ;  [EBP-18]数值再传到EAX中进行以下运算
004E8A46  |.  83E8 0A       |SUB EAX,0A                              ;  EAX-=A
004E8A49  |.  72 0E         |JB SHORT Chess.004E8A59
004E8A4B  |.  83E8 5A       |SUB EAX,5A                              ;  EAX-5A
004E8A4E  |.  72 1D         |JB SHORT Chess.004E8A6D                 ;  小于则跳
004E8A50  |.  2D 84030000   |SUB EAX,384
004E8A55  |.  72 29         |JB SHORT Chess.004E8A80
004E8A57  |.  EB 35         |JMP SHORT Chess.004E8A8E
004E8A59  |>  8B45 E8       |MOV EAX,DWORD PTR SS:[EBP-18]
004E8A5C  |.  F7E8          |IMUL EAX
004E8A5E  |.  6BC0 4D       |IMUL EAX,EAX,4D                         ;  这里和下放一样 * 4D=>EAX
004E8A61  |.  71 05         |JNO SHORT Chess.004E8A68
004E8A63  |.  E8 0CB5F1FF   |CALL Chess.00403F74
004E8A68  |>  8945 E8       |MOV DWORD PTR SS:[EBP-18],EAX
004E8A6B  |.  EB 21         |JMP SHORT Chess.004E8A8E
004E8A6D  |>  6945 E8 CC030>|IMUL EAX,DWORD PTR SS:[EBP-18],3CC      ;  [EBP-18]*3CC=>EAX中
004E8A74  |.  71 05         |JNO SHORT Chess.004E8A7B                ;  若不溢出则则转移
004E8A76  |.  E8 F9B4F1FF   |CALL Chess.00403F74
004E8A7B  |>  8945 E8       |MOV DWORD PTR SS:[EBP-18],EAX           ;  再将结果放到[EBP-18]
004E8A7E  |.  EB 0E         |JMP SHORT Chess.004E8A8E
004E8A80  |>  6B45 E8 29    |IMUL EAX,DWORD PTR SS:[EBP-18],29
004E8A84  |.  71 05         |JNO SHORT Chess.004E8A8B
004E8A86  |.  E8 E9B4F1FF   |CALL Chess.00403F74
004E8A8B  |>  8945 E8       |MOV DWORD PTR SS:[EBP-18],EAX
004E8A8E  |>  8B45 E8       |MOV EAX,DWORD PTR SS:[EBP-18]           ;  又传会EAX
004E8A91  |.  0145 EC       |ADD DWORD PTR SS:[EBP-14],EAX           ;  把数值放[EBP-14]+=EAX
004E8A94  |.  71 05         |JNO SHORT Chess.004E8A9B
004E8A96  |.  E8 D9B4F1FF   |CALL Chess.00403F74
004E8A9B  |>  0FBF45 FA     |MOVSX EAX,WORD PTR SS:[EBP-6]           ;  [EBP-6]=7(这里是取当前月份,呵呵再过几天就是8了  有兴趣的可以跟踪下~)  放EAX
004E8A9F  |.  6BC0 0A       |IMUL EAX,EAX,0A                         ;  EAX*=A
004E8AA2  |.  71 05         |JNO SHORT Chess.004E8AA9
004E8AA4  |.  E8 CBB4F1FF   |CALL Chess.00403F74
004E8AA9  |>  0145 EC       |ADD DWORD PTR SS:[EBP-14],EAX           ;  [EBP-14]+=EAX  最终计算结果将保存在这里
004E8AAC  |.  71 05         |JNO SHORT Chess.004E8AB3
004E8AAE  |.  E8 C1B4F1FF   |CALL Chess.00403F74
004E8AB3  |>  FE45 F3       |INC BYTE PTR SS:[EBP-D]                 ;  [EBP-D]做计数器
004E8AB6  |.  FE4D E3       |DEC BYTE PTR SS:[EBP-1D]                ;  ([EBP-1D]的存放的是)KEY的位数-1
004E8AB9  |.^ 0F85 69FFFFFF \JNZ Chess.004E8A28
004E8ABF  |>  8D45 B8       LEA EAX,DWORD PTR SS:[EBP-48]
004E8AC2  |.  8A55 C4       MOV DL,BYTE PTR SS:[EBP-3C]
004E8AC5  |.  8850 01       MOV BYTE PTR DS:[EAX+1],DL
004E8AC8  |.  C600 01       MOV BYTE PTR DS:[EAX],1
004E8ACB  |.  8D55 B8       LEA EDX,DWORD PTR SS:[EBP-48]
004E8ACE  |.  8D45 B4       LEA EAX,DWORD PTR SS:[EBP-4C]
004E8AD1  |.  E8 1AA6F1FF   CALL Chess.004030F0
004E8AD6  |.  8D45 B0       LEA EAX,DWORD PTR SS:[EBP-50]
004E8AD9  |.  8A55 C5       MOV DL,BYTE PTR SS:[EBP-3B]
004E8ADC  |.  8850 01       MOV BYTE PTR DS:[EAX+1],DL
004E8ADF  |.  C600 01       MOV BYTE PTR DS:[EAX],1
004E8AE2  |.  8D55 B0       LEA EDX,DWORD PTR SS:[EBP-50]
004E8AE5  |.  8D45 B4       LEA EAX,DWORD PTR SS:[EBP-4C]
004E8AE8  |.  B1 02         MOV CL,2
004E8AEA  |.  E8 D1A5F1FF   CALL Chess.004030C0
004E8AEF  |.  8D55 B4       LEA EDX,DWORD PTR SS:[EBP-4C]
004E8AF2  |.  8D45 AC       LEA EAX,DWORD PTR SS:[EBP-54]
004E8AF5  |.  E8 F6A5F1FF   CALL Chess.004030F0
004E8AFA  |.  8D45 B0       LEA EAX,DWORD PTR SS:[EBP-50]
004E8AFD  |.  8A55 C6       MOV DL,BYTE PTR SS:[EBP-3A]
004E8B00  |.  8850 01       MOV BYTE PTR DS:[EAX+1],DL
004E8B03  |.  C600 01       MOV BYTE PTR DS:[EAX],1
004E8B06  |.  8D55 B0       LEA EDX,DWORD PTR SS:[EBP-50]
004E8B09  |.  8D45 AC       LEA EAX,DWORD PTR SS:[EBP-54]
004E8B0C  |.  B1 03         MOV CL,3
004E8B0E  |.  E8 ADA5F1FF   CALL Chess.004030C0                      ;  上方几个CALL取转化为小写的用户名的前三位并连接
004E8B13  |.  8D55 AC       LEA EDX,DWORD PTR SS:[EBP-54]
004E8B16  |.  8D45 A4       LEA EAX,DWORD PTR SS:[EBP-5C]
004E8B19  |.  E8 D2A5F1FF   CALL Chess.004030F0
004E8B1E  |.  BA C88B4E00   MOV EDX,Chess.004E8BC8
004E8B23  |.  8D45 A4       LEA EAX,DWORD PTR SS:[EBP-5C]
004E8B26  |.  B1 04         MOV CL,4
004E8B28  |.  E8 93A5F1FF   CALL Chess.004030C0
004E8B2D  |.  8D55 A4       LEA EDX,DWORD PTR SS:[EBP-5C]            ;  前三位后连接"-"号
004E8B30  |.  8D45 BC       LEA EAX,DWORD PTR SS:[EBP-44]
004E8B33  |.  E8 48C5F1FF   CALL Chess.00405080
004E8B38  |.  FF75 BC       PUSH DWORD PTR SS:[EBP-44]
004E8B3B  |.  8D55 A0       LEA EDX,DWORD PTR SS:[EBP-60]
004E8B3E  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]            ;  [EBP-14]即上方的计算值
004E8B41  |.  E8 920CF2FF   CALL Chess.004097D8
004E8B46  |.  FF75 A0       PUSH DWORD PTR SS:[EBP-60]               ;  转化为十进制
004E8B49  |.  68 D48B4E00   PUSH Chess.004E8BD4                      ;  smoke.bmp
004E8B4E  |.  8D45 9C       LEA EAX,DWORD PTR SS:[EBP-64]
004E8B51  |.  8A55 C7       MOV DL,BYTE PTR SS:[EBP-39]
004E8B54  |.  E8 ABC4F1FF   CALL Chess.00405004
004E8B59  |.  FF75 9C       PUSH DWORD PTR SS:[EBP-64]
004E8B5C  |.  8D45 98       LEA EAX,DWORD PTR SS:[EBP-68]
004E8B5F  |.  8A55 C8       MOV DL,BYTE PTR SS:[EBP-38]
004E8B62  |.  E8 9DC4F1FF   CALL Chess.00405004                      ;  取转化为小写的用户名的第四第五位
004E8B67  |.  FF75 98       PUSH DWORD PTR SS:[EBP-68]
004E8B6A  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
004E8B6D  |.  BA 05000000   MOV EDX,5
004E8B72  |.  E8 25C6F1FF   CALL Chess.0040519C
004E8B77  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]
004E8B7A  |.  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]            ;  两三个字符串连接为KEY
004E8B7D  |.  E8 6E0BF2FF   CALL Chess.004096F0                      ;  KEY放到了EAX中
004E8B82  |.  33C0          XOR EAX,EAX
004E8B84  |.  5A            POP EDX
004E8B85  |.  59            POP ECX
004E8B86  |.  59            POP ECX
004E8B87  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
004E8B8A  |.  68 C18B4E00   PUSH Chess.004E8BC1
004E8B8F  |>  8D45 98       LEA EAX,DWORD PTR SS:[EBP-68]
004E8B92  |.  BA 03000000   MOV EDX,3
004E8B97  |.  E8 ACC2F1FF   CALL Chess.00404E48
004E8B9C  |.  8D45 BC       LEA EAX,DWORD PTR SS:[EBP-44]
004E8B9F  |.  BA 02000000   MOV EDX,2
004E8BA4  |.  E8 9FC2F1FF   CALL Chess.00404E48
004E8BA9  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
004E8BAC  |.  E8 73C2F1FF   CALL Chess.00404E24
004E8BB1  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
004E8BB4  |.  E8 6BC2F1FF   CALL Chess.00404E24
004E8BB9  \.  C3            RETN
004E8BBA   .^ E9 09BCF1FF   JMP Chess.004047C8
004E8BBF   .^ EB CE         JMP SHORT Chess.004E8B8F
004E8BC1   .  5B            POP EBX
004E8BC2   .  8BE5          MOV ESP,EBP
004E8BC4   .  5D            POP EBP
004E8BC5   .  C3            RETN



哦编程功底还不行,只能分析出算法,看来自己的编程应该提高了。用户名要大于5位,算法都搞明白了,可惜没写出KG。注册信息保存在安装程序的这个文件:register.dat

提供两组可用KEY:

Name:Nisy[PYG]
Code:nis-130362-y[

Name:ChinaPYG
Code:chi-128768-na


3D效果预览:


02.gif
PYG19周年生日快乐!

该用户从未签到

发表于 2007-8-12 13:55:27 | 显示全部楼层
沙发,算法一直不行,不会是高中数学没有及格过的原因吧 /:L
PYG19周年生日快乐!

该用户从未签到

发表于 2007-8-12 17:51:02 | 显示全部楼层
原帖由 rayicy 于 2007-8-12 13:55 发表
沙发,算法一直不行,不会是高中数学没有及格过的原因吧 /:L


关系大了去了
PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-10-30 21:11
  • 签到天数: 453 天

    [LV.9]以坛为家II

    发表于 2007-8-12 19:25:04 | 显示全部楼层
    顶一下啦,只是不知道好玩不
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2007-8-13 00:16:47 | 显示全部楼层
    学习算法了,喜欢国际象棋~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-13 12:54:36 | 显示全部楼层
    中间那部分没看明白~~~~~/:011
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2007-8-13 17:58:12 | 显示全部楼层

    004E8A9B  |>  0FBF45 FA     |MOVSX EAX,WORD PTR SS:[EBP-6]           ;  [EBP-6]=7  放EAX


    这里 [EBP-6]=7 恐怕有点问题吧?      

    再分析下~~ 故这2组注册号每月肯定不能通用~~
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2007-8-14 23:15:21 | 显示全部楼层
    MOVSX EAX,WORD PTR SS:[EBP-6]           ;  [EBP-6]=7  放EAX


    感谢飘云指点~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-17 23:12:26 | 显示全部楼层
    呵呵,菜鸟一个,路过
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-8-18 01:37:49 | 显示全部楼层
    支持老大作品  /:018
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表