最初由 laoqian 发布
0041B5DC往前,才能发现怎么处理你的假码,甚至怎么算真码!
小弟不才,还是不好意思,采用这种方式:在输入假注册码后按确定之后就来到
73528A03 > FF7424 08 push dword ptr [esp+8]
在这里就出现了我输入的假码,之后经过
73528A07 FF7424 08 push dword ptr [esp+8]
73528A0B 6A 00 push 0
73528A0D E8 B426F3FF call __vbaStrComp
73528A12 C2 0800 retn 8
期间右边的有两个UNICODE,其中的一个UNICODE是我输入假的注册码,并有返回到0041B5DC.一路f8后就
到下面
0041B5DC . 8BD8 mov ebx, eax
0041B5DE . 8D4D D0 lea ecx, [ebp-30]
0041B5E1 . F7DB neg ebx
0041B5E3 . 1BDB sbb ebx, ebx
0041B5E5 . 43 inc ebx
0041B5E6 . F7DB neg ebx
0041B5E8 . FF15 1C114000 call [<&MSVBVM60.__vbaFreeStr>] ;
MSVBVM60.__vbaFreeStr
0041B5EE . 8D4D CC lea ecx, [ebp-34]
0041B5F1 . FF15 20114000 call [<&MSVBVM60.__vbaFreeObj>] ;
MSVBVM60.__vbaFreeObj
0041B5F7 . 66:3BDF cmp bx, di
0041B5FA . 74 30 je short 0041B62C
0041B5FC . 66:C746 34 FF>mov word ptr [esi+34], 0FFFF
0041B602 > 8B0E mov ecx, [esi]
0041B604 . 56 push esi
0041B605 . FF91 B4020000 call [ecx+2B4]
0041B60B . 3BC7 cmp eax, edi
0041B60D . DBE2 fclex
0041B60F . 0F8D 66010000 jge 0041B77B
0041B615 . 68 B4020000 push 2B4
0041B61A . 68 E0364000 push 004036E0
0041B61F . 56 push esi
0041B620 . 50 push eax
0041B621 . FF15 38104000 call [<&MSVBVM60.__vbaHresultCheckObj>;
MSVBVM60.__vbaHresultCheckObj
0041B627 . E9 4F010000 jmp 0041B77B
0041B62C > 8A46 36 mov al, [esi+36]
0041B62F . 8B1D F0104000 mov ebx, [<&MSVBVM60.__vbaVarDup>] ; MSVBVM60.__vbaVarDup
0041B635 . 3C 03 cmp al, 3
0041B637 . B9 04000280 mov ecx, 80020004
0041B63C . B8 0A000000 mov eax, 0A
0041B641 . 894D 94 mov [ebp-6C], ecx
0041B644 . 894D A4 mov [ebp-5C], ecx
0041B647 . 8945 8C mov [ebp-74], eax
0041B64A . 8945 9C mov [ebp-64], eax
0041B64D . C785 74FFFFFF>mov dword ptr [ebp-8C], 004030D4 ; ASCII "秀:y"
0041B657 . C785 6CFFFFFF>mov dword ptr [ebp-94], 8
0041B661 . 8D95 6CFFFFFF lea edx, [ebp-94]
0041B667 . 8D4D AC lea ecx, [ebp-54]
0041B66A . 76 62 jbe short 0041B6CE
0041B66C . FFD3 call ebx ;
<&MSVBVM60.__vbaVarDup>
0041B66E . 8D95 7CFFFFFF lea edx, [ebp-84]
0041B674 . 8D4D BC lea ecx, [ebp-44]
0041B677 . C745 84 A4374>mov dword ptr [ebp-7C], 004037A4
0041B67E . C785 7CFFFFFF>mov dword ptr [ebp-84], 8
0041B688 . FFD3 call ebx
0041B68A . 8D55 8C lea edx, [ebp-74]
0041B68D . 8D45 9C lea eax, [ebp-64]
0041B690 . 52 push edx
0041B691 . 8D4D AC lea ecx, [ebp-54]
0041B694 . 50 push eax
0041B695 . 51 push ecx
0041B696 . 8D55 BC lea edx, [ebp-44]
0041B699 . 6A 40 push 40
0041B69B . 52 push edx
0041B69C . FF15 50104000 call [<&MSVBVM60.#595>] ; MSVBVM60.rtcMsgBox
----->此处为弹出"口令错误"的提示信息
不好意思,照我目前的水平我只知道在0041B5DC至0041B69C找关键判断点,程序中判断真假是不是应该在
这段码内。laoqian兄,我是不是应该在73528A03上面找关键判断点??