有五个常数参与计算
#define C1 0x010AA8DB
#define C2 0x157
#define C3 0xB
#define C4 0x5352e18
#define C5 0x15935221
根据算式来计算CODE
CODE * C3+C1+C2-C4=C5-C4
即:CODE*0xb+0x0101a8db+0x157-0x5352e18=0x15935221-0x5352e18
解出来CODE=31371821
感谢楼主让我把VB的两种编译方式的程序对照的看了下,呵呵。。。。。。。。
此次CRACKME学习了WKTVDE和P-CODE的简单分析,用到工具有VB EXPLORER,WKTVBDE,OD及计算器
[ 本帖最后由 caterpilla 于 2006-7-9 07:59 编辑 ] 原帖由 caterpilla 于 2006-7-9 07:55 发表
CODE:31371821,为固定码
有五个常数参与计算
#define C1 0x010AA8DB
#define C2 0x157
#define C3 0xB
#define C4 0x5352e18
#define C5 0x15935221
根据算式来计算CODE
CODE * C3+C1+C2-C4=C5-C4
...
Private Sub Command1_Click()
Text2.Text = Val(Text1.Text) * &HB + &H101A8DB + &H157 - &H5352E18
End Sub
+++++++++++++有点急,得看清楚算法才行。。。回头再试 就知道 VB 的一出,结果也出来了,纯 VB 编译的,很容易就跟到了关键点 Dim temp, pw, jqm As Variant 'temp(用来存储用户输入的临时注册码)
Private Sub Command1_Click()
MsgBox "尽量不要爆破啊!看你能不能追到注册码不,挺简单的"
j = 87371288
pw = 734173 * 23 + 31371821 * 11 + 343 - j
temp = Val(Text1.Text)
temp = 734173 * 23 + temp * 11 + 343 - j
If Text1.Text = "" Then
MsgBox "请输入注册码,这里可不时空的"
End If
If temp = pw Then
MsgBox "感谢你支持共享软件"
Else
MsgBox "注册码不对,请检查"
End If
End Sub
Private Sub Command2_Click()
Text1.Text = "" '清空文本框
End Sub
End Sub
Private Sub Form_Load()
MsgBox "尽量不要爆破啊!看你能不能追到注册码不,挺简单的"
End Sub
简单,千万别笑.^. 不过还算非明码对比,要大家用一下计算器
本来想取用户名,但那就比较明显了。。。。。。。。。。。。。
VB 的好多函数都不知道怎样用,以前只自学过 C :L,感谢大家的讨论
下次来个难的;P;P;P
[ 本帖最后由 lgjxj 于 2006-7-9 09:47 编辑 ]
页:
1
[2]