VB6.0 CrackMe
本帖最后由 PS_URINE 于 2015-6-13 14:32 编辑老规矩,追码或爆破都可以
这次使用VB6编写(天然屏障一道)
核心算法(注册码判断)
Private Sub Picture1_Click()
'我也知道这段代码写的很难,But当初VB数组没学好啊....
Dim code() As Byte
Dim uecode=1() As Byte
Dim i As Integer
uecode=1() = Text2.Text '用户注册码
code() = Text1.Text 'UNICODE字符流可以直接转,相当于易语言的字节集比较,真注册码,就是机器码
'这段代码其实是将注册码转为byte数组然后一位一位比较
'所以下strcat或strcmp之类的断点是无用功的
'其实这里一步在OD里面可以看出 TextBox1中的内容,细心的人就会记录下来,然后注册码就出来了
If getlen(code) <> getlen(uecode=1) Then '如果byte位数不等可直接判断为错误注册码
frm_false.Show '载入假窗口
Beep '鸣叫喇叭
Exit Sub
End If
For i = 0 To getlen(uecode=1) '这里开始一位一位循环比较
If i = 0 Then '如果i=0
If code(i) <> uecode=1(i) Then '这里加个IF虽然有点多余,然而FOR EACH语句耗时最长,且变体变量用多了后果你懂的.
frm_false.Show
Beep
Exit Sub '跳出子程序,不执行真窗口载入
End If
ElseIf i > 0 Then
If code(i - 1) <> uecode=1(i - 1) Then '如果一位不相等
frm_false.Show '载入假窗口
Beep
Exit Sub '跳出子程序,不执行真窗口载入
End If
End If
Next i
frm_true.Show '载入真窗口
Beep
'----------------------------------------
End Sub
Function getlen(ByRef ary() As Byte) As Long '取数组元素个数
Dim lenth As Long
lenth = UBound(ary) - LBound(ary) + 1
getlen = lenth
End Function
其实注册码就是机器码{:5_116:}
我说起码回复一个,让我加个HB吧{:5_118:} {:5_116:}听说回帖有HB 00403943 3BC0 cmp eax,eax
004039FE 8A1C30 mov bl,byte ptr ds:
00403A94 8A1C30 mov bl,byte ptr ds:
楼主这个有点坑啊,俺就灵机一动,直接把上面的机器码复制下来粘了下,竟然成了{:5_118:}
tony2526 发表于 2015-6-13 14:13
楼主这个有点坑啊,俺就灵机一动,直接把上面的机器码复制下来粘了下,竟然成了
我已经发了{:5_116:} 刚看到了,刚刷新了就发现了{:5_117:}
利用VB Decompiler 来找关键
OD来调试
段首下段,往下跟出假码,继续跟应该就是机器码了,误导我。。。。。
在往下就是爆破点
{:5_185:}这么多人玩了那我就来回复一下骗个hb好了
页:
[1]