大家来分析一下这段代码的算法
00431450/$55 PUSH EBP00431451|.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
我看的有点迷糊~~~ IDA,F5一下 算法是分几个段来算的
页:
[1]