网站怎么做速排,万网封停慧聪网,深圳网站设计师,韩国网站域名环境 Windows xp sp3
工具 exeinfope ollydbg
查壳 无壳VB程序
测试
输入1234567 OD载入字符串搜素#xff0c;往上翻就看到这里#xff0c;我截取部分片段#xff1a;
00402C26 . 8D55 98 lea edx,dword ptr ss:[ebp-0x68] ; 取serial长度…环境 Windows xp sp3
工具 exeinfope ollydbg
查壳 无壳VB程序
测试
输入1234567 OD载入字符串搜素往上翻就看到这里我截取部分片段
00402C26 . 8D55 98 lea edx,dword ptr ss:[ebp-0x68] ; 取serial长度
00402C29 . 51 push ecx ; /var18
00402C2A . 52 push edx ; |retBuffer8
00402C2B . FF15 20614000 call dword ptr ds:[MSVBVM50.__vbaLenVa; \__vbaLenVar
00402C31 . 50 push eax
00402C32 . FF15 7C614000 call dword ptr ds:[MSVBVM50.__vbaI2Var; MSVBVM50.__vbaI2Var
00402C38 . 8B35 14614000 mov esi,dword ptr ds:[MSVBVM50.#516] ; MSVBVM50.rtcAnsiValueBstr
00402C3E . 8B3D 74614000 mov edi,dword ptr ds:[MSVBVM50.__vbaSt; MSVBVM50.__vbaStrVarVal
00402C44 . 8985 E8FEFFFF mov dword ptr ss:[ebp-0x118],eax
00402C4A . B8 01000000 mov eax,0x1
00402C4F . 8945 C4 mov dword ptr ss:[ebp-0x3C],eax
00402C52 66:3B85 E8FEFcmp ax,word ptr ss:[ebp-0x118] ; 循环次数
...
00402CC9 . 50 push eax
00402CCA . FFD6 call esi
00402CCC . 0FBFD0 movsx edx,ax
00402CCF . 33DA xor ebx,edx ; 第i个字符与一个值异或
00402CD1 . 8D85 58FFFFFF lea eax,dword ptr ss:[ebp-0xA8]
00402CD7 . 53 push ebx
00402CD8 . 50 push eax
00402CD9 . FF15 6C614000 call dword ptr ds:[MSVBVM50.#608] ; MSVBVM50.rtcVarBstrFromAnsi
00402CDF . 8D4D C8 lea ecx,dword ptr ss:[ebp-0x38]
00402CE2 . 8D95 58FFFFFF lea edx,dword ptr ss:[ebp-0xA8]
00402CE8 . 51 push ecx
00402CE9 . 8D85 48FFFFFF lea eax,dword ptr ss:[ebp-0xB8]
00402CEF . 52 push edx
00402CF0 . 50 push eax
00402CF1 . FF15 78614000 call dword ptr ds:[MSVBVM50.__vbaVarCa; MSVBVM50.__vbaVarCat
00402CF7 . 8BD0 mov edx,eax
00402CF9 . 8D4D C8 lea ecx,dword ptr ss:[ebp-0x38]
...
;上面是第一个循环下面是第二个循环
00402E14 . 33D9 xor ebx,ecx
00402E16 . 8D95 48FFFFFF lea edx,dword ptr ss:[ebp-0xB8]
00402E1C . 53 push ebx
00402E1D . 52 push edx
00402E1E . FF15 6C614000 call dword ptr ds:[MSVBVM50.#608] ; MSVBVM50.rtcVarBstrFromAnsi
00402E24 . 8D45 B4 lea eax,dword ptr ss:[ebp-0x4C]
00402E27 . 8D8D 48FFFFFF lea ecx,dword ptr ss:[ebp-0xB8]
00402E2D . 50 push eax
00402E2E . 8D95 38FFFFFF lea edx,dword ptr ss:[ebp-0xC8]
00402E34 . 51 push ecx
00402E35 . 52 push edx
00402E36 . FF15 78614000 call dword ptr ds:[MSVBVM50.__vbaVarCa; MSVBVM50.__vbaVarCat
00402E3C . 8BD0 mov edx,eax
00402E3E . 8D4D B4 lea ecx,dword ptr ss:[ebp-0x4C]
00402E41 . FF15 00614000 call dword ptr ds:[MSVBVM50.__vbaVarMo; MSVBVM50.__vbaVarMove
...
;比较
00402EBD . 8D8D 28FFFFFF lea ecx,dword ptr ss:[ebp-0xD8]
00402EC3 . 50 push eax ; /var18
00402EC4 . 51 push ecx ; |var28
00402EC5 . C785 30FFFFFFmov dword ptr ss:[ebp-0xD0],cracking.004; |UNICODE VeiajeEjbavwij
00402ECF . C785 28FFFFFFmov dword ptr ss:[ebp-0xD8],0x8008 ; |
00402ED9 . FF15 A4614000 call dword ptr ds:[MSVBVM50.__vbaVarTs; \__vbaVarTstNe
00402EDF . 66:85C0 test ax,ax
00402EE2 . 0F84 A1000000 je cracking.00402F89
仔细看一看很容易发现第一个循环是将输入的serial变成另一个字符串第二个循环将新的字符串再变成另一个字符串比较。 至于变成另一个字符串的方法是异或第一个循环的异或内容是0x34第二个循环异或的内容是一个数组 {0x34,0x30,0x30,0x30} 所以将比较的字符反过来运算就能得出结果。
PamelaAnderson