生成和判断注册码的函数如下所示,可以写个注册机。
Name: dr0
Mail: dr0@21cn.com
Code: 3762-8756
0167:0040DD4C PUSH EBP
0167:0040DD4D MOV EBP,ESP
0167:0040DD4F ADD ESP,FFFFFB7C
0167:0040DD55 PUSH EBX
0167:0040DD56 PUSH ESI
0167:0040DD57 PUSH EDI
0167:0040DD58 XOR EBX,EBX
0167:0040DD5A XOR EDI,EDI
0167:0040DD5C MOV EAX,[EBP+0C]
0167:0040DD5F MOV ESI,EAX
0167:0040DD61 JMP 0040DD6A
0167:0040DD63 MOVSX EAX,BYTE PTR [ESI]
0167:0040DD66 ADD EBX,EAX //名字的累加和
0167:0040DD68 INC EDI
0167:0040DD69 INC ESI
0167:0040DD6A MOV EDX,[EBP+0C]
0167:0040DD6D PUSH EDX
0167:0040DD6E CALL 00508080
0167:0040DD73 POP ECX
0167:0040DD74 CMP EDI,EAX
0167:0040DD76 JB 0040DD63
0167:0040DD78 XOR EDI,EDI
0167:0040DD7A MOV EAX,[EBP+10]
0167:0040DD7D MOV ESI,EAX
0167:0040DD7F JMP 0040DD88
0167:0040DD81 MOVSX EAX,BYTE PTR [ESI]
0167:0040DD84 ADD EBX,EAX //继续累加Email串中的字符
0167:0040DD86 INC EDI
0167:0040DD87 INC ESI
0167:0040DD88 MOV EDX,[EBP+10]
0167:0040DD8B PUSH EDX
0167:0040DD8C CALL 00508080
0167:0040DD91 POP ECX
0167:0040DD92 CMP EDI,EAX
0167:0040DD94 JB 0040DD81
0167:0040DD96 PUSH 0A
0167:0040DD98 LEA ECX,[EBP-03F0]
0167:0040DD9E PUSH ECX
0167:0040DD9F PUSH EBX
0167:0040DDA0 CALL 0050CF58
0167:0040DDA5 ADD ESP,0C
0167:0040DDA8 MOV DWORD PTR [EBP+FFFFFBFC],00000D87
0167:0040DDB2 MOV DWORD PTR [EBP-0400],00002234
0167:0040DDBC MOV DWORD PTR [EBP-03FC],00002231
0167:0040DDC6 MOV DWORD PTR [EBP-03F8],0000128B
0167:0040DDD0 MOV DWORD PTR [EBP-03F4],000015AD
0167:0040DDDA PUSH 0A
0167:0040DDDC LEA EAX,[EBP-03F0]
0167:0040DDE2 PUSH EAX
0167:0040DDE3 LEA EDX,[EBX+000009C5]
0167:0040DDE9 PUSH EDX
0167:0040DDEA CALL 0050CF58
0167:0040DDEF ADD ESP,0C
0167:0040DDF2 MOV EDX,[EBP+14]
0167:0040DDF5 MOV CL,[EAX]
0167:0040DDF7 CMP CL,[EDX] //比较注册码的一部分
0167:0040DDF9 JNZ 0040DF7D
0167:0040DDFF TEST CL,CL
0167:0040DE01 JZ 0040DE19
0167:0040DE03 MOV CL,[EAX+01]
0167:0040DE06 CMP CL,[EDX+01]
0167:0040DE09 JNZ 0040DF7D
0167:0040DE0F ADD EAX,02
0167:0040DE12 ADD EDX,02
0167:0040DE15 TEST CL,CL
0167:0040DE17 JNZ 0040DDF5
0167:0040DE19 JNZ 0040DF7D
0167:0040DE1F PUSH 0A
0167:0040DE21 LEA EAX,[EBP-03F0]
0167:0040DE27 PUSH EAX
0167:0040DE28 MOV EAX,EBX
0167:0040DE2A MOV ECX,00000005
0167:0040DE2F XOR EDX,EDX
0167:0040DE31 DIV ECX
0167:0040DE33 MOV EAX,[EDX*4+EBP+FFFFFBFC]
0167:0040DE3A PUSH EAX
0167:0040DE3B CALL 0050CF58
0167:0040DE40 ADD ESP,0C
0167:0040DE43 MOV EDX,[EBP+18]
0167:0040DE46 MOV CL,[EAX]
0167:0040DE48 CMP CL,[EDX] //比较注册码的另一部分
0167:0040DE4A JNZ 0040DF7D
0167:0040DE50 TEST CL,CL
0167:0040DE52 JZ 0040DE6A
0167:0040DE54 MOV CL,[EAX+01]
0167:0040DE57 CMP CL,[EDX+01]
0167:0040DE5A JNZ 0040DF7D
0167:0040DE60 ADD EAX,02
0167:0040DE63 ADD EDX,02
0167:0040DE66 TEST CL,CL
0167:0040DE68 JNZ 0040DE46
0167:0040DE6A JNZ 0040DF7D