00394C16 /$ 55 push ebp
00394C17 |. 53 push ebx
00394C18 |. 56 push esi
00394C19 |. 57 push edi
00394C1A |. 33FF xor edi, edi
00394C1C |. 8B5C24 14 mov ebx, dword ptr [esp+14] ; 机器码部分
00394C20 |. 8B4C24 18 mov ecx, dword ptr [esp+18]
00394C24 |. 0BC9 or ecx, ecx
00394C26 |. 75 08 jnz short 00394C30
00394C28 |. 0BD2 or edx, edx ; 容量小的时候
00394C2A |. 74 5C je short 00394C88
00394C2C |. 0BDB or ebx, ebx
00394C2E |. 74 58 je short 00394C88
00394C30 |> 0BD2 or edx, edx
00394C32 |. 79 0A jns short 00394C3E ; 非负跳转
00394C34 |. F7DA neg edx
00394C36 |. F7D8 neg eax
00394C38 |. 83DA 00 sbb edx, 0
00394C3B |. 83CF 01 or edi, 1
00394C3E |> 0BC9 or ecx, ecx
00394C40 |. 79 0A jns short 00394C4C
00394C42 |. F7D9 neg ecx
00394C44 |. F7DB neg ebx
00394C46 |. 83D9 00 sbb ecx, 0
00394C49 |. 83F7 01 xor edi, 1
00394C4C |> 8BE9 mov ebp, ecx
00394C4E |. B9 40000000 mov ecx, 40 ; ecx=40
00394C53 |. 57 push edi
00394C54 |. 33FF xor edi, edi
00394C56 |. 33F6 xor esi, esi
00394C58 |> D1E0 /shl eax, 1 ; eax*2
00394C5A |. D1D2 |rcl edx, 1 ; edx*2
00394C5C |. D1D6 |rcl esi, 1
00394C5E |. D1D7 |rcl edi, 1
00394C60 |. 3BFD |cmp edi, ebp
00394C62 |. 72 0B |jb short 00394C6F
00394C64 |. 77 04 |ja short 00394C6A
00394C66 |. 3BF3 |cmp esi, ebx
00394C68 |. 72 05 |jb short 00394C6F
00394C6A |> 2BF3 |sub esi, ebx
00394C6C |. 1BFD |sbb edi, ebp
00394C6E |. 40 |inc eax
00394C6F |>^ E2 E7 \loopd short 00394C58 ; 循环40H次
00394C71 |. 5B pop ebx
00394C72 |. F7C3 01000000 test ebx, 1
00394C78 |. 74 07 je short 00394C81
00394C7A |. F7DA neg edx
00394C7C |. F7D8 neg eax
00394C7E |. 83DA 00 sbb edx, 0
00394C81 |> 5F pop edi
00394C82 |. 5E pop esi
00394C83 |. 5B pop ebx
00394C84 |. 5D pop ebp
00394C85 |. C2 0800 retn 8
00394C88 |> F7F3 div ebx
00394C8A |. 33D2 xor edx, edx
00394C8C \.^ EB F3 jmp short 00394C81
00394C8E . 56 push esi
00394C8F . 8B7424 0C mov esi, dword ptr [esp+C]
00394C93 . 237424 08 and esi, dword ptr [esp+8]
00394C97 . 83FE FF cmp esi, -1
00394C9A . 75 11 jnz short 00394CAD
00394C9C . 8BF0 mov esi, eax
00394C9E . 0BF2 or esi, edx
00394CA0 . 81FE 00000080 cmp esi, 80000000
00394CA6 . 75 05 jnz short 00394CAD
00394CA8 . 8BC6 mov eax, esi
00394CAA . 5E pop esi
00394CAB . 48 dec eax
00394CAC . C3 retn
【算法总结】
1.取得C:的容量,除以4300得到机器码unique ID
2.机器码开放后乘以3.141得到K
2.k减去注册码的一半,如果结果小于等于100,注册成功,否则失败
【破解总结】
爆破极度简单,属于秒杀型。
【算法注册机】
VB取硬盘容量稍显麻烦,既然有unique ID显示,不妨采用一个偷懒的方法
Private Sub Command1_Click()
Dim MachineCode As String
Dim Serial As Single
MachineCode = Trim(Text1.Text)
If InStr(MachineCode, "017151.4300ttz") > 0 Then
MachineCode = Replace(MachineCode, "017151.4300ttz", "")
MachineCode = Replace(MachineCode, "ID NUMBER = ", "")
Serial = Int(Sqr(Val(Trim(MachineCode))) * 3.141) * 2 + 100
Text2.Text = Serial
Else
Text1.Text = "Please Check Your Unique ID"
End If
End Sub