飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3191|回复: 0

[原创] 个人日程助手 V1.0 算法补充

[复制链接]

该用户从未签到

发表于 2005-6-11 20:13:41 | 显示全部楼层 |阅读模式
****************************  0047AD81  CALL Assistan.004776A4 **********************

004776A4   /$  55           PUSH EBP
004776A5   |.  8BEC         MOV EBP,ESP
004776A7   |.  6A 00        PUSH 0
004776A9   |.  6A 00        PUSH 0
004776AB   |.  6A 00        PUSH 0
004776AD   |.  53           PUSH EBX
004776AE   |.  56           PUSH ESI
004776AF   |.  8BF2         MOV ESI,EDX
004776B1   |.  8945 FC      MOV DWORD PTR SS:[EBP-4],EAX
004776B4   |.  8B45 FC      MOV EAX,DWORD PTR SS:[EBP-4]
004776B7   |.  E8 20CEF8FF  CALL Assistan.004044DC
004776BC   |.  33C0         XOR EAX,EAX
004776BE   |.  55           PUSH EBP
004776BF   |.  68 5E774700  PUSH Assistan.0047775E
004776C4   |.  64:FF30      PUSH DWORD PTR FS:[EAX]
004776C7   |.  64:8920      MOV DWORD PTR FS:[EAX],ESP
004776CA   |.  33DB         XOR EBX,EBX
004776CC   |.  8B45 FC      MOV EAX,DWORD PTR SS:[EBP-4]
004776CF   |.  E8 18CCF8FF  CALL Assistan.004042EC
004776D4   |.  8BD0         MOV EDX,EAX
004776D6   |.  85D2         TEST EDX,EDX
004776D8   |.  76 1C        JBE SHORT Assistan.004776F6
004776DA   |.  B8 01000000  MOV EAX,1
004776DF   |>  8B4D FC      /MOV ECX,DWORD PTR SS:[EBP-4]        〈----第一次运算
004776E2   |.  0FB64C01 FF  |MOVZX ECX,BYTE PTR DS:[ECX+EAX-1]
004776E7   |.  03D9         |ADD EBX,ECX
004776E9   |.  8BCB         |MOV ECX,EBX
004776EB   |.  03C9         |ADD ECX,ECX
004776ED   |.  8D0C89       |LEA ECX,DWORD PTR DS:[ECX+ECX*4]
004776F0   |.  8BD9         |MOV EBX,ECX
004776F2   |.  40           |INC EAX
004776F3   |.  4A           |DEC EDX
004776F4   |.^ 75 E9        \JNZ SHORT Assistan.004776DF
004776F6   |>  8BC3         MOV EAX,EBX
004776F8   |.  33D2         XOR EDX,EDX
004776FA   |.  52           PUSH EDX                                                          ; /Arg2 => 00000000
004776FB   |.  50           PUSH EAX                                                         ; |Arg1
004776FC   |.  8D45 F8      LEA EAX,DWORD PTR SS:[EBP-8]                                      ; |
004776FF   |.  E8 D809F9FF  CALL Assistan.004080DC            〈--------转化为十进制数  ; \Assistan.004080DC
00477704   |.  33DB         XOR EBX,EBX
00477706   |.  8B45 F8      MOV EAX,DWORD PTR SS:[EBP-8]
00477709   |.  E8 DECBF8FF  CALL Assistan.004042EC
0047770E   |.  83F8 01      CMP EAX,1
00477711   |.  72 18        JB SHORT Assistan.0047772B
00477713   |>  8B55 F8      /MOV EDX,DWORD PTR SS:[EBP-8]        〈----第二次运算
00477716   |.  0FB65402 FF  |MOVZX EDX,BYTE PTR DS:[EDX+EAX-1]
0047771B   |.  03DA         |ADD EBX,EDX
0047771D   |.  8BD3         |MOV EDX,EBX
0047771F   |.  03D2         |ADD EDX,EDX
00477721   |.  8D1492       |LEA EDX,DWORD PTR DS:[EDX+EDX*4]
00477724   |.  8BDA         |MOV EBX,EDX
00477726   |.  48           |DEC EAX
00477727   |.  85C0         |TEST EAX,EAX
00477729   |.^ 75 E8        \JNZ SHORT Assistan.00477713
0047772B   |>  8BC3         MOV EAX,EBX
0047772D   |.  33D2         XOR EDX,EDX
0047772F   |.  52           PUSH EDX                                                          ; /Arg2 => 00000000
00477730   |.  50           PUSH EAX                                                          ; |Arg1
00477731   |.  8D45 F4      LEA EAX,DWORD PTR SS:[EBP-C]                                      ; |
00477734   |.  E8 A309F9FF  CALL Assistan.004080DC            〈--------转化为十进制数  ; \Assistan.004080DC
00477739   |.  8B45 F4      MOV EAX,DWORD PTR SS:[EBP-C]
0047773C   |.  8BD6         MOV EDX,ESI
0047773E   |.  E8 AD07F9FF  CALL Assistan.00407EF0
00477743   |.  33C0         XOR EAX,EAX
00477745   |.  5A           POP EDX
00477746   |.  59           POP ECX
00477747   |.  59           POP ECX
00477748   |.  64:8910      MOV DWORD PTR FS:[EAX],EDX
0047774B   |.  68 65774700  PUSH Assistan.00477765
00477750   |>  8D45 F4      LEA EAX,DWORD PTR SS:[EBP-C]
00477753   |.  BA 03000000  MOV EDX,3
00477758   |.  E8 F3C8F8FF  CALL Assistan.00404050
0047775D   \.  C3           RETN

算法总结:先取得机器码的十六进制ACSII码,按公式计算出一个十六进制数 A ,把 A 转化为十进制数,得B ;取得 B 的十六进制ACSII码, 按公式再算出一个值C,把 C 转化为十进制数就是真正的注册码了。

公式:        设值 X,初始值为 0
                        [(机器码+X)*2]+[(机器码+X)*2]*4,值再赋给 X
         循环计算完。

比如:我的机器码:     1  0  7  2  5  0  1  5  3  2
        十六进制ACSII码:31 30 37 32 35 30 31 35 33 32

第一次运算得:AC679438        ------〉十进制数:2892469304

2  8  9  2  4  6  9  3  0  4
32 38 39 32 34 36 39 33 30 34

第二次运算得:94F56F1C        ------〉十进制数:2499112732 ----〉注册码啦!!

表达能力不好,凑合着看吧!
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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