呵呵,学了一小部分汇编以后果然比以前顺手多了:)
这是我的第一次很完整的独立做的算法分析,所以还希望请各位指教
首先用DeDeDark分析,DELPHI^-^呵呵
载入OD
004541EC > . 55 PUSH EBP ; <-TForm1@Button1Click
004541ED . 8BEC MOV EBP,ESP
004541EF . B9 49000000 MOV ECX,49
004541F4 > 6A 00 PUSH 0
004541F6 . 6A 00 PUSH 0
004541F8 . 49 DEC ECX
004541F9 .^ 75 F9 JNZ SHORT GameCM01.004541F4
004541FB . 53 PUSH EBX
004541FC . 56 PUSH ESI ; GameCM01.0042CC54
004541FD . 57 PUSH EDI
004541FE . 8BD8 MOV EBX,EAX
00454200 . 33C0 XOR EAX,EAX
00454202 . 55 PUSH EBP
00454203 . 68 05454500 PUSH <GameCM01.->System.@HandleFinally;>
00454208 . 64:FF30 PUSH DWORD PTR FS:[EAX]
0045420B . 64:8920 MOV DWORD PTR FS:[EAX],ESP
0045420E . 8D95 E0FDFFFF LEA EDX,DWORD PTR SS:[EBP-220]
00454214 > . 8B83 FC020000 MOV EAX,DWORD PTR DS:[EBX+2FC] ; *Edit1:TEdit
0045421A > . E8 F1EEFDFF CALL GameCM01.00433110 ; ->Controls.TControl.GetText(TControl):TCaption;
0045421F . 8B85 E0FDFFFF MOV EAX,DWORD PTR SS:[EBP-220] ; [ebp-220]=edit1
00454225 > . E8 B202FBFF CALL GameCM01.004044DC ; ->System.@LStrLen(String):Integer;<+>
0045422A . 85C0 TEST EAX,EAX
0045422C . 0F8E A5020000 JLE GameCM01.004544D7 ; when eax=0, then game over
00454232 . 8D95 DCFDFFFF LEA EDX,DWORD PTR SS:[EBP-224]
00454238 > . 8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304] ; *Edit2:TEdit
0045423E > . E8 CDEEFDFF CALL GameCM01.00433110 ; ->Controls.TControl.GetText(TControl):TCaption;
00454243 . 8B85 DCFDFFFF MOV EAX,DWORD PTR SS:[EBP-224] ; falsecode([ebp-224])
00454249 > . E8 8E02FBFF CALL GameCM01.004044DC ; ->System.@LStrLen(String):Integer;<+>
0045424E . 83F8 09 CMP EAX,9 ; len(edit2)<9?
00454251 . 0F8C 80020000 JL GameCM01.004544D7 ; over
00454257 . 33FF XOR EDI,EDI ; edi=0
00454259 . 55 PUSH EBP
0045425A . 68 B1444500 PUSH <GameCM01.->System.@HandleAnyExcept>
0045425F . 64:FF37 PUSH DWORD PTR FS:[EDI]
00454262 . 64:8927 MOV DWORD PTR FS:[EDI],ESP ; SEH的事情
00454265 . 8D95 D8FDFFFF LEA EDX,DWORD PTR SS:[EBP-228]
0045426B > . 8B83 FC020000 MOV EAX,DWORD PTR DS:[EBX+2FC] ; *Edit1:TEdit
00454271 > . E8 9AEEFDFF CALL GameCM01.00433110 ; ->Controls.TControl.GetText(TControl):TCaption;
00454276 . 8B95 D8FDFFFF MOV EDX,DWORD PTR SS:[EBP-228] ; len edit1
0045427C . 8D85 E4FEFFFF LEA EAX,DWORD PTR SS:[EBP-11C]
00454282 . B9 FF000000 MOV ECX,0FF
00454287 > . E8 2C02FBFF CALL GameCM01.004044B8 ; ->System.@LStrToString;
0045428C . 8D95 D4FDFFFF LEA EDX,DWORD PTR SS:[EBP-22C]
00454292 > . 8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304] ; *Edit2:TEdit
00454298 > . E8 73EEFDFF CALL GameCM01.00433110 ; ->Controls.TControl.GetText(TControl):TCaption;
0045429D . 8B95 D4FDFFFF MOV EDX,DWORD PTR SS:[EBP-22C] ; //用户名
004542A3 . 8D85 E4FDFFFF LEA EAX,DWORD PTR SS:[EBP-21C]
004542A9 . B9 FF000000 MOV ECX,0FF
004542AE > . E8 0502FBFF CALL GameCM01.004044B8 ; ->System.@LStrToString;
004542B3 . 33C0 XOR EAX,EAX
004542B5 . 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
004542B8 . EB 4B JMP SHORT GameCM01.00454305
004542BA > 8D85 D0FDFFFF LEA EAX,DWORD PTR SS:[EBP-230] ; copy 自己到下一字节(Love12==>Love12Love12)
004542C0 . 8D95 E4FEFFFF LEA EDX,DWORD PTR SS:[EBP-11C]
004542C6 > . E8 B501FBFF CALL GameCM01.00404480 ; ->System.@LStrFromString(String;String;ShortString;ShortString);<+>
004542CB . 8D85 D0FDFFFF LEA EAX,DWORD PTR SS:[EBP-230]
004542D1 . 50 PUSH EAX
004542D2 . 8D85 CCFDFFFF LEA EAX,DWORD PTR SS:[EBP-234]
004542D8 . 8D95 E4FEFFFF LEA EDX,DWORD PTR SS:[EBP-11C]
004542DE > . E8 9D01FBFF CALL GameCM01.00404480 ; ->System.@LStrFromString(String;String;ShortString;ShortString);<+>
004542E3 . 8B95 CCFDFFFF MOV EDX,DWORD PTR SS:[EBP-234]
004542E9 . 58 POP EAX
004542EA > . E8 F501FBFF CALL GameCM01.004044E4 ; ->System.@LStrCat;
004542EF . 8B95 D0FDFFFF MOV EDX,DWORD PTR SS:[EBP-230]
004542F5 . 8D85 E4FEFFFF LEA EAX,DWORD PTR SS:[EBP-11C]
004542FB . B9 FF000000 MOV ECX,0FF
00454300 > . E8 B301FBFF CALL GameCM01.004044B8 ; ->System.@LStrToString;
00454305 > 80BD E4FEFFFF>CMP BYTE PTR SS:[EBP-11C],9
0045430C .^ 72 AC JB SHORT GameCM01.004542BA ; <=9?
0045430E . BE 01000000 MOV ESI,1
00454313 . 8D85 E5FEFFFF LEA EAX,DWORD PTR SS:[EBP-11B] ; EAX指向储存用户名的[EBP-11B]
00454319 . 8945 E8 MOV DWORD PTR SS:[EBP-18],EAX ; [EBP-18]=用户名的地址
0045431C . 8D85 E5FDFFFF LEA EAX,DWORD PTR SS:[EBP-21B]
00454322 . 8945 E4 MOV DWORD PTR SS:[EBP-1C],EAX ; [EBP-1C]=密码的地址
00454325 . 8D4D EF LEA ECX,DWORD PTR SS:[EBP-11] ; ecx=ebp-11的地址
00454328 > 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] ; 用户名的地址
0045432B . 0FB600 MOVZX EAX,BYTE PTR DS:[EAX] ; 取用户名第一位
0045432E . 8B55 E4 MOV EDX,DWORD PTR SS:[EBP-1C] ; 密码的地址
00454331 . 0FB612 MOVZX EDX,BYTE PTR DS:[EDX] ; 取密码第一位
00454334 . 2BC2 SUB EAX,EDX ; eax=eax-edx
00454336 . 99 CDQ ; 把 EAX 扩展,成为 EDX:EAX 的 QWORD(64 位长)
00454337 . 33C2 XOR EAX,EDX
00454339 . 2BC2 SUB EAX,EDX ; 这一段是取密码,用户名的第N位的差的绝对值
0045433B . 8801 MOV BYTE PTR DS:[ECX],AL ; 差存在[ecx](13f94b)里面
0045433D . 8BD6 MOV EDX,ESI ; edx=esi
0045433F . 4A DEC EDX
00454340 . 83EA 02 SUB EDX,2 ; edx=edx-3
00454343 . 7C 27 JL SHORT GameCM01.0045436C ; 如果不是负数(ZF<>0F,没出来),也就是位数>=3
00454345 . 42 INC EDX ; edx=edx+1
00454346 . C745 FC 02000>MOV DWORD PTR SS:[EBP-4],2 ; [EBP-4]=[13F958]=2
0045434D . 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10] ; 上一次的差的地址到EAX中
00454350 > 8A18 MOV BL,BYTE PTR DS:[EAX] ; BL=上(指针)次的差
00454352 . 3A19 CMP BL,BYTE PTR DS:[ECX] ; 如果上(指针)次的差<>这次的差
00454354 . 75 0F JNZ SHORT GameCM01.00454365
00454356 . 64:8F05 00000>POP DWORD PTR FS:[0]
0045435D . 83C4 08 ADD ESP,8
00454360 . E9 72010000 JMP GameCM01.004544D7 ; go to hell 见鬼
00454365 > FF45 FC INC DWORD PTR SS:[EBP-4] ; [ebp-4]=[ebp-4]+1
00454368 . 40 INC EAX ; eax=eax+1,记录指针+1
00454369 . 4A DEC EDX ; edx=edx-1
0045436A .^ 75 E4 JNZ SHORT GameCM01.00454350 ; 如果EDX=0 then..变形CMP,意思是循环(指针-2)次
0045436C > 46 INC ESI ; inc(位数),解释上面循环,就是每次的差都各不相同
0045436D . 41 INC ECX ; inc ecx,结合上面,每次存差的地址+1
0045436E . FF45 E4 INC DWORD PTR SS:[EBP-1C] ; 密码地址+1
00454371 . FF45 E8 INC DWORD PTR SS:[EBP-18] ; 用户名位置+1
00454374 . 83FE 0A CMP ESI,0A ; 如果位数<>10
00454377 .^ 75 AF JNZ SHORT GameCM01.00454328 ; 跳啊!
00454379 . 33C0 XOR EAX,EAX ; 终于出来了~EAX=0,常规性清0
0045437B . 8A45 F1 MOV AL,BYTE PTR SS:[EBP-F] ; al=第3个差
0045437E . 33D2 XOR EDX,EDX ; edx=0
00454380 . 8A55 F3 MOV DL,BYTE PTR SS:[EBP-D] ; dl=第5个差
00454383 . 03C2 ADD EAX,EDX ; ax=第3个差+第5个差
00454385 . 33D2 XOR EDX,EDX
00454387 . 8A55 F5 MOV DL,BYTE PTR SS:[EBP-B] ; dl=第7个差
0045438A . 03C2 ADD EAX,EDX ; ax=第3个差+第5个差+第7个差
0045438C . 83F8 0F CMP EAX,0F ; 如果是16的话(汗~)
0045438F . 74 03 JE SHORT GameCM01.00454394 ; 跳
00454391 FF45 F8 INC DWORD PTR SS:[EBP-8] ; 标志:(ebp-8)=1
00454394 > 66:C785 E4FEF>MOV WORD PTR SS:[EBP-11C],4B01 ; 强制将用户名头4个字节改为014b
0045439D . BE 01000000 MOV ESI,1 ; esi=1
004543A2 . 8D45 EF LEA EAX,DWORD PTR SS:[EBP-11] ; eax=差的序列的开始指针
004543A5 > 8BD6 MOV EDX,ESI ; 又是一个循环……吐血 edx=esi
004543A7 . 4A DEC EDX
004543A8 . 8D1452 LEA EDX,DWORD PTR DS:[EDX+EDX*2] ; 无用功,edx=edx*3
004543AB . 33C9 XOR ECX,ECX ; ecx=0
004543AD . 8A4C15 EF MOV CL,BYTE PTR SS:[EBP+EDX-11] ; cl=第(esi*3-2)次的差
004543B1 . 33DB XOR EBX,EBX ; ebx=0,看样子大动工啊:)
004543B3 . 8A5C15 F0 MOV BL,BYTE PTR SS:[EBP+EDX-10] ; bl=第(esi*3-1)次的差
004543B7 . 03CB ADD ECX,EBX ; ecx=ecx+ebx
004543B9 . 0FB65415 F1 MOVZX EDX,BYTE PTR SS:[EBP+EDX-F] ; 取第ESI*3个
004543BE . 03CA ADD ECX,EDX ; ecx=ecx+edx
004543C0 . 83F9 0F CMP ECX,0F ; 如果ECX=16的话
004543C3 . 74 03 JE SHORT GameCM01.004543C8 ; 走
004543C5 FF45 F8 INC DWORD PTR SS:[EBP-8] ; 又一个标志-_-
004543C8 > 33D2 XOR EDX,EDX ; edx=0
004543CA . 8A10 MOV DL,BYTE PTR DS:[EAX] ; dl=第ESI个差
004543CC . 33C9 XOR ECX,ECX
004543CE . 8A48 03 MOV CL,BYTE PTR DS:[EAX+3] ; Cl=第ESI+3个差
004543D1 . 03D1 ADD EDX,ECX ; EDX=EDX+ECX
004543D3 . 33C9 XOR ECX,ECX
004543D5 . 8A48 06 MOV CL,BYTE PTR DS:[EAX+6] ; CL=第ESI+6个差
004543D8 . 03D1 ADD EDX,ECX ; edx=edx+ecx
004543DA . 83FA 0F CMP EDX,0F ; 又是一个标志……
004543DD . 74 03 JE SHORT GameCM01.004543E2
004543DF FF45 F8 INC DWORD PTR SS:[EBP-8]
004543E2 > 46 INC ESI ; 循环次数+1
004543E3 . 40 INC EAX ; 指针+1
004543E4 . 83FE 04 CMP ESI,4 ; 到4次的出去
004543E7 .^ 75 BC JNZ SHORT GameCM01.004543A5
004543E9 . 8D85 C8FDFFFF LEA EAX,DWORD PTR SS:[EBP-238]
004543EF . 8D95 E4FEFFFF LEA EDX,DWORD PTR SS:[EBP-11C]
004543F5 > . E8 8600FBFF CALL GameCM01.00404480 ; ->System.@LStrFromString(String;String;ShortString;ShortString);<+>
004543FA . 8D85 C8FDFFFF LEA EAX,DWORD PTR SS:[EBP-238]
00454400 . BA 1C454500 MOV EDX,GameCM01.0045451C ; !
00454405 > . E8 DA00FBFF CALL GameCM01.004044E4 ; ->System.@LStrCat;
0045440A . 8B95 C8FDFFFF MOV EDX,DWORD PTR SS:[EBP-238]
00454410 . 8D85 E4FEFFFF LEA EAX,DWORD PTR SS:[EBP-11C] ; 第2位变成"!"???
00454416 . B9 FF000000 MOV ECX,0FF
0045441B > . E8 9800FBFF CALL GameCM01.004044B8 ; ->System.@LStrToString;
00454420 . 33C0 XOR EAX,EAX ; 将第2位变成!,前两位CONST='K!',最前面一项=0
00454422 . 8A45 EF MOV AL,BYTE PTR SS:[EBP-11] ; al 第一个差
00454425 . 33D2 XOR EDX,EDX
00454427 . 8A55 F3 MOV DL,BYTE PTR SS:[EBP-D] ; dl 第5个差
0045442A . 03C2 ADD EAX,EDX ; eax=eax+edx
0045442C . 33D2 XOR EDX,EDX
0045442E . 8A55 F7 MOV DL,BYTE PTR SS:[EBP-9] ; dl 第9个差
00454431 . 03C2 ADD EAX,EDX ; eax=eax+edx
00454433 . 83F8 0F CMP EAX,0F
00454436 . 74 03 JE SHORT GameCM01.0045443B ; 标志
00454438 FF45 F8 INC DWORD PTR SS:[EBP-8]
0045443B > 8D85 C0FDFFFF LEA EAX,DWORD PTR SS:[EBP-240] ; 目前一片空白……
00454441 . 8D95 E4FEFFFF LEA EDX,DWORD PTR SS:[EBP-11C] ; 密码....
00454447 > . E8 3400FBFF CALL GameCM01.00404480 ; ->System.@LStrFromString(String;String;ShortString;ShortString);<+>
0045444C . 8B8D C0FDFFFF MOV ECX,DWORD PTR SS:[EBP-240] ; 刚才的空白变成了7C4BE3??
00454452 . 8D85 C4FDFFFF LEA EAX,DWORD PTR SS:[EBP-23C] ; 又是一片空白
00454458 . BA 28454500 MOV EDX,GameCM01.00454528 ; o
0045445D > . E8 C600FBFF CALL GameCM01.00404528 ; ->System.@LStrCat3;
00454462 . 8B95 C4FDFFFF MOV EDX,DWORD PTR SS:[EBP-23C] ; 空白又变成了8c4be3
00454468 . 8D85 E4FEFFFF LEA EAX,DWORD PTR SS:[EBP-11C]
0045446E . B9 FF000000 MOV ECX,0FF
00454473 > . E8 4000FBFF CALL GameCM01.004044B8 ; ->System.@LStrToString;
00454478 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 7c和8C的ASCII。。。EDX ASCII "OK!...."
0045447B . 99 CDQ ; 上面的MOV:还记得之前的EBP-4吗。。
0045447C F77D F8 IDIV DWORD PTR SS:[EBP-8] ; eax=eax / [ebp-8] 如果EBP-8=0(HAN~)就OK
0045447F 8BF0 MOV ESI,EAX
00454481 8D95 BCFDFFFF LEA EDX,DWORD PTR SS:[EBP-244] ; 空白区域
00454487 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 9
0045448A . 03C6 ADD EAX,ESI ; eax=eax+eax / [ebp-8]
0045448C > . E8 233DFBFF CALL GameCM01.004081B4 ; ->SysUtils.IntToStr(Integer):AnsiString;overload;
00454491 . 8B95 BCFDFFFF MOV EDX,DWORD PTR SS:[EBP-244]
00454497 . 8D85 E4FDFFFF LEA EAX,DWORD PTR SS:[EBP-21C] ; 纯洁的密码……
0045449D . B9 FF000000 MOV ECX,0FF
004544A2 > . E8 1100FBFF CALL GameCM01.004044B8 ; ->System.@LStrToString;
004544A7 . 33C0 XOR EAX,EAX ; 上来就把前2位纯洁的覆盖掉了-_-
004544A9 . 5A POP EDX
004544AA . 59 POP ECX
004544AB . 59 POP ECX ; SEH准备..
004544AC . 64:8910 MOV DWORD PTR FS:[EAX],EDX
004544AF EB 26 JMP SHORT GameCM01.004544D7
004544B1 > ^ E9 8EF4FAFF JMP GameCM01.00403944 ; ->System.@HandleAnyException;
004544B6 . 8D85 B8FDFFFF LEA EAX,DWORD PTR SS:[EBP-248]
004544BC . 8D95 E4FEFFFF LEA EDX,DWORD PTR SS:[EBP-11C]
004544C2 > . E8 B9FFFAFF CALL GameCM01.00404480 ; ->System.@LStrFromString(String;String;ShortString;ShortString);<+>
004544C7 . 8B85 B8FDFFFF MOV EAX,DWORD PTR SS:[EBP-248]
004544CD > . E8 5E35FDFF CALL GameCM01.00427A30 ; ->Dialogs.ShowMessage(AnsiString); 完成使命
004544D2 > . E8 D5F7FAFF CALL GameCM01.00403CAC ; ->System.@DoneExcept;
004544D7 > 33C0 XOR EAX,EAX
吐血!花了我大约4个小时。主要原因是我太菜了…………
总结一下算法。
1 如果注册名长度<9 then 注册名不断复制自己,直到长度超过9
2 判断注册号长度,<>9去死
3 abs(asc(每位注册号)-asc(每位注册名)),存入数组
4 双循环,如果数组中有相等的量且当前位数>3,去死!
5 判断
差数组中的元素
1,2,3 =15
1,4,7 =15
2,5,8 =15
3,6,9 =15
1,5,9 =15
3,5,7 =15
(例:1 2 3=15意思是数组中的1 2 3的和是否为15,就是说abs(asc(1,3,5)-asc(1,3,5))是否为15)
6 如果其中有1个不是15,就把标志+1
7 最后用一个中间迷惑你的数除以标志,如果这个数<>0,就进不了SEH,就注册失败
虽说这是个不定方程,也有很多组解。但是我被折磨得够戗,所以简单写了个求1组的程序
Private Sub Command1_Click()
For a1 = 1 To 9
For a2 = 1 To 9
For a3 = 1 To 9
For a4 = 1 To 9
For a5 = 1 To 9
For a6 = 1 To 9
For a7 = 1 To 9
For a8 = 1 To 9
a9 = 45 - (a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8)
If a1 + a2 + a3 = 15 And a1 + a4 + a7 = 15 And a2 + a5 + a8 = 15 And a3 + a6 + a9 = 15 And a1 + a5 + a9 = 15 And a3 + a5 + a7 = 15 Then
If a9 > 0 And a1 * a2 * a3 * a4 * a5 * a6 * a7 * a8 * a9 = 362880 Then
Open App.Path + "\ok.txt" For Append As #1
Print #1, a1, a2, a3, a4, a5, a6, a7, a8, a9
Close #1
MsgBox "finish!"
Exit Sub
End If
End If
Next
Next
Next
Next
Next
Next
Next
Next
End Sub
最后得出一组解是276951438,再编个注册机就OK了:)
注册机代码:
=================
Dim dddx(1000), dddx2(1000), dddx3(1000)
Function ok(s1 As String, s2 As String) '差重复吗?
'If s1 > s2 Then
'w = s1
's1 = s2
's2 = w
'End If
For i = 1 To Len(s2)
dddx(i) = Asc(Mid(s1, i, 1))
dddx2(i) = Asc(Mid(s2, i, 1))
dddx3(i) = Abs(dddx(i) - dddx2(i))
Next
ok = True
For i = 1 To Len(s2)
For j = i + 1 To Len(s2)
If dddx3(i) = dddx3(j) Then
ok = False
End If
Next
Next
End Function
Private Sub Command1_Click()
Dim tx As String, x As String
1 Randomize
ab = Text1.Text
'For i = 1 To 9
'pp = Int(Rnd * 24) + 65
'Debug.Print pp
'ab = ab + Chr(pp)
'Next
'276951438
tx = ab + ab + ab + ab + ab + ab + ab + ab + ab
tx = Mid(tx, 1, 9)
Randomize
did = Int(Rnd * 2) + 1
If did = 2 Then did = -1
x11 = Chr(Asc(Mid(tx, 1, 1)) + 2 * did)
Randomize
did = Int(Rnd * 2) + 1
If did = 2 Then did = -1
x12 = Chr(Asc(Mid(tx, 2, 1)) + 7 * did)
Randomize
did = Int(Rnd * 2) + 1
If did = 2 Then did = -1
x13 = Chr(Asc(Mid(tx, 3, 1)) + 6 * did)
Randomize
did = Int(Rnd * 2) + 1
If did = 2 Then did = -1
x14 = Chr(Asc(Mid(tx, 4, 1)) + 9 * did)
Randomize
did = Int(Rnd * 2) + 1
If did = 2 Then did = -1
x15 = Chr(Asc(Mid(tx, 5, 1)) + 5 * did)
Randomize
did = Int(Rnd * 2) + 1
If did = 2 Then did = -1
x16 = Chr(Asc(Mid(tx, 6, 1)) + 1 * did)
Randomize
did = Int(Rnd * 2) + 1
If did = 2 Then did = -1
x17 = Chr(Asc(Mid(tx, 7, 1)) + 4 * did)
Randomize
did = Int(Rnd * 2) + 1
If did = 2 Then did = -1
x18 = Chr(Asc(Mid(tx, 8, 1)) + 3 * did)
Randomize
did = Int(Rnd * 2) + 1
If did = 2 Then did = -1
x19 = Chr(Asc(Mid(tx, 9, 1)) + 8 * did)
x = x11 + x12 + x13 + x14 + x15 + x16 + x17 + x18 + x19
w = ok(tx, x)
If w = False Then
dds = dds + 1
If dds >= 20 Then MsgBox "您输入的注册号获得验证码的几率渺茫……停止运算!", vbExclamation: Exit Sub
GoTo 1
End If
Text1.Text = ab
Text2.Text = x
End Sub
Private Sub Command2_Click()
MsgBox "Leifei's game crackme 01 Patch!" + vbCrLf + vbCrLf + "Build by NONAME剑人", vbExclamation
End Sub
Private Sub Form_Resize()
If Me.Height <> 2415 Then Me.Height = 2415
If Me.Width <> 4710 Then Me.Width = 4710
End Sub
==========================
这是我的第一篇真正完全靠自己破解的CM/软件,希望+精,谢谢:)
附:2组注册码:
User Name:NoNameSwordMan
Serial Sum:LhTXhdOtg
User Name:bbs.pediy.com
Serial:dim%kd`f
==========================
谢谢大家:)
2007-10-21
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!