新手破解练习Crackme160之138 - Sortof
VB的程序直接上VB Decompiler, 按钮事件源码:
Private Sub Command1_Click() '41AAF4
'Data Table: 401D40
Dim var_194 As String
Dim var_B4 As Variant
Dim var_1EC As Variant
loc_41A54C: On Error Goto loc_41AABF
loc_41A559: If Not((X = 1)) Then
loc_41A55C: GoTo loc_41AABF
loc_41A55F: End If
loc_41A564: var_94 = vbNullString 'Variant
loc_41A578: var_C4 = Chr(&H32) 'Variant
loc_41A58C: var_D4 = Chr(&H33) 'Variant
loc_41A5A0: var_E4 = Chr(&H34) 'Variant
loc_41A5B4: var_F4 = Chr(&H35) 'Variant
loc_41A5C8: var_104 = Chr(&H36) 'Variant
loc_41A5DC: var_114 = Chr(&H37) 'Variant
loc_41A5E5: var_124 = 0 'Variant
loc_41A6C3: var_194 = Me.Text1.Text & Me.Text1.Text & Me.Text1.Text & Me.Text1.Text & Me.Text1.Text & Me.Text1.Text & Me.Text1.Text & Me.Text1.Text & Me.Text1.Text
loc_41A711: var_1BC = CVar(var_194 & Me.Text1.Text & Me.Text1.Text & Me.Text1.Text) 'Variant
loc_41A75F: ' Referenced from: 41A9C5
loc_41A7AF: var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
loc_41A811: var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
loc_41A873: var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
loc_41A87D: var_B4 = var_94 & (var_C4 + CVar(Asc(CStr(Left(var_1BC, 1))))) & (var_D4 + CVar(Asc(CStr(Left(var_1BC, 1))))) & (var_E4 + CVar(Asc(CStr(Left(var_1BC, 1)))))
loc_41A8D5: var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
loc_41A937: var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
loc_41A999: var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
loc_41A9A3: var_B4 = var_B4 & (var_F4 + CVar(Asc(CStr(Left(var_1BC, 1))))) & (var_104 + CVar(Asc(CStr(Left(var_1BC, 1))))) & (var_114 + CVar(Asc(CStr(Left(var_1BC, 1)))))
loc_41A9A7: var_94 = var_B4 'Variant
loc_41A9B6: If (var_124 = 1) Then
loc_41A9B9: GoTo loc_41A9DC
loc_41A9BC: End If
loc_41A9C1: var_124 = 1 'Variant
loc_41A9C5: GoTo loc_41A75F
loc_41A9D8: var_200 = CVar(Me.Left) 'Variant
loc_41A9DC: ' Referenced from: 41A9FE
loc_41A9DC: ' Referenced from: 41A9B9
loc_41A9EB: If (Len(var_94) < 12) Then
loc_41A9FA: var_94 = "0" & var_94 'Variant
loc_41A9FE: GoTo loc_41A9DC
loc_41AA01: End If
loc_41AA1B: var_210 = "1012041024412" 'Variant
loc_41AA22: var_94 = var_94 'Variant
loc_41AA35: If (Len(var_94) > 12) Then
loc_41AA4B: var_94 = Left(var_94, &HC) 'Variant
loc_41AA4F: End If
loc_41AA58: If (X = 1) Then
loc_41AA7B: var_1EC = Not (CVar(Me.Text2.Text) = var_94)
loc_41AA87: If CBool(var_1EC) Then
loc_41AA8A: GoTo loc_41AABF
loc_41AA8D: End If
loc_41AA8D: End If
loc_41AAAE: MsgBox("Well I'll be damned!! nice job", 0, "correct", var_1EC, var_260)
loc_41AABE: Exit Sub
loc_41AABF: ' Referenced from: 41AA8A
loc_41AABF: ' Referenced from: 41A55C
loc_41AABF: ' Referenced from: 41A54C
loc_41AAE0: MsgBox("sorry! try again", 0, "try again", var_1EC, var_260)
loc_41AAF0: Exit Sub
End Sub
直接翻译到VBS中: keygen.vbs
call main()
sub main()
name = inputbox("输入用户名")
var_94 = vbNullString 'Variant
var_C4 = Chr(&H32) 'Variant
var_D4 = Chr(&H33) 'Variant
var_E4 = Chr(&H34) 'Variant
var_F4 = Chr(&H35) 'Variant
var_104 = Chr(&H36) 'Variant
var_114 = Chr(&H37) 'Variant
var_124 = 0 'Variant
var_1BC = name & name & name & name & name & name & name & name & name & name & name & name
do
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_B4 = var_94 & (var_C4 + (Asc(CStr(Left(var_1BC, 1))))) & (var_D4 + (Asc(CStr(Left(var_1BC, 1))))) & (var_E4 + (Asc(CStr(Left(var_1BC, 1)))))
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_B4 = var_B4 & (var_F4 + (Asc(CStr(Left(var_1BC, 1))))) & (var_104 + (Asc(CStr(Left(var_1BC, 1))))) & (var_114 + (Asc(CStr(Left(var_1BC, 1)))))
var_94 = var_B4 'Variant
If (var_124 = 1) Then
Exit do
End If
var_124 = 1 'Variant
loop while(true)
while (Len(var_94) < 12)
var_94 = "0" & var_94 'Variant
wend
If (Len(var_94) > 12) Then
var_94 = Left(var_94, &HC) 'Variant
End If
MsgBox "用户名: "&name&chr(13)&chr(10)&"系列号: "&var_94, 0, "注册机"
Exit Sub
End Sub
经测试2位以上的叠数都可以, 其它非叠数却不行, 如:
用户名: 11 (2个以上的1都可以)
系列号: 515253545556
这个测试通过~
用户名: 12
系列号: 525354545556
这个则无法通过~
偷偷瞧了一下solly大佬的代码, 哈哈~ 原来是反编译器有点问题, 正确代码如下, 大家可以对比一下:
call main()
sub main()
name = inputbox("输入用户名")
var_94 = vbNullString 'Variant
var_C4 = Chr(&H32) 'Variant
var_D4 = Chr(&H33) 'Variant
var_E4 = Chr(&H34) 'Variant
var_F4 = Chr(&H35) 'Variant
var_104 = Chr(&H36) 'Variant
var_114 = Chr(&H37) 'Variant
var_124 = 0 'Variant
var_1BC = name & name & name & name & name & name & name & name & name & name & name & name
do
var_B4 = var_94 & (var_C4 + (Asc(CStr(Left(var_1BC, 1)))))
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_B4 = var_B4 & (var_D4 + (Asc(CStr(Left(var_1BC, 1)))))
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_B4 = var_B4 & (var_E4 + (Asc(CStr(Left(var_1BC, 1)))))
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_B4 = var_B4 & (var_F4 + (Asc(CStr(Left(var_1BC, 1)))))
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_B4 = var_B4 & (var_104 + (Asc(CStr(Left(var_1BC, 1)))))
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_B4 = var_B4 & (var_114 + (Asc(CStr(Left(var_1BC, 1)))))
var_1BC = Right(var_1BC, CLng((Len(var_1BC) - 1))) 'Variant
var_94 = var_B4 'Variant
If (var_124 = 1) Then
Exit do
End If
var_124 = 1 'Variant
loop while(true)
while (Len(var_94) < 12)
var_94 = "0" & var_94 'Variant
wend
If (Len(var_94) > 12) Then
var_94 = Left(var_94, &HC) 'Variant
End If
MsgBox "用户名: "&name&chr(13)&chr(10)&"系列号: "&var_94, 0, "注册机"
Exit Sub
End Sub
运行示例:
用户名: 12
系列号: 515353555557
代码继续简化一下:
name = inputbox("输入用户名")
var_94 = vbNullString 'Variant
str = "234567"
while len(name) < 6
name = name & name
wend
for i=1 to 6
var_94 = var_94 & (cint(mid(str, i, 1)) + asc(mid(name, i, 1)))
next
while (Len(var_94) < 12)
var_94 = "0" & var_94 'Variant
wend
If (Len(var_94) > 12) Then
var_94 = Left(var_94, &HC) 'Variant
End If
MsgBox "用户名: "&name&chr(13)&chr(10)&"系列号: "&var_94, 0, "注册机"
1~160每个破解过程,在吾爱破解论坛都有高手破解过了,也有整理好现成的, 我这边主要就是自己动手操作的过程,与他们的不太一样
附上高手们的连接: 点击前往查看
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载
新人入门教程"玩玩破解,写给新人看" 点击前往查看
我就是从这里开始的,对我这样的小白感觉超级友好~
下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~


浙公网安备 33010602011771号