【破文标题】精装友情通讯录算法分析
【破文作者】山村小子
【作者邮箱】lhl8730@56.com
【作者主页】无
【破解工具】PEID,OD
【破解平台】XP
【软件名称】精装友情通讯录
【软件大小】1722KB
【原版下载】http://www2.skycn.com/soft/10355.html
【保护方式】注册码

这软件已有人写了爆破破文,我在这写出它的算法分析。写得不好请各位大侠多多指点。
1、查壳
用PEID查,没加壳。
2、调试跟踪算法
1)运行输入订单号:12,假码:345,按确认有‘注册失败,请重新注册’

2)OD载入,搜索字符串‘注册失败,请重新注册’向上找到‘PUSH EBP’在这下断重新运行停在这

00515279  |.  55            PUSH EBP
0051527A  |.  68 E9545100   PUSH jzyq.005154E9
0051527F  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
00515282  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
00515285  |.  68 80000000   PUSH 80                                  ; /BufSize = 80 (128.)
0051528A  |.  8D85 7BFFFFFF LEA EAX,DWORD PTR SS:[EBP-85]            ; |
00515290  |.  50            PUSH EAX                                 ; |Buffer
00515291  |.  E8 B220EFFF   CALL <JMP.&kernel32.GetSystemDirectoryA> ; \GetSystemDirectoryA
00515296  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
00515299  |.  8D95 7BFFFFFF LEA EDX,DWORD PTR SS:[EBP-85]
0051529F  |.  B9 81000000   MOV ECX,81
005152A4  |.  E8 DBF9EEFF   CALL jzyq.00404C84
005152A9  |.  8D95 74FFFFFF LEA EDX,DWORD PTR SS:[EBP-8C]
005152AF  |.  8B83 1C030000 MOV EAX,DWORD PTR DS:[EBX+31C]
005152B5  |.  E8 F2D8F2FF   CALL jzyq.00442BAC
005152BA  |.  83BD 74FFFFFF>CMP DWORD PTR SS:[EBP-8C],0         注册码是否为0
005152C1  |.  74 1A         JE SHORT jzyq.005152DD
005152C3  |.  8D95 70FFFFFF LEA EDX,DWORD PTR SS:[EBP-90]
005152C9  |.  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
005152CF  |.  E8 D8D8F2FF   CALL jzyq.00442BAC
005152D4  |.  83BD 70FFFFFF>CMP DWORD PTR SS:[EBP-90],0      订单号是否为0
005152DB  |.  75 0F         JNZ SHORT jzyq.005152EC
005152DD  |>  B8 00555100   MOV EAX,jzyq.00515500                    ;  注册信息没有填写齐全
005152E2  |.  E8 B96AF2FF   CALL jzyq.0043BDA0
005152E7  |.  E9 80010000   JMP jzyq.0051546C
005152EC  |>  8D95 6CFFFFFF LEA EDX,DWORD PTR SS:[EBP-94]
005152F2  |.  8B83 1C030000 MOV EAX,DWORD PTR DS:[EBX+31C]
005152F8  |.  E8 AFD8F2FF   CALL jzyq.00442BAC
005152FD  |.  8B85 6CFFFFFF MOV EAX,DWORD PTR SS:[EBP-94]
00515303  |.  50            PUSH EAX
00515304  |.  8D95 60FFFFFF LEA EDX,DWORD PTR SS:[EBP-A0]
0051530A  |.  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
00515310  |.  E8 97D8F2FF   CALL jzyq.00442BAC
00515315  |.  8B85 60FFFFFF MOV EAX,DWORD PTR SS:[EBP-A0]
0051531B  |.  E8 9042EFFF   CALL jzyq.004095B0                看订单号是否全为数字,并得订单号的十六进制值
00515320  |.  B9 40080000   MOV ECX,840
00515325  |.  99            CDQ
00515326  |.  F7F9          IDIV ECX                             订单号的十六进制值除840,取余数
00515328  |.  8BC2          MOV EAX,EDX
0051532A  |.  8D95 64FFFFFF LEA EDX,DWORD PTR SS:[EBP-9C]
00515330  |.  E8 1742EFFF   CALL jzyq.0040954C                      得余数的十进制值设为h,后面有用。
00515335  |.  FFB5 64FFFFFF PUSH DWORD PTR SS:[EBP-9C]
0051533B  |.  8D95 54FFFFFF LEA EDX,DWORD PTR SS:[EBP-AC]
00515341  |.  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
00515347  |.  E8 60D8F2FF   CALL jzyq.00442BAC                       ;  
0051534C  |.  8B85 54FFFFFF MOV EAX,DWORD PTR SS:[EBP-AC]
00515352  |.  E8 5942EFFF   CALL jzyq.004095B0                      看注册码是否全为数字
00515357  |.  8D95 58FFFFFF LEA EDX,DWORD PTR SS:[EBP-A8]
0051535D  |.  E8 C6FCFFFF   CALL jzyq.00515028                       ;  关键CALL 1跟进
00515362  |.  8B85 58FFFFFF MOV EAX,DWORD PTR SS:[EBP-A8]
00515368  |.  E8 4342EFFF   CALL jzyq.004095B0                       ;  看结果b是不是全为数字
0051536D  |.  8D95 5CFFFFFF LEA EDX,DWORD PTR SS:[EBP-A4]
00515373  |.  E8 90FDFFFF   CALL jzyq.00515108                       ;  关键CALL 2跟进
00515378  |.  FFB5 5CFFFFFF PUSH DWORD PTR SS:[EBP-A4]
0051537E  |.  68 20555100   PUSH jzyq.00515520                       ;  1
00515383  |.  8D85 68FFFFFF LEA EAX,DWORD PTR SS:[EBP-98]
00515389  |.  BA 03000000   MOV EDX,3
0051538E  |.  E8 01FAEEFF   CALL jzyq.00404D94                       ;  把结果h加在结果g的最前面,得注册码
00515393  |.  8B95 68FFFFFF MOV EDX,DWORD PTR SS:[EBP-98]
00515399  |.  58            POP EAX
0051539A  |.  E8 79FAEEFF   CALL jzyq.00404E18
0051539F  |.  0F85 A3000000 JNZ jzyq.00515448
005153A5  |.  B8 2C555100   MOV EAX,jzyq.0051552C                    ;  注册码正确,感谢你的注册!
005153AA  |.  E8 F169F2FF   CALL jzyq.0043BDA0
005153AF  |.  A1 109C5300   MOV EAX,DWORD PTR DS:[539C10]
005153B4  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
005153B6  |.  8B80 C8040000 MOV EAX,DWORD PTR DS:[EAX+4C8]
005153BC  |.  8B80 08020000 MOV EAX,DWORD PTR DS:[EAX+208]
005153C2  |.  33D2          XOR EDX,EDX
005153C4  |.  E8 A79BF5FF   CALL jzyq.0046EF70
005153C9  |.  BA 50555100   MOV EDX,jzyq.00515550                    ;  精装友情-软件已注册
005153CE  |.  E8 F99AF5FF   CALL jzyq.0046EECC
005153D3  |.  8D85 50FFFFFF LEA EAX,DWORD PTR SS:[EBP-B0]
005153D9  |.  B9 6C555100   MOV ECX,jzyq.0051556C                    ;  \hdwl21.dll
005153DE  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
005153E1  |.  E8 3AF9EEFF   CALL jzyq.00404D20
005153E6  |.  8B8D 50FFFFFF MOV ECX,DWORD PTR SS:[EBP-B0]
005153EC  |.  B2 01         MOV DL,1
005153EE  |.  A1 8C424600   MOV EAX,DWORD PTR DS:[46428C]
005153F3  |.  E8 44EFF4FF   CALL jzyq.0046433C
005153F8  |.  8BF0          MOV ESI,EAX
005153FA  |.  8D95 4CFFFFFF LEA EDX,DWORD PTR SS:[EBP-B4]
00515400  |.  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
00515406  |.  E8 A1D7F2FF   CALL jzyq.00442BAC
0051540B  |.  8B85 4CFFFFFF MOV EAX,DWORD PTR SS:[EBP-B4]
00515411  |.  50            PUSH EAX
00515412  |.  B9 80555100   MOV ECX,jzyq.00515580                    ;  setet567
00515417  |.  BA 94555100   MOV EDX,jzyq.00515594                    ;  sym
0051541C  |.  8BC6          MOV EAX,ESI
0051541E  |.  8B18          MOV EBX,DWORD PTR DS:[EAX]
00515420  |.  FF53 04       CALL DWORD PTR DS:[EBX+4]
00515423  |.  8D85 48FFFFFF LEA EAX,DWORD PTR SS:[EBP-B8]
00515429  |.  B9 A0555100   MOV ECX,jzyq.005155A0                    ;  \hdw121.dll
0051542E  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
00515431  |.  E8 EAF8EEFF   CALL jzyq.00404D20
00515436  |.  8B85 48FFFFFF MOV EAX,DWORD PTR SS:[EBP-B8]
0051543C  |.  BA 02000000   MOV EDX,2
00515441  |.  E8 9644EFFF   CALL jzyq.004098DC
00515446  |.  EB 24         JMP SHORT jzyq.0051546C
00515448  |>  B8 B4555100   MOV EAX,jzyq.005155B4                    ;  注册失败,请重新注册!
0051544D  |.  E8 4E69F2FF   CALL jzyq.0043BDA0
00515452  |.  33D2          XOR EDX,EDX
00515454  |.  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
0051545A  |.  E8 7DD7F2FF   CALL jzyq.00442BDC
0051545F  |.  33D2          XOR EDX,EDX
00515461  |.  8B83 1C030000 MOV EAX,DWORD PTR DS:[EBX+31C]
00515467  |.  E8 70D7F2FF   CALL jzyq.00442BDC
0051546C  |>  33C0          XOR EAX,EAX
0051546E  |.  5A            POP EDX
0051546F  |.  59            POP ECX
00515470  |.  59            POP ECX
00515471  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
00515474  |.  68 F0545100   PUSH jzyq.005154F0
00515479  |>  8D85 48FFFFFF LEA EAX,DWORD PTR SS:[EBP-B8]
0051547F  |.  E8 98F5EEFF   CALL jzyq.00404A1C
00515484  |.  8D85 4CFFFFFF LEA EAX,DWORD PTR SS:[EBP-B4]
0051548A  |.  E8 8DF5EEFF   CALL jzyq.00404A1C
0051548F  |.  8D85 50FFFFFF LEA EAX,DWORD PTR SS:[EBP-B0]
00515495  |.  E8 82F5EEFF   CALL jzyq.00404A1C
0051549A  |.  8D85 54FFFFFF LEA EAX,DWORD PTR SS:[EBP-AC]
005154A0  |.  E8 77F5EEFF   CALL jzyq.00404A1C
005154A5  |.  8D85 58FFFFFF LEA EAX,DWORD PTR SS:[EBP-A8]
005154AB  |.  BA 02000000   MOV EDX,2
005154B0  |.  E8 8BF5EEFF   CALL jzyq.00404A40
005154B5  |.  8D85 60FFFFFF LEA EAX,DWORD PTR SS:[EBP-A0]
005154BB  |.  E8 5CF5EEFF   CALL jzyq.00404A1C
005154C0  |.  8D85 64FFFFFF LEA EAX,DWORD PTR SS:[EBP-9C]
005154C6  |.  BA 02000000   MOV EDX,2
005154CB  |.  E8 70F5EEFF   CALL jzyq.00404A40
005154D0  |.  8D85 6CFFFFFF LEA EAX,DWORD PTR SS:[EBP-94]
005154D6  |.  BA 03000000   MOV EDX,3
005154DB  |>  E8 60F5EEFF   CALL jzyq.00404A40
005154E0  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
005154E3  |.  E8 34F5EEFF   CALL jzyq.00404A1C
005154E8  \.  C3            RETN
005154E9   .^ E9 D2EDEEFF   JMP jzyq.004042C0
005154EE   .^ EB 89         JMP SHORT jzyq.00515479
005154F0   .  5E            POP ESI
005154F1   .  5B            POP EBX
005154F2   .  8BE5          MOV ESP,EBP
005154F4   .  5D            POP EBP
跟进关键CALL 1到这
00515028  /$  55            PUSH EBP
00515029  |.  8BEC          MOV EBP,ESP
0051502B  |.  33C9          XOR ECX,ECX
0051502D  |.  51            PUSH ECX
0051502E  |.  51            PUSH ECX
0051502F  |.  51            PUSH ECX
00515030  |.  51            PUSH ECX
00515031  |.  53            PUSH EBX
00515032  |.  56            PUSH ESI
00515033  |.  8BF2          MOV ESI,EDX
00515035  |.  8BD8          MOV EBX,EAX
00515037  |.  33C0          XOR EAX,EAX
00515039  |.  55            PUSH EBP
0051503A  |.  68 F8505100   PUSH jzyq.005150F8
0051503F  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
00515042  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
00515045  |.  81F3 F1250B00 XOR EBX,0B25F1                           ;  订单号与0B25F1做异或运算,结果在EBX中
0051504B  |.  8BC3          MOV EAX,EBX
0051504D  |.  33D2          XOR EDX,EDX
0051504F  |.  52            PUSH EDX                                 ; /Arg2 => 00000000
00515050  |.  50            PUSH EAX                                 ; |Arg1
00515051  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]             ; |
00515054  |.  E8 2345EFFF   CALL jzyq.0040957C                       ; \运算结果转为十进制数字设为a
00515059  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  十进制值a
0051505C  |.  0FB600        MOVZX EAX,BYTE PTR DS:[EAX]              ;  取a的第一位的ASCⅡ的十六进制值给EAX
0051505F  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]             ;  十进制结果a给EDX
00515062  |.  0FB652 01     MOVZX EDX,BYTE PTR DS:[EDX+1]            ;  取a的第二位的ASCⅡ的十六进制值给EDX
00515066  |.  03C2          ADD EAX,EDX                              ;  两个值相加
00515068  |.  B9 05000000   MOV ECX,5                                ;  5给ECX
0051506D  |.  99            CDQ
0051506E  |.  F7F9          IDIV ECX                                 ;  EAX+EDX结果除5,商在EAX中,余在EDX中
00515070  |.  80C2 34       ADD DL,34                                ;  余数加上34
00515073  |.  8855 F8       MOV BYTE PTR SS:[EBP-8],DL               ;  结果设为1保存
00515076  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  十进制结果a给EAX
00515079  |.  0FB640 02     MOVZX EAX,BYTE PTR DS:[EAX+2]            ;  取第三位
0051507D  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
00515080  |.  0FB652 03     MOVZX EDX,BYTE PTR DS:[EDX+3]            ;  取第四位
00515084  |.  03C2          ADD EAX,EDX
00515086  |.  B9 05000000   MOV ECX,5
0051508B  |.  99            CDQ
0051508C  |.  F7F9          IDIV ECX
0051508E  |.  8BDA          MOV EBX,EDX
00515090  |.  80C3 33       ADD BL,33
00515093  |.  885D F9       MOV BYTE PTR SS:[EBP-7],BL               ;  结果设为2保存
00515096  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
00515099      8A55 F8       MOV DL,BYTE PTR SS:[EBP-8]               ;  取结果1
0051509C  |.  E8 5BFBEEFF   CALL jzyq.00404BFC
005150A1  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
005150A4  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
005150A7  |.  B9 1B000000   MOV ECX,1B
005150AC  |.  E8 03FFEEFF   CALL jzyq.00404FB4
005150B1  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
005150B4  |.  8BD3          MOV EDX,EBX                         结果2给EDX
005150B6  |.  E8 41FBEEFF   CALL jzyq.00404BFC
005150BB  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
005150BE  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
005150C1  |.  B9 19000000   MOV ECX,19
005150C6  |.  E8 E9FEEEFF   CALL jzyq.00404FB4                       ;  把十进制值a与后两个结果的值联起来设为b
005150CB  |.  8BC6          MOV EAX,ESI
005150CD  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
005150D0  |.  E8 9BF9EEFF   CALL jzyq.00404A70
005150D5  |.  33C0          XOR EAX,EAX
005150D7  |.  5A            POP EDX
005150D8  |.  59            POP ECX
005150D9  |.  59            POP ECX
005150DA  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
005150DD  |.  68 FF505100   PUSH jzyq.005150FF
005150E2  |>  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
005150E5  |.  BA 02000000   MOV EDX,2
005150EA  |.  E8 51F9EEFF   CALL jzyq.00404A40
005150EF  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
005150F2  |.  E8 25F9EEFF   CALL jzyq.00404A1C
005150F7  \.  C3            RETN
005150F8   .^ E9 C3F1EEFF   JMP jzyq.004042C0
005150FD   .^ EB E3         JMP SHORT jzyq.005150E2
005150FF   .  5E            POP ESI
00515100   .  5B            POP EBX
00515101   .  8BE5          MOV ESP,EBP
00515103   .  5D            POP EBP
00515104   .  C3            RETN

进关键CALL 2到这
00515108  /$  55            PUSH EBP
00515109  |.  8BEC          MOV EBP,ESP
0051510B  |.  33C9          XOR ECX,ECX
0051510D  |.  51            PUSH ECX
0051510E  |.  51            PUSH ECX
0051510F  |.  51            PUSH ECX
00515110  |.  51            PUSH ECX
00515111  |.  51            PUSH ECX
00515112  |.  51            PUSH ECX
00515113  |.  53            PUSH EBX
00515114  |.  56            PUSH ESI
00515115  |.  8BF2          MOV ESI,EDX
00515117  |.  8BD8          MOV EBX,EAX
00515119  |.  33C0          XOR EAX,EAX
0051511B  |.  55            PUSH EBP
0051511C  |.  68 54525100   PUSH jzyq.00515254
00515121  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
00515124  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
00515127  |.  81F3 8776FBDD XOR EBX,DDFB7687                         ;  b的十六进制结果与DDFB7687做异或运算
0051512D  |.  8BC3          MOV EAX,EBX
0051512F  |.  33D2          XOR EDX,EDX
00515131  |.  52            PUSH EDX                                 ; /Arg2 => 00000000
00515132  |.  50            PUSH EAX                                 ; |Arg1
00515133  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]             ; |
00515136  |.  E8 4144EFFF   CALL jzyq.0040957C                       ; \结果转为十进制设为c
0051513B  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0051513E  |.  0FB600        MOVZX EAX,BYTE PTR DS:[EAX]              ;  取c的第一位
00515141  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
00515144  |.  0FB652 01     MOVZX EDX,BYTE PTR DS:[EDX+1]            ;  取c的第二位
00515148  |.  03C2          ADD EAX,EDX
0051514A  |.  B9 05000000   MOV ECX,5
0051514F  |.  99            CDQ
00515150  |.  F7F9          IDIV ECX                                 ;EAX+EDX除5要余数
00515152  |.  80C2 66       ADD DL,66                                ;  余数加66得字符设为s1
00515155  |.  8855 F8       MOV BYTE PTR SS:[EBP-8],DL
00515158  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0051515B  |.  0FB640 02     MOVZX EAX,BYTE PTR DS:[EAX+2]            ;  取第三位
0051515F  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
00515162  |.  0FB652 03     MOVZX EDX,BYTE PTR DS:[EDX+3]            ;  取第四位
00515166  |.  03C2          ADD EAX,EDX
00515168  |.  B9 05000000   MOV ECX,5
0051516D  |.  99            CDQ
0051516E  |.  F7F9          IDIV ECX
00515170  |.  80C2 75       ADD DL,75                                ;  结果加75得字符s2
00515173  |.  8855 F9       MOV BYTE PTR SS:[EBP-7],DL
00515176  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00515179  |.  0FB640 04     MOVZX EAX,BYTE PTR DS:[EAX+4]            ;  取第五位
0051517D  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
00515180  |.  0FB652 05     MOVZX EDX,BYTE PTR DS:[EDX+5]            ;  取第六位
00515184  |.  03C2          ADD EAX,EDX
00515186  |.  B9 05000000   MOV ECX,5
0051518B  |.  99            CDQ
0051518C  |.  F7F9          IDIV ECX
0051518E  |.  80C2 7A       ADD DL,7A                                ;  结果加7A得字符s3
00515191  |.  8855 FA       MOV BYTE PTR SS:[EBP-6],DL
00515194  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00515197  |.  0FB640 06     MOVZX EAX,BYTE PTR DS:[EAX+6]            ;  取第七位
0051519B  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
0051519E  |.  0FB652 07     MOVZX EDX,BYTE PTR DS:[EDX+7]            ;  取第八位
005151A2  |.  03C2          ADD EAX,EDX
005151A4  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
005151A7  |.  0FB652 08     MOVZX EDX,BYTE PTR DS:[EDX+8]
005151AB  |.  03C2          ADD EAX,EDX
005151AD  |.  B9 05000000   MOV ECX,5
005151B2  |.  99            CDQ
005151B3  |.  F7F9          IDIV ECX
005151B5  |.  80C2 69       ADD DL,69                                ;  结果加69得字符s4
005151B8  |.  8855 FB       MOV BYTE PTR SS:[EBP-5],DL
005151BB  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
005151BE  |.  8A55 F8       MOV DL,BYTE PTR SS:[EBP-8]
005151C1  |.  E8 36FAEEFF   CALL jzyq.00404BFC
005151C6  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
005151C9  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
005151CC  |.  B9 07000000   MOV ECX,7
005151D1  |.  E8 DEFDEEFF   CALL jzyq.00404FB4                       ;  把第一个结果s1放在十进制c的第七位得结果d
005151D6  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
005151D9  |.  8A55 FB       MOV DL,BYTE PTR SS:[EBP-5]
005151DC  |.  E8 1BFAEEFF   CALL jzyq.00404BFC
005151E1  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
005151E4  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
005151E7  |.  B9 03000000   MOV ECX,3
005151EC  |.  E8 C3FDEEFF   CALL jzyq.00404FB4                       ;  把第二个结果s2放在d的第三位得e
005151F1  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
005151F4  |.  8A55 F9       MOV DL,BYTE PTR SS:[EBP-7]
005151F7  |.  E8 00FAEEFF   CALL jzyq.00404BFC
005151FC  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
005151FF  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
00515202  |.  B9 05000000   MOV ECX,5
00515207  |.  E8 A8FDEEFF   CALL jzyq.00404FB4                       ;  把第三个结果s3放在e的第五位得f
0051520C  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
0051520F  |.  8A55 FA       MOV DL,BYTE PTR SS:[EBP-6]
00515212  |.  E8 E5F9EEFF   CALL jzyq.00404BFC
00515217  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
0051521A  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
0051521D  |.  B9 09000000   MOV ECX,9
00515222  |.  E8 8DFDEEFF   CALL jzyq.00404FB4                       ;  把第四个结果s4放在f的第九位得g
00515227  |.  8BC6          MOV EAX,ESI
00515229  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
0051522C  |.  E8 3FF8EEFF   CALL jzyq.00404A70
00515231  |.  33C0          XOR EAX,EAX
00515233  |.  5A            POP EDX
00515234  |.  59            POP ECX
00515235  |.  59            POP ECX
00515236  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
00515239  |.  68 5B525100   PUSH jzyq.0051525B
0051523E  |>  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
00515241  |.  BA 04000000   MOV EDX,4
00515246  |.  E8 F5F7EEFF   CALL jzyq.00404A40
0051524B  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
0051524E  |.  E8 C9F7EEFF   CALL jzyq.00404A1C
00515253  \.  C3            RETN
00515254   .^ E9 67F0EEFF   JMP jzyq.004042C0
00515259   .^ EB E3         JMP SHORT jzyq.0051523E
0051525B   .  5E            POP ESI
0051525C   .  5B            POP EBX
0051525D   .  8BE5          MOV ESP,EBP
0051525F   .  5D            POP EBP
00515260   .  C3            RETN



------------------------------------------------------------------------
算法已够详细我在这不总结了。
------------------------------------------------------------------------
【版权声明】本文纯属技术交流[请支持正版], 转载请注明作者并保持文章的完整,