好友
阅读权限25
听众
最后登录1970-1-1
|
本帖最后由 expasy 于 2015-12-2 22:22 编辑
看了下算法(仅仅是真码第3段的计算):
[Asm] 纯文本查看 复制代码 0042C180 $ 55 push ebp ; 这里是第三部分算法
0042C181 . 8BEC mov ebp,esp
0042C183 . 83EC 0C sub esp,0xC
0042C186 . 68 96224000 push <jmp.&MSVBVM60.__vbaExceptHandler> ; SE 处理程序安装
0042C18B . 64:A1 00000000 mov eax,dword ptr fs:[0]
0042C191 . 50 push eax ; kernel32.BaseThreadInitThunk
0042C192 . 64:8925 0000000>mov dword ptr fs:[0],esp
0042C199 . 83EC 6C sub esp,0x6C
0042C19C . 53 push ebx
0042C19D . 56 push esi
0042C19E . 57 push edi
0042C19F . 8965 F4 mov dword ptr ss:[ebp-0xC],esp
0042C1A2 . C745 F8 2821400>mov dword ptr ss:[ebp-0x8],WordsCou.00402128
0042C1A9 . 8B7D 08 mov edi,dword ptr ss:[ebp+0x8]
0042C1AC . 33F6 xor esi,esi
0042C1AE . 8975 D8 mov dword ptr ss:[ebp-0x28],esi
0042C1B1 . 8975 D4 mov dword ptr ss:[ebp-0x2C],esi
0042C1B4 . 8B07 mov eax,dword ptr ds:[edi]
0042C1B6 . 8975 D0 mov dword ptr ss:[ebp-0x30],esi
0042C1B9 . 50 push eax ; /String = "?譕藬?????p??遶邐邐?譕凬荑?琀X??僸??藿瓀嘤痿??痿?.綃???僸??盰???茀??郒邐邐?譕埬??诿????·???舏"
0042C1BA . 8975 C4 mov dword ptr ss:[ebp-0x3C],esi ; |
0042C1BD . 8975 C0 mov dword ptr ss:[ebp-0x40],esi ; |
0042C1C0 . 8975 B0 mov dword ptr ss:[ebp-0x50],esi ; |
0042C1C3 . 8975 AC mov dword ptr ss:[ebp-0x54],esi ; |
0042C1C6 . 8975 9C mov dword ptr ss:[ebp-0x64],esi ; |
0042C1C9 . FF15 24104000 call near dword ptr ds:[<&MSVBVM60.__vbaLenBstr>] ; \__vbaLenBstr
0042C1CF . 85C0 test eax,eax ; kernel32.BaseThreadInitThunk
0042C1D1 . 0F84 20030000 je WordsCou.0042C4F7
0042C1D7 . 56 push esi
0042C1D8 . 8D4D 9C lea ecx,dword ptr ss:[ebp-0x64]
0042C1DB . 68 80000000 push 0x80
0042C1E0 . 8D55 B0 lea edx,dword ptr ss:[ebp-0x50]
0042C1E3 . 51 push ecx
0042C1E4 . 52 push edx ; WordsCou.<ModuleEntryPoint>
0042C1E5 . 897D A4 mov dword ptr ss:[ebp-0x5C],edi
0042C1E8 . C745 9C 0840000>mov dword ptr ss:[ebp-0x64],0x4008
0042C1EF . FF15 5C114000 call near dword ptr ds:[<&MSVBVM60.#717>] ; msvbvm60.rtcStrConvVar2
0042C1F5 . 8D45 B0 lea eax,dword ptr ss:[ebp-0x50]
0042C1F8 . 8D4D AC lea ecx,dword ptr ss:[ebp-0x54]
0042C1FB . 50 push eax ; kernel32.BaseThreadInitThunk
0042C1FC . 51 push ecx
0042C1FD . FF15 80114000 call near dword ptr ds:[<&MSVBVM60.__vbaVar2Vec>] ; msvbvm60.__vbaVar2Vec
0042C203 . 8D55 AC lea edx,dword ptr ss:[ebp-0x54]
0042C206 . 8D45 D8 lea eax,dword ptr ss:[ebp-0x28]
0042C209 . 52 push edx ; WordsCou.<ModuleEntryPoint>
0042C20A . 50 push eax ; kernel32.BaseThreadInitThunk
0042C20B . FF15 14104000 call near dword ptr ds:[<&MSVBVM60.__vbaAryMove>] ; msvbvm60.__vbaAryMove
0042C211 . 8D4D B0 lea ecx,dword ptr ss:[ebp-0x50]
0042C214 . FF15 18104000 call near dword ptr ds:[<&MSVBVM60.__vbaFreeVar>] ; msvbvm60.__vbaFreeVar
0042C21A . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C21D . 51 push ecx
0042C21E . 6A 01 push 0x1
0042C220 . FF15 E8104000 call near dword ptr ds:[<&MSVBVM60.__vbaLbound>] ; msvbvm60.__vbaLbound
0042C226 . 8B55 D8 mov edx,dword ptr ss:[ebp-0x28]
0042C229 . 8BF8 mov edi,eax ; kernel32.BaseThreadInitThunk
0042C22B . 52 push edx ; WordsCou.<ModuleEntryPoint>
0042C22C . 6A 01 push 0x1
0042C22E . 897D DC mov dword ptr ss:[ebp-0x24],edi
0042C231 . FF15 60114000 call near dword ptr ds:[<&MSVBVM60.__vbaUbound>] ; msvbvm60.__vbaUbound
0042C237 . 8BD8 mov ebx,eax ; kernel32.BaseThreadInitThunk
0042C239 . 57 push edi ; |lBoundn = 0x0
0042C23A . 83C3 01 add ebx,0x1 ; |
0042C23D . 8D4D C4 lea ecx,dword ptr ss:[ebp-0x3C] ; |
0042C240 . 0F80 13030000 jo WordsCou.0042C559 ; |
0042C246 . 8BC3 mov eax,ebx ; |
0042C248 . 895D C8 mov dword ptr ss:[ebp-0x38],ebx ; |
0042C24B . 83E8 01 sub eax,0x1 ; |
0042C24E . 0F80 05030000 jo WordsCou.0042C559 ; |
0042C254 . 50 push eax ; |uBoundn = 0x76F4ED5A
0042C255 . 6A 01 push 0x1 ; |TotalArray = 0x1
0042C257 . 6A 11 push 0x11 ; |vBType = Byte
0042C259 . 51 push ecx ; |RetADDR = NULL
0042C25A . 6A 01 push 0x1 ; |VAlign = BYTE
0042C25C . 68 80000000 push 0x80 ; |Arg1 = 0x80
0042C261 . FF15 F4104000 call near dword ptr ds:[<&MSVBVM60.__vbaRedim>] ; \__vbaRedim
0042C267 . 8BCB mov ecx,ebx
0042C269 . 83C4 1C add esp,0x1C
0042C26C . 83E9 01 sub ecx,0x1
0042C26F . 0F80 E4020000 jo WordsCou.0042C559
0042C275 . FF15 D0104000 call near dword ptr ds:[<&MSVBVM60.__vbaI2I4>] ; msvbvm60.__vbaI2I4
0042C27B . 8BCF mov ecx,edi
0042C27D . 8945 90 mov dword ptr ss:[ebp-0x70],eax ; kernel32.BaseThreadInitThunk
0042C280 . FF15 D0104000 call near dword ptr ds:[<&MSVBVM60.__vbaI2I4>] ; msvbvm60.__vbaI2I4
0042C286 . 8945 E8 mov dword ptr ss:[ebp-0x18],eax ; kernel32.BaseThreadInitThunk
0042C289 > 66:3B45 90 cmp ax,word ptr ss:[ebp-0x70]
0042C28D . 0F8F 07020000 jg WordsCou.0042C49A
0042C293 . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C296 . 0FBFC0 movsx eax,ax
0042C299 . 3BC7 cmp eax,edi
0042C29B . 8945 84 mov dword ptr ss:[ebp-0x7C],eax ; kernel32.BaseThreadInitThunk
0042C29E . 0F85 BA000000 jnz WordsCou.0042C35E
0042C2A4 . 85C9 test ecx,ecx
0042C2A6 . 74 2A je short WordsCou.0042C2D2
0042C2A8 . 66:8339 01 cmp word ptr ds:[ecx],0x1
0042C2AC . 75 24 jnz short WordsCou.0042C2D2
0042C2AE . 8B51 14 mov edx,dword ptr ds:[ecx+0x14]
0042C2B1 . 8B41 10 mov eax,dword ptr ds:[ecx+0x10]
0042C2B4 . 8BF3 mov esi,ebx
0042C2B6 . 8B3D BC104000 mov edi,dword ptr ds:[<&MSVBVM60.__vbaGenerateBounds>; msvbvm60.__vbaGenerateBoundsError
0042C2BC . 83EE 01 sub esi,0x1
0042C2BF . 0F80 94020000 jo WordsCou.0042C559
0042C2C5 . 2BF2 sub esi,edx ; WordsCou.<ModuleEntryPoint>
0042C2C7 . 3BF0 cmp esi,eax ; kernel32.BaseThreadInitThunk
0042C2C9 . 72 18 jb short WordsCou.0042C2E3
0042C2CB . FFD7 call near edi ; <&MSVBVM60.__vbaGenerateBoundsError>
0042C2CD . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C2D0 . EB 11 jmp short WordsCou.0042C2E3
0042C2D2 > FF15 BC104000 call near dword ptr ds:[<&MSVBVM60.__vbaGenerateBoun>; msvbvm60.__vbaGenerateBoundsError
0042C2D8 . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C2DB . 8B3D BC104000 mov edi,dword ptr ds:[<&MSVBVM60.__vbaGenerateBounds>; msvbvm60.__vbaGenerateBoundsError
0042C2E1 . 8BF0 mov esi,eax ; kernel32.BaseThreadInitThunk
0042C2E3 > 8B51 0C mov edx,dword ptr ds:[ecx+0xC]
0042C2E6 . 33C0 xor eax,eax ; kernel32.BaseThreadInitThunk
0042C2E8 . 83FB 01 cmp ebx,0x1
0042C2EB . 8A0432 mov al,byte ptr ds:[edx+esi] ; '3'第一段的最后一位
0042C2EE . 8945 D0 mov dword ptr ss:[ebp-0x30],eax ; kernel32.BaseThreadInitThunk
0042C2F1 . 75 28 jnz short WordsCou.0042C31B
0042C2F3 . 85C9 test ecx,ecx
0042C2F5 . 74 56 je short WordsCou.0042C34D
0042C2F7 . 66:3919 cmp word ptr ds:[ecx],bx
0042C2FA . 75 51 jnz short WordsCou.0042C34D
0042C2FC . 8B71 14 mov esi,dword ptr ds:[ecx+0x14]
0042C2FF . 8B41 10 mov eax,dword ptr ds:[ecx+0x10]
0042C302 . F7DE neg esi
0042C304 . 3BF0 cmp esi,eax ; kernel32.BaseThreadInitThunk
0042C306 . 72 05 jb short WordsCou.0042C30D
0042C308 . FFD7 call near edi
0042C30A . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C30D > 8B51 0C mov edx,dword ptr ds:[ecx+0xC]
0042C310 . 8BC6 mov eax,esi
0042C312 . 33DB xor ebx,ebx
0042C314 . 8A1C02 mov bl,byte ptr ds:[edx+eax]
0042C317 . 8BF3 mov esi,ebx
0042C319 . EB 49 jmp short WordsCou.0042C364
0042C31B > 85C9 test ecx,ecx
0042C31D . 74 2E je short WordsCou.0042C34D
0042C31F . 66:8339 01 cmp word ptr ds:[ecx],0x1
0042C323 . 75 28 jnz short WordsCou.0042C34D
0042C325 . 8B51 14 mov edx,dword ptr ds:[ecx+0x14]
0042C328 . 8B41 10 mov eax,dword ptr ds:[ecx+0x10]
0042C32B . 83EB 02 sub ebx,0x2
0042C32E . 0F80 25020000 jo WordsCou.0042C559
0042C334 . 2BDA sub ebx,edx ; WordsCou.<ModuleEntryPoint>
0042C336 . 3BD8 cmp ebx,eax ; kernel32.BaseThreadInitThunk
0042C338 . 72 05 jb short WordsCou.0042C33F
0042C33A . FFD7 call near edi
0042C33C . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C33F > 8B51 0C mov edx,dword ptr ds:[ecx+0xC]
0042C342 . 8BC3 mov eax,ebx
0042C344 . 33DB xor ebx,ebx
0042C346 . 8A1C02 mov bl,byte ptr ds:[edx+eax]
0042C349 . 8BF3 mov esi,ebx
0042C34B . EB 17 jmp short WordsCou.0042C364
0042C34D > FFD7 call near edi
0042C34F . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C352 . 33DB xor ebx,ebx
0042C354 . 8B51 0C mov edx,dword ptr ds:[ecx+0xC]
0042C357 . 8A1C02 mov bl,byte ptr ds:[edx+eax]
0042C35A . 8BF3 mov esi,ebx
0042C35C . EB 06 jmp short WordsCou.0042C364
0042C35E > 8B3D BC104000 mov edi,dword ptr ds:[<&MSVBVM60.__vbaGenerateBounds>; msvbvm60.__vbaGenerateBoundsError
0042C364 > 85C9 test ecx,ecx
0042C366 . 74 1E je short WordsCou.0042C386
0042C368 . 66:8339 01 cmp word ptr ds:[ecx],0x1
0042C36C . 75 18 jnz short WordsCou.0042C386
0042C36E . 8B5D 84 mov ebx,dword ptr ss:[ebp-0x7C]
0042C371 . 8B51 14 mov edx,dword ptr ds:[ecx+0x14]
0042C374 . 8B41 10 mov eax,dword ptr ds:[ecx+0x10]
0042C377 . 2BDA sub ebx,edx ; WordsCou.<ModuleEntryPoint>
0042C379 . 3BD8 cmp ebx,eax ; kernel32.BaseThreadInitThunk
0042C37B . 72 05 jb short WordsCou.0042C382
0042C37D . FFD7 call near edi
0042C37F . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C382 > 8BC3 mov eax,ebx
0042C384 . EB 05 jmp short WordsCou.0042C38B
0042C386 > FFD7 call near edi
0042C388 . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C38B > 8B51 0C mov edx,dword ptr ds:[ecx+0xC]
0042C38E . 33DB xor ebx,ebx
0042C390 . 8A1C02 mov bl,byte ptr ds:[edx+eax] ; bl=0x36(依次真码第一段的各位)
0042C393 . 8B55 D0 mov edx,dword ptr ss:[ebp-0x30] ; edx=0x3e
0042C396 . 23DA and ebx,edx ; WordsCou.<ModuleEntryPoint>
0042C398 . 85C9 test ecx,ecx
0042C39A . 74 22 je short WordsCou.0042C3BE
0042C39C . 66:8339 01 cmp word ptr ds:[ecx],0x1
0042C3A0 . 75 1C jnz short WordsCou.0042C3BE
0042C3A2 . 8B7D 84 mov edi,dword ptr ss:[ebp-0x7C]
0042C3A5 . 8B51 14 mov edx,dword ptr ds:[ecx+0x14]
0042C3A8 . 8B41 10 mov eax,dword ptr ds:[ecx+0x10]
0042C3AB . 2BFA sub edi,edx ; WordsCou.<ModuleEntryPoint>
0042C3AD . 3BF8 cmp edi,eax ; kernel32.BaseThreadInitThunk
0042C3AF . 72 09 jb short WordsCou.0042C3BA
0042C3B1 . FF15 BC104000 call near dword ptr ds:[<&MSVBVM60.__vbaGenerateBoun>; msvbvm60.__vbaGenerateBoundsError
0042C3B7 . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C3BA > 8BC7 mov eax,edi
0042C3BC . EB 05 jmp short WordsCou.0042C3C3
0042C3BE > FFD7 call near edi
0042C3C0 . 8B4D D8 mov ecx,dword ptr ss:[ebp-0x28]
0042C3C3 > 8B49 0C mov ecx,dword ptr ds:[ecx+0xC]
0042C3C6 . 33D2 xor edx,edx ; WordsCou.<ModuleEntryPoint>
0042C3C8 . 8A1401 mov dl,byte ptr ds:[ecx+eax] ; dl=0x36(依次真码第一段的各位)
0042C3CB . 8BFA mov edi,edx ; edi=0x36
0042C3CD . 0BFE or edi,esi ; esi=0x38(倒数第二位)
0042C3CF . 81FB 80000000 cmp ebx,0x80 ; ebx=0x32
0042C3D5 . 7E 0F jle short WordsCou.0042C3E6
0042C3D7 . B8 00010000 mov eax,0x100
0042C3DC . 2BC3 sub eax,ebx
0042C3DE . 0F80 75010000 jo WordsCou.0042C559
0042C3E4 . 8BD8 mov ebx,eax ; kernel32.BaseThreadInitThunk
0042C3E6 > 81FF 80000000 cmp edi,0x80 ; edi=0x3e=edx or esi
0042C3EC . 7E 0F jle short WordsCou.0042C3FD
0042C3EE . B9 00010000 mov ecx,0x100
0042C3F3 . 2BCF sub ecx,edi
0042C3F5 . 0F80 5E010000 jo WordsCou.0042C559
0042C3FB . 8BF9 mov edi,ecx
0042C3FD > 8B45 C4 mov eax,dword ptr ss:[ebp-0x3C]
0042C400 . 85C0 test eax,eax ; kernel32.BaseThreadInitThunk
0042C402 . 74 22 je short WordsCou.0042C426
0042C404 . 66:8338 01 cmp word ptr ds:[eax],0x1
0042C408 . 75 1C jnz short WordsCou.0042C426
0042C40A . 8B4D 84 mov ecx,dword ptr ss:[ebp-0x7C]
0042C40D . 8B50 14 mov edx,dword ptr ds:[eax+0x14]
0042C410 . 2BCA sub ecx,edx ; WordsCou.<ModuleEntryPoint>
0042C412 . 8BF1 mov esi,ecx
0042C414 . 8B48 10 mov ecx,dword ptr ds:[eax+0x10]
0042C417 . 3BF1 cmp esi,ecx
0042C419 . 72 06 jb short WordsCou.0042C421
0042C41B . FF15 BC104000 call near dword ptr ds:[<&MSVBVM60.__vbaGenerateBoun>; msvbvm60.__vbaGenerateBoundsError
0042C421 > 8975 80 mov dword ptr ss:[ebp-0x80],esi
0042C424 . EB 09 jmp short WordsCou.0042C42F
0042C426 > FF15 BC104000 call near dword ptr ds:[<&MSVBVM60.__vbaGenerateBoun>; msvbvm60.__vbaGenerateBoundsError
0042C42C . 8945 80 mov dword ptr ss:[ebp-0x80],eax ; kernel32.BaseThreadInitThunk
0042C42F > 68 C8964000 push WordsCou.004096C8 ; /A
0042C434 . FF15 38104000 call near dword ptr ds:[<&MSVBVM60.#516>] ; \取ascii值
0042C43A . 0FBFC8 movsx ecx,ax ; eax=0x41='A'
0042C43D . 8BC7 mov eax,edi ; eax=edi=0x3e
0042C43F . BE 34000000 mov esi,0x34
0042C444 . 0FAFC3 imul eax,ebx ; eax=0x3e*0x32
0042C447 . 0F80 0C010000 jo WordsCou.0042C559
0042C44D . 99 cdq
0042C44E . F7FE idiv esi ; eax=0x3e*0x32/0x34,edx=mod
0042C450 . 03CA add ecx,edx ; ecx=0x41+edx //('A'~'t')
0042C452 . 0F80 01010000 jo WordsCou.0042C559
0042C458 . FF15 1C114000 call near dword ptr ds:[<&MSVBVM60.__vbaUI1I4>] ; msvbvm60.__vbaUI1I4
0042C45E . 8B55 C4 mov edx,dword ptr ss:[ebp-0x3C]
0042C461 . 8BF7 mov esi,edi
0042C463 . 03F3 add esi,ebx ; esi=edi+ebx=0x3e+0x32
0042C465 . 8B5D C8 mov ebx,dword ptr ss:[ebp-0x38]
0042C468 . 8B4A 0C mov ecx,dword ptr ds:[edx+0xC]
0042C46B . 8B55 80 mov edx,dword ptr ss:[ebp-0x80]
0042C46E . 0F80 E5000000 jo WordsCou.0042C559
0042C474 . 880411 mov byte ptr ds:[ecx+edx],al ; al=0x41+edx ////(A~t)
0042C477 . B8 01000000 mov eax,0x1
0042C47C . 81E6 FF000000 and esi,0xFF ; esi and 0xff =esi
0042C482 . 66:0345 E8 add ax,word ptr ss:[ebp-0x18]
0042C486 . 897D D0 mov dword ptr ss:[ebp-0x30],edi
0042C489 . 8B7D DC mov edi,dword ptr ss:[ebp-0x24]
0042C48C . 0F80 C7000000 jo WordsCou.0042C559
0042C492 . 8945 E8 mov dword ptr ss:[ebp-0x18],eax ; kernel32.BaseThreadInitThunk
0042C495 .^ E9 EFFDFFFF jmp WordsCou.0042C289
0042C49A > 8B45 C4 mov eax,dword ptr ss:[ebp-0x3C]
0042C49D . 8D4D 9C lea ecx,dword ptr ss:[ebp-0x64]
0042C4A0 . 51 push ecx
0042C4A1 . 8945 A4 mov dword ptr ss:[ebp-0x5C],eax ; kernel32.BaseThreadInitThunk
0042C4A4 . C745 9C 1120000>mov dword ptr ss:[ebp-0x64],0x2011
0042C4AB . FF15 FC114000 call near dword ptr ds:[<&MSVBVM60.__vbaStrVarCopy>] ; msvbvm60.__vbaStrVarCopy
0042C4B1 . 8B35 F0114000 mov esi,dword ptr ds:[<&MSVBVM60.__vbaStrMove>] ; msvbvm60.__vbaStrMove
0042C4B7 . 8BD0 mov edx,eax ; kernel32.BaseThreadInitThunk
0042C4B9 . 8D4D D4 lea ecx,dword ptr ss:[ebp-0x2C]
0042C4BC . FFD6 call near esi ; <&MSVBVM60.__vbaStrMove>
0042C4BE . 6A 00 push 0x0
0042C4C0 . 8D45 9C lea eax,dword ptr ss:[ebp-0x64]
0042C4C3 . 6A 40 push 0x40
0042C4C5 . 8D4D B0 lea ecx,dword ptr ss:[ebp-0x50]
0042C4C8 . 8D55 D4 lea edx,dword ptr ss:[ebp-0x2C]
0042C4CB . 50 push eax ; kernel32.BaseThreadInitThunk
0042C4CC . 51 push ecx
0042C4CD . 8955 A4 mov dword ptr ss:[ebp-0x5C],edx ; WordsCou.<ModuleEntryPoint>
0042C4D0 . C745 9C 0840000>mov dword ptr ss:[ebp-0x64],0x4008
0042C4D7 . FF15 5C114000 call near dword ptr ds:[<&MSVBVM60.#717>] ; msvbvm60.rtcStrConvVar2
0042C4DD . 8D55 B0 lea edx,dword ptr ss:[ebp-0x50]
0042C4E0 . 52 push edx ; WordsCou.<ModuleEntryPoint>
0042C4E1 . FF15 20104000 call near dword ptr ds:[<&MSVBVM60.__vbaStrVarMove>] ; msvbvm60.__vbaStrVarMove
0042C4E7 . 8BD0 mov edx,eax ; kernel32.BaseThreadInitThunk
0042C4E9 . 8D4D C0 lea ecx,dword ptr ss:[ebp-0x40]
0042C4EC . FFD6 call near esi
0042C4EE . 8D4D B0 lea ecx,dword ptr ss:[ebp-0x50]
0042C4F1 . FF15 18104000 call near dword ptr ds:[<&MSVBVM60.__vbaFreeVar>] ; msvbvm60.__vbaFreeVar
0042C4F7 > 68 43C54200 push WordsCou.0042C543
0042C4FC . EB 25 jmp short WordsCou.0042C523
0042C4FE . F645 FC 04 test byte ptr ss:[ebp-0x4],0x4
0042C502 . 74 09 je short WordsCou.0042C50D
0042C504 . 8D4D C0 lea ecx,dword ptr ss:[ebp-0x40]
0042C507 . FF15 1C124000 call near dword ptr ds:[<&MSVBVM60.__vbaFreeStr>] ; msvbvm60.__vbaFreeStr
0042C50D > 8D4D B0 lea ecx,dword ptr ss:[ebp-0x50][url=http://www.52pojie.cn/index.php]返回首页[/url]
0042C510 . FF15 18104000 call near dword ptr ds:[<&MSVBVM60.__vbaFreeVar>] ; msvbvm60.__vbaFreeVar
0042C516 . 8D45 AC lea eax,dword ptr ss:[ebp-0x54]
0042C519 . 50 push eax ; kernel32.BaseThreadInitThunk
0042C51A . 6A 00 push 0x0
0042C51C . FF15 70104000 call near dword ptr ds:[<&MSVBVM60.__vbaAryDestruct>>; msvbvm60.__vbaAryDestruct
0042C522 . C3 retn
我自己的机子上vb6测试通过
[Visual Basic] 纯文本查看 复制代码 Private Sub Command1_Click()
Dim expasy, i
Dim regcode, mcode
'regcode = "6666784583-871-1111111111"
'Dim var1()
'val1 = Split(regcode, "-", -1, 0)
mcode = "1111902408"
Dim a1, b1()
a1 = "6666784583" ‘第一段真码
ReDim b1(Len(a1) - 1)
For i = 0 To Len(a1) - 1
b1(i) = Asc(Mid(a1, i + 1, 1))
Next i
'a1,a2,a3是注册码的第1、2、3段
'b1().b2().b3()是ascii值的数组
Dim eax, ebx, ecx, edx, ebp, esi, edi, ebps7c, ebps30
edi = 0
ebx = 10
Dim b3(10)
For eax = 0 To Len(a1) - 1
ebps7c = eax
If eax = 0 Then
ebps30 = b1(Len(a1) - 1 - eax)
ebx = 0
If Len(a1) - eax - 2 >= 0 Then
ebx = b1(Len(a1) - eax - 2)
End If
esi = ebx
End If
ebx = 0
eax = ebps7c
ebx = b1(eax)
edx = ebps30
ebx = ebx And edx
edx = 0
edx = b1(eax)
edi = edx
edi = edi Or esi
If ebx > 128 Then ebx = 256 - ebx
If edi > 128 Then edi = 256 - edi
Dim A
A = 65 '0x41
eax = A
ecx = eax
eax = edi
esi = 52 '0x34
eax = eax * ebx
edx = 0
edx = eax Mod esi
eax = eax \ esi
ecx = ecx + edx
eax = ecx
esi = edi
esi = edi + ebx
b3(ebps7c) = eax
esi = esi And 255
eax = ebps7c
ebps30 = edi
Next eax
For i = 0 To 9
expasy = expasy & Chr(b3(i))
Next
Text1.Text = expasy
End Sub
|
免费评分
-
查看全部评分
|