本帖最后由 爱飞的猫 于 2024-7-29 04:04 编辑
换成 DiE 吧,通常准一些:
此外《吾爱破解培训第一课:破解基础知识之介绍常见工具和壳的特征》 讲师:Hmily 应该有说明 VB 入口特征,建议看看。
用 VB Decompiler 可以直接看到代码:
Private Sub Command1_Click() '412DB0
Dim global_00414024 As Form
loc_00412E75: var_2C = UCase$(Form2.Text1.Text) ' 用户名
loc_00412EEE: If Len(Form2.Text1.Text) < 6 Then
loc_00412F4B: MsgBox("姓名字符数不小于6!", 0, 10, 10, 10)
loc_00412F6F: End
loc_00412F75: End If
loc_0041301A: var_38 = Form2.Text2.Text ' 注册码
loc_0041305A: var_8024 = StrComp(Right$(var_2C, 2) & Left$(var_2C, 2) & Mid$(var_2C, 2, 2), 0, 0)
loc_00413063: If var_8024 = 0 Then
loc_004130AB: global_00411A78 = Form2.Text1.UnkVCall_00000054h
loc_004130FD: Form2.Text2.Enabled = True
loc_00413145: var_8034 = CBool(var_28)
loc_0041314D: Form2.Visible = var_8034
loc_00413157: If var_8034 < 0 Then
loc_00413169: var_8034 = CheckObj(global_00414024, global_00411910, 444)
loc_00413171: End If
loc_004131C8: MsgBox("重新来过吧!", 0, 10, 10, 10)
loc_004131EC: End If
loc_004131F8: GoTo loc_0041323D
loc_0041323C: Exit Sub
loc_0041323D: ' Referenced from: 004131F8
End Sub
虽然反编译不完美,但可以看到拿用户名进行变形(取用户名右侧 2 字符、左侧 2 字符、第二个和第三个字符),然后与某个字符串对比。
能通过检查的序列号有:
用户名 |
序列号 |
111111 |
111111 |
12345678 |
781223 |
如果想做内存注册机,就是在 CALL StrComp 处停下:
00413056 | 52 | push edx | edx:L"781223"
00413057 | 50 | push eax | eax:L"000000"
00413058 | 6A 00 | push 0 |
0041305A | FF15 98104000 | call dword ptr ds:[<__vbaStrComp>] |
可以看到 eax 指向假码,edx 指向真码。因此在这个地址断下然后弹出 edx 的值即可。
|