首页
社区
课程
招聘
算法高手看过来。
发表于: 2004-6-6 10:27 4222

算法高手看过来。

2004-6-6 10:27
4222
软件名称:一分钟测试
下载地十:http://dlb.pchome.net/system/benchmark/zwt0922.exe
简介:
1. 仅仅只需要一分钟,就可以准确的评估计算机的总体性能,典型精度能够达到1% 。
2. 测试项目只有整数、浮点、内存、磁盘、DirectDraw图形五项,每一项测试都是普遍、适用范围宽的测试,而不倾向于测试某种理论值。
3. 可以将你的测试结果上传到网站,这样你就可以将你的测试成绩和系统配置同全世界的朋友们一起比较了!
4. 虽然五项测试各有其"绝对速度"成绩,但最重要的测试结果是综合得分,即"一分钟基准得分"或"一分钟MARK",它是一个相对于某个性能均

衡的基本系统的相对值,因而是十分直观的结果。例如一分钟MARK是2.00的机器比一分钟MARK是1.00,总体感觉就是差不多快一倍,它与你的

使用感受是比较统一的,并且我们正在力图使这种比较更接近一般、普遍的使用感受。
5. 《一分钟测试》支持宽广的硬件平台范围,从“古老的”奔腾到最新的奔腾IV甚至将来的硬件都可以顺利测试,因而具有相当长的生存寿

命和可比较性,在当前全球IT技术发展速度下,一分钟测试可以在几年中不必更新基准。
6. 测试结果分析与升级建议能够给初级或非专业用户提供有益的参考和帮助。
7. 多个测试选项能够满足高级用户更丰富的测试需求。
8. 《一分钟测试》也支持Intel SSE,AMD 3DNOW浮点技术,能够让用户比较这些新技术究竟能够带来多大的性能提高。
9. 用户能够将测试数据和机器信息存储到一个可管理的机器数据库,便于比较各个系统性能。

使用工具:OD,W32dsm,PEID
首先用PEID检测,无壳,VC6++写的,W32DSM打开,找到“祝贺你”字样,仔细看,00414990  |. 0F85 DB000000  JNZ zwtest.00414A71这句跳转是关键,跳则注册错误,不跳,成功。
注册E-mail,必须是大于4个字符,注册码是24位,

我跟了几天,可以爆破,但本人数学学的不好, 算法始终不明白,请大侠们给看看。谢谢了。

00414876  /. 55             PUSH EBP
00414877  |. 8BEC           MOV EBP,ESP
00414879  |. 81EC 10010000  SUB ESP,110
0041487F  |. 898D F0FEFFFF  MOV DWORD PTR SS:[EBP-110],ECX
00414885  |. 6A 20          PUSH 20
00414887  |. 68 48434500    PUSH zwtest.00454348
0041488C  |. 8B8D F0FEFFFF  MOV ECX,DWORD PTR SS:[EBP-110]
00414892  |. 81C1 14010000  ADD ECX,114
00414898  |. E8 BC7C0100    CALL zwtest.0042C559                     ;  取字符串长度
0041489D  |. A3 5C604500    MOV DWORD PTR DS:[45605C],EAX
004148A2  |. 6A 20          PUSH 20
004148A4  |. 68 283B4500    PUSH zwtest.00453B28
004148A9  |. 8B8D F0FEFFFF  MOV ECX,DWORD PTR SS:[EBP-110]
004148AF  |. 81C1 D8000000  ADD ECX,0D8
004148B5  |. E8 9F7C0100    CALL zwtest.0042C559
004148BA  |. 8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
004148BD  |. 837D F8 18     CMP DWORD PTR SS:[EBP-8],18   注册码长度
004148C1  |. 75 09          JNZ SHORT zwtest.004148CC
004148C3  |. 833D 5C604500 >CMP DWORD PTR DS:[45605C],4   E-mail长度
004148CA  |. 7D 30          JGE SHORT zwtest.004148FC
004148CC  |> 68 388D4400    PUSH zwtest.00448D38                     ; /Arg1 = 00448D38
004148D1  |. E8 DED5FFFF    CALL zwtest.00411EB4                     ; \zwtest.00411EB4
004148D6  |. 83C4 04        ADD ESP,4
004148D9  |. C605 22334500 >MOV BYTE PTR DS:[453322],78
004148E0  |. C605 23334500 >MOV BYTE PTR DS:[453323],79
004148E7  |. 8B85 F0FEFFFF  MOV EAX,DWORD PTR SS:[EBP-110]
004148ED  |. C780 A0010000 >MOV DWORD PTR DS:[EAX+1A0],0
004148F7  |. E9 82010000    JMP zwtest.00414A7E
004148FC  |> C745 FC 000000>MOV DWORD PTR SS:[EBP-4],0
00414903  |. EB 09          JMP SHORT zwtest.0041490E

00414905  |> 8B4D FC        /MOV ECX,DWORD PTR SS:[EBP-4]            对邮箱地址进行处理。
00414908  |. 83C1 01        |ADD ECX,1
0041490B  |. 894D FC        |MOV DWORD PTR SS:[EBP-4],ECX
0041490E  |> 837D FC 40      CMP DWORD PTR SS:[EBP-4],40
00414912  |. 7D 25          |JGE SHORT zwtest.00414939
00414914  |. 8B15 5C604500  |MOV EDX,DWORD PTR DS:[45605C]           把邮箱长度传到EDX。
0041491A  |. 52             |PUSH EDX                长度入栈。
0041491B  |. 68 48434500    |PUSH zwtest.00454348                    ;  ASCII "123@huaxin.com"  字符串入栈。
00414920  |. A1 5C604500    |MOV EAX,DWORD PTR DS:[45605C]            字符长度传到EAX
00414925  |. 0FAF45 FC      |IMUL EAX,DWORD PTR SS:[EBP-4]      
00414929  |. 05 483B4500    |ADD EAX,zwtest.00453B48                 ;  ASCII

"123@huaxin.com123@huaxin.com123@huaxin.com123@huaxin.com123@huaxin.com123@huaxin.com123@huaxin.com123@huaxin.com123@huaxin.c

[email]om123@huaxin.com[/email]123@huaxin.com123@huaxin.com123@huaxin.com123@huaxin.com123@huaxin.com123@huaxin.com123@huaxin.co"...
0041492E  |. 50             |PUSH EAX
0041492F  |. E8 EC2F0000    |CALL zwtest.00417920          这个调用是把E-mail或注册码重复40次写入一个地址(这是不是算法,不太明白)
00414934  |. 83C4 0C        |ADD ESP,0C
00414937  |.^EB CC          \JMP SHORT zwtest.00414905

00414939  |> C745 FC 000000>MOV DWORD PTR SS:[EBP-4],0
00414940  |. EB 09          JMP SHORT zwtest.0041494B

00414942  |> 8B4D FC        /MOV ECX,DWORD PTR SS:[EBP-4]      对注册码进行处理。
00414945  |. 83C1 01        |ADD ECX,1
00414948  |. 894D FC        |MOV DWORD PTR SS:[EBP-4],ECX
0041494B  |> 837D FC 40      CMP DWORD PTR SS:[EBP-4],40
0041494F  |. 7D 1E          |JGE SHORT zwtest.0041496F
00414951  |. 6A 20          |PUSH 20
00414953  |. 68 283B4500    |PUSH zwtest.00453B28                    ;  ASCII "123456123456123456123456"
00414958  |. 8B55 FC        |MOV EDX,DWORD PTR SS:[EBP-4]
0041495B  |. C1E2 05        |SHL EDX,5
0041495E  |. 81C2 28334500  |ADD EDX,zwtest.00453328                 ;  ASCII "123456123456123456123456"
00414964  |. 52             |PUSH EDX
00414965  |. E8 B62F0000    |CALL zwtest.00417920
0041496A  |. 83C4 0C        |ADD ESP,0C
0041496D  |.^EB D3          \JMP SHORT zwtest.00414942

0041496F  |> 6A 00          PUSH 0                                   ; /Arg3 = 00000000
00414971  |. 6A 00          PUSH 0                                   ; |Arg2 = 00000000
00414973  |. 68 03140000    PUSH 1403                                ; |Arg1 = 00001403
00414978  |. 8B8D F0FEFFFF  MOV ECX,DWORD PTR SS:[EBP-110]           ; |
0041497E  |. E8 BD0B0000    CALL zwtest.00415540                     ; \zwtest.00415540               关键调用????跟入。
00414983  |. 8B85 F0FEFFFF  MOV EAX,DWORD PTR SS:[EBP-110]                                            
00414989  |. 83B8 A0010000 >CMP DWORD PTR DS:[EAX+1A0],0                       比较。
00414990  |. 0F85 DB000000  JNZ zwtest.00414A71                                             关键跳转,跳则死。不跳注册成功。
00414996  |. 68 488D4400    PUSH zwtest.00448D48                     ; /Arg1 = 00448D48        注册成功字符串地址。
0041499B  |. E8 14D5FFFF    CALL zwtest.00411EB4                     ;   \zwtest.00411EB4  弹出注册成功的对话框。         

00415540  /$ 55             PUSH EBP
00415541  |. 8BEC           MOV EBP,ESP
00415543  |. 51             PUSH ECX
00415544  |. 894D FC        MOV DWORD PTR SS:[EBP-4],ECX
00415547  |. 8B45 10        MOV EAX,DWORD PTR SS:[EBP+10]
0041554A  |. 50             PUSH EAX                                 ; /lParam
0041554B  |. 8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]             ; |
0041554E  |. 51             PUSH ECX                                 ; |wParam
0041554F  |. 8B55 08        MOV EDX,DWORD PTR SS:[EBP+8]             ; |
00415552  |. 52             PUSH EDX                                 ; |Message
00415553  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]             ; |
00415556  |. 8B48 1C        MOV ECX,DWORD PTR DS:[EAX+1C]            ; |
00415559  |. 51             PUSH ECX                                 ; |hWnd
0041555A  |. FF15 50C54300  CALL DWORD PTR DS:[<&USER32.SendMessageA>; \SendMessageA
00415560  |. 8BE5           MOV ESP,EBP
00415562  |. 5D             POP EBP
00415563  \. C2 0C00        RETN 0C

算法:

00417920   $ 55             PUSH EBP
00417921   . 8BEC           MOV EBP,ESP
00417923   . 57             PUSH EDI
00417924   . 56             PUSH ESI
00417925   . 8B75 0C        MOV ESI,DWORD PTR SS:[EBP+C]
00417928   . 8B4D 10        MOV ECX,DWORD PTR SS:[EBP+10]
0041792B   . 8B7D 08        MOV EDI,DWORD PTR SS:[EBP+8]
0041792E   . 8BC1           MOV EAX,ECX
00417930   . 8BD1           MOV EDX,ECX
00417932   . 03C6           ADD EAX,ESI
00417934   . 3BFE           CMP EDI,ESI
00417936   . 76 08          JBE SHORT zwtest.00417940
00417938   . 3BF8           CMP EDI,EAX
0041793A   . 0F82 78010000  JB zwtest.00417AB8
00417940   > F7C7 03000000  TEST EDI,3
00417946   . 75 14          JNZ SHORT zwtest.0041795C
00417948   . C1E9 02        SHR ECX,2
0041794B   . 83E2 03        AND EDX,3
0041794E   . 83F9 08        CMP ECX,8
00417951   . 72 29          JB SHORT zwtest.0041797C
00417953   . F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
00417955   . FF2495 687A410>JMP DWORD PTR DS:[EDX*4+417A68]
0041795C   > 8BC7           MOV EAX,EDI
0041795E   . BA 03000000    MOV EDX,3
00417963   . 83E9 04        SUB ECX,4
00417966   . 72 0C          JB SHORT zwtest.00417974
00417968   . 83E0 03        AND EAX,3
0041796B   . 03C8           ADD ECX,EAX
0041796D   . FF2485 8079410>JMP DWORD PTR DS:[EAX*4+417980]
00417974   > FF248D 787A410>JMP DWORD PTR DS:[ECX*4+417A78]
0041797B     90             NOP
0041797C   > FF248D FC79410>JMP DWORD PTR DS:[ECX*4+4179FC]
00417983     90             NOP
00417984   . 90794100       DD zwtest.00417990                       ;  Switch table (1-based) used at 0041796D
00417988   . BC794100       DD zwtest.004179BC
0041798C   . E0794100       DD zwtest.004179E0
00417990   > 23D1           AND EDX,ECX
00417992   . 8A06           MOV AL,BYTE PTR DS:[ESI]
00417994   . 8807           MOV BYTE PTR DS:[EDI],AL
00417996   . 8A46 01        MOV AL,BYTE PTR DS:[ESI+1]
00417999   . 8847 01        MOV BYTE PTR DS:[EDI+1],AL
0041799C   . 8A46 02        MOV AL,BYTE PTR DS:[ESI+2]
0041799F   . C1E9 02        SHR ECX,2
004179A2   . 8847 02        MOV BYTE PTR DS:[EDI+2],AL
004179A5   . 83C6 03        ADD ESI,3
004179A8   . 83C7 03        ADD EDI,3
004179AB   . 83F9 08        CMP ECX,8
004179AE   .^72 CC          JB SHORT zwtest.0041797C
004179B0   . F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
004179B2   . FF2495 687A410>JMP DWORD PTR DS:[EDX*4+417A68]
004179B9     8D49 00        LEA ECX,DWORD PTR DS:[ECX]
004179BC   > 23D1           AND EDX,ECX
004179BE   . 8A06           MOV AL,BYTE PTR DS:[ESI]
004179C0   . 8807           MOV BYTE PTR DS:[EDI],AL
004179C2   . 8A46 01        MOV AL,BYTE PTR DS:[ESI+1]
004179C5   . C1E9 02        SHR ECX,2
004179C8   . 8847 01        MOV BYTE PTR DS:[EDI+1],AL
004179CB   . 83C6 02        ADD ESI,2
004179CE   . 83C7 02        ADD EDI,2
004179D1   . 83F9 08        CMP ECX,8
004179D4   .^72 A6          JB SHORT zwtest.0041797C
004179D6   . F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
004179D8   . FF2495 687A410>JMP DWORD PTR DS:[EDX*4+417A68]
004179DF     90             NOP
004179E0   > 23D1           AND EDX,ECX
004179E2   . 8A06           MOV AL,BYTE PTR DS:[ESI]
004179E4   . 8807           MOV BYTE PTR DS:[EDI],AL
004179E6   . 46             INC ESI
004179E7   . C1E9 02        SHR ECX,2
004179EA   . 47             INC EDI
004179EB   . 83F9 08        CMP ECX,8
004179EE   .^72 8C          JB SHORT zwtest.0041797C
004179F0   . F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
004179F2   . FF2495 687A410>JMP DWORD PTR DS:[EDX*4+417A68]
004179F9     8D49 00        LEA ECX,DWORD PTR DS:[ECX]
004179FC   . 5F7A4100       DD zwtest.00417A5F                       ;  Switch table used at 0041797C
00417A00   . 4C7A4100       DD zwtest.00417A4C
00417A04   . 447A4100       DD zwtest.00417A44
00417A08   . 3C7A4100       DD zwtest.00417A3C
00417A0C   . 347A4100       DD zwtest.00417A34
00417A10   . 2C7A4100       DD zwtest.00417A2C
00417A14   . 247A4100       DD zwtest.00417A24
00417A18   . 1C7A4100       DD zwtest.00417A1C
00417A1C   > 8B448E E4      MOV EAX,DWORD PTR DS:[ESI+ECX*4-1C]
00417A20   . 89448F E4      MOV DWORD PTR DS:[EDI+ECX*4-1C],EAX
00417A24   > 8B448E E8      MOV EAX,DWORD PTR DS:[ESI+ECX*4-18]
00417A28   . 89448F E8      MOV DWORD PTR DS:[EDI+ECX*4-18],EAX
00417A2C   > 8B448E EC      MOV EAX,DWORD PTR DS:[ESI+ECX*4-14]
00417A30   . 89448F EC      MOV DWORD PTR DS:[EDI+ECX*4-14],EAX
00417A34   > 8B448E F0      MOV EAX,DWORD PTR DS:[ESI+ECX*4-10]
00417A38   . 89448F F0      MOV DWORD PTR DS:[EDI+ECX*4-10],EAX
00417A3C   > 8B448E F4      MOV EAX,DWORD PTR DS:[ESI+ECX*4-C]
00417A40   . 89448F F4      MOV DWORD PTR DS:[EDI+ECX*4-C],EAX
00417A44   > 8B448E F8      MOV EAX,DWORD PTR DS:[ESI+ECX*4-8]
00417A48   . 89448F F8      MOV DWORD PTR DS:[EDI+ECX*4-8],EAX
00417A4C   > 8B448E FC      MOV EAX,DWORD PTR DS:[ESI+ECX*4-4]
00417A50   . 89448F FC      MOV DWORD PTR DS:[EDI+ECX*4-4],EAX
00417A54   . 8D048D 0000000>LEA EAX,DWORD PTR DS:[ECX*4]
00417A5B   . 03F0           ADD ESI,EAX
00417A5D   . 03F8           ADD EDI,EAX
00417A5F   > FF2495 687A410>JMP DWORD PTR DS:[EDX*4+417A68]
00417A66     8BFF           MOV EDI,EDI
00417A68   . 787A4100       DD zwtest.00417A78                       ;  Switch table used at 004179B2
00417A6C   . 807A4100       DD zwtest.00417A80
00417A70   . 8C7A4100       DD zwtest.00417A8C
00417A74   . A07A4100       DD zwtest.00417AA0
00417A78   > 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00417A7B   . 5E             POP ESI
00417A7C   . 5F             POP EDI
00417A7D   . C9             LEAVE
00417A7E   . C3             RETN
收藏
免费 5
支持
分享
最新回复 (1)
雪    币: 3246
活跃值: (374)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
2
你列的代码的最后这部分是算法吗?看着象是某个编译器带的库里面的strcpy( )函数

先用IDA把能识别的库函数都识别出来再看看。
2004-6-6 13:48
0
游客
登录 | 注册 方可回帖
返回
//