- UID
- 2
注册时间2004-12-1
阅读权限255
最后登录1970-1-1
总坛主
TA的每日心情 | 开心 2024-12-1 11:04 |
---|
签到天数: 12 天 [LV.3]偶尔看看II
|
发表于 2011-1-18 00:51:11
|
显示全部楼层
哈,程序不支持中文,用户名超过12位退出。。我当初学VB的时候,也不能处理这些问题 慢慢就会了,支持,加油!
文件名校验:
//===============================================================
004126F0 PUSH EBP
004126F1 MOV EBP,ESP
004126F3 SUB ESP,8
004126F6 PUSH <JMP.&msvbvm60.__vbaExceptHandler>
004126FB MOV EAX,DWORD PTR FS:[0]
00412701 PUSH EAX
.
.
.
.
.
00412799 PUSH EDX
0041279A PUSH EAX
0041279B CALL DWORD PTR DS:[<&msvbvm60.__vbaStrCm>; 比较名称是否为 “CrackMe.exe”
004127A1 MOV ESI,EAX
004127A3 LEA ECX,DWORD PTR SS:[EBP-18]
004127A6 NEG ESI
004127A8 SBB ESI,ESI
004127AA NEG ESI
004127AC NEG ESI
004127AE CALL DWORD PTR DS:[<&msvbvm60.__vbaFreeS>; msvbvm60.__vbaFreeStr
004127B4 LEA ECX,DWORD PTR SS:[EBP-1C]
004127B7 CALL DWORD PTR DS:[<&msvbvm60.__vbaFreeO>; msvbvm60.__vbaFreeObj
004127BD CMP SI,DI
004127C0 JE SHORT dumped_.004127C8 ; ★JMP 跳过★
004127C2 CALL DWORD PTR DS:[<&msvbvm60.__vbaEnd>] ; msvbvm60.__vbaEnd
004127C8 PUSH dumped_.004127EC
004127CD JMP SHORT dumped_.004127E2
.
.
.
.
004127FA POP EBX
004127FB MOV ESP,EBP
004127FD POP EBP
004127FE RETN 4
//===============================================================
//===============================================================
//算法开始
0041229E CALL DWORD PTR DS:[401038] ; 进入for循环
004122A4 MOV ESI,DWORD PTR DS:[4010B4] ; msvbvm60.__vbaVarAdd
004122AA MOV EDI,DWORD PTR DS:[4010B0] ; msvbvm60.__vbaI4Var
004122B0 TEST EAX,EAX
004122B2 JE Crackme.00412381 ; 是否循环结束?
004122B8 LEA EAX,DWORD PTR SS:[EBP-74]
004122BB LEA ECX,DWORD PTR SS:[EBP-24]
004122BE PUSH EAX
004122BF PUSH ECX
004122C0 MOV DWORD PTR SS:[EBP-6C],1
004122C7 MOV DWORD PTR SS:[EBP-74],2
004122CE CALL EDI
004122D0 PUSH EAX
004122D1 LEA EDX,DWORD PTR SS:[EBP-34]
004122D4 LEA EAX,DWORD PTR SS:[EBP-84]
004122DA PUSH EDX
004122DB PUSH EAX
004122DC CALL DWORD PTR DS:[401050] ; 逐位取用户名
004122E2 LEA ECX,DWORD PTR SS:[EBP-84]
004122E8 LEA EDX,DWORD PTR SS:[EBP-5C]
004122EB PUSH ECX
004122EC PUSH EDX
004122ED CALL DWORD PTR DS:[401088] ; 字符到数值
004122F3 PUSH EAX
004122F4 CALL DWORD PTR DS:[401024] ; 转ascii
004122FA PUSH EAX
004122FB CALL DWORD PTR DS:[401004] ; msvbvm60.__vbaStrI2
00412301 MOV EDX,EAX
00412303 LEA ECX,DWORD PTR SS:[EBP-60]
00412306 CALL DWORD PTR DS:[4010C0] ; msvbvm60.__vbaStrMove
0041230C PUSH EAX
0041230D CALL DWORD PTR DS:[4010DC] ; msvbvm60.rtcR8ValFromBstr
00412313 FSTP QWORD PTR SS:[EBP-BC]
00412319 LEA EAX,DWORD PTR SS:[EBP-54]
0041231C LEA ECX,DWORD PTR SS:[EBP-C4]
00412322 PUSH EAX
00412323 LEA EDX,DWORD PTR SS:[EBP-94]
00412329 PUSH ECX
0041232A PUSH EDX
0041232B MOV DWORD PTR SS:[EBP-C4],5
00412335 CALL ESI ; 加法
00412337 MOV EDX,EAX
00412339 LEA ECX,DWORD PTR SS:[EBP-54]
0041233C CALL EBX
0041233E LEA EAX,DWORD PTR SS:[EBP-60]
00412341 LEA ECX,DWORD PTR SS:[EBP-5C]
00412344 PUSH EAX
00412345 PUSH ECX
00412346 PUSH 2
00412348 CALL DWORD PTR DS:[4010A0] ; msvbvm60.__vbaFreeStrList
0041234E LEA EDX,DWORD PTR SS:[EBP-84]
00412354 LEA EAX,DWORD PTR SS:[EBP-74]
00412357 PUSH EDX
00412358 PUSH EAX
00412359 PUSH 2
0041235B CALL DWORD PTR DS:[401018] ; msvbvm60.__vbaFreeVarList
00412361 ADD ESP,18
00412364 LEA ECX,DWORD PTR SS:[EBP-10C]
0041236A LEA EDX,DWORD PTR SS:[EBP-FC]
00412370 LEA EAX,DWORD PTR SS:[EBP-24]
00412373 PUSH ECX
00412374 PUSH EDX
00412375 PUSH EAX
00412376 CALL DWORD PTR DS:[4010CC] ; msvbvm60.__vbaVarForNext
0041237C JMP Crackme.004122B0 ; 继续循环 上面累加结果记为 dwSumName
00412381 MOV EBX,DWORD PTR DS:[401074] ; msvbvm60.__vbaVarMul
00412387 MOV EAX,2
0041238C LEA ECX,DWORD PTR SS:[EBP-54]
0041238F MOV DWORD PTR SS:[EBP-B4],EAX
00412395 MOV DWORD PTR SS:[EBP-C4],EAX
0041239B LEA EDX,DWORD PTR SS:[EBP-54]
0041239E PUSH ECX
0041239F LEA EAX,DWORD PTR SS:[EBP-74]
004123A2 PUSH EDX
004123A3 PUSH EAX
004123A4 MOV DWORD PTR SS:[EBP-AC],7C5 ; 1989 年轻小伙
004123AE MOV DWORD PTR SS:[EBP-BC],7DA ; 2010 在PYG的活跃年份,哈
004123B8 CALL EBX ; dwSumName * dwSumName
004123BA LEA ECX,DWORD PTR SS:[EBP-B4]
004123C0 PUSH EAX
004123C1 LEA EDX,DWORD PTR SS:[EBP-84]
004123C7 PUSH ECX
004123C8 PUSH EDX
004123C9 CALL ESI ; dwSumName * dwSumName + 1989
004123CB PUSH EAX
004123CC LEA EAX,DWORD PTR SS:[EBP-C4]
004123D2 LEA ECX,DWORD PTR SS:[EBP-94]
004123D8 PUSH EAX
004123D9 PUSH ECX
004123DA CALL EBX ; (dwSumName * dwSumName + 1989) * 2010
004123DC PUSH EAX
004123DD CALL EDI ; 经过这个CALL后,EAX里面的值转换成十进制就是注册码了,,内存注册机处!
004123DF LEA ECX,DWORD PTR SS:[EBP-84]
004123E5 MOV ESI,EAX
004123E7 CALL DWORD PTR DS:[401014] ; msvbvm60.__vbaFreeVar
004123ED LEA EDX,DWORD PTR SS:[EBP-44]
004123F0 LEA EAX,DWORD PTR SS:[EBP-B4]
004123F6 PUSH EDX
004123F7 PUSH EAX
004123F8 MOV DWORD PTR SS:[EBP-AC],ESI
004123FE MOV DWORD PTR SS:[EBP-B4],8003
00412408 CALL DWORD PTR DS:[401060] ; 比较!
0041240E TEST AX,AX
00412411 JE Crackme.004124C2 ; //爆破点
00412417 MOV ESI,DWORD PTR DS:[4010B8] ; msvbvm60.__vbaVarDup
0041241D MOV ECX,80020004
00412422 MOV DWORD PTR SS:[EBP-9C],ECX
00412428 MOV EAX,0A
0041242D MOV DWORD PTR SS:[EBP-8C],ECX
00412433 MOV EDI,8
00412438 LEA EDX,DWORD PTR SS:[EBP-C4]
0041243E LEA ECX,DWORD PTR SS:[EBP-84]
00412444 MOV DWORD PTR SS:[EBP-A4],EAX
0041244A MOV DWORD PTR SS:[EBP-94],EAX
00412450 MOV DWORD PTR SS:[EBP-BC],Crackme.004118>; 恭喜你!
0041245A MOV DWORD PTR SS:[EBP-C4],EDI
00412460 CALL ESI
00412462 LEA EDX,DWORD PTR SS:[EBP-B4]
00412468 LEA ECX,DWORD PTR SS:[EBP-74]
0041246B MOV DWORD PTR SS:[EBP-AC],Crackme.004118>; Good job , congratulations
00412475 MOV DWORD PTR SS:[EBP-B4],EDI
0041247B CALL ESI
0041247D LEA ECX,DWORD PTR SS:[EBP-A4]
00412483 LEA EDX,DWORD PTR SS:[EBP-94]
00412489 PUSH ECX
0041248A LEA EAX,DWORD PTR SS:[EBP-84]
00412490 PUSH EDX
00412491 PUSH EAX
00412492 LEA ECX,DWORD PTR SS:[EBP-74]
00412495 PUSH 40
00412497 PUSH ECX
00412498 CALL DWORD PTR DS:[401040] ; msvbvm60.rtcMsgBox
0041249E LEA EDX,DWORD PTR SS:[EBP-A4]
004124A4 LEA EAX,DWORD PTR SS:[EBP-94]
.
.
.
.
.
00412506 CALL DWORD PTR DS:[401018] ; msvbvm60.__vbaFreeVarList
0041250C ADD ESP,14
0041250F RETN
KeyGen:- #include <iostream.h>
- #include <stdio.h>
- #include <windows.h>
- void main()
- {
- cout<<"**************************\n";
- cout<<"* Code By PiaoYun[P.Y.G] *\n";
- cout<<"* web:www.chinapyg.com *\n";
- cout<<"* date:2011-1-18 *\n";
- cout<<"**************************\n";
- cout<<"请输入用户名:\n";
- char szName[256] = {0};
- char szSn[256] = {0};
- int dwSum = 0;
- int dwTemp = 0;
- cin>>szName;
- int dwLen = strlen(szName);
- for (int i=0; i<dwLen;i++)
- {
- dwSum += szName[i];
- }
- dwTemp = ((dwSum * dwSum) + 1989) * 2010;
- sprintf(szSn,"%d",dwTemp);
- cout<<"您的注册码为:\n"<<szSn<<endl;
- }
复制代码 |
|