TA的每日心情 | 开心 2015-8-23 23:49 |
---|
签到天数: 27 天 [LV.4]偶尔看看III
|
本帖最后由 GGLHY 于 2012-8-17 00:13 编辑
直奔主题,来到:
- 省略部分代码.....
- 004FE18B |. 8B83 F8020000 MOV EAX,DWORD PTR DS:[EBX+2F8]
- 004FE191 |. E8 DE6CF3FF CALL perfecti.00434E74
- 004FE196 |. 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] ; 输入的假码1598753046
- 004FE199 |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
- 004FE19C |. E8 6FADF0FF CALL perfecti.00408F10
- 004FE1A1 |. 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C]
- 004FE1A4 |. 8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
- 004FE1AA |. E8 C56CF3FF CALL perfecti.00434E74
- 004FE1AF |. 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-1C] ; 输入的E-mail邮箱
- 004FE1B2 |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
- 004FE1B5 |. E8 56ADF0FF CALL perfecti.00408F10
- 004FE1BA |. 837D F8 00 CMP DWORD PTR SS:[EBP-8],0 ; 假码为空吗?
- 004FE1BE |. 75 0C JNZ SHORT perfecti.004FE1CC
- 004FE1C0 |. A1 443A6200 MOV EAX,DWORD PTR DS:[623A44]
- 004FE1C5 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
- 004FE1C7 |. E8 20FFFFFF CALL perfecti.004FE0EC
- 004FE1CC |> 837D F4 00 CMP DWORD PTR SS:[EBP-C],0 ; 输入的E-mail邮箱为空吗?
- 004FE1D0 |. 75 16 JNZ SHORT perfecti.004FE1E8
- 004FE1D2 |. B9 08E44F00 MOV ECX,perfecti.004FE408 ; Please enter email used in your order
- 004FE1D7 |. B2 01 MOV DL,1
- 004FE1D9 |. A1 84804000 MOV EAX,DWORD PTR DS:[408084]
- 004FE1DE |. E8 11E2F0FF CALL perfecti.0040C3F4
- 004FE1E3 |. E8 E456F0FF CALL perfecti.004038CC
- 004FE1E8 |> 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; 输入的假码1598753046
- 004FE1EB |. E8 105FF0FF CALL perfecti.00404100
- 004FE1F0 |. 83F8 0A CMP EAX,0A ; 假码长度小于10位吗?
- 004FE1F3 |. 7D 0C JGE SHORT perfecti.004FE201
- 004FE1F5 |. A1 443A6200 MOV EAX,DWORD PTR DS:[623A44]
- 004FE1FA |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
- 004FE1FC |. E8 EBFEFFFF CALL perfecti.004FE0EC
- 004FE201 |> 8D55 E0 LEA EDX,DWORD PTR SS:[EBP-20]
- 004FE204 |. 8B83 F8020000 MOV EAX,DWORD PTR DS:[EBX+2F8]
- 004FE20A |. E8 656CF3FF CALL perfecti.00434E74
- 004FE20F |. 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20] ; 输入的假码
- 004FE212 |. E8 4DF8FFFF CALL perfecti.004FDA64 ; 《===============关键call第一处
- 004FE217 |. 85C0 TEST EAX,EAX
- 004FE219 |. 74 0A JE SHORT perfecti.004FE225 ;《===============关键跳第一处
- 004FE21B |. B8 38E44F00 MOV EAX,perfecti.004FE438 ; Wrong key.
- 004FE220 |. E8 C7FEFFFF CALL perfecti.004FE0EC
- 004FE225 |> 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
- 004FE228 |. E8 97F8FFFF CALL perfecti.004FDAC4
- 004FE22D |. 8B93 08030000 MOV EDX,DWORD PTR DS:[EBX+308]
- 004FE233 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
- 004FE236 |. E8 B5F6FFFF CALL perfecti.004FD8F0 ; 《===============关键call第二处
- 004FE23B |. 85C0 TEST EAX,EAX
- 004FE23D |. 74 0A JE SHORT perfecti.004FE249 ; 《===============关键c跳第二处
- 004FE23F |. B8 4CE44F00 MOV EAX,perfecti.004FE44C ; Wrong key for this application.
- 004FE244 |. E8 A3FEFFFF CALL perfecti.004FE0EC
- 004FE249 |> B2 01 MOV DL,1
- 004FE24B |. A1 28C84500 MOV EAX,DWORD PTR DS:[45C828]
- 004FE250 |. E8 D3E6F5FF CALL perfecti.0045C928
- 004FE255 |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
- 004FE258 |. 33C0 XOR EAX,EAX
- 004FE25A |. 55 PUSH EBP
- 004FE25B |. 68 6FE34F00 PUSH perfecti.004FE36F
- 004FE260 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
- 004FE263 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
- 004FE266 |. BA 01000080 MOV EDX,80000001
- 004FE26B |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
- 004FE26E |. E8 91E7F5FF CALL perfecti.0045CA04
- 004FE273 |. 68 74E44F00 PUSH perfecti.004FE474 ; Software\
- 省略部分代码.....
- 004FE2AE |. E8 B9E7F5FF CALL perfecti.0045CA6C
- 004FE2B3 |. 8845 FF MOV BYTE PTR SS:[EBP-1],AL
- 004FE2B6 |. 807D FF 00 CMP BYTE PTR SS:[EBP-1],0
- 004FE2BA |. 0F84 99000000 JE perfecti.004FE359
- 004FE2C0 |. 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
- 004FE2C3 |. BA 94E44F00 MOV EDX,perfecti.004FE494 ; ASCII "Key"
- 004FE2C8 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
- 004FE2CB |. E8 E8ECF5FF CALL perfecti.0045CFB8
- 004FE2D0 |. BA 94E44F00 MOV EDX,perfecti.004FE494 ; ASCII "Key"
- 004FE2D5 |. 8D4D D4 LEA ECX,DWORD PTR SS:[EBP-2C]
- 004FE2D8 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
- 004FE2DB |. E8 04EDF5FF CALL perfecti.0045CFE4
- 004FE2E0 |. 8B55 D4 MOV EDX,DWORD PTR SS:[EBP-2C]
- 004FE2E3 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
- 004FE2E6 |. E8 255FF0FF CALL perfecti.00404210
- 004FE212 CALL perfecti.004FDA64 ; 《===============关键call第一处,F7进入
- 004FDA64 /$ 55 PUSH EBP
- 004FDA65 |. 8BEC MOV EBP,ESP
- 004FDA67 |. 51 PUSH ECX
- 004FDA68 |. 53 PUSH EBX
- 004FDA69 |. 56 PUSH ESI
- 004FDA6A |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX ; 输入的假码
- 004FDA6D |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 004FDA70 |. E8 3F68F0FF CALL perfecti.004042B4
- 004FDA75 |. 33C0 XOR EAX,EAX
- 004FDA77 |. 55 PUSH EBP
- 004FDA78 |. 68 B4DA4F00 PUSH perfecti.004FDAB4
- 004FDA7D |. 64:FF30 PUSH DWORD PTR FS:[EAX]
- 004FDA80 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
- 004FDA83 |. 33F6 XOR ESI,ESI
- 004FDA85 |. BB 0A000000 MOV EBX,0A
- 004FDA8A |> 8B45 FC /MOV EAX,DWORD PTR SS:[EBP-4] ; 输入的假码
- 004FDA8D |. E8 6AFDFFFF |CALL perfecti.004FD7FC ; 注意这个CALL,决定了下面ESI的值!!!
- 004FDA92 |. 03F0 |ADD ESI,EAX
- 004FDA94 |. 6A 64 |PUSH 64 ; /Timeout = 100. ms
- 004FDA96 |. E8 1197F0FF |CALL <JMP.&kernel32.Sleep> ; \Sleep
- 004FDA9B |. 4B |DEC EBX
- 004FDA9C |.^ 75 EC \JNZ SHORT perfecti.004FDA8A ; 检测!!!
- 004FDA9E |. 33C0 XOR EAX,EAX
- 004FDAA0 |. 5A POP EDX
- 004FDAA1 |. 59 POP ECX
- 004FDAA2 |. 59 POP ECX
- 004FDAA3 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
- 004FDAA6 |. 68 BBDA4F00 PUSH perfecti.004FDABB
- 004FDAAB |> 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 004FDAAE |. E8 CD63F0FF CALL perfecti.00403E80
- 004FDAB3 \. C3 RETN
- 004FDAB4 .^ E9 DB5DF0FF JMP perfecti.00403894
- 004FDAB9 .^ EB F0 JMP SHORT perfecti.004FDAAB
- 004FDABB . 8BC6 MOV EAX,ESI ;这个ESI由004FDA8D处的CALL 004FD7FC 决定!
- 004FDABD . 5E POP ESI
- 004FDABE . 5B POP EBX
- 004FDABF . 59 POP ECX
- 004FDAC0 . 5D POP EBP
- 004FDAC1 . C3 RETN
- 004FDA8D 处CALL 004FD7FC ,我们F7进入:
- 004FD7FC /$ 55 PUSH EBP ; ///局部调用来自 004FDA8D, 004FDAC9, 00609736
- 004FD7FD |. 8BEC MOV EBP,ESP
- 004FD7FF |. 83C4 F4 ADD ESP,-0C
- 004FD802 |. 53 PUSH EBX
- 004FD803 |. 56 PUSH ESI
- 004FD804 |. 33D2 XOR EDX,EDX
- 004FD806 |. 8955 F4 MOV DWORD PTR SS:[EBP-C],EDX
- 004FD809 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX ; 输入的假码(ASCII "1598753046")
- 004FD80C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 004FD80F |. E8 A06AF0FF CALL perfecti.004042B4
- 004FD814 |. 33C0 XOR EAX,EAX
- 004FD816 |. 55 PUSH EBP
- 004FD817 |. 68 B7D84F00 PUSH perfecti.004FD8B7
- 004FD81C |. 64:FF30 PUSH DWORD PTR FS:[EAX]
- 004FD81F |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
- 004FD822 |. 33C0 XOR EAX,EAX
- 004FD824 |. 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
- 004FD827 |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
- 004FD82A |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 输入的假码(ASCII "1598753046")
- 004FD82D |. E8 02FFFFFF CALL perfecti.004FD734 ; 查表校验注册码
- 004FD832 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ; 查表校验后的注册码,设为K
- 004FD835 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 004FD838 |. E8 DB66F0FF CALL perfecti.00403F18
- 004FD83D |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 004FD840 |. E8 BB68F0FF CALL perfecti.00404100 ; 查表校验后的注册码K的长度!
- 004FD845 |. 8BF0 MOV ESI,EAX
- 004FD847 |. 83FE 07 CMP ESI,7 ; K的长度:7
- 004FD84A |. 7D 09 JGE SHORT perfecti.004FD855
- 004FD84C |. C745 F8 0B000>MOV DWORD PTR SS:[EBP-8],0B
- 004FD853 |. EB 44 JMP SHORT perfecti.004FD899
- 004FD855 |> 33DB XOR EBX,EBX ; !!!
- 004FD857 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 004FD85A |. E8 A168F0FF CALL perfecti.00404100
- 004FD85F |. 48 DEC EAX ; K的长度 -1
- 004FD860 |. 83E8 02 SUB EAX,2 ; 再-2
- 004FD863 |. 7C 14 JL SHORT perfecti.004FD879
- 004FD865 |. 40 INC EAX ; +1
- 004FD866 |. BA 02000000 MOV EDX,2 ; =2
- 004FD86B |> 8B4D FC /MOV ECX,DWORD PTR SS:[EBP-4] ; 查表校验后的注册码K
- 004FD86E |. 0FB64C11 FF |MOVZX ECX,BYTE PTR DS:[ECX+EDX-1] ; K的第2位起依次每一位直到倒数第2位
- 004FD873 |. 33D9 |XOR EBX,ECX ; 与上一轮循环计算后的结果(初始为0) xor
- 004FD875 |. 42 |INC EDX
- 004FD876 |. 48 |DEC EAX
- 004FD877 |.^ 75 F2 \JNZ SHORT perfecti.004FD86B
- 004FD879 |> 8BC3 MOV EAX,EBX ; 循环结束后的结果。本例=3C
- 004FD87B |. B9 1E000000 MOV ECX,1E
- 004FD880 |. 99 CDQ
- 004FD881 |. F7F9 IDIV ECX ; /1E
- 004FD883 |. 42 INC EDX ; 余数+1
- 004FD884 |. B8 D0D84F00 MOV EAX,perfecti.004FD8D0 ; 2345679qwertyupadfghjkzxcvbnms
- 004FD889 |. 8A4410 FF MOV AL,BYTE PTR DS:[EAX+EDX-1] ; 查表!!!
- 004FD88D |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ; 查表校验后的注册码K
- 004FD890 |. 3A4432 FF CMP AL,BYTE PTR DS:[EDX+ESI-1] ; 与 K的最后1位 比较
- 004FD894 |. 74 03 JE SHORT perfecti.004FD899 ; 光明与黑暗的十字路口!
- 004FD896 |. FF45 F8 INC DWORD PTR SS:[EBP-8] ; 不要,不要啊!
- 004FD899 |> 33C0 XOR EAX,EAX
- 004FD89B |. 5A POP EDX
- 004FD89C |. 59 POP ECX
- 004FD89D |. 59 POP ECX
- 004FD89E |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
- 004FD8A1 |. 68 BED84F00 PUSH perfecti.004FD8BE
- 004FD8A6 |> 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
- 004FD8A9 |. E8 D265F0FF CALL perfecti.00403E80
- 004FD8AE |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 004FD8B1 |. E8 CA65F0FF CALL perfecti.00403E80
- 004FD8B6 \. C3 RETN
- 004FD8B7 .^ E9 D85FF0FF JMP perfecti.00403894
- 004FD8BC .^ EB E8 JMP SHORT perfecti.004FD8A6
- 004FD8BE . 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
- 004FD8C1 . 5E POP ESI
- 004FD8C2 . 5B POP EBX
- 004FD8C3 . 8BE5 MOV ESP,EBP
- 004FD8C5 . 5D POP EBP
- 004FD8C6 . C3 RETN
- 004FD82D |. E8 02FFFFFF CALL perfecti.004FD734 ; 查表校验注册码
- 这个CALL其实就是将输入的注册码过滤掉表中没有的字符。(附表:2345679qwertyupadfghjkzxcvbnms)
- 004FD734 /$ 55 PUSH EBP
- 省略部分代码.....
- 004FD743 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX ; 输入的假码(ASCII "1598753046")
- 省略部分代码.....
- 004FD75F |. E8 9C69F0FF CALL perfecti.00404100
- 004FD764 |. 8BD8 MOV EBX,EAX ; 假码长度
- 004FD766 |. 83FB 01 CMP EBX,1
- 004FD769 |. 7C 34 JL SHORT perfecti.004FD79F
- 004FD76B |> 8D45 F8 /LEA EAX,DWORD PTR SS:[EBP-8]
- 004FD76E |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4] ; 输入的假码(ASCII "1598753046")
- 004FD771 |. 8A541A FF |MOV DL,BYTE PTR DS:[EDX+EBX-1] ; 依次倒取假码每一位
- 004FD775 |. E8 AE68F0FF |CALL perfecti.00404028
- 004FD77A |. 8B45 F8 |MOV EAX,DWORD PTR SS:[EBP-8] ; 依次倒取的假码每一位
- 004FD77D |. BA DCD74F00 |MOV EDX,perfecti.004FD7DC ; 2345679qwertyupadfghjkzxcvbnms
- 004FD782 |. E8 656CF0FF |CALL perfecti.004043EC ; 查表!!!
- 004FD787 |. 85C0 |TEST EAX,EAX ; 在表中的位置
- 004FD789 |. 75 0F |JNZ SHORT perfecti.004FD79A
- 004FD78B |. 8D45 FC |LEA EAX,DWORD PTR SS:[EBP-4]
- 004FD78E |. B9 01000000 |MOV ECX,1
- 004FD793 |. 8BD3 |MOV EDX,EBX
- 004FD795 |. E8 AE6BF0FF |CALL perfecti.00404348
- 004FD79A |> 4B |DEC EBX
- 004FD79B |. 85DB |TEST EBX,EBX
- 004FD79D |.^ 75 CC \JNZ SHORT perfecti.004FD76B
- 004FD79F |> 8BC6 MOV EAX,ESI
- 004FD7A1 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ; 查表校验后的注册码,设为K
- 省略部分代码.....
- 004FD7C3 \. C3 RETN
- 提示点:
- 004FD890 CMP AL,BYTE PTR DS:[EDX+ESI-1] ; 与 K的最后1位 比较
- ----------------------------------------------------------------------
- 关键CALL第2处:
- 004FD8F0 /$ 55 PUSH EBP
- 004FD8F1 |. 8BEC MOV EBP,ESP
- 004FD8F3 |. 33C9 XOR ECX,ECX
- 004FD8F5 |. 51 PUSH ECX
- 004FD8F6 |. 51 PUSH ECX
- 004FD8F7 |. 51 PUSH ECX
- 004FD8F8 |. 51 PUSH ECX
- 004FD8F9 |. 51 PUSH ECX
- 004FD8FA |. 53 PUSH EBX
- 004FD8FB |. 56 PUSH ESI
- 004FD8FC |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX ; (ASCII "Perfect Icon")
- 004FD8FF |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX ; 输入的假码1598753042
- 004FD902 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 004FD905 |. E8 AA69F0FF CALL perfecti.004042B4
- 004FD90A |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; (ASCII "Perfect Icon")
- 004FD90D |. E8 A269F0FF CALL perfecti.004042B4
- 004FD912 |. 33C0 XOR EAX,EAX
- 004FD914 |. 55 PUSH EBP
- 004FD915 |. 68 2BDA4F00 PUSH perfecti.004FDA2B
- 004FD91A |. 64:FF30 PUSH DWORD PTR FS:[EAX]
- 004FD91D |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
- 004FD920 |. 33F6 XOR ESI,ESI
- 004FD922 |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
- 004FD925 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 输入的假码“1598753046”
- 004FD928 |. E8 07FEFFFF CALL perfecti.004FD734
- 004FD92D |. 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10]
- 004FD930 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 004FD933 |. E8 E065F0FF CALL perfecti.00403F18
- 004FD938 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 004FD93B |. E8 C067F0FF CALL perfecti.00404100
- 004FD940 |. 83F8 07 CMP EAX,7
- 004FD943 |. 7D 0A JGE SHORT perfecti.004FD94F
- 004FD945 |. BE 0B000000 MOV ESI,0B
- 004FD94A |. E9 C1000000 JMP perfecti.004FDA10
- 004FD94F |> 837D F8 00 CMP DWORD PTR SS:[EBP-8],0
- 004FD953 |. 0F84 B7000000 JE perfecti.004FDA10
- 004FD959 |. 33DB XOR EBX,EBX
- 004FD95B |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
- 004FD95E |. E8 9D67F0FF CALL perfecti.00404100
- 004FD963 |. 48 DEC EAX
- 004FD964 |. 85C0 TEST EAX,EAX
- 004FD966 |. 7E 13 JLE SHORT perfecti.004FD97B
- 004FD968 |. BA 01000000 MOV EDX,1
- 004FD96D |> 8B4D F8 /MOV ECX,DWORD PTR SS:[EBP-8] ; (ASCII "Perfect Icon")
- 004FD970 |. 0FB64C11 FF |MOVZX ECX,BYTE PTR DS:[ECX+EDX-1] ; 依次每一位ASC(不含最后一位)
- 004FD975 |. 03D9 |ADD EBX,ECX
- 004FD977 |. 42 |INC EDX
- 004FD978 |. 48 |DEC EAX
- 004FD979 |.^ 75 F2 \JNZ SHORT perfecti.004FD96D ; 此循环即取固定字符串Perfect Ico的ASC累加和
- 004FD97B |> 8BC3 MOV EAX,EBX ; 累加和=404H
- 004FD97D |. B9 1E000000 MOV ECX,1E
- 004FD982 |. 99 CDQ
- 004FD983 |. F7F9 IDIV ECX ; /1E
- 004FD985 |. 42 INC EDX ; 余数+1
- 004FD986 |. B8 44DA4F00 MOV EAX,perfecti.004FDA44 ; 2345679qwertyupadfghjkzxcvbnms
- 004FD98B |. 8A4410 FF MOV AL,BYTE PTR DS:[EAX+EDX-1] ; 查表!
- 004FD98F |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
- 004FD992 |. 3A42 01 CMP AL,BYTE PTR DS:[EDX+1] ; 与查表校验后的注册码K的第2位(“9”)比较
- 004FD995 |. 74 01 JE SHORT perfecti.004FD998 ; 又一个 光明与黑暗的十字路口!
- 004FD997 |. 46 INC ESI
- 004FD998 |> 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
- 004FD99B |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; (ASCII "Perfect Icon")
- 004FD99E |. E8 35B3F0FF CALL perfecti.00408CD8
- 004FD9A3 |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
- 004FD9A6 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ; 注意大小写 (ASCII "perfect icon")
- 004FD9A9 |. 8A12 MOV DL,BYTE PTR DS:[EDX] ; 转换为小写 (ASCII "perfect icon")的第一位
- 004FD9AB |. E8 7866F0FF CALL perfecti.00404028
- 004FD9B0 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
- 004FD9B3 |. BA 44DA4F00 MOV EDX,perfecti.004FDA44 ; 2345679qwertyupadfghjkzxcvbnms
- 004FD9B8 |. E8 2F6AF0FF CALL perfecti.004043EC
- 004FD9BD |. 85C0 TEST EAX,EAX ; 在表中的位置。本例(=F)
- 004FD9BF |. 7E 11 JLE SHORT perfecti.004FD9D2
- 004FD9C1 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 004FD9C4 |. E8 0769F0FF CALL perfecti.004042D0
- 004FD9C9 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ; 转换为小写的(ASCII "perfect icon")
- 004FD9CC |. 8A12 MOV DL,BYTE PTR DS:[EDX] ; 转换为小写 (ASCII "perfect icon")的第一位
- 004FD9CE |. 8810 MOV BYTE PTR DS:[EAX],DL
- 004FD9D0 |. EB 3E JMP SHORT perfecti.004FDA10
- 004FD9D2 |> 33DB XOR EBX,EBX
- 004FD9D4 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
- 004FD9D7 |. E8 2467F0FF CALL perfecti.00404100
- 004FD9DC |. 48 DEC EAX
- 004FD9DD |. 85C0 TEST EAX,EAX
- 004FD9DF |. 7E 13 JLE SHORT perfecti.004FD9F4
- 004FD9E1 |. BA 01000000 MOV EDX,1
- 004FD9E6 |> 8B4D F8 /MOV ECX,DWORD PTR SS:[EBP-8]
- 004FD9E9 |. 0FB64C11 FF |MOVZX ECX,BYTE PTR DS:[ECX+EDX-1]
- 004FD9EE |. 33D9 |XOR EBX,ECX
- 004FD9F0 |. 42 |INC EDX
- 004FD9F1 |. 48 |DEC EAX
- 004FD9F2 |.^ 75 F2 \JNZ SHORT perfecti.004FD9E6
- 004FD9F4 |> 8BC3 MOV EAX,EBX
- 004FD9F6 |. B9 1E000000 MOV ECX,1E
- 004FD9FB |. 99 CDQ
- 004FD9FC |. F7F9 IDIV ECX
- 004FD9FE |. 42 INC EDX
- 004FD9FF |. B8 44DA4F00 MOV EAX,perfecti.004FDA44 ; 2345679qwertyupadfghjkzxcvbnms
- 004FDA04 |. 8A4410 FF MOV AL,BYTE PTR DS:[EAX+EDX-1]
- 004FDA08 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
- 004FDA0B |. 3A02 CMP AL,BYTE PTR DS:[EDX] ; 查表校验后的注册码K的第1位!!!
- 004FDA0D |. 74 01 JE SHORT perfecti.004FDA10
- 004FDA0F |. 46 INC ESI
- 004FDA10 |> 33C0 XOR EAX,EAX
- 004FDA12 |. 5A POP EDX
- 004FDA13 |. 59 POP ECX
- 004FDA14 |. 59 POP ECX
- 004FDA15 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
- 004FDA18 |. 68 32DA4F00 PUSH perfecti.004FDA32
- 004FDA1D |> 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
- 004FDA20 |. BA 05000000 MOV EDX,5
- 004FDA25 |. E8 7A64F0FF CALL perfecti.00403EA4
- 004FDA2A \. C3 RETN
- 004FDA2B .^ E9 645EF0FF JMP perfecti.00403894
- 004FDA30 .^ EB EB JMP SHORT perfecti.004FDA1D
- 004FDA32 . 8BC6 MOV EAX,ESI
- 004FDA34 . 5E POP ESI
- 004FDA35 . 5B POP EBX
- 004FDA36 . 8BE5 MOV ESP,EBP
- 004FDA38 . 5D POP EBP
- 004FDA39 . C3 RETN
- 提示点:
- 004FD992 CMP AL,BYTE PTR DS:[EDX+1] ; “w”与查表校验后的注册码K的第2位(“9”)比较
- 004FDA0B CMP AL,BYTE PTR DS:[EDX] ; “p”查表校验后的注册码K的第1位!!!
- ------------------------------------------------------------------------------------------------
- 算法小结:(算法与用户名和邮箱无关)
- 1.输入的注册码不得少于10位,且符合表中的字符不得少于7位,设为K;
- 2.K的第2位起依次与下一位XOR,直到倒数第2位为止,结果设为M,则 M mod 1E,余数+1的数值查表所得到的字符必须为K的最后一位。
- 3.取固定字符串"Perfect Ico"(注意,不含n)的ASC累加和404 mod 1E 的余数8 +1,得到9,查表的第9位为“w”,则K的第2位必须为“w”
- 4.固定字符串"Perfect Icon"转小写,得到:"perfect icon"。取第一位“p”必须为K的第1位。
- 附表:
- 2345679qwertyupadfghjkzxcvbnms
- 其实真正需要考虑的为前面2条,最后2条可以看做固定的。
- 所以可以构造注册码为:
- 0081pw8753084c8
-
-
-
-
-
复制代码
|
|