小弟初学。
分析了一软件,已经爆破。想进一步学习算法分析,但是算法中的运算太多。不知道那些有用那些没有。
下面帖出算法部分,请大侠们帮忙分析下。多谢。
53 PUSH EBX
8BD8 MOV EBX,EAX //EAX中存放了输入的注册码
33C0 XOR EAX,EAX
85DB TEST EBX,EBX
0F84 4B010000 JE Buzof.0041E278
8BC3 MOV EAX,EBX
8D50 02 LEA EDX,DWORD PTR DS:[EAX+2]
66:8B08 /MOV CX,WORD PTR DS:[EAX]
83C0 02 |ADD EAX,2
66:85C9 |TEST CX,CX
75 F5 \JNZ SHORT Buzof.0041E132
2BC2 SUB EAX,EDX
D1F8 SAR EAX,1
83F8 10 CMP EAX,10 //注册码需要16位,否则出错
0F85 30010000 JNZ Buzof.0041E27A
56 PUSH ESI
8BF0 MOV ESI,EAX //ESI注册码位数
8D49 00 LEA ECX,DWORD PTR DS:[ECX]
0FB74473 FE /MOVZX EAX,WORD PTR DS:[EBX+ESI*2-2] //每次取注册码倒数第一位
83EE 01 |SUB ESI,1
50 |PUSH EAX
E8 DC2B0100 |CALL Buzof.00430D3A //注册码只能是数字,同时EAX寄存器里面的值为00000004
83C4 04 |ADD ESP,4
85C0 |TEST EAX,EAX
0F84 22010000 |JE Buzof.0041E28B
85F6 |TEST ESI,ESI
75 E3 \JNZ SHORT Buzof.0041E150
55 PUSH EBP
0FB76B 1E MOVZX EBP,WORD PTR DS:[EBX+1E] //取注册码最后一位
83ED 30 SUB EBP,30
8BC5 MOV EAX,EBP //最后一位的16进制码减30
0FAFC5 IMUL EAX,EBP //EAX*=EAX
99 CDQ
B9 0A000000 MOV ECX,0A
F7F9 IDIV ECX
83C2 30 ADD EDX,30
66:39146B CMP WORD PTR DS:[EBX+EBP*2],DX
0F85 EF000000 JNZ Buzof.0041E27E
8D45 01 LEA EAX,DWORD PTR SS:[EBP+1]
83F8 0F CMP EAX,0F
7C 03 JL SHORT Buzof.0041E19A
83E8 0F SUB EAX,0F
0FB70C43 MOVZX ECX,WORD PTR DS:[EBX+EAX*2]
8D71 D0 LEA ESI,DWORD PTR DS:[ECX-30]
83FE 02 CMP ESI,2
7D 05 JGE SHORT Buzof.0041E1AB
83C9 FF OR ECX,FFFFFFFF
EB 08 JMP SHORT Buzof.0041E1B3
33C9 XOR ECX,ECX
83FE 02 CMP ESI,2
0F9FC1 SETG CL
8B5424 10 MOV EDX,DWORD PTR SS:[ESP+10]
83C0 01 ADD EAX,1
83F8 0F CMP EAX,0F
890A MOV DWORD PTR DS:[EDX],ECX
7C 03 JL SHORT Buzof.0041E1C4
83E8 0F SUB EAX,0F
8BC8 MOV ECX,EAX
83C0 03 ADD EAX,3
83F8 0F CMP EAX,0F
7C 03 JL SHORT Buzof.0041E1D1
83E8 0F SUB EAX,0F
57 PUSH EDI
0FB73C4B MOVZX EDI,WORD PTR DS:[EBX+ECX*2]
8BC8 MOV ECX,EAX
83C0 03 ADD EAX,3
83EF 30 SUB EDI,30
83F8 0F CMP EAX,0F
7C 03 JL SHORT Buzof.0041E1E6
83E8 0F SUB EAX,0F
0FB70C4B MOVZX ECX,WORD PTR DS:[EBX+ECX*2]
83E9 30 SUB ECX,30
8BD0 MOV EDX,EAX
6BC9 64 IMUL ECX,ECX,64
83C0 03 ADD EAX,3
83F8 0F CMP EAX,0F
7C 03 JL SHORT Buzof.0041E1FD
83E8 0F SUB EAX,0F
0FB71453 MOVZX EDX,WORD PTR DS:[EBX+EDX*2]
0FB70443 MOVZX EAX,WORD PTR DS:[EBX+EAX*2]
83EA 30 SUB EDX,30
03C1 ADD EAX,ECX
8D1492 LEA EDX,DWORD PTR DS:[EDX+EDX*4]
8D4C50 D0 LEA ECX,DWORD PTR DS:[EAX+EDX*2-30]
83F9 0D CMP ECX,0D
75 6E JNZ SHORT Buzof.0041E284
33C9 XOR ECX,ECX
B8 10000000 MOV EAX,10
8D49 00 LEA ECX,DWORD PTR DS:[ECX]
0FB75443 FE /MOVZX EDX,WORD PTR DS:[EBX+EAX*2-2]
83E8 01 |SUB EAX,1
0FAFD0 |IMUL EDX,EAX
03CA |ADD ECX,EDX
85C0 |TEST EAX,EAX
75 EF \JNZ SHORT Buzof.0041E220
8D45 0E LEA EAX,DWORD PTR SS:[EBP+E]
83F8 0F CMP EAX,0F
7C 03 JL SHORT Buzof.0041E23C
83E8 0F SUB EAX,0F
0FB71443 MOVZX EDX,WORD PTR DS:[EBX+EAX*2]
0FAFD0 IMUL EDX,EAX
2BCA SUB ECX,EDX
83E8 01 SUB EAX,1
79 03 JNS SHORT Buzof.0041E24D
83C0 0F ADD EAX,0F
0FB73443 MOVZX ESI,WORD PTR DS:[EBX+EAX*2]
0FB7D6 MOVZX EDX,SI
0FAFD0 IMUL EDX,EAX
2BCA SUB ECX,EDX
E8 12FEFFFF CALL Buzof.0041E070
66:3BC6 CMP AX,SI
75 21 JNZ SHORT Buzof.0041E284
57 PUSH EDI
E8 27FEFFFF CALL Buzof.0041E090
83C4 04 ADD ESP,4
85C0 TEST EAX,EAX
74 14 JE SHORT Buzof.0041E284
5F POP EDI
5D POP EBP
B8 01000000 MOV EAX,1
5E POP ESI
5B POP EBX
C3 RETN
33C0 XOR EAX,EAX
5B POP EBX
C3 RETN
5D POP EBP
5E POP ESI
33C0 XOR EAX,EAX
5B POP EBX
C3 RETN
5F POP EDI
5D POP EBP
5E POP ESI
33C0 XOR EAX,EAX
5B POP EBX
C3 RETN
5E POP ESI
33C0 XOR EAX,EAX
5B POP EBX
C3 RETN
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!