52lxw 发表于 2019-2-25 13:22

vb的一个easy crackme,欢迎研究算法

huzpsb 发表于 2019-2-25 15:14

Private Sub Command1_Click() '401E80
loc_00401F0F: On Error Resume Next
loc_00401F30: var_EC = "winmgmts:\\"
loc_00401F7F: Set var_94 = GetObject("winmgmts:\\" & var_40, 10)
loc_00401FA5: var_EC = "select * from win32_processor"
loc_0040200B: Set var_74 = Me.execquery
loc_0040203F: call For Each(var_158, var_160, var_15C, var_134, var_84, var_74)
loc_00402045: var_178 = For Each(var_158, var_160, var_15C, var_134, var_84, var_74)
loc_0040204B: GoTo loc_004020B3
loc_0040204D:
loc_00402077: var_50 = Me.processorid
loc_004020A7: Next var_15C
loc_004020AD: var_178 = Next var_15C
loc_004020B3: 'Referenced from: 0040204B
loc_004020BA: If var_178 <> 0 Then GoTo loc_0040204D
loc_004020CB: var_64 = vbNullString
loc_00402145: var_60 = StrReverse(CStr(var_50)) & CStr(Len(var_50))
loc_004021CC: For var_30 =To Len(var_60) Step 1
loc_004021D2: var_17C = var_144
loc_004021D8: GoTo loc_004022B8
loc_004021DD:
loc_0040225B: var_64 = var_64 & CStr(Asc(CStr(Mid(var_60, CLng(var_30), 1))))
loc_004022AC: Next var_30
loc_004022B2: var_17C = Next var_30
loc_004022B8: 'Referenced from: 004021D8
loc_004022BF: If var_17C <> 0 Then GoTo loc_004021DD
loc_00402305: var_98 = Text1.Text
loc_0040230D: var_12C = var_98
loc_00402352: var_180 = var_98
loc_00402368: var_AC = var_180
loc_00402389: var_130 = (var_180 = var_50)
loc_004023B1: If var_130 = 0 Then GoTo loc_00402470
loc_0040241A: var_B4 = "注册成功!"
loc_0040246B: GoTo loc_00402524
loc_00402470: 'Referenced from: 004023B1
loc_004024D3: var_B4 = "失败!"
loc_00402524: 'Referenced from: 0040246B
loc_00402530: GoTo loc_00402586
loc_00402585: Exit Sub
loc_00402586: 'Referenced from: 00402530
End Sub

KaQqi 发表于 2019-4-14 17:40

byh3025 发表于 2019-2-25 13:49
只会爆破

算法:
首先取得cpu的processorid
其次从字符串里取得特定的部分B F E B F B F F 0 0 0 5 0 6 E 3
然后进行字符串反转变为3 E 6 0 5 0 0 0 F F B F B E F B
然后得到字符串长度16
然后取一部分转化为十进制,从第1位开始取该字符串的值,并且将字符串合起来,从字符串特定位置获得2位的十进制的值,两位两位的合
得到5 1 6 9 5 4 4 8 5 3 4 8 4 8 4 8 7 0 7 0 6 6 7 0 6 6 6 9 7 0 6 6 4 9 5 4
然后与输入注册码进行比较。。

我太垃圾了。。vb函数一堆看不懂,只能这样了

byh3025 发表于 2019-2-25 13:49

只会爆破

cxbb 发表于 2019-2-25 15:54

buc不错不错

孤星独寂 发表于 2019-2-25 21:36

是这样子的吗

52lxw 发表于 2019-2-25 21:38

孤星独寂 发表于 2019-2-25 21:36
是这样子的吗

不同机器的值是不一样的

孤星独寂 发表于 2019-2-25 21:42

52lxw 发表于 2019-2-25 21:38
不同机器的值是不一样的

嗯,就是读取Me.processorid是吧,百度了下怎么查CPU的ID,结果其中一个ID正确,估计是双核CPU其中一个运行该程序的就是?新手乱猜{:1_896:}

最後のGillian 发表于 2019-2-26 08:49

请问想要尝试此破解,应当了解哪些方面的知识?小弟初来52pj时间不长,肯请赐教{:1_893:}

gongpeng22 发表于 2019-2-28 16:07

进行学习

低调的菜鸡 发表于 2019-3-14 20:39

小菜鸡在吾爱注册后破解的第一个cm,楼主我们真的是有缘,,哈哈

首先od查找字符串

找到程序关键位置
然后往上翻看到关键代码,嘿嘿,爆破

nop掉或者改为jnz,即可完成破解


楼主算法写得很好,但是我是小白,逆向算法有难度,这里直接爆破了,注册机啥的不考虑了:lol
希望以后楼主多出一些cm,我们好学习学习
页: [1] 2
查看完整版本: vb的一个easy crackme,欢迎研究算法