dngsweb 发表于 2011-3-16 18:10:50

大家来分析一下这段代码的算法

00431450/$55            PUSH EBP
00431451|.8BEC          MOV EBP,ESP
00431453|.81C4 3CFFFFFF ADD ESP,-0C4
00431459|.53            PUSH EBX
0043145A|.56            PUSH ESI
0043145B|.33DB          XOR EBX,EBX
0043145D|.899D 3CFFFFFF MOV DWORD PTR SS:,EBX
00431463|.899D 40FFFFFF MOV DWORD PTR SS:,EBX
00431469|.899D 44FFFFFF MOV DWORD PTR SS:,EBX
0043146F|.895D F4       MOV DWORD PTR SS:,EBX
00431472|.895D F0       MOV DWORD PTR SS:,EBX
00431475|.894D F8       MOV DWORD PTR SS:,ECX
00431478|.8955 FC       MOV DWORD PTR SS:,EDX
0043147B|.8BD8          MOV EBX,EAX
0043147D|.8B45 FC       MOV EAX,DWORD PTR SS:
00431480|.E8 23FDFCFF   CALL <JMP.&rtl70.@System@@LStrAddRef$q>
00431485|.33C0          XOR EAX,EAX
00431487|.55            PUSH EBP
00431488|.68 A0164300   PUSH GL2008.004316A0
0043148D|.64:FF30       PUSH DWORD PTR FS:
00431490|.64:8920       MOV DWORD PTR FS:,ESP
00431493|.8D45 F0       LEA EAX,DWORD PTR SS:
00431496|.E8 ADFCFCFF   CALL <JMP.&rtl70.@System@@LStrClr$qqrp>
0043149B|.8D45 F4       LEA EAX,DWORD PTR SS:
0043149E|.BA B8164300   MOV EDX,GL2008.004316B8                ;ASCII "1Q2AW3ZSE4XDR5CFT6VGY7BHU8NJI9MKO0LP"
004314A3|.E8 B8FCFCFF   CALL <JMP.&rtl70.@System@@LStrLAsg$qqr>
004314A8|.8D45 FC       LEA EAX,DWORD PTR SS:
004314AB|.BA E8164300   MOV EDX,GL2008.004316E8                ;ASCII "0000000000"
004314B0|.E8 D3FCFCFF   CALL <JMP.&rtl70.@System@@LStrCat$qqrv>;
004314B5|.8D55 C0       LEA EDX,DWORD PTR SS:
004314B8|.8BC3          MOV EAX,EBX
004314BA|.E8 95020000   CALL GL2008.00431754
004314BF|.33C0          XOR EAX,EAX
004314C1|.8945 EC       MOV DWORD PTR SS:,EAX
004314C4|.BB 01000000   MOV EBX,1
004314C9|>8B45 FC       /MOV EAX,DWORD PTR SS:          ;EAX=60000099180000000000
004314CC|.0FB64418 FF   |MOVZX EAX,BYTE PTR DS:
004314D1|.F7EB          |IMUL EBX
004314D3|.0145 EC       |ADD DWORD PTR SS:,EAX
004314D6|.43            |INC EBX
004314D7|.83FB 0B       |CMP EBX,0B
004314DA|.^ 75 ED         \JNZ SHORT GL2008.004314C9
004314DC|.BB 01000000   MOV EBX,1
004314E1|.8D55 98       LEA EDX,DWORD PTR SS:
004314E4|>8B45 FC       /MOV EAX,DWORD PTR SS:
004314E7|.0FB64418 FF   |MOVZX EAX,BYTE PTR DS:
004314EC|.8902          |MOV DWORD PTR DS:,EAX
004314EE|.8D43 01       |LEA EAX,DWORD PTR DS:
004314F1|.83F8 0A       |CMP EAX,0A
004314F4|.7F 10         |JG SHORT GL2008.00431506
004314F6|>8B4D FC       |/MOV ECX,DWORD PTR SS:
004314F9|.0FB64C01 FF   ||MOVZX ECX,BYTE PTR DS:
004314FE|.010A          ||ADD DWORD PTR DS:,ECX
00431500|.40            ||INC EAX
00431501|.83F8 0B       ||CMP EAX,0B
00431504|.^ 75 F0         |\JNZ SHORT GL2008.004314F6
00431506|>43            |INC EBX
00431507|.83C2 04       |ADD EDX,4
0043150A|.83FB 0B       |CMP EBX,0B
0043150D|.^ 75 D5         \JNZ SHORT GL2008.004314E4
0043150F|.BB 0A000000   MOV EBX,0A
00431514|.8D45 BC       LEA EAX,DWORD PTR SS:
00431517|.8945 E8       MOV DWORD PTR SS:,EAX
0043151A|.8D55 94       LEA EDX,DWORD PTR SS:
0043151D|>8B45 E8       /MOV EAX,DWORD PTR SS:
00431520|.8B00          |MOV EAX,DWORD PTR DS:
00431522|.8902          |MOV DWORD PTR DS:,EAX
00431524|.8BC3          |MOV EAX,EBX
00431526|.48            |DEC EAX
00431527|.83F8 01       |CMP EAX,1
0043152A|.7C 10         |JL SHORT GL2008.0043153C
0043152C|.8D4C85 94   |LEA ECX,DWORD PTR SS:
00431530|>8B31          |/MOV ESI,DWORD PTR DS:
00431532|.0132          ||ADD DWORD PTR DS:,ESI
00431534|.48            ||DEC EAX
00431535|.83E9 04       ||SUB ECX,4
00431538|.85C0          ||TEST EAX,EAX
0043153A|.^ 75 F4         |\JNZ SHORT GL2008.00431530
0043153C|>4B            |DEC EBX
0043153D|.83EA 04       |SUB EDX,4
00431540|.836D E8 04    |SUB DWORD PTR SS:,4
00431544|.85DB          |TEST EBX,EBX
00431546|.^ 75 D5         \JNZ SHORT GL2008.0043151D
00431548|.BB 0A000000   MOV EBX,0A
0043154D|.8D85 70FFFFFF LEA EAX,DWORD PTR SS:
00431553|.8D55 C0       LEA EDX,DWORD PTR SS:
00431556|.8D8D 48FFFFFF LEA ECX,DWORD PTR SS:
0043155C|>8B30          /MOV ESI,DWORD PTR DS:
0043155E|.0332          |ADD ESI,DWORD PTR DS:
00431560|.0375 EC       |ADD ESI,DWORD PTR SS:
00431563|.8931          |MOV DWORD PTR DS:,ESI
00431565|.83C1 04       |ADD ECX,4
00431568|.83C2 04       |ADD EDX,4
0043156B|.83C0 04       |ADD EAX,4
0043156E|.4B            |DEC EBX
0043156F|.^ 75 EB         \JNZ SHORT GL2008.0043155C
00431571|.BB 0A000000   MOV EBX,0A
00431576|.8DB5 48FFFFFF LEA ESI,DWORD PTR SS:
0043157C|>8B06          /MOV EAX,DWORD PTR DS:
0043157E|.B9 24000000   |MOV ECX,24
00431583|.99            |CDQ
00431584|.F7F9          |IDIV ECX
00431586|.8B45 F4       |MOV EAX,DWORD PTR SS:
00431589|.8A1410      |MOV DL,BYTE PTR DS:
0043158C|.8D85 44FFFFFF |LEA EAX,DWORD PTR SS:
00431592|.E8 D9FBFCFF   |CALL <JMP.&rtl70.@System@@LStrFromCha>
00431597|.8B95 44FFFFFF |MOV EDX,DWORD PTR SS:
0043159D|.8D45 F0       |LEA EAX,DWORD PTR SS:
004315A0|.E8 E3FBFCFF   |CALL <JMP.&rtl70.@System@@LStrCat$qqr>
004315A5|.83C6 04       |ADD ESI,4
004315A8|.4B            |DEC EBX
004315A9|.^ 75 D1         \JNZ SHORT GL2008.0043157C
004315AB|.BB 01000000   MOV EBX,1
004315B0|.8D85 70FFFFFF LEA EAX,DWORD PTR SS:
004315B6|.8D95 48FFFFFF LEA EDX,DWORD PTR SS:
004315BC|>8B08          /MOV ECX,DWORD PTR DS:
004315BE|.BE 0B000000   |MOV ESI,0B
004315C3|.2BF3          |SUB ESI,EBX
004315C5|.034CB5 BC   |ADD ECX,DWORD PTR SS:
004315C9|.034D EC       |ADD ECX,DWORD PTR SS:
004315CC|.890A          |MOV DWORD PTR DS:,ECX
004315CE|.43            |INC EBX
004315CF|.83C2 04       |ADD EDX,4
004315D2|.83C0 04       |ADD EAX,4
004315D5|.83FB 0B       |CMP EBX,0B
004315D8|.^ 75 E2         \JNZ SHORT GL2008.004315BC
004315DA|.BB 0A000000   MOV EBX,0A
004315DF|.8DB5 48FFFFFF LEA ESI,DWORD PTR SS:
004315E5|>8B06          /MOV EAX,DWORD PTR DS:
004315E7|.B9 24000000   |MOV ECX,24
004315EC|.99            |CDQ
004315ED|.F7F9          |IDIV ECX
004315EF|.8B45 F4       |MOV EAX,DWORD PTR SS:
004315F2|.8A1410      |MOV DL,BYTE PTR DS:
004315F5|.8D85 40FFFFFF |LEA EAX,DWORD PTR SS:
004315FB|.E8 70FBFCFF   |CALL <JMP.&rtl70.@System@@LStrFromCha>
00431600|.8B95 40FFFFFF |MOV EDX,DWORD PTR SS:
00431606|.8D45 F0       |LEA EAX,DWORD PTR SS:
00431609|.E8 7AFBFCFF   |CALL <JMP.&rtl70.@System@@LStrCat$qqr>
0043160E|.83C6 04       |ADD ESI,4
00431611|.4B            |DEC EBX
00431612|.^ 75 D1         \JNZ SHORT GL2008.004315E5
00431614|.8B45 F8       MOV EAX,DWORD PTR SS:
00431617|.E8 2CFBFCFF   CALL <JMP.&rtl70.@System@@LStrClr$qqrp>
0043161C|.BB 01000000   MOV EBX,1
00431621|>8D85 3CFFFFFF /LEA EAX,DWORD PTR SS:
00431627|.8B55 F0       |MOV EDX,DWORD PTR SS:
0043162A|.8A541A FF   |MOV DL,BYTE PTR DS:
0043162E|.E8 3DFBFCFF   |CALL <JMP.&rtl70.@System@@LStrFromCha>
00431633|.8B95 3CFFFFFF |MOV EDX,DWORD PTR SS:
00431639|.8B45 F8       |MOV EAX,DWORD PTR SS:
0043163C|.E8 47FBFCFF   |CALL <JMP.&rtl70.@System@@LStrCat$qqr>
00431641|.8B45 F8       |MOV EAX,DWORD PTR SS:
00431644|.8BC3          |MOV EAX,EBX
00431646|.B9 05000000   |MOV ECX,5
0043164B|.99            |CDQ
0043164C|.F7F9          |IDIV ECX
0043164E|.85D2          |TEST EDX,EDX
00431650|.75 15         |JNZ SHORT GL2008.00431667
00431652|.83FB 14       |CMP EBX,14
00431655|.7D 10         |JGE SHORT GL2008.00431667
00431657|.8B45 F8       |MOV EAX,DWORD PTR SS:
0043165A|.BA FC164300   |MOV EDX,GL2008.004316FC
0043165F|.E8 24FBFCFF   |CALL <JMP.&rtl70.@System@@LStrCat$qqr>
00431664|.8B45 F8       |MOV EAX,DWORD PTR SS:
00431667|>43            |INC EBX
00431668|.83FB 15       |CMP EBX,15
0043166B|.^ 75 B4         \JNZ SHORT GL2008.00431621
0043166D|.33C0          XOR EAX,EAX
0043166F|.5A            POP EDX
00431670|.59            POP ECX
00431671|.59            POP ECX
00431672|.64:8910       MOV DWORD PTR FS:,EDX
00431675|.68 A7164300   PUSH GL2008.004316A7
0043167A|>8D85 3CFFFFFF LEA EAX,DWORD PTR SS:
00431680|.BA 03000000   MOV EDX,3
00431685|.E8 C6FAFCFF   CALL <JMP.&rtl70.@System@@LStrArrayClr>
0043168A|.8D45 F0       LEA EAX,DWORD PTR SS:
0043168D|.BA 02000000   MOV EDX,2
00431692|.E8 B9FAFCFF   CALL <JMP.&rtl70.@System@@LStrArrayClr>
00431697|.8D45 FC       LEA EAX,DWORD PTR SS:
0043169A|.E8 A9FAFCFF   CALL <JMP.&rtl70.@System@@LStrClr$qqrp>
0043169F\.C3            RETN


004339AD   .C70424 640300>MOV DWORD PTR SS:,364
004339B4   .C74424 04 030>MOV DWORD PTR SS:,103
004339BC   .C74424 08 7B0>MOV DWORD PTR SS:,37B
004339C4   .C74424 0C 550>MOV DWORD PTR SS:,155
004339CC   .C74424 10 550>MOV DWORD PTR SS:,355
004339D4   .C74424 14 2F0>MOV DWORD PTR SS:,2F
004339DC   .C74424 18 BD0>MOV DWORD PTR SS:,3BD
004339E4   .C74424 1C C20>MOV DWORD PTR SS:,1C2
004339EC   .C74424 20 C10>MOV DWORD PTR SS:,3C1
004339F4   .C74424 24 180>MOV DWORD PTR SS:,318

注册码格式:XXXXX-XXXXX-XXXXX-XXXXX

我看的有点迷糊~~~

飘云 发表于 2011-3-16 18:38:13

IDA,F5一下

老海 发表于 2011-3-18 07:32:42

算法是分几个段来算的
页: [1]
查看完整版本: 大家来分析一下这段代码的算法