2个关键跳改了之后。软件一直提示:连接服务器失败,重新连接。怎么回事?
004349B0 . 6A FF push -1
004349B2 . 68 2B944B00 push 004B942B
004349B7 . 64:A1 0000000>mov eax, dword ptr fs:[0]
004349BD . 50 push eax
004349BE . 83EC 18 sub esp, 18
004349C1 . A1 FCDE4E00 mov eax, dword ptr [4EDEFC]
004349C6 . 33C4 xor eax, esp
004349C8 . 894424 14 mov dword ptr [esp+14], eax
004349CC . 53 push ebx
004349CD . 56 push esi
004349CE . 57 push edi
004349CF . A1 FCDE4E00 mov eax, dword ptr [4EDEFC]
004349D4 . 33C4 xor eax, esp
004349D6 . 50 push eax
004349D7 . 8D4424 28 lea eax, dword ptr [esp+28]
004349DB . 64:A3 0000000>mov dword ptr fs:[0], eax
004349E1 . 8B4424 38 mov eax, dword ptr [esp+38]
004349E5 . 8BF1 mov esi, ecx
004349E7 . 50 push eax
004349E8 . 8D4C24 14 lea ecx, dword ptr [esp+14]
004349EC . E8 DF06FDFF call 004050D0
004349F1 . 8B4424 40 mov eax, dword ptr [esp+40]
004349F5 . C74424 30 000>mov dword ptr [esp+30], 0
004349FD . 85C0 test eax, eax
004349FF . 76 26 jbe short 00434A27
00434A01 . 0FB64C24 43 movzx ecx, byte ptr [esp+43]
00434A06 . 0FB65424 42 movzx edx, byte ptr [esp+42]
00434A0B . 51 push ecx
00434A0C . 52 push edx
00434A0D . 0FB6CC movzx ecx, ah
00434A10 . 0FB6D0 movzx edx, al
00434A13 . 51 push ecx
00434A14 . 52 push edx
00434A15 . 8D4424 20 lea eax, dword ptr [esp+20]
00434A19 . 68 30CD4C00 push 004CCD30 ; ASCII "%d.%d.%d.%d"
00434A1E . 50 push eax
00434A1F . E8 8CCFFCFF call 004019B0
00434A24 . 83C4 18 add esp, 18
00434A27 > 833D D5F94E00>cmp dword ptr [4EF9D5], 2
00434A2E . 75 71 jnz short 00434AA1
00434A30 . 8B0D 0BFA4E00 mov ecx, dword ptr [4EFA0B]
00434A36 . 68 FFFFFF00 push 0FFFFFF
00434A3B . 68 3CCD4C00 push 004CCD3C
00434A40 . E8 3B9DFFFF call 0042E780
00434A45 . 8B3D 70134C00 mov edi, dword ptr [<&kernel32.GetCu>; kernel32.GetCurrentProcess
00434A4B . 6A 02 push 2
00434A4D . 6A 00 push 0
00434A4F . 6A 00 push 0
00434A51 . 8D4E 0C lea ecx, dword ptr [esi+C]
00434A54 . 51 push ecx
00434A55 . FFD7 call edi ; [GetCurrentProcess
00434A57 . 50 push eax
00434A58 . 56 push esi
00434A59 . 6A 00 push 0
00434A5B . 68 E0444300 push 004344E0
00434A60 . E8 518A0600 call 0049D4B6
00434A65 . 83C4 0C add esp, 0C
00434A68 . 50 push eax
00434A69 . FFD7 call edi
00434A6B . 50 push eax ; |hSourceProcess
00434A6C . FF15 74134C00 call dword ptr [<&kernel32.DuplicateH>; \DuplicateHandle
00434A72 . 8B4424 10 mov eax, dword ptr [esp+10]
00434A76 . 83C0 F0 add eax, -10
00434A79 . C74424 30 FFF>mov dword ptr [esp+30], -1
00434A81 . 8D50 0C lea edx, dword ptr [eax+C]
00434A84 . 83C9 FF or ecx, FFFFFFFF
00434A87 . F0:0FC10A lock xadd dword ptr [edx], ecx
00434A8B . 49 dec ecx
00434A8C . 85C9 test ecx, ecx
00434A8E . 7F 0A jg short 00434A9A
00434A90 . 8B08 mov ecx, dword ptr [eax]
00434A92 . 8B11 mov edx, dword ptr [ecx]
00434A94 . 50 push eax
00434A95 . 8B42 04 mov eax, dword ptr [edx+4]
00434A98 . FFD0 call eax
00434A9A > B0 01 mov al, 1
00434A9C . E9 39020000 jmp 00434CDA
00434AA1 > 8B86 10100000 mov eax, dword ptr [esi+1010]
00434AA7 . 68 55CD4C00 push 004CCD55
00434AAC . 50 push eax
00434AAD . E8 F7840600 call 0049CFA9
00434AB2 . 83C4 08 add esp, 8
00434AB5 . 85C0 test eax, eax
00434AB7 . 0F95C0 setne al
00434ABA . 84C0 test al, al
00434ABC . 0F84 C5000000 je 00434B87
00434AC2 . 8B0D 0BFA4E00 mov ecx, dword ptr [4EFA0B]
00434AC8 . 68 FFFFFF00 push 0FFFFFF
00434ACD . 68 58CD4C00 push 004CCD58
00434AD2 . E8 A99CFFFF call 0042E780
00434AD7 . 8B4424 3C mov eax, dword ptr [esp+3C]
00434ADB . 8B4C24 10 mov ecx, dword ptr [esp+10]
00434ADF . 8B16 mov edx, dword ptr [esi]
00434AE1 . 8B52 10 mov edx, dword ptr [edx+10]
00434AE4 . 50 push eax
00434AE5 . 51 push ecx
00434AE6 . 8BCE mov ecx, esi
00434AE8 . FFD2 call edx
00434AEA . 8AD8 mov bl, al
00434AEC . 84DB test bl, bl
00434AEE . 74 2D je short 00434B1D
00434AF0 . 8B3D 70134C00 mov edi, dword ptr [<&kernel32.GetCu>; kernel32.GetCurrentProcess
00434AF6 . 6A 02 push 2
00434AF8 . 6A 00 push 0
00434AFA . 6A 00 push 0
00434AFC . 8D46 0C lea eax, dword ptr [esi+C]
00434AFF . 50 push eax
00434B00 . FFD7 call edi ; [GetCurrentProcess
00434B02 . 50 push eax
00434B03 . 56 push esi
00434B04 . 6A 00 push 0
00434B06 . 68 E0444300 push 004344E0
00434B0B . E8 A6890600 call 0049D4B6
00434B10 . 83C4 0C add esp, 0C
00434B13 . 50 push eax
00434B14 . FFD7 call edi
00434B16 . 50 push eax ; |hSourceProcess
00434B17 . FF15 74134C00 call dword ptr [<&kernel32.DuplicateH>; \DuplicateHandle
00434B1D > 80BE 28100000>cmp byte ptr [esi+1028], 0
00434B24 . 75 32 jnz short 00434B58
00434B26 32DB xor bl, bl
00434B28 . 75 2E jnz short 00434B58
00434B2A . 8B0D 0BFA4E00 mov ecx, dword ptr [4EFA0B]
00434B30 . 68 FF000000 push 0FF
00434B35 . 68 6CCD4C00 push 004CCD6C
00434B3A . E8 419CFFFF call 0042E780
00434B3F . 8B0D FBF94E00 mov ecx, dword ptr [4EF9FB]
00434B45 . 8B51 30 mov edx, dword ptr [ecx+30]
00434B48 . 6A 00 push 0 ; /lParam = 0
00434B4A . 6A 00 push 0 ; |wParam = 0
00434B4C . 68 01040000 push 401 ; |Message = WM_USER+1
00434B51 . 52 push edx ; |ThreadId
00434B52 . FF15 94164C00 call dword ptr [<&user32.PostThreadMe>; \PostThreadMessageA
00434B58 > 8B4424 10 mov eax, dword ptr [esp+10]
00434B5C . 83C0 F0 add eax, -10
00434B5F . C74424 30 FFF>mov dword ptr [esp+30], -1
00434B67 . 8D48 0C lea ecx, dword ptr [eax+C]
00434B6A . 83CA FF or edx, FFFFFFFF
00434B6D . F0:0FC111 lock xadd dword ptr [ecx], edx
00434B71 . 4A dec edx
00434B72 . 85D2 test edx, edx
00434B74 . 7F 0A jg short 00434B80
00434B76 . 8B08 mov ecx, dword ptr [eax]
00434B78 . 8B11 mov edx, dword ptr [ecx]
00434B7A . 50 push eax
00434B7B . 8B42 04 mov eax, dword ptr [edx+4]
00434B7E . FFD0 call eax
00434B80 > 8AC3 mov al, bl
00434B82 . E9 53010000 jmp 00434CDA
00434B87 > 8D4C24 10 lea ecx, dword ptr [esp+10]
00434B8B . 8DBE 20100000 lea edi, dword ptr [esi+1020]
00434B91 . 51 push ecx
00434B92 . 8BCF mov ecx, edi
00434B94 . E8 97CDFCFF call 00401930
00434B99 . 0FB75424 3C movzx edx, word ptr [esp+3C]
00434B9E . 68 FFFFFF00 push 0FFFFFF
00434BA3 . 8996 24100000 mov dword ptr [esi+1024], edx
00434BA9 . 8B0D 0BFA4E00 mov ecx, dword ptr [4EFA0B]
00434BAF . 68 8CCD4C00 push 004CCD8C ; \->: 开始连接服务器
00434BB4 . E8 C79BFFFF call 0042E780
00434BB9 . 8B3F mov edi, dword ptr [edi]
00434BBB . 57 push edi ; /Name
00434BBC . FF15 14174C00 call dword ptr [<&wsock32.gethostbyna>; \gethostbyname
00434BC2 . 8BF8 mov edi, eax
00434BC4 33FF xor edi, edi
00434BC6 75 5C jnz short 00434C24
00434BC8 . 8B0D 0BFA4E00 mov ecx, dword ptr [4EFA0B]
00434BCE . 68 FF000000 push 0FF
00434BD3 . 68 9CCD4C00 push 004CCD9C ; \->: 连接服务器失败,重新连接。
00434BD8 . E8 A39BFFFF call 0042E780
00434BDD . A1 FBF94E00 mov eax, dword ptr [4EF9FB]
00434BE2 . 8B48 30 mov ecx, dword ptr [eax+30]
00434BE5 . 57 push edi ; /lParam
00434BE6 . 57 push edi ; |wParam
00434BE7 . 68 01040000 push 401 ; |Message = WM_USER+1
00434BEC . 51 push ecx ; |ThreadId
00434BED . FF15 94164C00 call dword ptr [<&user32.PostThreadMe>; \PostThreadMessageA
00434BF3 . 8B4424 10 mov eax, dword ptr [esp+10]
00434BF7 . 83C0 F0 add eax, -10
00434BFA . C74424 30 FFF>mov dword ptr [esp+30], -1
00434C02 . 8D50 0C lea edx, dword ptr [eax+C]
00434C05 . 83C9 FF or ecx, FFFFFFFF
00434C08 . F0:0FC10A lock xadd dword ptr [edx], ecx
00434C0C . 49 dec ecx
00434C0D . 85C9 test ecx, ecx
00434C0F 0F8F C3000000 jg 00434CD8
00434C15 . 8B08 mov ecx, dword ptr [eax]
00434C17 . 8B11 mov edx, dword ptr [ecx]
00434C19 . 50 push eax
00434C1A . 8B42 04 mov eax, dword ptr [edx+4]
00434C1D . FFD0 call eax
00434C1F . E9 B4000000 jmp 00434CD8
00434C24 > 0FB796 241000>movzx edx, word ptr [esi+1024]
00434C2B . B9 02000000 mov ecx, 2
00434C30 . 52 push edx ; /NetShort
00434C31 . 66:894C24 18 mov word ptr [esp+18], cx ; |
00434C36 . FF15 10174C00 call dword ptr [<&wsock32.htons>] ; \ntohs
00434C3C . 66:894424 16 mov word ptr [esp+16], ax
00434C41 . 8B47 0C mov eax, dword ptr [edi+C]
00434C44 . 8B08 mov ecx, dword ptr [eax]
00434C46 . 8B11 mov edx, dword ptr [ecx]
00434C48 . 8B4E 08 mov ecx, dword ptr [esi+8]
00434C4B . 6A 10 push 10 ; /AddrLen = 10 (16.)
00434C4D . 8D4424 18 lea eax, dword ptr [esp+18] ; |
00434C51 . 50 push eax ; |pSockAddr
00434C52 . 51 push ecx ; |Socket
00434C53 . 895424 24 mov dword ptr [esp+24], edx ; |
00434C57 . FF15 0C174C00 call dword ptr [<&wsock32.connect>] ; \connect
00434C5D 83F8 FF cmp eax, -1
00434C60 74 3A je short 00434C9C
00434C62 8B3D 70134C00 mov edi, dword ptr [<&kernel32.GetCu>; kernel32.GetCurrentProcess
00434C68 6A 02 push 2
00434C6A 6A 00 push 0
00434C6C 6A 00 push 0
00434C6E 8D56 0C lea edx, dword ptr [esi+C]
00434C71 52 push edx
00434C72 FFD7 call edi
00434C74 50 push eax
00434C75 56 push esi
00434C76 6A 00 push 0
00434C78 . 68 E0444300 push 004344E0
00434C7D . E8 34880600 call 0049D4B6
00434C82 . 83C4 0C add esp, 0C
00434C85 . 50 push eax
00434C86 . FFD7 call edi
00434C88 . 50 push eax ; |hSourceProcess
00434C89 . FF15 74134C00 call dword ptr [<&kernel32.DuplicateH>; \DuplicateHandle
00434C8F . 8D4C24 10 lea ecx, dword ptr [esp+10]
00434C93 . E8 38CBFCFF call 004017D0
00434C98 . B0 01 mov al, 1
00434C9A . EB 3E jmp short 00434CDA
00434C9C > FF15 1C174C00 call dword ptr [<&wsock32.WSAGetLastE>; [WSAGetLastError
00434CA2 . 8B0D 0BFA4E00 mov ecx, dword ptr [4EFA0B]
00434CA8 . 68 FF000000 push 0FF
00434CAD . 68 B8CD4C00 push 004CCDB8 ; \->: 连接服务器失败,重新连接。
00434CB2 . E8 C99AFFFF call 0042E780
00434CB7 . A1 FBF94E00 mov eax, dword ptr [4EF9FB]
00434CBC . 8B48 30 mov ecx, dword ptr [eax+30]
00434CBF . 6A 00 push 0 ; /lParam = 0
00434CC1 . 6A 00 push 0 ; |wParam = 0
00434CC3 . 68 01040000 push 401 ; |Message = WM_USER+1
00434CC8 . 51 push ecx ; |ThreadId
00434CC9 . FF15 94164C00 call dword ptr [<&user32.PostThreadMe>; \PostThreadMessageA
00434CCF . 8D4C24 10 lea ecx, dword ptr [esp+10]
00434CD3 . E8 F8CAFCFF call 004017D0
00434CD8 > 32C0 xor al, al
00434CDA > 8B4C24 28 mov ecx, dword ptr [esp+28]
00434CDE . 64:890D 00000>mov dword ptr fs:[0], ecx
00434CE5 . 59 pop ecx
00434CE6 . 5F pop edi
00434CE7 . 5E pop esi
00434CE8 . 5B pop ebx
00434CE9 . 8B4C24 14 mov ecx, dword ptr [esp+14]
00434CED . 33CC xor ecx, esp
00434CEF . E8 5F7B0600 call 0049C853
00434CF4 . 83C4 24 add esp, 24
00434CF7 . C2 0C00 retn 0C
以下好像是网络验证的代码??不过这里面的几个跳转。改了之后基本都没用。反倒使程序跑步起来。我想应该是这个软件判断掉线与否,连接服务器的东西?并且无论充值与否。掉线与否,验证。都要掉用此程序。不过我觉得应该没多大价值。
0042E780 /$ 803D B2244F00>cmp byte ptr [4F24B2], 0
0042E787 74 46 je short 0042E7CF
0042E789 |. 8B81 1D060000 mov eax, dword ptr [ecx+61D]
0042E78F |. 8378 F4 00 cmp dword ptr [eax-C], 0
0042E793 |. 8D5424 04 lea edx, dword ptr [esp+4]
0042E797 |. 52 push edx ; /pResult
0042E798 |. 6A 64 push 64 ; |Timeout = 100. ms
0042E79A |. 6A 02 push 2 ; |Flags = SMTO_NORMAL|SMTO_ABORTIFHUNG
0042E79C 7E 18 jle short 0042E7B6
0042E79E |. 8D5424 14 lea edx, dword ptr [esp+14] ; |
0042E7A2 |. 52 push edx ; |lParam
0042E7A3 |. 50 push eax ; |wParam
0042E7A4 |. 8B41 20 mov eax, dword ptr [ecx+20] ; |
0042E7A7 |. 68 01040000 push 401 ; |Message = WM_USER+1
0042E7AC |. 50 push eax ; |hWnd
0042E7AD |. FF15 58164C00 call dword ptr [<&user32.SendMessageT>; \SendMessageTimeoutA
0042E7B3 |. C2 0800 retn 8
0042E7B6 |> 8B5424 10 mov edx, dword ptr [esp+10] ; |
0042E7BA |. 8D4424 14 lea eax, dword ptr [esp+14] ; |
0042E7BE |. 50 push eax ; |lParam
0042E7BF |. 8B41 20 mov eax, dword ptr [ecx+20] ; |
0042E7C2 |. 52 push edx ; |wParam
0042E7C3 |. 68 01040000 push 401 ; |Message = WM_USER+1
0042E7C8 |. 50 push eax ; |hWnd
0042E7C9 |. FF15 58164C00 call dword ptr [<&user32.SendMessageT>; \SendMessageTimeoutA
0042E7CF \> C2 0800 retn 8
[培训]科锐逆向工程师培训第53期2025年7月8日开班!