SUB EAX,EDX //EAX-EDX。 AND EAX,BYTE +01 //EAX 与 0x1 做与运算。 XOR EAX,EDX //EAX 与 EDX 做异或运算。 SUB EAX,EDX //EAX-EDX。 ADD EAX,BYTE +6D //EAX+0x6D。 MOV ECX,[EBP+10] //将 EBP+10 处的值送入 ECX。 MOV [ECX+08],AL //将 AL 的值送入 ECX+08。 MOVSX EAX,BYTE [EBP+0C] //查表。 ADD EAX,BYTE +08 //EAX+0x8。 CDQ XOR EAX,EDX //EAX 与 EDX 做异或运算。 SUB EAX,EDX //EAX-EDX。 AND EAX,BYTE +01 //EAX 与 0x1 做与运算。 XOR EAX,EDX //EAX 与 EDX 做异或运算。 SUB EAX,EDX //EAX-EDX。 MOV ECX,[EBP+08] //用户名送入 ECX。 MOVSX ECX,BYTE [ECX+09] //取用户名第十位。 MOV EBX,0B //将 0xB 送入 EBX。 LEA EAX,[ECX+EAX+0D] //将 ECX+EAX+0D 的值保存到 EAX。 CDQ IDIV EBX //除以 EBX。 LEA EAX,[EDX+50] //将 EDX+0x50的值保存到EAX。 MOV ECX,[EBP+10] //将 EBP+10 处的值送入 ECX。 MOV [ECX+09],AL //将 AL 的值送入 ECX+0x09 处。 MOV EAX,[EBP+10] //将 EBP+0x10 处值送入 EAX。 MOV BYTE [EAX+0A],00 JMP 0041BB52 POP EDI POP ESI POP EBX LEAVE RET 0C //返回。(仅写出关键部分,其余代码略)
VB6 注册机源码:
Dim User_Name As String Dim Base, CDQ, Mod_Number, SN_1, SN_2, SN_3, SN_4, SN_5, SN_6, SN_7, SN_8, SN_9, SN_10 As Integer
Private Sub Command1_Click() About_message = MsgBox("This keygen made by fengma(fengma@2911.net) !", 4096 + vbExclamation, "About...") End Sub
Private Sub Command2_Click() If Command2.Caption = "Get now !" Then
If Len(Text1.Text) = 0 Then message_enter_name = MsgBox("Use a name of at least 1 Char,please !", 4096 + vbExclamation, "Information") Exit Sub End If
User_Name = Text1.Text
CDQ = 0
Base = 1
SN_1 = ((Base + 2) Mod 9 + Asc(Mid$(User_Name, 1)) + 8) Mod 11 + 112
Mod_Number = (Base + 9) Mod 5 If Mid$(User_Name, 2) <> "" Then SN_2 = ((((((Asc(Mid$(User_Name, 2)) + Mod_Number + 44) Xor Mod_Number) - Mod_Number) And 7) Xor Mod_Number) - Mod_Number) + 65 Else SN_2 = ((((((Mod_Number + 44) Xor Mod_Number) - Mod_Number) And 7) Xor Mod_Number) - Mod_Number) + 65 End If
Mod_Number = (Base + 9) Mod 3 If Mid$(User_Name, 3) <> "" Then SN_3 = (((((Asc(Mid$(User_Name, 3)) + Mod_Number Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ) + 50 Else SN_3 = (((((Mod_Number Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ) + 50 End If
Mod_Number = ((((((Base + 4) Xor CDQ) - CDQ) And 7) Xor CDQ) - CDQ) If Mid$(User_Name, 4) <> "" Then SN_4 = ((Asc(Mid$(User_Name, 4)) + Mod_Number + 2) Mod 5) + 74 Else SN_4 = ((Mod_Number + 2) Mod 5) + 74 End If
If Mid$(User_Name, 5) <> "" Then
上一篇:文件分割器的算法 上
下一篇:*出租销售系统 5.6--算法分析 下
|