对彗星DNS加速器的分析(一)
FASTDNS作者是张慧星,该软件能很好地测试dns并自动设置系统,一直以来都在用却不知道原理,这2天我做了逆向分析,并打算将delphi的移植为vc++的源码,如果有可能以后会兼容ipv6 dns。提前声明:手动标注是逆向分析的重要步骤,下面代码中有些是API名,其余大部分有名称的都是分析了函数以后手动做的命名,为分析结构方便,以下汇集了我3天的成果,目的就是为了用VC++完成同样的功能,并期盼以后可以改进,比如兼容Ipv6和结合代理软件。
看到设置界面发现可以设置多线程的,因此从这里入手,bp CreateThread,发现断不下来,于是bm *!CreateThread*,断到这里:
ecx=param0;edx=dwStackSize;eax=lpThreadAttributes;param1=lpThreadId,param2=dwCreationFlags,param3
.text:0043D348 push ebp
.text:0043D349 mov ebp, esp
.text:0043D34B push ebx
.text:0043D34C push esi
.text:0043D34D push edi
.text:0043D34E mov edi, ecx//edi=param1
.text:0043D350 mov esi, edx//esi=dwStackSize
.text:0043D352 mov ebx, eax//ebx=lpThreadAttributes
.text:0043D354 mov eax, 8//DWORD
.text:0043D359 call sub_43B5C0
.text:0043D35E mov , edi//DWORD=param0;FARPROC
.text:0043D360 mov edx,
.text:0043D363 mov , edx//DWORD=param3;PARAM
.text:0043D366 mov byte_4B9C2D, 1
.text:0043D36D mov edx,
.text:0043D370 push edx ; lpThreadId
.text:0043D371 mov edx,
.text:0043D374 push edx ; dwCreationFlags
.text:0043D375 push eax ; lpParameter
.text:0043D376 mov eax, offset SpeedTest
.text:0043D37B push eax ; lpStartAddress
.text:0043D37C push esi ; dwStackSize
.text:0043D37D push ebx ; lpThreadAttributes
.text:0043D37E call CreateThread
.text:0043D383 pop edi
.text:0043D384 pop esi
.text:0043D385 pop ebx
.text:0043D386 pop ebp
.text:0043D387 retn 0Ch
可以看到实际只执行了参数中的函数指针部分,现在我们来找CreateThread的StartAddress和Param部分,往上层找到StartAddress的值为Classes::_17197
.text:004254A4 ; __fastcall Classes::TThread::TThread(bool)
.text:004254A4 @Classes@TThread@$bctr$qqro proc near ; CODE XREF: sub_40E908+33p
text:004254E6 push esi ; param3
.text:004254E7 push 4 ; dwCreationFlags
.text:004254E9 lea eax,
.text:004254EC push eax ; lpThreadId
.text:004254ED mov ecx, offset @Classes@_17197 ; a3
.text:004254F2 xor edx, edx ; dwStackSize
.text:004254F4 xor eax, eax ; lpThreadAttributes
.text:004254F6 call @BeginThread
来看该函数
text:00425404 ; Classes::_17197
.text:00425404 @Classes@_17197 proc near ; DATA XREF: Classes::TThread::TThread(bool)+49o
.text:00425404
.text:00425404 var_4= dword ptr -4
.text:00425404
.text:00425404 push ebp
.text:00425405 mov ebp, esp
.text:00425407 push ecx
.text:00425408 push ebx
.text:00425409 push esi
.text:0042540A push edi
.text:0042540B mov , eax
.text:0042540E xor eax, eax
.text:00425410 push ebp
.text:00425411 push offset j_@@HandleFinally_0 ; __linkproc__ HandleFinally
.text:00425416 push dword ptr fs:
.text:00425419 mov fs:, esp
.text:0042541C mov eax,
.text:0042541F cmp byte ptr , 0
.text:00425423 jnz short loc_42545A
.text:00425425 xor eax, eax
.text:00425427 push ebp
.text:00425428 push offset loc_425445
.text:0042542D push dword ptr fs:
.text:00425430 mov fs:, esp
.text:00425433 mov eax,
.text:00425436 mov edx,
.text:00425438 call dword ptr
.text:0042543B xor eax, eax
.text:0042543D pop edx
.text:0042543E pop ecx
.text:0042543F pop ecx
.text:00425440 mov fs:, edx
.text:00425443 jmp short loc_42545A
.text:00425445 ; ---------------------------------------------------------------------------
.text:00425445
.text:00425445 loc_425445: ; DATA XREF: Classes::_17197+24o
.text:00425445 jmp @@HandleAnyException ; __linkproc__ HandleAnyException
.text:0042544A ; ---------------------------------------------------------------------------
.text:0042544A call @AcquireExceptionObject
.text:0042544F mov edx,
.text:00425452 mov , eax
.text:00425455 call @@DoneExcept ; __linkproc__ DoneExcept
.text:0042545A
.text:0042545A loc_42545A: ; CODE XREF: Classes::_17197+1Fj
.text:0042545A ; Classes::_17197+3Fj
.text:0042545A xor eax, eax
.text:0042545C pop edx
.text:0042545D pop ecx
.text:0042545E pop ecx
.text:0042545F mov fs:, edx
.text:00425462 push offset unk_42549C
.text:00425467
.text:00425467 loc_425467: ; CODE XREF: .text:0042549Aj
.text:00425467 mov eax,
.text:0042546A mov bl,
.text:0042546D mov eax,
.text:00425470 mov esi,
.text:00425473 mov eax,
.text:00425476 mov byte ptr , 1
.text:0042547A mov eax,
.text:0042547D mov edx,
.text:0042547F call dword ptr
.text:00425481 test bl, bl
.text:00425483 jz short loc_42548D
.text:00425485 mov eax,
.text:00425488 call @TObject@Free ; TObject::Free
.text:0042548D
.text:0042548D loc_42548D: ; CODE XREF: Classes::_17197+7Fj
.text:0042548D mov eax, esi ; dwExitCode
.text:0042548F call @EndThread
实际执行的又是参数中的函数指针;先执行*(param+4)(param) 在执行*(param(param),
(感觉delphi的这个结构构造的很巧妙,传入CreateThread的param之前在堆上分配,而进了startaddress后自动释放,param里面也是StartAddress+Param的结构^_^可以无限这么套下去)
而param的值需要再往上找,
.text:004254A4 ; __fastcall Classes::TThread::TThread(bool)
.text:004254A4 @Classes@TThread@$bctr$qqro proc near ; CODE XREF: sub_40E908+33p
.text:004254A4
.text:004254A4 var_10= dword ptr -10h
.text:004254A4 var_C= dword ptr -0Ch
.text:004254A4 var_8= byte ptr -8
.text:004254A4 var_1= byte ptr -1
.text:004254A4
.text:004254A4 push ebp
.text:004254A5 mov ebp, esp
.text:004254A7 add esp, 0FFFFFFF0h
.text:004254AA push ebx
.text:004254AB push esi
.text:004254AC xor ebx, ebx
.text:004254AE mov , ebx
.text:004254B1 test dl, dl
.text:004254B3 jz short loc_4254BD
.text:004254B5 add esp, 0FFFFFFF0h
.text:004254B8 call @@ClassCreate ; __linkproc__ ClassCreate
.text:004254BD
.text:004254BD loc_4254BD: ; CODE XREF: Classes::TThread::TThread(bool)+Fj
.text:004254BD mov ebx, ecx
.text:004254BF mov , dl
.text:004254C2 mov esi, eax
.text:004254C4 xor eax, eax
.text:004254C6 push ebp
.text:004254C7 push offset loc_42554E
.text:004254CC push dword ptr fs: ; lpThreadIda
.text:004254CF mov fs:, esp
.text:004254D2 xor edx, edx
.text:004254D4 mov eax, esi
.text:004254D6 call @TObject@$bctr_0 ; TObject::`...'
.text:004254DB call sub_42522C
.text:004254E0 mov , bl
.text:004254E3 mov , bl
.text:004254E6 push esi ; param3
.text:004254E7 push 4 ; dwCreationFlags
.text:004254E9 lea eax,
.text:004254EC push eax ; lpThreadId
.text:004254ED mov ecx, offset @Classes@_17197 ; a3
.text:004254F2 xor edx, edx ; dwStackSize
.text:004254F4 xor eax, eax ; lpThreadAttributes
.text:004254F6 call @BeginThread
看到004254E6处push的第一个参数位esi,往上看到004254C2处eax做了赋值,往前再没给eax赋值的,因此eax是传入参数,还要往调用者找,(delphi程序喜欢用ecx eax edx传值,不过这样的话在调用系统api前后,要做栈<-->寄存器参数变换)
.text:0040E908 sub_40E908 proc near ; CODE XREF: sub_4094B4+46p
.text:0040E908
.text:0040E908 var_2A= byte ptr -2Ah
.text:0040E908 var_29= byte ptr -29h
.text:0040E908 var_28= dword ptr -28h
.text:0040E908 var_18= word ptr -18h
.text:0040E908 var_C= dword ptr -0Ch
.text:0040E908 var_8= byte ptr -8
.text:0040E908 var_4= dword ptr -4
.text:0040E908 arg_0= dword ptr8
.text:0040E908 arg_4= dword ptr0Ch
.text:0040E908 arg_8= dword ptr10h
.text:0040E908 arg_C= dword ptr14h
.text:0040E908 arg_10= dword ptr18h
.text:0040E908
.text:0040E908 push ebp
.text:0040E909 mov ebp, esp
.text:0040E90B add esp, 0FFFFFFD4h
.text:0040E90E mov , dl
.text:0040E911 test dl, dl
.text:0040E913 jle short loc_40E91A
.text:0040E915 call __ClassCreate
.text:0040E91A
.text:0040E91A loc_40E91A: ; CODE XREF: sub_40E908+Bj
.text:0040E91A mov , cl
.text:0040E91D mov , dl
.text:0040E920 mov , eax
.text:0040E923 mov eax, offset unk_4B3C0C
.text:0040E928 call @__InitExceptBlockLDTC
.text:0040E92D mov , 8
.text:0040E933 mov cl,
.text:0040E936 xor edx, edx
.text:0040E938 mov eax,
.text:0040E93B call @Classes@TThread@$bctr$qqro ; Classes::TThread::TThread(bool)
看到0040E938处var_4对eax赋值,而往上0040E920处eax又赋值给var_4,之前eax再没有赋值行为,同样eax也是该函数参数,继续往调用者走
text:004094B4 push ebp
.text:004094B5 mov ebp, esp
.text:004094B7 add esp, 0FFFFFFD4h
.text:004094BA push ebx
.text:004094BB push esi
.text:004094BC push edi
.text:004094BD mov , dl
.text:004094C0 test dl, dl
.text:004094C2 jle short loc_4094C9
.text:004094C4 call __ClassCreate
.text:004094C9
.text:004094C9 loc_4094C9: ; CODE XREF: sub_4094B4+Ej
.text:004094C9 mov ebx, ecx
.text:004094CB mov , dl
.text:004094CE mov , eax
.text:004094D1 mov eax, offset unk_4B24D0
.text:004094D6 call @__InitExceptBlockLDTC
.text:004094DB mov , 8
.text:004094E1 mov edx,
.text:004094E4 mov ecx, ebx
.text:004094E6 push edx
.text:004094E7 push
.text:004094EA push
.text:004094ED mov eax,
.text:004094F0 push eax
.text:004094F1 mov edx,
.text:004094F4 push edx
.text:004094F5 xor edx, edx
.text:004094F7 mov eax,
.text:004094FA call sub_40E908
该层同理
text:00402748 push ebp
.text:00402749 mov ebp, esp
.text:0040274B add esp, 0FFFFFF98h
.text:0040274E mov eax, offset unk_4A2608
.text:00402753 push ebx
.text:00402754 push esi
.text:00402755 push edi
.text:00402756 mov esi,
.text:00402759 call @__InitExceptBlockLDTC
.text:0040275E mov ebx,
.text:00402761 cmp byte ptr , 1
.text:00402765 jnz loc_4028A0
.text:0040276B mov , 8
.text:00402771 push ebx
.text:00402772 lea eax,
.text:00402775 mov , offset sub_402990
.text:0040277C mov , esi
.text:0040277F mov dl, 1
.text:00402781 push dword ptr
.text:00402784 push dword ptr
.text:00402786 mov ecx,
.text:0040278C push ecx
.text:0040278D mov cl, 1
.text:0040278F mov eax,
.text:00402795 push eax
.text:00402796 mov eax, off_4B2618
.text:0040279B call sub_4094B4
最后找到这里,发现eax是4B2618,来看该处2个函数指针(应该说是虚函数表,从后面可以看到param其实是个类):
.data:004B2618 off_4B2618 dd offset _cls_DNSSpending_TDNSSpending//虚表
。。。。。。。。。。。//类成员
.data:004B2664 _cls_DNSSpending_TDNSSpending dd offset @TThread@DoTerminate
.data:004B2664 ; DATA XREF: .text:00409906o
.data:004B2664 ; .data:off_4B2618o
.data:004B2664 ; TThread::DoTerminate
.data:004B2668 dd offset sub_40EA3C
.data:004B266C dd offset sub_40970C
再往上走可以看到程序按照分的线程数创建线程:
.text:00402940 sub_402940 proc near ; CODE XREF: showstatus+43p
.text:00402940 ; _TfrmFastDNS_actTestSpendingExecute+138p
.text:00402940
.text:00402940 var_8 = dword ptr -8
.text:00402940 var_4 = dword ptr -4
.text:00402940 arg_0 = dword ptr8
.text:00402940 arg_4 = dword ptr0Ch
.text:00402940
.text:00402940 push ebp
.text:00402941 mov ebp, esp
.text:00402943 add esp, 0FFFFFFF8h
.text:00402946 push ebx
.text:00402947 push esi
.text:00402948 push edi
.text:00402949 mov edi,
.text:0040294C mov ebx,
.text:0040294F cmp dword ptr , 0
.text:00402956 jz short loc_402988
.text:00402958 xor esi, esi
.text:0040295A cmp edi, esi
.text:0040295C jle short loc_402988
.text:0040295E
.text:0040295E loc_40295E: ; CODE XREF: sub_402940+46j
.text:0040295E push 0
.text:00402960 push 0
.text:00402962 mov , offset sub_402748
.text:00402969 mov , ebx
.text:0040296C lea eax,
.text:0040296F push dword ptr
.text:00402972 push dword ptr
.text:00402974 mov ecx,
.text:0040297A push ecx
.text:0040297B call sub_40C400
.text:00402980 add esp, 14h
.text:00402983 inc esi
.text:00402984 cmp edi, esi
.text:00402986 jg short loc_40295E
.text:00402988
.text:00402988 loc_402988: ; CODE XREF: sub_402940+16j
.text:00402988 ; sub_402940+1Cj
.text:00402988 pop edi
.text:00402989 pop esi
.text:0040298A pop ebx
.text:0040298B pop ecx
.text:0040298C pop ecx
.text:0040298D pop ebp
.text:0040298E retn
.text:0040298E sub_402940 endp
.
再往上走就是TfrmFastDNS_actTestSpendingExecute,也就是点击了测试按钮之后的回调函数
.text:004033D4 _TfrmFastDNS_actTestSpendingExecute proc near
.text:004033D4 ; DATA XREF: .data:fastdns___CPPdebugHook+13E3o
.text:004033D4
.text:004033D4 var_38 = dword ptr -38h
.text:004033D4 var_34 = dword ptr -34h
.text:004033D4 var_30 = dword ptr -30h
.text:004033D4 var_20 = word ptr -20h
.text:004033D4 var_14 = dword ptr -14h
.text:004033D4 var_C = byte ptr -0Ch
.text:004033D4 var_8 = byte ptr -8
.text:004033D4 var_4 = byte ptr -4
.text:004033D4
.text:004033D4 push ebp
.text:004033D5 mov ebp, esp
.text:004033D7 add esp, 0FFFFFFC8h
.text:004033DA push ebx
.text:004033DB mov ebx, eax
.text:004033DD mov eax, offset unk_4A2954
.text:004033E2 call @__InitExceptBlockLDTC
.text:004033E7 xor edx, edx
.text:004033E9 mov eax,
.text:004033EF call sub_443028
.text:004033F4 xor edx, edx
.text:004033F6 mov eax,
.text:004033FC call sub_443028
.text:00403401 mov byte ptr , 0
.text:00403408 call @GetCurrentTime
.text:0040340D mov , eax
.text:00403413 mov edx, 8000000Fh
.text:00403418 mov eax,
.text:0040341E call @TControl@SetColor ; TControl::SetColor
.text:00403423 mov , 8
.text:00403429 mov edx, offset unk_4A22AA
.text:0040342E lea eax,
.text:00403431 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:00403436 inc
.text:00403439 mov edx,
.text:0040343B mov eax,
.text:00403441 call @TControl@SetText ; TControl::SetText
.text:00403446 dec
.text:00403449 lea eax,
.text:0040344C mov edx, 2
.text:00403451 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00403456 mov dl, 1
.text:00403458 mov eax,
.text:0040345E call unknown_libname_1860 ; Delphi2006/BDS2006 Visual Component Library
.text:0040345E ; BDS 4.0 RTL and VCL
.text:00403463 mov , 14h
.text:00403469 mov edx, offset unk_4A22AB
.text:0040346E lea eax,
.text:00403471 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:00403476 inc
.text:00403479 mov edx,
.text:0040347B mov eax,
.text:00403481 call @TControl@SetText ; TControl::SetText
.text:00403486 dec
.text:00403489 lea eax,
.text:0040348C mov edx, 2
.text:00403491 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00403496 xor edx, edx
.text:00403498 mov eax,
.text:0040349E call sub_443028
.text:004034A3 mov eax,
.text:004034A9 test eax, eax
.text:004034AB jz short loc_4034CC
.text:004034AD push 0
.text:004034AF push 0
.text:004034B1 mov , offset sub_4033B0
.text:004034B8 mov , ebx
.text:004034BB lea edx,
.text:004034BE push dword ptr
.text:004034C1 push dword ptr
.text:004034C3 push eax
.text:004034C4 call sub_40C400
.text:004034C9 add esp, 14h
.text:004034CC
.text:004034CC loc_4034CC: ; CODE XREF: _TfrmFastDNS_actTestSpendingExecute+D7j
.text:004034CC xor eax, eax
.text:004034CE xor edx, edx
.text:004034D0 mov , eax
.text:004034D6 lea eax,
.text:004034D9 mov , 20h
.text:004034DF call unknown_libname_1523 ; CBuilder 4 and Delphi 4 VCL
.text:004034DF ; CBuilder 5 runtime
.text:004034E4 inc
.text:004034E7 mov edx,
.text:004034E9 mov eax,
.text:004034EF call @TControl@SetText ; TControl::SetText
.text:004034F4 dec
.text:004034F7 lea eax,
.text:004034FA mov edx, 2
.text:004034FF call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00403504 mov ecx,
.text:0040350A push ecx
.text:0040350B push ebx
.text:0040350C call sub_402940
.text:00403511 add esp, 8
.text:00403514 mov eax,
.text:00403517 mov large fs:0, eax
.text:0040351D pop ebx
.text:0040351E mov esp, ebp
.text:00403520 pop ebp
.text:00403521 retn
.text:00403521 _TfrmFastDNS_actTestSpendingExecute endp
.text:00403521
.
可知以下3个函数为关键函数,下断点:
0:000> bp 425690 =>STOP
0:000> bp 40ea3c =>FUNC1
0:000> bp 40970c =>FUNC2
发现正如上面分析那样,调用顺序为FUNC1 -> FUNC2 -> STOPFUNC2通过调用堆栈可以得知是在FUNC1中调用的
先来分析三个函数类型:前面425404已经得知第一个和第二个
先断在425690,看调用栈:
0:001> k
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
0273ff74 0043d33a FastDNS!Rtflabelinitialization$qqrv+0xd7d8
0273ff88 76b2919f FastDNS!Rtflabelinitialization$qqrv+0x25482
0273ff94 7745b5af KERNEL32!BaseThreadInitThunk+0xe
0273ffdc 7745b57a ntdll!__RtlUserThreadStart+0x2f
0273ffec 00000000 ntdll!_RtlUserThreadStart+0x1b
通过在上层函数中查看当前函数调用之前的状况粗略分析类型:
.text:0043D310 push ebp
.text:0043D311 mov ebp, esp
.text:0043D313 call @System@_16542 ; System::_16542
.text:0043D318 push ebp
.text:0043D319 xor ecx, ecx
.text:0043D31B push offset @System@_16754 ; System::_16754
.text:0043D320 mov edx, fs:
.text:0043D323 push edx
.text:0043D324 mov fs:, esp
.text:0043D327 mov eax,
.text:0043D32A mov ecx,
.text:0043D32D mov edx,
.text:0043D32F push ecx
.text:0043D330 push edx
.text:0043D331 call sub_43B5E0
.text:0043D336 pop edx
.text:0043D337 pop eax
.text:0043D338 call edx
.text:0043D33A xor edx, edx
.text:0043D33C pop ecx
.text:0043D33D mov fs:, ecx
.text:0043D340 pop ecx
.text:0043D341 pop ebp
.text:0043D342 pop ebp
.text:0043D343 retn 4
根据栈平衡,同时
call edx处可能传递的参数应该在当前call之前,上个call之后,加上调用者代码可以推断使用了eax,没有用到栈参数,其他2函数同理
再到STOP中看:(显然这是终止线程之类的收尾工作,所以这里我取名STOP)
.text:00425690 ; TThread::DoTerminate
.text:00425690 @TThread@DoTerminate proc near ; DATA XREF: .text:_cls_Classes_TThreado
.text:00425690 ; .data:_cls_CalcSpendingThread_TCalcSpendingThreado
.text:00425690 cmp word ptr , 0
.text:00425695 jz short locret_4256A2
.text:00425697 push eax
.text:00425698 push offset @Controls@TSizeConstraints@Change$qqrv ; Delphi 5 Visual Component Library
.text:00425698 ; Delphi2006/BDS2006 Visual Component Library
.text:0042569D call terminate
.text:004256A2
.text:004256A2 locret_4256A2: ; CODE XREF: TThread::DoTerminate+5j
.text:004256A2 retn
来到这里:
.text:0040EA3C sub_40EA3C proc near ; DATA XREF: .data:fastdns___CPPdebugHook+105D0o
.text:0040EA3C ; .data:fastdns___CPPdebugHook+11C3Co
.text:0040EA3C
.text:0040EA3C var_14 = dword ptr -14h
.text:0040EA3C var_10 = dword ptr -10h
.text:0040EA3C pertime = dword ptr -0Ch
.text:0040EA3C var_8 = dword ptr -8
.text:0040EA3C a1 = dword ptr -4
.text:0040EA3C
.text:0040EA3C push ebp
.text:0040EA3D mov ebp, esp
.text:0040EA3F add esp, 0FFFFFFECh
.text:0040EA42 mov , eax
.text:0040EA45 mov eax,
.text:0040EA48 mov byte ptr , 1
.text:0040EA4C lea edx,
.text:0040EA4F push edx
.text:0040EA50 mov ecx,
.text:0040EA53 push dword ptr
.text:0040EA56 push
.text:0040EA59 call sub_40EAE0
.text:0040EA5E add esp, 0Ch
.text:0040EA61 test al, al
.text:0040EA63 jz short loc_40EA8B
.text:0040EA65 push
.text:0040EA68 push
.text:0040EA6B mov edx,
.text:0040EA6E push dword ptr
.text:0040EA71 call sub_40EABC
.text:0040EA76 add esp, 0Ch
.text:0040EA79 push 0
.text:0040EA7B mov ecx,
.text:0040EA7E push dword ptr
.text:0040EA81 call sub_40EAD0
.text:0040EA86 add esp, 8
.text:0040EA89 jmp short loc_40EA9B
.text:0040EA8B ; ---------------------------------------------------------------------------
.text:0040EA8B
.text:0040EA8B loc_40EA8B: ; CODE XREF: sub_40EA3C+27j
.text:0040EA8B push 3
.text:0040EA8D mov eax,
.text:0040EA90 push dword ptr
.text:0040EA93 call sub_40EAD0
.text:0040EA98 add esp, 8
.text:0040EA9B
.text:0040EA9B loc_40EA9B: ; CODE XREF: sub_40EA3C+4Dj
.text:0040EA9B mov , offset sub_40EA10
.text:0040EAA2 mov edx,
.text:0040EAA5 mov , edx
.text:0040EAA8 lea ecx,
.text:0040EAAB push dword ptr ; a5
.text:0040EAAE push dword ptr ; a4
.text:0040EAB0 mov eax, ; a1
.text:0040EAB3 call terminate
.text:0040EAB8 mov esp, ebp
.text:0040EABA pop ebp
.text:0040EABB retn
.
text:0040EAE0 sub_40EAE0 proc near ; CODE XREF: sub_40EA3C+1Dp
.text:0040EAE0
.text:0040EAE0 var_40 = qword ptr -40h
.text:0040EAE0 var_38 = dword ptr -38h
.text:0040EAE0 usedtime = qword ptr -34h
.text:0040EAE0 totoaltime = dword ptr -2Ch
.text:0040EAE0 var_28 = dword ptr -28h
.text:0040EAE0 var_18 = word ptr -18h
.text:0040EAE0 var_C = dword ptr -0Ch
.text:0040EAE0 var_4 = byte ptr -4
.text:0040EAE0 arg_0 = dword ptr8
.text:0040EAE0 arg_4 = dword ptr0Ch
.text:0040EAE0 arg_8 = dword ptr10h
.text:0040EAE0
.text:0040EAE0 push ebp
.text:0040EAE1 mov ebp, esp
.text:0040EAE3 add esp, 0FFFFFFC0h
.text:0040EAE6 mov eax, offset unk_4B3C64
.text:0040EAEB call @__InitExceptBlockLDTC
.text:0040EAF0 mov edx,
.text:0040EAF3 push dword ptr
.text:0040EAF6 push
.text:0040EAF9 call unknown_libname_1142 ; CBuilder 5 runtime
.text:0040EAFE add esp, 8
.text:0040EB01 mov , 8
.text:0040EB07 lea eax,
.text:0040EB0A call unknown_libname_1128 ; CBuilder 5 runtime
.text:0040EB0F inc
.text:0040EB12 mov , 14h
.text:0040EB18 xor edx, edx
.text:0040EB1A mov , edx
.text:0040EB1D xor ecx, ecx
.text:0040EB1F mov dword ptr , ecx
.text:0040EB22 jmp short loc_40EB61
.text:0040EB24 ; ---------------------------------------------------------------------------
.text:0040EB24
.text:0040EB24 loc_40EB24: ; CODE XREF: sub_40EAE0+8Aj
.text:0040EB24 lea eax,
.text:0040EB27 push eax
.text:0040EB28 mov edx,
.text:0040EB2B push edx
.text:0040EB2C mov ecx,
.text:0040EB2E call dword ptr
.text:0040EB31 add esp, 8
.text:0040EB34 test al, al
.text:0040EB36 jz short loc_40EB54
.text:0040EB38 mov eax, dword ptr
.text:0040EB3B add , eax
.text:0040EB3E push
.text:0040EB41 call @AspHlpr@TMTSASPObject@getObjectContext$qv_4 ; CBuilder 5 runtime
.text:0040EB41 ; BCC v4.x/5.x class library 32 bit
.text:0040EB46 pop ecx
.text:0040EB47 dec eax
.text:0040EB48 push eax
.text:0040EB49 push
.text:0040EB4C call unknown_libname_1142 ; CBuilder 5 runtime
.text:0040EB51 add esp, 8
.text:0040EB54
.text:0040EB54 loc_40EB54: ; CODE XREF: sub_40EAE0+56j
.text:0040EB54 mov eax, 64h ; dwMilliseconds
.text:0040EB59 call @Sleep
.text:0040EB5E inc dword ptr
.text:0040EB61
.text:0040EB61 loc_40EB61: ; CODE XREF: sub_40EAE0+42j
.text:0040EB61 mov edx, dword ptr
.text:0040EB64 mov ecx,
.text:0040EB67 cmp edx,
.text:0040EB6A jl short loc_40EB24
.text:0040EB6C push
.text:0040EB6F call @AspHlpr@TMTSASPObject@getObjectContext$qv_4 ; CBuilder 5 runtime
.text:0040EB6F ; BCC v4.x/5.x class library 32 bit
.text:0040EB74 pop ecx
.text:0040EB75 mov edx,
.text:0040EB78 cmp eax,
.text:0040EB7B jz short loc_40EBC9
.text:0040EB7D push
.text:0040EB80 call @AspHlpr@TMTSASPObject@getObjectContext$qv_4 ; CBuilder 5 runtime
.text:0040EB80 ; BCC v4.x/5.x class library 32 bit
.text:0040EB85 pop ecx
.text:0040EB86 mov ecx,
.text:0040EB89 mov edx,
.text:0040EB8C sub edx, eax
.text:0040EB8E mov , edx
.text:0040EB91 fild
.text:0040EB94 mov eax,
.text:0040EB97 mov dword ptr , eax
.text:0040EB9A xor ecx, ecx
.text:0040EB9C mov dword ptr , ecx
.text:0040EB9F fild
.text:0040EBA2 fdivrpst(1), st
.text:0040EBA4 mov eax,
.text:0040EBA7 fstp qword ptr
.text:0040EBA9 mov al, 1
.text:0040EBAB push eax
.text:0040EBAC dec
.text:0040EBAF lea eax,
.text:0040EBB2 mov edx, 2
.text:0040EBB7 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040EBBC pop eax
.text:0040EBBD mov edx,
.text:0040EBC0 mov large fs:0, edx
.text:0040EBC7 jmp short loc_40EBE7
.text:0040EBC9 ; ---------------------------------------------------------------------------
.text:0040EBC9
.text:0040EBC9 loc_40EBC9: ; CODE XREF: sub_40EAE0+9Bj
.text:0040EBC9 xor eax, eax
.text:0040EBCB push eax
.text:0040EBCC dec
.text:0040EBCF lea eax,
.text:0040EBD2 mov edx, 2
.text:0040EBD7 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040EBDC pop eax
.text:0040EBDD mov edx,
.text:0040EBE0 mov large fs:0, edx
.text:0040EBE7
.text:0040EBE7 loc_40EBE7: ; CODE XREF: sub_40EAE0+E7j
.text:0040EBE7 mov esp, ebp
.text:0040EBE9 pop ebp
.text:0040EBEA retn
.text:0040EBEA sub_40EAE0 endp
.t
可以得知该函数循环执行指定次数的dns连接,使用的时间累加到totaltime中,后面使用该时间计算平均用时,整个程序精华在于 (unsigned __int8)(*(int (__cdecl **)(int, int *))(*(_DWORD *)a1 + 8))(a1, &usedtime)这个call,实际上是FUNC2,而sub_40EA3C中可以解释为:
.text:0040EA3C sub_40EA3C proc near ; DATA XREF: .data:fastdns___CPPdebugHook+105D0o
.text:0040EA3C ; .data:fastdns___CPPdebugHook+11C3Co
.text:0040EA3C
.text:0040EA3C var_14 = dword ptr -14h
.text:0040EA3C var_10 = dword ptr -10h
.text:0040EA3C pertime = dword ptr -0Ch
.text:0040EA3C var_8 = dword ptr -8
.text:0040EA3C a1 = dword ptr -4
.text:0040EA3C
.text:0040EA3C push ebp
.text:0040EA3D mov ebp, esp
.text:0040EA3F add esp, 0FFFFFFECh
.text:0040EA42 mov , eax
.text:0040EA45 mov eax,
.text:0040EA48 mov byte ptr , 1
.text:0040EA4C lea edx,
.text:0040EA4F push edx
.text:0040EA50 mov ecx,
.text:0040EA53 push dword ptr
.text:0040EA56 push
.text:0040EA59 call sub_40EAE0
.text:0040EA5E add esp, 0Ch
.text:0040EA61 test al, al
.text:0040EA63 jz short loc_40EA8B
.text:0040EA65 push
.text:0040EA68 push
.text:0040EA6B mov edx,
.text:0040EA6E push dword ptr
.text:0040EA71 call sub_40EABC
.text:0040EA76 add esp, 0Ch
.text:0040EA79 push 0
.text:0040EA7B mov ecx,
.text:0040EA7E push dword ptr
.text:0040EA81 call sub_40EAD0
.text:0040EA86 add esp, 8
.text:0040EA89 jmp short loc_40EA9B
.text:0040EA8B ; ---------------------------------------------------------------------------
.text:0040EA8B
.text:0040EA8B loc_40EA8B: ; CODE XREF: sub_40EA3C+27j
.text:0040EA8B push 3
.text:0040EA8D mov eax,
.text:0040EA90 push dword ptr
.text:0040EA93 call sub_40EAD0
.text:0040EA98 add esp, 8
.text:0040EA9B
.text:0040EA9B loc_40EA9B: ; CODE XREF: sub_40EA3C+4Dj
.text:0040EA9B mov , offset sub_40EA10
.text:0040EAA2 mov edx,
.text:0040EAA5 mov , edx
.text:0040EAA8 lea ecx,
.text:0040EAAB push dword ptr ; a5
.text:0040EAAE push dword ptr ; a4
.text:0040EAB0 mov eax, ; a1
.text:0040EAB3 call terminate
.text:0040EAB8 mov esp, ebp
.text:0040EABA pop ebp
.text:0040EABB retn
.
现在同时推测param类结构,可知
+00h virtualtable
+0 STOP
+4 FUNC1
+8 FUNC2
+04h HANDLE hthread ??
+0Fh bool Initaled ??
+10h
+18h FARPROC func0
+1Ch LPVOID param0
+20h FARPROC func1//OnIdle处理函数
+24h LPVOID param1
+28h BOOL IsMainthread??
+30h struct*
+00h int leftTime//剩余次数
+08h double pertime//平均消耗时间
+10h flag statu//成功0 失败3
+38h FARPROC func2
+3Ch DWORD param2
+40h int repeatTime//取样次数
+44h int timeout//超时
设置DNS:
通过字符串搜索,可以定位到TfrmSetDNS_btnConfirmClick函数为点击了设置dns窗口的“设置”按钮后回调函数
.text:004074B4 _TfrmSetDNS_btnConfirmClick proc near ; DATA XREF: .data:fastdns___CPPdebugHook+1E4Co
.text:004074B4
.text:004074B4 var_164 = dword ptr -164h
.text:004074B4 var_160 = dword ptr -160h
.text:004074B4 var_15C = byte ptr -15Ch
.text:004074B4 var_154 = dword ptr -154h
.text:004074B4 var_150 = dword ptr -150h
.text:004074B4 var_14C = byte ptr -14Ch
.text:004074B4 var_144 = dword ptr -144h
.text:004074B4 var_140 = dword ptr -140h
.text:004074B4 var_13C = dword ptr -13Ch
.text:004074B4 var_138 = byte ptr -138h
.text:004074B4 var_130 = dword ptr -130h
.text:004074B4 var_12C = dword ptr -12Ch
.text:004074B4 var_128 = dword ptr -128h
.text:004074B4 var_124 = dword ptr -124h
.text:004074B4 var_120 = byte ptr -120h
.text:004074B4 var_118 = dword ptr -118h
.text:004074B4 var_114 = dword ptr -114h
.text:004074B4 var_110 = dword ptr -110h
.text:004074B4 var_10C = dword ptr -10Ch
.text:004074B4 var_108 = dword ptr -108h
.text:004074B4 var_104 = byte ptr -104h
.text:004074B4 var_FC = dword ptr -0FCh
.text:004074B4 var_F8 = dword ptr -0F8h
.text:004074B4 var_F4 = dword ptr -0F4h
.text:004074B4 var_F0 = byte ptr -0F0h
.text:004074B4 var_E8 = dword ptr -0E8h
.text:004074B4 var_E4 = dword ptr -0E4h
.text:004074B4 var_E0 = dword ptr -0E0h
.text:004074B4 var_DC = byte ptr -0DCh
.text:004074B4 var_D4 = dword ptr -0D4h
.text:004074B4 var_D0 = byte ptr -0D0h
.text:004074B4 var_C8 = dword ptr -0C8h
.text:004074B4 var_C4 = dword ptr -0C4h
.text:004074B4 var_C0 = dword ptr -0C0h
.text:004074B4 var_BC = dword ptr -0BCh
.text:004074B4 var_AC = word ptr -0ACh
.text:004074B4 var_A0 = dword ptr -0A0h
.text:004074B4 var_98 = dword ptr -98h
.text:004074B4 var_94 = dword ptr -94h
.text:004074B4 var_90 = dword ptr -90h
.text:004074B4 var_80 = dword ptr -80h
.text:004074B4 var_78 = byte ptr -78h
.text:004074B4 handle = dword ptr -70h
.text:004074B4 var_60 = dword ptr -60h
.text:004074B4 var_58 = byte ptr -58h
.text:004074B4 var_50 = dword ptr -50h
.text:004074B4 var_4C = dword ptr -4Ch
.text:004074B4 var_48 = byte ptr -48h
.text:004074B4 var_40 = dword ptr -40h
.text:004074B4 addrstring = dword ptr -3Ch
.text:004074B4
.text:004074B4 push ebp
.text:004074B5 mov ebp, esp
.text:004074B7 add esp, 0FFFFFE9Ch
.text:004074BD push ebx
.text:004074BE push esi
.text:004074BF push edi
.text:004074C0 mov , edx
.text:004074C6 mov , eax
.text:004074CC mov eax, offset unk_4A3BBC
.text:004074D1 call @__InitExceptBlockLDTC
.text:004074D6 mov , 14h
.text:004074DF inc
.text:004074E5 lea edx,
.text:004074E8 mov , edx
.text:004074EE xor ecx, ecx
.text:004074F0 xor eax, eax
.text:004074F2 mov , ecx
.text:004074F5 mov , eax
.text:004074F8 xor edx, edx
.text:004074FA inc
.text:00407500 mov , edx
.text:00407503 inc
.text:00407509 inc
.text:0040750F inc
.text:00407515 dec
.text:0040751B mov , 8
.text:00407524 xor ebx, ebx
.text:00407526 jmp loc_4075C0
.text:0040752B ; ---------------------------------------------------------------------------
.text:0040752B
.text:0040752B loc_40752B: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+127j
.text:0040752B mov , 2Ch
.text:00407534 mov eax,
.text:0040753A xor edx, edx
.text:0040753C lea ecx,
.text:0040753F mov eax,
.text:00407545 mov , edx
.text:00407548 add eax, 218h
.text:0040754D inc
.text:00407553 mov edx, ebx
.text:00407555 mov eax,
.text:00407557 mov esi,
.text:00407559 call dword ptr
.text:0040755C mov esi,
.text:0040755F cmp esi,
.text:00407562 jz short loc_407590
.text:00407564 mov edi, esi
.text:00407566 mov , edi
.text:00407569 test edi, edi
.text:0040756B jz short loc_40758A
.text:0040756D mov , 38h
.text:00407576 lea edx,
.text:00407579 mov eax,
.text:0040757C call @System@AnsiString@$bctr$qqrrx17System@AnsiString ; System::AnsiString::AnsiString(System::AnsiString &)
.text:00407581 mov , 2Ch
.text:0040758A
.text:0040758A loc_40758A: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+B7j
.text:0040758A add dword ptr , 4
.text:0040758E jmp short loc_4075AC
.text:00407590 ; ---------------------------------------------------------------------------
.text:00407590
.text:00407590 loc_407590: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+AEj
.text:00407590 push 1
.text:00407592 lea ecx,
.text:00407598 push 1
.text:0040759A push ecx
.text:0040759B lea eax,
.text:0040759E lea edx,
.text:004075A1 push eax
.text:004075A2 push esi
.text:004075A3 push edx
.text:004075A4 call sub_403C34
.text:004075A9 add esp, 18h
.text:004075AC
.text:004075AC loc_4075AC: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+DAj
.text:004075AC dec
.text:004075B2 lea eax,
.text:004075B5 mov edx, 2
.text:004075BA call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004075BF inc ebx
.text:004075C0
.text:004075C0 loc_4075C0: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+72j
.text:004075C0 mov ecx,
.text:004075C6 mov esi,
.text:004075CC add esi, 218h
.text:004075D2 mov eax,
.text:004075D4 mov edx,
.text:004075D6 call dword ptr
.text:004075D9 cmp ebx, eax
.text:004075DB jl loc_40752B
.text:004075E1 mov , 44h
.text:004075EA inc
.text:004075F0 lea ecx,
.text:004075F3 mov , ecx
.text:004075F9 xor eax, eax
.text:004075FB xor edx, edx
.text:004075FD mov , eax
.text:00407600 mov , edx
.text:00407603 xor ecx, ecx
.text:00407605 inc
.text:0040760B mov , ecx
.text:0040760E inc
.text:00407614 inc
.text:0040761A inc
.text:00407620 dec
.text:00407626 mov , 8
.text:0040762F xor ebx, ebx
.text:00407631 jmp loc_4076E6
.text:00407636 ; ---------------------------------------------------------------------------
.text:00407636
.text:00407636 loc_407636: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+24Dj
.text:00407636 mov eax,
.text:0040763C mov edx, ebx
.text:0040763E mov eax,
.text:00407644 call @TCheckListBox@GetChecked ; TCheckListBox::GetChecked
.text:00407649 test al, al
.text:0040764B jz loc_4076E5
.text:00407651 mov , 5Ch
.text:0040765A mov ecx,
.text:00407660 xor edx, edx
.text:00407662 mov eax,
.text:00407668 mov , edx
.text:0040766B add eax, 218h
.text:00407670 mov edx, ebx
.text:00407672 inc
.text:00407678 lea ecx,
.text:0040767B mov eax,
.text:0040767D mov esi,
.text:0040767F call dword ptr
.text:00407682 mov esi,
.text:00407685 cmp esi,
.text:00407688 jz short loc_4076B6
.text:0040768A mov edi, esi
.text:0040768C mov , edi
.text:0040768F test edi, edi
.text:00407691 jz short loc_4076B0
.text:00407693 mov , 68h
.text:0040769C lea edx,
.text:0040769F mov eax,
.text:004076A2 call @System@AnsiString@$bctr$qqrrx17System@AnsiString ; System::AnsiString::AnsiString(System::AnsiString &)
.text:004076A7 mov , 5Ch
.text:004076B0
.text:004076B0 loc_4076B0: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+1DDj
.text:004076B0 add dword ptr , 4
.text:004076B4 jmp short loc_4076D2
.text:004076B6 ; ---------------------------------------------------------------------------
.text:004076B6
.text:004076B6 loc_4076B6: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+1D4j
.text:004076B6 push 1
.text:004076B8 lea ecx,
.text:004076BE push 1
.text:004076C0 push ecx
.text:004076C1 lea eax,
.text:004076C4 lea edx,
.text:004076C7 push eax
.text:004076C8 push esi
.text:004076C9 push edx
.text:004076CA call sub_403C34
.text:004076CF add esp, 18h
.text:004076D2
.text:004076D2 loc_4076D2: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+200j
.text:004076D2 dec
.text:004076D8 lea eax,
.text:004076DB mov edx, 2
.text:004076E0 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004076E5
.text:004076E5 loc_4076E5: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+197j
.text:004076E5 inc ebx
.text:004076E6
.text:004076E6 loc_4076E6: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+17Dj
.text:004076E6 mov ecx,
.text:004076EC mov esi,
.text:004076F2 add esi, 218h
.text:004076F8 mov eax,
.text:004076FA mov edx,
.text:004076FC call dword ptr
.text:004076FF cmp ebx, eax
.text:00407701 jl loc_407636
.text:00407707 mov ecx,
.text:0040770A sub ecx,
.text:0040770D test ecx, ecx
.text:0040770F jns short loc_407714
.text:00407711 add ecx, 3
.text:00407714
.text:00407714 loc_407714: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+25Bj
.text:00407714 sar ecx, 2
.text:00407717 cmp ecx, 32h
.text:0040771A jbe loc_4078FA
.text:00407720 mov , 74h
.text:00407729 lea eax,
.text:0040772C lea edx,
.text:0040772F push eax
.text:00407730 inc
.text:00407736 push offset aBDns ; "选中的DNS地址数量过多。\n只允许选择不超"...
.text:0040773B push edx ; _DWORD
.text:0040773C call FormatString
.text:00407741 add esp, 0Ch
.text:00407744 lea ecx,
.text:00407747 add , 4
.text:0040774E push ecx
.text:0040774F call MessageBox
.text:00407754 pop ecx
.text:00407755 dec
.text:0040775B mov , 8
.text:00407764 dec
.text:0040776A mov eax,
.text:0040776D sub eax,
.text:00407770 mov , eax
.text:00407776 mov ebx,
.text:00407779 test ebx, ebx
.text:0040777B jz short loc_4077A2
.text:0040777D cmp , 80h
.text:00407787 jbe short loc_407792
.text:00407789 push ebx ; handle
.text:0040778A call __rtl_close
.text:0040778F pop ecx
.text:00407790 jmp short loc_4077A2
.text:00407792 ; ---------------------------------------------------------------------------
.text:00407792
.text:00407792 loc_407792: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+2D3j
.text:00407792 mov eax,
.text:00407798 push eax
.text:00407799 push ebx
.text:0040779A call sub_4A0CA4
.text:0040779F add esp, 8
.text:004077A2
.text:004077A2 loc_4077A2: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+2C7j
.text:004077A2 ; _TfrmSetDNS_btnConfirmClick+2DCj
.text:004077A2 dec
.text:004077A8 dec
.text:004077AE dec
.text:004077B4 mov edx,
.text:004077BA mov eax,
.text:004077C0 mov edx,
.text:004077C2 call dword ptr
.text:004077C8 dec
.text:004077CE lea edx,
.text:004077D4 mov ecx,
.text:004077D7 mov , ecx
.text:004077DD mov eax,
.text:004077E0 mov , eax
.text:004077E6 push edx
.text:004077E7 mov ecx,
.text:004077ED push ecx
.text:004077EE mov eax,
.text:004077F4 push eax
.text:004077F5 call sub_403254
.text:004077FA add esp, 0Ch
.text:004077FD dec
.text:00407803 mov edx,
.text:00407806 sub edx,
.text:00407809 test edx, edx
.text:0040780B jns short loc_407810
.text:0040780D add edx, 3
.text:00407810
.text:00407810 loc_407810: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+357j
.text:00407810 sar edx, 2
.text:00407813 mov , edx
.text:00407819 mov ebx,
.text:0040781C test ebx, ebx
.text:0040781E jz short loc_407844
.text:00407820 mov edi,
.text:00407826 shl edi, 2
.text:00407829 cmp edi, 80h
.text:0040782F jbe short loc_40783A
.text:00407831 push ebx ; handle
.text:00407832 call __rtl_close
.text:00407837 pop ecx
.text:00407838 jmp short loc_407844
.text:0040783A ; ---------------------------------------------------------------------------
.text:0040783A
.text:0040783A loc_40783A: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+37Bj
.text:0040783A push edi
.text:0040783B push ebx
.text:0040783C call sub_4A0CA4
.text:00407841 add esp, 8
.text:00407844
.text:00407844 loc_407844: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+36Aj
.text:00407844 ; _TfrmSetDNS_btnConfirmClick+384j
.text:00407844 dec
.text:0040784A dec
.text:00407850 dec
.text:00407856 lea ecx,
.text:0040785C mov eax,
.text:0040785F mov , eax
.text:00407865 mov edx,
.text:00407868 mov , edx
.text:0040786E push ecx
.text:0040786F mov eax,
.text:00407875 push eax
.text:00407876 mov edx,
.text:0040787C push edx
.text:0040787D call sub_403254
.text:00407882 add esp, 0Ch
.text:00407885 dec
.text:0040788B mov ecx,
.text:0040788E sub ecx,
.text:00407891 test ecx, ecx
.text:00407893 jns short loc_407898
.text:00407895 add ecx, 3
.text:00407898
.text:00407898 loc_407898: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+3DFj
.text:00407898 sar ecx, 2
.text:0040789B mov , ecx
.text:004078A1 mov esi,
.text:004078A4 test esi, esi
.text:004078A6 jz short loc_4078DC
.text:004078A8 mov eax,
.text:004078AE shl eax, 2
.text:004078B1 mov , eax
.text:004078B7 cmp , 80h
.text:004078C1 jbe short loc_4078CC
.text:004078C3 push esi ; handle
.text:004078C4 call __rtl_close
.text:004078C9 pop ecx
.text:004078CA jmp short loc_4078DC
.text:004078CC ; ---------------------------------------------------------------------------
.text:004078CC
.text:004078CC loc_4078CC: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+40Dj
.text:004078CC mov edx,
.text:004078D2 push edx
.text:004078D3 push esi
.text:004078D4 call sub_4A0CA4
.text:004078D9 add esp, 8
.text:004078DC
.text:004078DC loc_4078DC: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+3F2j
.text:004078DC ; _TfrmSetDNS_btnConfirmClick+416j
.text:004078DC dec
.text:004078E2 dec
.text:004078E8 mov ecx,
.text:004078EE mov large fs:0, ecx
.text:004078F5 jmp loc_407D02
.text:004078FA ; ---------------------------------------------------------------------------
.text:004078FA
.text:004078FA loc_4078FA: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+266j
.text:004078FA mov eax,
.text:004078FD sub eax,
.text:00407900 test eax, eax
.text:00407902 jns short loc_407907
.text:00407904 add eax, 3
.text:00407907
.text:00407907 loc_407907: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+44Ej
.text:00407907 sar eax, 2
.text:0040790A test eax, eax
.text:0040790C jnz loc_407B07
.text:00407912 mov , 0C8h
.text:0040791B lea edx,
.text:0040791E lea ecx,
.text:00407924 push edx
.text:00407925 inc
.text:0040792B push offset aIB ; "请至少选择一个连接。basic_string"
.text:00407930 push ecx ; _DWORD
.text:00407931 call FormatString
.text:00407936 add esp, 0Ch
.text:00407939 lea eax,
.text:0040793F add , 4
.text:00407946 push eax
.text:00407947 call MessageBox
.text:0040794C pop ecx
.text:0040794D dec
.text:00407953 mov , 8
.text:0040795C dec
.text:00407962 mov edx,
.text:00407965 sub edx,
.text:0040796B mov , edx
.text:00407971 mov ebx,
.text:00407977 test ebx, ebx
.text:00407979 jz short loc_4079A0
.text:0040797B cmp , 80h
.text:00407985 jbe short loc_407990
.text:00407987 push ebx ; handle
.text:00407988 call __rtl_close
.text:0040798D pop ecx
.text:0040798E jmp short loc_4079A0
.text:00407990 ; ---------------------------------------------------------------------------
.text:00407990
.text:00407990 loc_407990: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+4D1j
.text:00407990 mov eax,
.text:00407996 push eax
.text:00407997 push ebx
.text:00407998 call sub_4A0CA4
.text:0040799D add esp, 8
.text:004079A0
.text:004079A0 loc_4079A0: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+4C5j
.text:004079A0 ; _TfrmSetDNS_btnConfirmClick+4DAj
.text:004079A0 dec
.text:004079A6 dec
.text:004079AC dec
.text:004079B2 mov edx,
.text:004079B8 mov eax,
.text:004079BE mov edx,
.text:004079C0 call dword ptr
.text:004079C6 dec
.text:004079CC lea edx,
.text:004079D2 mov ecx,
.text:004079D5 mov , ecx
.text:004079DB mov eax,
.text:004079DE mov , eax
.text:004079E4 push edx
.text:004079E5 mov ecx,
.text:004079EB push ecx
.text:004079EC mov eax,
.text:004079F2 push eax
.text:004079F3 call sub_403254
.text:004079F8 add esp, 0Ch
.text:004079FB dec
.text:00407A01 mov edx,
.text:00407A04 sub edx,
.text:00407A07 test edx, edx
.text:00407A09 jns short loc_407A0E
.text:00407A0B add edx, 3
.text:00407A0E
.text:00407A0E loc_407A0E: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+555j
.text:00407A0E sar edx, 2
.text:00407A11 mov , edx
.text:00407A17 mov ebx,
.text:00407A1A test ebx, ebx
.text:00407A1C jz short loc_407A52
.text:00407A1E mov ecx,
.text:00407A24 shl ecx, 2
.text:00407A27 mov , ecx
.text:00407A2D cmp , 80h
.text:00407A37 jbe short loc_407A42
.text:00407A39 push ebx ; handle
.text:00407A3A call __rtl_close
.text:00407A3F pop ecx
.text:00407A40 jmp short loc_407A52
.text:00407A42 ; ---------------------------------------------------------------------------
.text:00407A42
.text:00407A42 loc_407A42: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+583j
.text:00407A42 mov eax,
.text:00407A48 push eax
.text:00407A49 push ebx
.text:00407A4A call sub_4A0CA4
.text:00407A4F add esp, 8
.text:00407A52
.text:00407A52 loc_407A52: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+568j
.text:00407A52 ; _TfrmSetDNS_btnConfirmClick+58Cj
.text:00407A52 dec
.text:00407A58 dec
.text:00407A5E dec
.text:00407A64 lea eax,
.text:00407A6A mov edx,
.text:00407A6D mov , edx
.text:00407A73 mov ecx,
.text:00407A76 mov , ecx
.text:00407A7C push eax
.text:00407A7D mov edx,
.text:00407A83 push edx
.text:00407A84 mov ecx,
.text:00407A8A push ecx
.text:00407A8B call sub_403254
.text:00407A90 add esp, 0Ch
.text:00407A93 dec
.text:00407A99 mov eax,
.text:00407A9C sub eax,
.text:00407A9F test eax, eax
.text:00407AA1 jns short loc_407AA6
.text:00407AA3 add eax, 3
.text:00407AA6
.text:00407AA6 loc_407AA6: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+5EDj
.text:00407AA6 sar eax, 2
.text:00407AA9 mov , eax
.text:00407AAF mov esi,
.text:00407AB2 test esi, esi
.text:00407AB4 jz short loc_407AEA
.text:00407AB6 mov edx,
.text:00407ABC shl edx, 2
.text:00407ABF mov , edx
.text:00407AC5 cmp , 80h
.text:00407ACF jbe short loc_407ADA
.text:00407AD1 push esi ; handle
.text:00407AD2 call __rtl_close
.text:00407AD7 pop ecx
.text:00407AD8 jmp short loc_407AEA
.text:00407ADA ; ---------------------------------------------------------------------------
.text:00407ADA
.text:00407ADA loc_407ADA: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+61Bj
.text:00407ADA mov ecx,
.text:00407AE0 push ecx
.text:00407AE1 push esi
.text:00407AE2 call sub_4A0CA4
.text:00407AE7 add esp, 8
.text:00407AEA
.text:00407AEA loc_407AEA: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+600j
.text:00407AEA ; _TfrmSetDNS_btnConfirmClick+624j
.text:00407AEA dec
.text:00407AF0 dec
.text:00407AF6 mov eax,
.text:00407AFC mov large fs:0, eax
.text:00407B02 jmp loc_407D02
.text:00407B07 ; ---------------------------------------------------------------------------
.text:00407B07
.text:00407B07 loc_407B07: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+458j
.text:00407B07 xor edx, edx
.text:00407B09 mov eax, off_4A4404
.text:00407B0E mov , edx
.text:00407B14 mov dl, 1
.text:00407B16 mov , 8
.text:00407B1F mov , 11Ch
.text:00407B28 mov ecx,
.text:00407B2E call sub_407DCC
.text:00407B33 mov , eax
.text:00407B39 lea ecx,
.text:00407B3C push ecx
.text:00407B3D lea eax,
.text:00407B40 push eax
.text:00407B41 mov edx,
.text:00407B47 push edx
.text:00407B48 call sub_407F6C
.text:00407B4D add esp, 0Ch
.text:00407B50 mov eax,
.text:00407B56 mov edx,
.text:00407B58 call dword ptr
.text:00407B5E mov ecx,
.text:00407B64 xor eax, eax
.text:00407B66 mov al,
.text:00407B6C mov ecx,
.text:00407B72 cmp eax, 1
.text:00407B75 sbb edx, edx
.text:00407B77 neg edx
.text:00407B79 mov , dl
.text:00407B7F mov , 8
.text:00407B88 jmp short loc_407BA5
.text:00407B8A ; ---------------------------------------------------------------------------
.text:00407B8A
.text:00407B8A loc_407B8A: ; DATA XREF: .data:fastdns___CPPdebugHook+1A30o
.text:00407B8A mov eax,
.text:00407B90 mov byte ptr , 0
.text:00407B97 mov , 124h
.text:00407BA0 call @_CatchCleanup$qv ; _CatchCleanup(void)
.text:00407BA5
.text:00407BA5 loc_407BA5: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+6D4j
.text:00407BA5 mov ebx,
.text:00407BAB mov , ebx
.text:00407BB1 test ebx, ebx
.text:00407BB3 jz short loc_407BDF
.text:00407BB5 mov eax,
.text:00407BB7 mov , eax
.text:00407BBD mov , 134h
.text:00407BC6 mov edx, 3
.text:00407BCB mov eax,
.text:00407BD1 mov ecx,
.text:00407BD3 call dword ptr
.text:00407BD6 mov , 128h
.text:00407BDF
.text:00407BDF loc_407BDF: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+6FFj
.text:00407BDF mov eax,
.text:00407BE5 call sub_466E84
.text:00407BEA dec
.text:00407BF0 lea ecx,
.text:00407BF6 mov eax,
.text:00407BF9 mov edx,
.text:00407BFC push ecx
.text:00407BFD push eax
.text:00407BFE push edx
.text:00407BFF call sub_403254
.text:00407C04 mov , 8
.text:00407C0D dec
.text:00407C13 add esp, 0Ch
.text:00407C16 mov edx,
.text:00407C19 mov eax,
.text:00407C1C sub edx, eax
.text:00407C1E test edx, edx
.text:00407C20 jns short loc_407C25
.text:00407C22 add edx, 3
.text:00407C25
.text:00407C25 loc_407C25: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+76Cj
.text:00407C25 sar edx, 2
.text:00407C28 mov , edx
.text:00407C2E mov ebx, eax
.text:00407C30 test ebx, ebx
.text:00407C32 jz short loc_407C68
.text:00407C34 mov eax,
.text:00407C3A shl eax, 2
.text:00407C3D mov , eax
.text:00407C43 cmp , 80h
.text:00407C4D jbe short loc_407C58
.text:00407C4F push ebx ; handle
.text:00407C50 call __rtl_close
.text:00407C55 pop ecx
.text:00407C56 jmp short loc_407C68
.text:00407C58 ; ---------------------------------------------------------------------------
.text:00407C58
.text:00407C58 loc_407C58: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+799j
.text:00407C58 mov edx,
.text:00407C5E push edx
.text:00407C5F push ebx
.text:00407C60 call sub_4A0CA4
.text:00407C65 add esp, 8
.text:00407C68
.text:00407C68 loc_407C68: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+77Ej
.text:00407C68 ; _TfrmSetDNS_btnConfirmClick+7A2j
.text:00407C68 dec
.text:00407C6E dec
.text:00407C74 dec
.text:00407C7A lea ecx,
.text:00407C80 mov eax,
.text:00407C83 mov edx,
.text:00407C86 push ecx
.text:00407C87 push eax
.text:00407C88 push edx
.text:00407C89 call sub_403254
.text:00407C8E add esp, 0Ch
.text:00407C91 dec
.text:00407C97 mov edx,
.text:00407C9A mov eax,
.text:00407C9D sub edx, eax
.text:00407C9F test edx, edx
.text:00407CA1 jns short loc_407CA6
.text:00407CA3 add edx, 3
.text:00407CA6
.text:00407CA6 loc_407CA6: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+7EDj
.text:00407CA6 sar edx, 2
.text:00407CA9 mov , edx
.text:00407CAF mov ebx, eax
.text:00407CB1 test ebx, ebx
.text:00407CB3 jz short loc_407CE9
.text:00407CB5 mov eax,
.text:00407CBB shl eax, 2
.text:00407CBE mov , eax
.text:00407CC4 cmp , 80h
.text:00407CCE jbe short loc_407CD9
.text:00407CD0 push ebx ; handle
.text:00407CD1 call __rtl_close
.text:00407CD6 pop ecx
.text:00407CD7 jmp short loc_407CE9
.text:00407CD9 ; ---------------------------------------------------------------------------
.text:00407CD9
.text:00407CD9 loc_407CD9: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+81Aj
.text:00407CD9 mov edx,
.text:00407CDF push edx
.text:00407CE0 push ebx
.text:00407CE1 call sub_4A0CA4
.text:00407CE6 add esp, 8
.text:00407CE9
.text:00407CE9 loc_407CE9: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+7FFj
.text:00407CE9 ; _TfrmSetDNS_btnConfirmClick+823j
.text:00407CE9 dec
.text:00407CEF dec
.text:00407CF5 mov ecx,
.text:00407CFB mov large fs:0, ecx
.text:00407D02
.text:00407D02 loc_407D02: ; CODE XREF: _TfrmSetDNS_btnConfirmClick+441j
.text:00407D02 ; _TfrmSetDNS_btnConfirmClick+64Ej
.text:00407D02 pop edi
.text:00407D03 pop esi
.text:00407D04 pop ebx
.text:00407D05 mov esp, ebp
.text:00407D07 pop ebp
.text:00407D08 retn
.text:00407D08 _TfrmSetDNS_btnConfirmClick endp
.
经我标注伪代码为:
__int32 *__fastcall TfrmSetDNS_btnConfirmClick(int a1, int a2)
{
int i; // ebx@1
int v3; // eax@2
int j; // ebx@9
int v5; // eax@11
__int32 *result; // eax@28
int v7; // @53
int v8; // @50
int v9; // @49
int v10; // @47
int v11; // @43
int v12; // @42
int v13; // @42
int v14; // @42
int v15; // @39
int v16; // @38
int v17; // @38
int v18; // @38
int v19; // @34
int v20; // @29
int v21; // @28
int v22; // @28
int v23; // @28
int v24; // @24
int v25; // @24
int v26; // @24
int v27; // @20
char v28; // @15
char *v29; // @9
char v30; // @6
int *v31; // @1
int v32; // @1
int v33; // @1
__int32 *v34; // @46
__int16 v35; // @1
int v36; // @1
int v37; // @47
int v38; // @48
int v39; // @34
int v40; // @34
int handle; // @20
int v42; // @20
int v43; // @12
int v44; // @11
char v45; // @9
int v46; // @3
int addrstring; // @2
int v48; // @1
int v49; // @9
int v50; // @9
int v51; // @9
int v52; // @1
int v53; // @1
int v54; // @1
v32 = a2;
v33 = a1;
__InitExceptBlockLDTC();
v31 = &v48;
v52 = 0;
v53 = 0;
v54 = 0;
v36 += 4;
v35 = 8;
for ( i = 0; i < (*(int (**)(void))(**(_DWORD **)(*(_DWORD *)(v33 + 772) + 536) + 20))(); ++i )// 0044a604 GetCount 选中DNS地址个数
{
v35 = 44;
v3 = *(_DWORD *)(v33 + 0x304);
addrstring = 0;
++v36;
(*(void (__fastcall **)(_DWORD, int, int *))(**(_DWORD **)(v3 + 0x218)
+ 12))(// 0044a620getaddrstring获取地址文本串
*(_DWORD *)(v3 + 0x218),
i,
&addrstring);
if ( v53 == v54 )
{
sub_403C34((int)&v52, v53, (int)&addrstring, (int)&v30, 1u, 1);
}
else
{
v46 = v53;
if ( v53 )
{
v35 = 56;
System::AnsiString::AnsiString(v46, &addrstring);
v35 = 44;
}
v53 += 4;
}
--v36;
System::AnsiString::~AnsiString(&addrstring, 2);
}
++v36;
v29 = &v45;
v49 = 0;
v50 = 0;
++v36;
v51 = 0;
++v36;
++v36;
++v36;
--v36;
v35 = 8;
for ( j = 0; j < (*(int (**)(void))(**(_DWORD **)(*(_DWORD *)(v33 + 768) + 536) + 20))(); ++j )// 对于网卡列表中的每一项
{
if ( (unsigned __int8)TCheckListBox::GetChecked(*(_DWORD *)(v33 + 768), j) )// 如果复选框选中
{
v35 = 92;
v5 = *(_DWORD *)(v33 + 768);
v44 = 0;
++v36;
(*(void (__fastcall **)(_DWORD, int, int *))(**(_DWORD **)(v5 + 536) + 12))(*(_DWORD *)(v5 + 536), j, &v44);// 获取网卡名称
if ( v50 == v51 )
{
sub_403C34((int)&v49, v50, (int)&v44, (int)&v28, 1u, 1);
}
else
{
v43 = v50;
if ( v50 )
{
v35 = 104;
System::AnsiString::AnsiString(v43, &v44);
v35 = 92;
}
v50 += 4;
}
--v36;
System::AnsiString::~AnsiString(&v44, 2);
}
}
if ( (unsigned int)((v53 - v52) / 4) <= 50 )// 如果选中dns地址小于50个
{
if ( (v50 - v49) / 4 ) // 如果选中了网卡
{
v35 = 284;
v10 = sub_407DCC((int)off_4A4404, 1, v33);
sub_407F6C(v10, (int)&v49, (int)&v52);
(*(void (**)(void))(*(_DWORD *)v10 + 0xE8))();// 004670dcshowmodel and setsetting 设置dns并显示进度
*(_BYTE *)(v33 + 776) = (unsigned int)*(_BYTE *)(v10 + 776) < 1;
v35 = 8;
v37 = v10;
if ( v10 )
{
v38 = *(_DWORD *)v10;
v35 = 308;
(*(void (__fastcall **)(int, signed int))(*(_DWORD *)v37 - 4))(v37, 3);
v35 = 296;
}
sub_466E84(v33);
--v36;
sub_403254(v49, v50);
v35 = 8;
--v36;
v9 = (v51 - v49) / 4;
if ( v49 )
{
v8 = 4 * v9;
if ( (unsigned int)(4 * v9) <= 0x80 )
sub_4A0CA4(v49, v8);
else
_rtl_close(v49);
}
--v36;
--v36;
--v36;
sub_403254(v52, v53);
--v36;
result = (__int32 *)v52;
v7 = (v54 - v52) / 4;
if ( v52 )
{
if ( (unsigned int)(4 * v7) <= 0x80 )
result = sub_4A0CA4(v52, 4 * v7);
else
result = (__int32 *)_rtl_close(v52);
}
}
else
{
v35 = 200;
++v36;
FormatString(&v39, (char *)"请至少选择一个连接。");
v36 += 4;
MessageBox((int)&v39);
--v36;
v35 = 8;
--v36;
v19 = v40 - v39;
if ( v39 )
{
if ( (unsigned int)v19 <= 0x80 )
sub_4A0CA4(v39, v19);
else
_rtl_close(v39);
}
--v36;
--v36;
--v36;
(*(void (**)(void))(**(_DWORD **)(v33 + 768) + 192))();
--v36;
v18 = v50;
v17 = v49;
sub_403254(v49, v50);
--v36;
v16 = (v51 - v49) / 4;
if ( v49 )
{
v15 = 4 * v16;
if ( (unsigned int)(4 * v16) <= 0x80 )
sub_4A0CA4(v49, v15);
else
_rtl_close(v49);
}
--v36;
--v36;
--v36;
v14 = v53;
v13 = v52;
sub_403254(v52, v53);
--v36;
v12 = (v54 - v52) / 4;
if ( v52 )
{
v11 = 4 * v12;
if ( (unsigned int)(4 * v12) <= 0x80 )
sub_4A0CA4(v52, v11);
else
_rtl_close(v52);
}
--v36;
--v36;
result = v34;
}
}
else
{
v35 = 116;
++v36;
FormatString(&handle, "选中的DNS地址数量过多。\n只允许选择不超过50个的DNS地址。");
v36 += 4;
MessageBox((int)&handle);
--v36;
v35 = 8;
--v36;
v27 = v42 - handle;
if ( handle )
{
if ( (unsigned int)v27 <= 0x80 )
sub_4A0CA4(handle, v27);
else
_rtl_close(handle);
}
--v36;
--v36;
--v36;
(*(void (**)(void))(**(_DWORD **)(v33 + 764) + 192))();
--v36;
v26 = v50;
v25 = v49;
sub_403254(v49, v50);
--v36;
v24 = (v51 - v49) / 4;
if ( v49 )
{
if ( (unsigned int)(4 * v24) <= 0x80 )
sub_4A0CA4(v49, 4 * v24);
else
_rtl_close(v49);
}
--v36;
--v36;
--v36;
v23 = v53;
v22 = v52;
result = (__int32 *)sub_403254(v52, v53);
--v36;
v21 = (v54 - v52) / 4;
if ( v52 )
{
v20 = 4 * v21;
if ( (unsigned int)(4 * v21) <= 0x80 )
result = sub_4A0CA4(v52, v20);
else
result = (__int32 *)_rtl_close(v52);
}
--v36;
--v36;
}
return result;
}
(*(void (**)(void))(*(_DWORD *)v10 + 0xE8))()通过消息机制最终调用了_TfrmSetDNSProccess_tmrStartTimer
该函数真正执行设置dns:
对于每个网卡接口
00407F88先清除dns netsh interface ip set dns name="??网"source=static addr=none
对于每个dns地址
004082F4逐个添加dnsnetsh interface ip add dns name="??网" addr=??.??.??.??
text:0040852C _TfrmSetDNSProccess_tmrStartTimer proc near
.text:0040852C ; DATA XREF: .data:fastdns___CPPdebugHook+24E1o
.text:0040852C
.text:0040852C var_30 = dword ptr -30h
.text:0040852C var_2C = dword ptr -2Ch
.text:0040852C var_1C = word ptr -1Ch
.text:0040852C var_10 = dword ptr -10h
.text:0040852C var_8 = dword ptr -8
.text:0040852C var_4 = dword ptr -4
.text:0040852C
.text:0040852C push ebp
.text:0040852D mov ebp, esp
.text:0040852F add esp, 0FFFFFFD0h
.text:00408532 push ebx
.text:00408533 push esi
.text:00408534 push edi
.text:00408535 mov ebx, eax
.text:00408537 mov eax, offset unk_4A4378
.text:0040853C call @__InitExceptBlockLDTC
.text:00408541 xor edx, edx
.text:00408543 mov eax,
.text:00408549 call unknown_libname_1860 ; Delphi2006/BDS2006 Visual Component Library
.text:00408549 ; BDS 4.0 RTL and VCL
.text:0040854E mov edx, 1
.text:00408553 mov eax,
.text:00408559 call sub_486B60
.text:0040855E mov eax,
.text:00408564 mov ecx,
.text:00408567 sub ecx,
.text:00408569 test ecx, ecx
.text:0040856B jns short loc_408570
.text:0040856D add ecx, 3
.text:00408570
.text:00408570 loc_408570: ; CODE XREF: _TfrmSetDNSProccess_tmrStartTimer+3Fj
.text:00408570 sar ecx, 2
.text:00408573 mov edx,
.text:00408579 mov eax,
.text:0040857C sub eax,
.text:0040857E test eax, eax
.text:00408580 jns short loc_408585
.text:00408582 add eax, 3
.text:00408585
.text:00408585 loc_408585: ; CODE XREF: _TfrmSetDNSProccess_tmrStartTimer+54j
.text:00408585 sar eax, 2
.text:00408588 inc eax
.text:00408589 imul ecx, eax
.text:0040858C mov edx, ecx
.text:0040858E mov eax,
.text:00408594 call sub_486B6C
.text:00408599 mov edx,
.text:0040859F mov edi,
.text:004085A1 jmp loc_4086B7
.text:004085A6 ; ---------------------------------------------------------------------------
.text:004085A6
.text:004085A6 loc_4085A6: ; CODE XREF: _TfrmSetDNSProccess_tmrStartTimer+194j
.text:004085A6 mov eax,
.text:004085A8 xor edx, edx
.text:004085AA push eax
.text:004085AB push offset unk_4A40BB
.text:004085B0 mov , 8
.text:004085B6 mov , edx
.text:004085B9 lea ecx,
.text:004085BC inc
.text:004085BF push ecx
.text:004085C0 call @System@AnsiString@sprintf$qpxce ; CBuilder 5 runtime
.text:004085C5 add esp, 0Ch
.text:004085C8 mov edx,
.text:004085CA mov eax,
.text:004085D0 call @TControl@SetText ; TControl::SetText
.text:004085D5 dec
.text:004085D8 lea eax,
.text:004085DB mov edx, 2
.text:004085E0 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004085E5 mov ecx, off_4B9450
.text:004085EB mov eax,
.text:004085ED call @TApplication@ProcessMessages ; TApplication::ProcessMessages
.text:004085F2 push edi
.text:004085F3 push ebx
.text:004085F4 call dosetdns
.text:004085F9 add esp, 8
.text:004085FC test al, al
.text:004085FE jnz short loc_40860C
.text:00408600 mov byte ptr , 1
.text:00408607 jmp loc_4086C6
.text:0040860C ; ---------------------------------------------------------------------------
.text:0040860C
.text:0040860C loc_40860C: ; CODE XREF: _TfrmSetDNSProccess_tmrStartTimer+D2j
.text:0040860C mov edx, 1
.text:00408611 mov eax,
.text:00408617 call @TProgressBar@StepBy ; TProgressBar::StepBy
.text:0040861C mov edx,
.text:00408622 mov esi,
.text:00408624 mov , 1
.text:0040862B jmp short loc_4086A5
.text:0040862D ; ---------------------------------------------------------------------------
.text:0040862D
.text:0040862D loc_40862D: ; CODE XREF: _TfrmSetDNSProccess_tmrStartTimer+182j
.text:0040862D mov eax,
.text:0040862F xor ecx, ecx
.text:00408631 push eax
.text:00408632 lea eax,
.text:00408635 mov edx,
.text:00408637 push edx
.text:00408638 push offset unk_4A40D9
.text:0040863D mov , 14h
.text:00408643 mov , ecx
.text:00408646 inc
.text:00408649 push eax
.text:0040864A call @System@AnsiString@sprintf$qpxce ; CBuilder 5 runtime
.text:0040864F add esp, 10h
.text:00408652 mov edx,
.text:00408654 mov eax,
.text:0040865A call @TControl@SetText ; TControl::SetText
.text:0040865F dec
.text:00408662 lea eax,
.text:00408665 mov edx, 2
.text:0040866A call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040866F mov ecx, off_4B9450
.text:00408675 mov eax,
.text:00408677 call @TApplication@ProcessMessages ; TApplication::ProcessMessages
.text:0040867C mov edx,
.text:0040867F push edx
.text:00408680 push esi
.text:00408681 push edi
.text:00408682 push ebx
.text:00408683 call sub_4082F4
.text:00408688 add esp, 10h
.text:0040868B test al, al
.text:0040868D jz short loc_408692
.text:0040868F inc
.text:00408692
.text:00408692 loc_408692: ; CODE XREF: _TfrmSetDNSProccess_tmrStartTimer+161j
.text:00408692 mov edx, 1
.text:00408697 mov eax,
.text:0040869D call @TProgressBar@StepBy ; TProgressBar::StepBy
.text:004086A2 add esi, 4
.text:004086A5
.text:004086A5 loc_4086A5: ; CODE XREF: _TfrmSetDNSProccess_tmrStartTimer+FFj
.text:004086A5 mov ecx,
.text:004086AB cmp esi,
.text:004086AE jnz loc_40862D
.text:004086B4 add edi, 4
.text:004086B7
.text:004086B7 loc_4086B7: ; CODE XREF: _TfrmSetDNSProccess_tmrStartTimer+75j
.text:004086B7 mov eax,
.text:004086BD cmp edi,
.text:004086C0 jnz loc_4085A6
.text:004086C6
.text:004086C6 loc_4086C6: ; CODE XREF: _TfrmSetDNSProccess_tmrStartTimer+DBj
.text:004086C6 mov eax, ebx
.text:004086C8 call sub_466E84
.text:004086CD mov edx,
.text:004086D0 mov large fs:0, edx
.text:004086D7 pop edi
.text:004086D8 pop esi
.text:004086D9 pop ebx
.text:004086DA mov esp, ebp
.text:004086DC pop ebp
.text:004086DD retn
.t
int __fastcall TfrmSetDNSProccess_tmrStartTimer(int a1)
{
int v1; // ebx@1
int i; // edi@1
int v3; // ST0C_4@2
int *v4; // eax@2
int v5; // esi@4
int v6; // ST0C_4@5
int v7; // ST08_4@5
int *v8; // eax@5
int v10; // @4
int v11; // @5
int v12; // @2
v1 = a1;
__InitExceptBlockLDTC();
unknown_libname_1860(*(_DWORD *)(v1 + 760), 0);
sub_486B60(*(_DWORD *)(v1 + 752), 1);
sub_486B6C(
*(_DWORD *)(v1 + 752),
((*(_DWORD *)(*(_DWORD *)(v1 + 768) + 4) - **(_DWORD **)(v1 + 768)) / 4 + 1)
* ((*(_DWORD *)(*(_DWORD *)(v1 + 764) + 4) - **(_DWORD **)(v1 + 764))
/ 4));
for ( i = **(_DWORD **)(v1 + 764); i != *(_DWORD *)(*(_DWORD *)(v1 + 764) + 4); i += 4 )
{
v3 = *(_DWORD *)i;
v12 = 0;
v4 = (int *)System::AnsiString::sprintf(&v12, (const char *)&unk_4A40BB, v3);
TControl::SetText(*(_DWORD *)(v1 + 756), *v4);// 显示清除原有设置
System::AnsiString::~AnsiString(&v12, 2);
TApplication::ProcessMessages(*off_4B9450);
if ( !cleardns(v1, i) )
{
*(_BYTE *)(v1 + 776) = 1;
return sub_466E84(v1);
}
TProgressBar::StepBy(*(_DWORD *)(v1 + 752), 1);// 更新进度条
v5 = **(_DWORD **)(v1 + 768);
v10 = 1;
while ( v5 != *(_DWORD *)(*(_DWORD *)(v1 + 768) + 4) )
{
v6 = *(_DWORD *)v5;
v7 = *(_DWORD *)i;
v11 = 0;
v8 = (int *)System::AnsiString::sprintf(&v11, (const char *)&unk_4A40D9, v7, v6);
TControl::SetText(*(_DWORD *)(v1 + 756), *v8);// 显示正在写入dns
System::AnsiString::~AnsiString(&v11, 2);
TApplication::ProcessMessages(*off_4B9450);
if ( adddns(v1, i, v5, v10) )
++v10;
TProgressBar::StepBy(*(_DWORD *)(v1 + 752), 1);
v5 += 4;
}
}
return sub_466E84(v1);
}
text:00407F88 cleardns proc near ; CODE XREF: _TfrmSetDNSProccess_tmrStartTimer+C8p
.text:00407F88
.text:00407F88 var_F4 = dword ptr -0F4h
.text:00407F88 var_F0 = dword ptr -0F0h
.text:00407F88 var_EC = dword ptr -0ECh
.text:00407F88 var_E8 = dword ptr -0E8h
.text:00407F88 ExitCode = dword ptr -0E4h
.text:00407F88 var_E0 = byte ptr -0E0h
.text:00407F88 var_A0 = byte ptr -0A0h
.text:00407F88 var_7C = dword ptr -7Ch
.text:00407F88 var_6C = dword ptr -6Ch
.text:00407F88 var_64 = dword ptr -64h
.text:00407F88 var_60 = dword ptr -60h
.text:00407F88 var_5C = byte ptr -5Ch
.text:00407F88 var_54 = byte ptr -54h
.text:00407F88 handle = dword ptr -50h
.text:00407F88 var_40 = dword ptr -40h
.text:00407F88 s = dword ptr -38h
.text:00407F88 var_34 = dword ptr -34h
.text:00407F88 var_30 = byte ptr -30h
.text:00407F88 var_28 = dword ptr -28h
.text:00407F88 var_18 = dword ptr -18h
.text:00407F88 var_10 = dword ptr -10h
.text:00407F88 var_C = dword ptr -0Ch
.text:00407F88 var_8 = byte ptr -8
.text:00407F88 arg_0 = dword ptr8
.text:00407F88 arg_4 = dword ptr0Ch
.text:00407F88
.text:00407F88 push ebp
.text:00407F89 mov ebp, esp
.text:00407F8B add esp, 0FFFFFF0Ch
.text:00407F91 push ebx
.text:00407F92 push esi
.text:00407F93 push edi
.text:00407F94 lea ebx,
.text:00407F9A mov eax, offset unk_4A423C
.text:00407F9F call @__InitExceptBlockLDTC
.text:00407FA4 mov esi, offset unk_4A3F18
.text:00407FA9 lea edi,
.text:00407FAF mov ecx, 10h
.text:00407FB4 rep movsd
.text:00407FB6
.text:00407FB6 loc_407FB6: ; CODE XREF: cleardns+349j
.text:00407FB6 mov , 2
.text:00407FC0 mov , 0FFFFFFFFh
.text:00407FCA lea eax,
.text:00407FD0 push eax ; lpExitCode
.text:00407FD1 lea eax,
.text:00407FD4 mov edx,
.text:00407FD7 mov ecx,
.text:00407FDD push ecx ; int
.text:00407FDE mov word ptr , 8
.text:00407FE4 push eax
.text:00407FE5 lea eax,
.text:00407FEB inc dword ptr
.text:00407FEE mov edx,
.text:00407FF1 mov ecx,
.text:00407FF3 xor edx, edx
.text:00407FF5 push ecx
.text:00407FF6 push 40h
.text:00407FF8 push eax
.text:00407FF9 mov , edx
.text:00407FFC lea ecx,
.text:00407FFF push ecx
.text:00408000 inc dword ptr
.text:00408003 call decode
.text:00408008 add esp, 0Ch
.text:0040800B cmp , 0
.text:0040800F jz short loc_408016
.text:00408011 mov eax,
.text:00408014 jmp short loc_40801B
.text:00408016 ; ---------------------------------------------------------------------------
.text:00408016
.text:00408016 loc_408016: ; CODE XREF: cleardns+87j
.text:00408016 mov eax, offset unk_4A3F8E
.text:0040801B
.text:0040801B loc_40801B: ; CODE XREF: cleardns+8Cj
.text:0040801B push eax
.text:0040801C xor edx, edx
.text:0040801E mov , edx
.text:00408021 lea ecx,
.text:00408024 push ecx
.text:00408025 inc dword ptr
.text:00408028 call @System@AnsiString@sprintf$qpxce ; CBuilder 5 runtime
.text:0040802D add esp, 0Ch
.text:00408030 mov , eax
.text:00408036 mov eax,
.text:0040803C cmp dword ptr , 0
.text:0040803F jz short loc_40804B
.text:00408041 mov edx,
.text:00408047 mov ecx,
.text:00408049 jmp short loc_408050
.text:0040804B ; ---------------------------------------------------------------------------
.text:0040804B
.text:0040804B loc_40804B: ; CODE XREF: cleardns+B7j
.text:0040804B mov ecx, offset unk_4A3F8F
.text:00408050
.text:00408050 loc_408050: ; CODE XREF: cleardns+C1j
.text:00408050 push ecx ; s
.text:00408051 lea eax,
.text:00408054 push eax ; _DWORD
.text:00408055 call FormatString
.text:0040805A add dword ptr , 4
.text:0040805E add esp, 0Ch
.text:00408061 lea edx,
.text:00408064 lea eax,
.text:00408067 push edx ; int
.text:00408068 push eax
.text:00408069 xor edx, edx
.text:0040806B inc dword ptr
.text:0040806E mov , edx
.text:00408071 inc dword ptr
.text:00408074 lea edx,
.text:00408077 mov eax, off_4B9450
.text:0040807C mov eax,
.text:0040807E call unknown_libname_1857 ; Delphi 5 Visual Component Library
.text:0040807E ; Delphi2006/BDS2006 Visual Component Library
.text:0040807E ; CBuilder 4 and Delphi 4 VCL
.text:0040807E ; CBuilder 5 runtime
.text:0040807E ; BDS 4.0 RTL and VCL
.text:00408083 lea eax,
.text:00408086 mov eax,
.text:00408088 xor edx, edx
.text:0040808A mov , edx
.text:0040808D lea edx,
.text:00408090 inc dword ptr
.text:00408093 call @ExtractFilePath
.text:00408098 cmp , 0
.text:0040809C jz short loc_4080A3
.text:0040809E mov eax,
.text:004080A1 jmp short loc_4080A8
.text:004080A3 ; ---------------------------------------------------------------------------
.text:004080A3
.text:004080A3 loc_4080A3: ; CODE XREF: cleardns+114j
.text:004080A3 mov eax, offset unk_4A3F8D
.text:004080A8
.text:004080A8 loc_4080A8: ; CODE XREF: cleardns+119j
.text:004080A8 push eax ; s
.text:004080A9 lea edx,
.text:004080AC push edx ; _DWORD
.text:004080AD call FormatString
.text:004080B2 add esp, 0Ch
.text:004080B5 lea ecx,
.text:004080B8 add dword ptr , 4
.text:004080BC push ecx ; int
.text:004080BD call sub_40E30C
.text:004080C2 add esp, 10h
.text:004080C5 and eax, 0FFh
.text:004080CA cmp eax, 1
.text:004080CD sbb edx, edx
.text:004080CF neg edx
.text:004080D1 push edx
.text:004080D2 dec dword ptr
.text:004080D5 dec dword ptr
.text:004080D8 mov ecx,
.text:004080DB sub ecx,
.text:004080DE mov , ecx
.text:004080E4 mov esi,
.text:004080E7 test esi, esi
.text:004080E9 jz short loc_408110
.text:004080EB cmp , 80h
.text:004080F5 jbe short loc_408100
.text:004080F7 push esi ; handle
.text:004080F8 call __rtl_close
.text:004080FD pop ecx
.text:004080FE jmp short loc_408110
.text:00408100 ; ---------------------------------------------------------------------------
.text:00408100
.text:00408100 loc_408100: ; CODE XREF: cleardns+16Dj
.text:00408100 mov eax,
.text:00408106 push eax
.text:00408107 push esi
.text:00408108 call sub_4A0CA4
.text:0040810D add esp, 8
.text:00408110
.text:00408110 loc_408110: ; CODE XREF: cleardns+161j
.text:00408110 ; cleardns+176j
.text:00408110 dec dword ptr
.text:00408113 dec dword ptr
.text:00408116 dec dword ptr
.text:00408119 dec dword ptr
.text:0040811C lea eax,
.text:0040811F mov edx, 2
.text:00408124 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00408129 dec dword ptr
.text:0040812C lea eax,
.text:0040812F mov edx, 2
.text:00408134 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00408139 dec dword ptr
.text:0040813C dec dword ptr
.text:0040813F mov ecx,
.text:00408142 sub ecx,
.text:00408145 mov , ecx
.text:0040814B mov edi,
.text:0040814E test edi, edi
.text:00408150 jz short loc_408177
.text:00408152 cmp , 80h
.text:0040815C jbe short loc_408167
.text:0040815E push edi ; handle
.text:0040815F call __rtl_close
.text:00408164 pop ecx
.text:00408165 jmp short loc_408177
.text:00408167 ; ---------------------------------------------------------------------------
.text:00408167
.text:00408167 loc_408167: ; CODE XREF: cleardns+1D4j
.text:00408167 mov eax,
.text:0040816D push eax
.text:0040816E push edi
.text:0040816F call sub_4A0CA4
.text:00408174 add esp, 8
.text:00408177
.text:00408177 loc_408177: ; CODE XREF: cleardns+1C8j
.text:00408177 ; cleardns+1DDj
.text:00408177 dec dword ptr
.text:0040817A dec dword ptr
.text:0040817D dec dword ptr
.text:00408180 dec dword ptr
.text:00408183 lea eax,
.text:00408186 mov edx, 2
.text:0040818B call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00408190 dec dword ptr
.text:00408193 lea eax,
.text:00408196 mov edx, 2
.text:0040819B call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004081A0 pop ecx
.text:004081A1 test cl, cl
.text:004081A3 jz short loc_4081E5
.text:004081A5 mov word ptr , 44h
.text:004081AB mov edx, offset unk_4A3F90
.text:004081B0 lea eax,
.text:004081B3 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:004081B8 inc dword ptr
.text:004081BB mov edx,
.text:004081BD mov eax,
.text:004081C0 mov eax,
.text:004081C6 mov ecx,
.text:004081C8 call dword ptr
.text:004081CB dec dword ptr
.text:004081CE lea eax,
.text:004081D1 mov edx, 2
.text:004081D6 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004081DB mov , 270Fh
.text:004081E5
.text:004081E5 loc_4081E5: ; CODE XREF: cleardns+21Bj
.text:004081E5 cmp , 0
.text:004081EC jz loc_4082CA
.text:004081F2 push 0 ; hWnd
.text:004081F4 push 0 ; __int16
.text:004081F6 push 5 ; char
.text:004081F8 push 40h ; char
.text:004081FA mov word ptr , 50h
.text:00408200 lea ecx,
.text:00408203 xor eax, eax
.text:00408205 push ecx
.text:00408206 lea edx,
.text:00408209 inc dword ptr
.text:0040820C mov , eax
.text:0040820F inc dword ptr
.text:00408212 mov ecx,
.text:00408215 mov eax,
.text:0040821B mov ecx,
.text:0040821D call dword ptr
.text:00408220 lea edx,
.text:00408223 lea ecx,
.text:00408226 mov eax,
.text:00408228 xor edx, edx
.text:0040822A push eax
.text:0040822B push offset unk_4A3FA5
.text:00408230 mov , edx
.text:00408233 push ecx
.text:00408234 inc dword ptr
.text:00408237 call @System@AnsiString@sprintf$qpxce ; CBuilder 5 runtime
.text:0040823C add esp, 0Ch
.text:0040823F mov esi, eax
.text:00408241 cmp dword ptr , 0
.text:00408244 jz short loc_40824A
.text:00408246 mov eax,
.text:00408248 jmp short loc_40824F
.text:0040824A ; ---------------------------------------------------------------------------
.text:0040824A
.text:0040824A loc_40824A: ; CODE XREF: cleardns+2BCj
.text:0040824A mov eax, offset unk_4A40AA
.text:0040824F
.text:0040824F loc_40824F: ; CODE XREF: cleardns+2C0j
.text:0040824F push eax ; s
.text:00408250 lea edx,
.text:00408253 push edx ; _DWORD
.text:00408254 call FormatString
.text:00408259 add esp, 0Ch
.text:0040825C lea ecx,
.text:0040825F add dword ptr , 4
.text:00408263 push ecx ; int
.text:00408264 call sub_40E26C
.text:00408269 add esp, 14h
.text:0040826C mov , eax
.text:00408272 dec dword ptr
.text:00408275 dec dword ptr
.text:00408278 mov edi,
.text:0040827B mov eax,
.text:0040827E sub edi, eax
.text:00408280 mov esi, eax
.text:00408282 test esi, esi
.text:00408284 jz short loc_4082A1
.text:00408286 cmp edi, 80h
.text:0040828C jbe short loc_408297
.text:0040828E push esi ; handle
.text:0040828F call __rtl_close
.text:00408294 pop ecx
.text:00408295 jmp short loc_4082A1
.text:00408297 ; ---------------------------------------------------------------------------
.text:00408297
.text:00408297 loc_408297: ; CODE XREF: cleardns+304j
.text:00408297 push edi
.text:00408298 push esi
.text:00408299 call sub_4A0CA4
.text:0040829E add esp, 8
.text:004082A1
.text:004082A1 loc_4082A1: ; CODE XREF: cleardns+2FCj
.text:004082A1 ; cleardns+30Dj
.text:004082A1 dec dword ptr
.text:004082A4 dec dword ptr
.text:004082A7 dec dword ptr
.text:004082AA dec dword ptr
.text:004082AD lea eax,
.text:004082B0 mov edx, 2
.text:004082B5 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004082BA dec dword ptr
.text:004082BD lea eax,
.text:004082C0 mov edx, 2
.text:004082C5 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004082CA
.text:004082CA loc_4082CA: ; CODE XREF: cleardns+264j
.text:004082CA cmp , 4
.text:004082D1 jz loc_407FB6
.text:004082D7 cmp , 0
.text:004082DE setz al
.text:004082E1 and eax, 1
.text:004082E4 mov edx,
.text:004082E6 mov large fs:0, edx
.text:004082ED pop edi
.text:004082EE pop esi
.text:004082EF pop ebx
.text:004082F0 mov esp, ebp
.text:004082F2 pop ebp
.text:004082F3 retn
.t
bool __cdecl cleardns(int a1, int a2)
{
const char *v2; // eax@3
char *v3; // ecx@6
char *v4; // eax@9
int v5; // eax@20
char **v6; // eax@22
char *v7; // eax@23
int v9; // @2
int v10; // @2
bool v11; // @11
int v12; // @15
int v13; // @11
char **v14; // @5
int v15; // @2
DWORD ExitCode; // @2
char v17; // @1
signed __int16 v18; // @2
int v19; // @2
int v20; // @25
int v21; // @26
int v22; // @22
int v23; // @22
char v24; // @20
int handle; // @11
int v26; // @11
char *s; // @8
int v28; // @8
int v29; // @8
int v30; // @15
int v31; // @5
const char *v32; // @2
__InitExceptBlockLDTC();
qmemcpy(&v17, &unk_4A3F18, 0x40u);
do
{
v15 = 2;
ExitCode = -1;
v10 = *(_DWORD *)(a1 + 772);
v18 = 8;
++v19;
v9 = *(_DWORD *)a2;
v32 = 0;
++v19;
sub_40CA68((int)&v32, (int)&v17, 64);
if ( v32 )
v2 = v32;
else
v2 = (const char *)&unk_4A3F8E;
v31 = 0;
++v19;
v14 = (char **)System::AnsiString::sprintf(&v31, v2, v9);// 构造netsh命令
if ( *v14 )
v3 = *v14;
else
v3 = (char *)&unk_4A3F8F;
FormatString(&v29, v3);
v19 += 4;
++v19;
v28 = 0;
++v19;
unknown_libname_1857(*off_4B9450, &v28);
s = 0;
++v19;
ExtractFilePath(v28, &s);
if ( s )
v4 = s;
else
v4 = (char *)&unk_4A3F8D;
FormatString(&handle, v4);
v19 += 4;
v11 = (unsigned __int8)sub_40E30C((int)&handle, (int)&v29, v10, &ExitCode) < 1u;// CreateProcess netsh程序
--v19;
--v19;
v13 = v26 - handle;
if ( handle )
{
if ( (unsigned int)v13 <= 0x80 )
sub_4A0CA4(handle, v13);
else
_rtl_close(handle);
}
--v19;
--v19;
--v19;
--v19;
System::AnsiString::~AnsiString(&s, 2);
--v19;
System::AnsiString::~AnsiString(&v28, 2);
--v19;
--v19;
v12 = v30 - v29;
if ( v29 )
{
if ( (unsigned int)v12 <= 0x80 )
sub_4A0CA4(v29, v12);
else
_rtl_close(v29);
}
--v19;
--v19;
--v19;
--v19;
System::AnsiString::~AnsiString(&v32, 2);
--v19;
System::AnsiString::~AnsiString(&v31, 2);
if ( v11 )
{
v18 = 68;
v5 = System::AnsiString::AnsiString(&v24, &unk_4A3F90);// 调用的动态库不存在。
++v19;
(*(void (__fastcall **)(_DWORD, _DWORD))(**(_DWORD **)(a1 + 772) + 44))(*(_DWORD *)(a1 + 772), *(_DWORD *)v5);
--v19;
System::AnsiString::~AnsiString(&v24, 2);
ExitCode = 9999;
}
if ( ExitCode )
{
v18 = 80;
++v19;
v23 = 0; // 设置中遇到问题。设置停止。.若不能解决问题,测试结果仍然有效,可据此在网络属性中手工设置DNS。
++v19;
(*(void (__fastcall **)(_DWORD, int *))(**(_DWORD **)(a1 + 772) + 28))(*(_DWORD *)(a1 + 772), &v23);
v22 = 0;
++v19;
v6 = (char **)System::AnsiString::sprintf(&v22, (const char *)&unk_4A3FA5, v23);
if ( *v6 )
v7 = *v6;
else
v7 = (char *)&unk_4A40AA;
FormatString(&v20, v7);
v19 += 4;
v15 = sub_40E26C((int)&v20, 64, 5, 0, 0);
--v19;
--v19;
if ( v20 )
{
if ( (unsigned int)(v21 - v20) <= 0x80 )
sub_4A0CA4(v20, v21 - v20);
else
_rtl_close(v20);
}
--v19;
--v19;
--v19;
--v19;
System::AnsiString::~AnsiString(&v23, 2);
--v19;
System::AnsiString::~AnsiString(&v22, 2);
}
}
while ( v15 == 4 );
return ExitCode == 0;
}
。。。。。。。。
adddns可类似分析,这里不再赘述
FASTDNS如何列出网卡的?
开始以为是找注册表,但是procmon无结果,后来还是根据字符串找到了下面的函数,该函数为设置dns的回调:
text:00403524 _TfrmFastDNS_actSetDNSExecute proc near ; DATA XREF: .data:fastdns___CPPdebugHook+1400o
.text:00403524
.text:00403524 var_58 = dword ptr -58h
.text:00403524 var_54 = dword ptr -54h
.text:00403524 var_44 = word ptr -44h
.text:00403524 var_38 = dword ptr -38h
.text:00403524 var_30 = dword ptr -30h
.text:00403524 var_2C = dword ptr -2Ch
.text:00403524 handle = dword ptr -28h
.text:00403524 var_18 = dword ptr -18h
.text:00403524 var_10 = byte ptr -10h
.text:00403524 var_8 = byte ptr -8
.text:00403524 var_4 = byte ptr -4
.text:00403524
.text:00403524 push ebp
.text:00403525 mov ebp, esp
.text:00403527 add esp, 0FFFFFFA8h
.text:0040352A push ebx
.text:0040352B push esi
.text:0040352C push edi
.text:0040352D mov ebx, eax
.text:0040352F mov eax, offset unk_4A29EC
.text:00403534 call @__InitExceptBlockLDTC
.text:00403539 mov , 8
.text:0040353F mov edx, offset unk_4A22C4
.text:00403544 lea eax,
.text:00403547 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:0040354C inc
.text:0040354F mov edx,
.text:00403551 mov eax,
.text:00403557 call @TControl@SetText ; TControl::SetText
.text:0040355C dec
.text:0040355F lea eax,
.text:00403562 mov edx, 2
.text:00403567 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040356C xor ecx, ecx
.text:0040356E mov dl, 1
.text:00403570 mov , ecx
.text:00403573 mov ecx, ebx
.text:00403575 mov , 14h
.text:0040357B mov eax, off_4A3D2C
.text:00403580 call sub_40738C
.text:00403585 mov , eax
.text:00403588 mov eax,
.text:0040358E call @TCustomListView@GetSelection ; TCustomListView::GetSelection
.text:00403593 test eax, eax
.text:00403595 jz loc_403642
.text:0040359B mov edx,
.text:0040359E mov eax,
.text:004035A4 mov edx,
.text:004035A6 call dword ptr
.text:004035AC mov , 14h
.text:004035B2 xor esi, esi
.text:004035B4 jmp short loc_403629
.text:004035B6 ; ---------------------------------------------------------------------------
.text:004035B6
.text:004035B6 loc_4035B6: ; CODE XREF: _TfrmFastDNS_actSetDNSExecute+118j
.text:004035B6 mov eax,
.text:004035BC mov edx, esi
.text:004035BE mov eax,
.text:004035C4 call sub_48A1E4
.text:004035C9 mov edx, 3
.text:004035CE call @TListItem@GetState ; TListItem::GetState
.text:004035D3 test al, al
.text:004035D5 jz short loc_403628
.text:004035D7 mov eax,
.text:004035DA mov edx, esi
.text:004035DC mov edi,
.text:004035E2 mov , 20h
.text:004035E8 mov eax,
.text:004035EE add edi, 218h
.text:004035F4 mov eax,
.text:004035FA call sub_48A1E4
.text:004035FF mov edx, eax
.text:00403601 lea eax,
.text:00403604 add edx, 24h
.text:00403607 call @System@AnsiString@$bctr$qqrrx17System@AnsiString ; System::AnsiString::AnsiString(System::AnsiString &)
.text:0040360C inc
.text:0040360F mov edx,
.text:00403611 mov eax,
.text:00403613 mov ecx,
.text:00403615 call dword ptr
.text:00403618 dec
.text:0040361B lea eax,
.text:0040361E mov edx, 2
.text:00403623 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00403628
.text:00403628 loc_403628: ; CODE XREF: _TfrmFastDNS_actSetDNSExecute+B1j
.text:00403628 inc esi
.text:00403629
.text:00403629 loc_403629: ; CODE XREF: _TfrmFastDNS_actSetDNSExecute+90j
.text:00403629 mov ecx,
.text:0040362F mov eax,
.text:00403635 call @TListItems@GetCount ; TListItems::GetCount
.text:0040363A cmp esi, eax
.text:0040363C jl loc_4035B6
.text:00403642
.text:00403642 loc_403642: ; CODE XREF: _TfrmFastDNS_actSetDNSExecute+71j
.text:00403642 mov eax,
.text:00403645 mov edx,
.text:00403647 call dword ptr
.text:0040364D mov ecx,
.text:00403650 cmp byte ptr , 0
.text:00403657 jz short loc_4036C3
.text:00403659 mov , 2Ch
.text:0040365F lea eax,
.text:00403662 lea edx,
.text:00403665 push eax
.text:00403666 inc
.text:00403669 push offset aSDnsBg; "设置DNS完成。"
.text:0040366E push edx ; _DWORD
.text:0040366F call FormatString
.text:00403674 add esp, 0Ch
.text:00403677 lea ecx,
.text:0040367A add , 4
.text:0040367E push ecx
.text:0040367F call MessageBox
.text:00403684 pop ecx
.text:00403685 dec
.text:00403688 mov , 14h
.text:0040368E dec
.text:00403691 mov esi,
.text:00403694 mov eax,
.text:00403697 sub esi, eax
.text:00403699 mov ebx, eax
.text:0040369B test ebx, ebx
.text:0040369D jz short loc_4036BA
.text:0040369F cmp esi, 80h
.text:004036A5 jbe short loc_4036B0
.text:004036A7 push ebx ; handle
.text:004036A8 call __rtl_close
.text:004036AD pop ecx
.text:004036AE jmp short loc_4036BA
.text:004036B0 ; ---------------------------------------------------------------------------
.text:004036B0
.text:004036B0 loc_4036B0: ; CODE XREF: _TfrmFastDNS_actSetDNSExecute+181j
.text:004036B0 push esi
.text:004036B1 push ebx
.text:004036B2 call sub_4A0CA4
.text:004036B7 add esp, 8
.text:004036BA
.text:004036BA loc_4036BA: ; CODE XREF: _TfrmFastDNS_actSetDNSExecute+179j
.text:004036BA ; _TfrmFastDNS_actSetDNSExecute+18Aj
.text:004036BA dec
.text:004036BD dec
.text:004036C0 dec
.text:004036C3
.text:004036C3 loc_4036C3: ; CODE XREF: _TfrmFastDNS_actSetDNSExecute+133j
.text:004036C3 mov , 0
.text:004036C9 jmp short loc_4036D6
.text:004036CB ; ---------------------------------------------------------------------------
.text:004036CB
.text:004036CB loc_4036CB: ; DATA XREF: .data:fastdns___CPPdebugHook+8F0o
.text:004036CB mov , 1Ch
.text:004036D1 call @_CatchCleanup$qv ; _CatchCleanup(void)
.text:004036D6
.text:004036D6 loc_4036D6: ; CODE XREF: _TfrmFastDNS_actSetDNSExecute+1A5j
.text:004036D6 mov ebx,
.text:004036D9 mov , ebx
.text:004036DC test ebx, ebx
.text:004036DE jz short loc_4036FE
.text:004036E0 mov eax,
.text:004036E2 mov , eax
.text:004036E5 mov , 5Ch
.text:004036EB mov edx, 3
.text:004036F0 mov eax,
.text:004036F3 mov ecx,
.text:004036F5 call dword ptr
.text:004036F8 mov , 50h
.text:004036FE
.text:004036FE loc_4036FE: ; CODE XREF: _TfrmFastDNS_actSetDNSExecute+1BAj
.text:004036FE mov edx,
.text:00403701 mov large fs:0, edx
.text:00403708 pop edi
.text:00403709 pop esi
.text:0040370A pop ebx
.text:0040370B mov esp, ebp
.text:0040370D pop ebp
.text:0040370E retn
.text:0040370E _TfrmFastDNS_actSetDNSExecute endp
.t
.text:0040738C sub_40738C proc near ; CODE XREF: _TfrmFastDNS_actSetDNSExecute+5Cp
.text:0040738C ; DATA XREF: .data:fastdns___CPPdebugHook+1D0Co
.text:0040738C
.text:0040738C var_54 = byte ptr -54h
.text:0040738C var_49 = byte ptr -49h
.text:0040738C var_48 = dword ptr -48h
.text:0040738C var_38 = word ptr -38h
.text:0040738C var_2C = dword ptr -2Ch
.text:0040738C var_28 = byte ptr -28h
.text:0040738C var_1C = byte ptr -1Ch
.text:0040738C var_4 = dword ptr -4
.text:0040738C
.text:0040738C push ebp
.text:0040738D mov ebp, esp
.text:0040738F add esp, 0FFFFFFACh
.text:00407392 push ebx
.text:00407393 push esi
.text:00407394 push edi
.text:00407395 mov , dl
.text:00407398 test dl, dl
.text:0040739A jle short loc_4073A1
.text:0040739C call __ClassCreate
.text:004073A1
.text:004073A1 loc_4073A1: ; CODE XREF: sub_40738C+Ej
.text:004073A1 mov ebx, ecx
.text:004073A3 mov , dl
.text:004073A6 mov , eax
.text:004073A9 lea esi,
.text:004073AC mov eax, offset unk_4A3A70
.text:004073B1 call @__InitExceptBlockLDTC
.text:004073B6 mov , 8
.text:004073BC mov ecx, ebx
.text:004073BE xor edx, edx
.text:004073C0 mov eax,
.text:004073C3 call sub_401EFC
.text:004073C8 add , 10h
.text:004073CC mov edx,
.text:004073CF xor ecx, ecx
.text:004073D1 xor eax, eax
.text:004073D3 mov byte ptr , 0
.text:004073DA mov , 20h
.text:004073E0 inc
.text:004073E3 mov , ecx
.text:004073E5 mov , eax
.text:004073E8 xor edx, edx
.text:004073EA inc
.text:004073ED mov , edx
.text:004073F0 inc
.text:004073F3 inc
.text:004073F6 inc
.text:004073F9 dec
.text:004073FC mov , 14h
.text:00407402 push esi
.text:00407403 call sub_4071FC
.text:00407408 pop ecx
.text:00407409 mov ebx,
.text:0040740B jmp short loc_407427
.text:0040740D ; ---------------------------------------------------------------------------
.text:0040740D
.text:0040740D loc_40740D: ; CODE XREF: sub_40738C+9Ej
.text:0040740D mov eax,
.text:00407410 mov eax,
.text:00407416 add eax, 218h
.text:0040741B mov edx,
.text:0040741D mov eax,
.text:0040741F mov ecx,
.text:00407421 call dword ptr
.text:00407424 add ebx, 4
.text:00407427
.text:00407427 loc_407427: ; CODE XREF: sub_40738C+7Fj
.text:00407427 cmp ebx,
.text:0040742A jnz short loc_40740D
.text:0040742C dec
.text:0040742F lea ecx,
.text:00407432 mov eax,
.text:00407435 mov edx,
.text:00407437 push ecx
.text:00407438 push eax
.text:00407439 push edx
.text:0040743A call sub_403254
.text:0040743F mov , 14h
.text:00407445 dec
.text:00407448 add esp, 0Ch
.text:0040744B mov edi,
.text:0040744E mov eax,
.text:00407450 sub edi, eax
.text:00407452 test edi, edi
.text:00407454 jns short loc_407459
.text:00407456 add edi, 3
.text:00407459
.text:00407459 loc_407459: ; CODE XREF: sub_40738C+C8j
.text:00407459 sar edi, 2
.text:0040745C mov ebx, eax
.text:0040745E test ebx, ebx
.text:00407460 jz short loc_407482
.text:00407462 mov esi, edi
.text:00407464 shl esi, 2
.text:00407467 cmp esi, 80h
.text:0040746D jbe short loc_407478
.text:0040746F push ebx ; handle
.text:00407470 call __rtl_close
.text:00407475 pop ecx
.text:00407476 jmp short loc_407482
.text:00407478 ; ---------------------------------------------------------------------------
.text:00407478
.text:00407478 loc_407478: ; CODE XREF: sub_40738C+E1j
.text:00407478 push esi
.text:00407479 push ebx
.text:0040747A call sub_4A0CA4
.text:0040747F add esp, 8
.text:00407482
.text:00407482 loc_407482: ; CODE XREF: sub_40738C+D4j
.text:00407482 ; sub_40738C+EAj
.text:00407482 dec
.text:00407485 dec
.text:00407488 mov , 8
.text:0040748E mov eax,
.text:00407491 mov large fs:0, eax
.text:00407497 mov eax,
.text:0040749A cmp , 0
.text:0040749E jz short loc_4074A5
.text:004074A0 call @@AfterConstruction ; __AfterConstruction
.text:004074A5
.text:004074A5 loc_4074A5: ; CODE XREF: sub_40738C+112j
.text:004074A5 pop edi
.text:004074A6 pop esi
.text:004074A7 pop ebx
.text:004074A8 mov esp, ebp
.text:004074AA pop ebp
.text:004074AB retn
.text:004074AB sub_40738C endp
.text:004074AB
.
.text:004071FC sub_4071FC proc near ; CODE XREF: showstatus+374p
.text:004071FC ; sub_40738C+77p
.text:004071FC
.text:004071FC var_54 = byte ptr -54h
.text:004071FC var_4C = dword ptr -4Ch
.text:004071FC SizePointer = dword ptr -48h
.text:004071FC var_44 = byte ptr -44h
.text:004071FC var_3C = byte ptr -3Ch
.text:004071FC var_34 = dword ptr -34h
.text:004071FC var_30 = dword ptr -30h
.text:004071FC var_20 = word ptr -20h
.text:004071FC var_14 = dword ptr -14h
.text:004071FC var_C = dword ptr -0Ch
.text:004071FC var_8 = byte ptr -8
.text:004071FC var_4 = dword ptr -4
.text:004071FC arg_0 = dword ptr8
.text:004071FC
.text:004071FC push ebp
.text:004071FD mov ebp, esp
.text:004071FF add esp, 0FFFFFFACh
.text:00407202 mov eax, offset unk_4A39F0
.text:00407207 push ebx
.text:00407208 push esi
.text:00407209 push edi
.text:0040720A mov ebx,
.text:0040720D call @__InitExceptBlockLDTC
.text:00407212 mov edi,
.text:00407215 mov esi,
.text:00407217 mov eax,
.text:0040721A lea edx,
.text:0040721D mov , eax
.text:00407220 push 0
.text:00407222 push edx
.text:00407223 push esi
.text:00407224 mov ecx,
.text:00407227 push ecx
.text:00407228 push edi
.text:00407229 call sub_403BF8
.text:0040722E add esp, 14h
.text:00407231 mov edi, eax
.text:00407233 mov eax,
.text:00407236 mov edx, edi
.text:00407238 lea ecx,
.text:0040723B push ecx
.text:0040723C push eax
.text:0040723D push edx
.text:0040723E call sub_403254
.text:00407243 add esp, 0Ch
.text:00407246 mov , edi
.text:00407249 mov , 8
.text:0040724F push 280h
.text:00407254 call @$bnwa$qui ; operator new[](uint)
.text:00407259 pop ecx
.text:0040725A mov edi, eax
.text:0040725C mov , 280h
.text:00407263 mov , 8
.text:00407269 lea eax,
.text:0040726C push eax ; SizePointer
.text:0040726D push edi ; AdapterInfo
.text:0040726E call GetAdaptersInfo
.text:00407273 cmp eax, 6Fh
.text:00407276 jnz short loc_40728B
.text:00407278 push edi ; handle
.text:00407279 call __close
.text:0040727E pop ecx
.text:0040727F mov edx,
.text:00407282 push edx
.text:00407283 call @$bnwa$qui ; operator new[](uint)
.text:00407288 pop ecx
.text:00407289 mov edi, eax
.text:0040728B
.text:0040728B loc_40728B: ; CODE XREF: sub_4071FC+7Aj
.text:0040728B lea eax,
.text:0040728E push eax ; SizePointer
.text:0040728F push edi ; AdapterInfo
.text:00407290 call GetAdaptersInfo
.text:00407295 test eax, eax
.text:00407297 jnz loc_40735D
.text:0040729D mov esi, edi
.text:0040729F test esi, esi
.text:004072A1 jz loc_40735D
.text:004072A7
.text:004072A7 loc_4072A7: ; CODE XREF: sub_4071FC+15Bj
.text:004072A7 mov , 20h
.text:004072AD lea edx,
.text:004072B0 lea eax,
.text:004072B3 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:004072B8 inc
.text:004072BB lea ecx,
.text:004072BE push ecx
.text:004072BF xor eax, eax
.text:004072C1 mov , eax
.text:004072C4 lea edx,
.text:004072C7 push edx
.text:004072C8 inc
.text:004072CB call sub_406FD8
.text:004072D0 add esp, 8
.text:004072D3 dec
.text:004072D6 lea eax,
.text:004072D9 mov edx, 2
.text:004072DE call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004072E3 mov , 14h
.text:004072E9 cmp , 0
.text:004072ED jz short loc_40733D
.text:004072EF mov ecx,
.text:004072F2 cmp ecx,
.text:004072F5 jz short loc_407324
.text:004072F7 mov eax,
.text:004072FA mov , eax
.text:004072FD mov edx,
.text:00407300 mov , edx
.text:00407303 test edx, edx
.text:00407305 jz short loc_40731E
.text:00407307 mov , 38h
.text:0040730D lea edx,
.text:00407310 mov eax,
.text:00407313 call @System@AnsiString@$bctr$qqrrx17System@AnsiString ; System::AnsiString::AnsiString(System::AnsiString &)
.text:00407318 mov , 2Ch
.text:0040731E
.text:0040731E loc_40731E: ; CODE XREF: sub_4071FC+109j
.text:0040731E add dword ptr , 4
.text:00407322 jmp short loc_40733D
.text:00407324 ; ---------------------------------------------------------------------------
.text:00407324
.text:00407324 loc_407324: ; CODE XREF: sub_4071FC+F9j
.text:00407324 push 1
.text:00407326 push 1
.text:00407328 lea ecx,
.text:0040732B push ecx
.text:0040732C lea eax,
.text:0040732F push eax
.text:00407330 mov edx,
.text:00407333 push edx
.text:00407334 push ebx
.text:00407335 call sub_403C34
.text:0040733A add esp, 18h
.text:0040733D
.text:0040733D loc_40733D: ; CODE XREF: sub_4071FC+F1j
.text:0040733D ; sub_4071FC+126j
.text:0040733D mov esi,
.text:0040733F dec
.text:00407342 lea eax,
.text:00407345 mov edx, 2
.text:0040734A call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040734F mov , 8
.text:00407355 test esi, esi
.text:00407357 jnz loc_4072A7
.text:0040735D
.text:0040735D loc_40735D: ; CODE XREF: sub_4071FC+9Bj
.text:0040735D ; sub_4071FC+A5j
.text:0040735D mov , 0
.text:00407363 jmp short loc_407372
.text:00407365 ; ---------------------------------------------------------------------------
.text:00407365
.text:00407365 loc_407365: ; DATA XREF: .data:fastdns___CPPdebugHook+1904o
.text:00407365 xor edi, edi
.text:00407367 mov , 10h
.text:0040736D call @_CatchCleanup$qv ; _CatchCleanup(void)
.text:00407372
.text:00407372 loc_407372: ; CODE XREF: sub_4071FC+167j
.text:00407372 push edi ; handle
.text:00407373 call __close
.text:00407378 pop ecx
.text:00407379 mov eax,
.text:0040737C mov large fs:0, eax
.text:00407382 pop edi
.text:00407383 pop esi
.text:00407384 pop ebx
.text:00407385 mov esp, ebp
.text:00407387 pop ebp
.text:00407388 retn
.
这里可以看到是用GetAdapterInfo得到的,得到的每个AdapterName再送到sub_406FDB中检查:
text:00406FD8 sub_406FD8 proc near ; CODE XREF: sub_4071FC+CFp
.text:00406FD8
.text:00406FD8 var_50 = dword ptr -50h
.text:00406FD8 var_4C = dword ptr -4Ch
.text:00406FD8 var_3C = word ptr -3Ch
.text:00406FD8 var_30 = dword ptr -30h
.text:00406FD8 var_28 = dword ptr -28h
.text:00406FD8 var_24 = dword ptr -24h
.text:00406FD8 var_20 = byte ptr -20h
.text:00406FD8 var_1C = dword ptr -1Ch
.text:00406FD8 var_18 = byte ptr -18h
.text:00406FD8 var_14 = dword ptr -14h
.text:00406FD8 var_10 = byte ptr -10h
.text:00406FD8 var_C = dword ptr -0Ch
.text:00406FD8 var_8 = byte ptr -8
.text:00406FD8 var_4 = dword ptr -4
.text:00406FD8 arg_0 = dword ptr8
.text:00406FD8 arg_4 = dword ptr0Ch
.text:00406FD8
.text:00406FD8 push ebp
.text:00406FD9 mov ebp, esp
.text:00406FDB add esp, 0FFFFFFB0h
.text:00406FDE mov eax, offset unk_4A3914
.text:00406FE3 push ebx
.text:00406FE4 push esi
.text:00406FE5 push edi
.text:00406FE6 call @__InitExceptBlockLDTC
.text:00406FEB mov , 8
.text:00406FF1 xor edx, edx
.text:00406FF3 mov eax, ds:off_427A54
.text:00406FF8 mov , edx
.text:00406FFB mov dl, 1
.text:00406FFD inc
.text:00407000 xor ecx, ecx
.text:00407002 mov , 14h
.text:00407008 mov , ecx
.text:0040700B mov ecx, 20019h
.text:00407010 mov , 20h
.text:00407016 call @TRegistry@$bctr_0 ; TRegistry::`...'
.text:0040701B mov , eax
.text:0040701E mov edx, 80000002h
.text:00407023 mov eax,
.text:00407026 call j_@TRegistry@SetRootKey ; TRegistry::SetRootKey
.text:0040702B mov , 2Ch
.text:00407031 mov edx, offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Net"...
.text:00407036 lea eax,
.text:00407039 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:0040703E inc
.text:00407041 xor ecx, ecx
.text:00407043 mov , ecx
.text:00407046 lea ecx,
.text:00407049 inc
.text:0040704C mov edx,
.text:0040704F call @System@AnsiString@$badd$xqqrrx17System@AnsiString ; System::AnsiString::operator+(System::AnsiString &)
.text:00407054 lea eax,
.text:00407057 push eax
.text:00407058 mov edx, offset aConnection ; "\\Connection\\"
.text:0040705D lea eax,
.text:00407060 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:00407065 inc
.text:00407068 xor eax, eax
.text:0040706A mov , eax
.text:0040706D lea edx,
.text:00407070 inc
.text:00407073 lea ecx,
.text:00407076 pop eax
.text:00407077 call @System@AnsiString@$badd$xqqrrx17System@AnsiString ; System::AnsiString::operator+(System::AnsiString &)
.text:0040707C lea edx,
.text:0040707F mov edx,
.text:00407081 xor ecx, ecx
.text:00407083 mov eax,
.text:00407086 call @TRegistry@OpenKey ; TRegistry::OpenKey
.text:0040708B push eax
.text:0040708C dec
.text:0040708F lea eax,
.text:00407092 mov edx, 2
.text:00407097 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040709C dec
.text:0040709F lea eax,
.text:004070A2 mov edx, 2
.text:004070A7 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004070AC dec
.text:004070AF lea eax,
.text:004070B2 mov edx, 2
.text:004070B7 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004070BC dec
.text:004070BF lea eax,
.text:004070C2 mov edx, 2
.text:004070C7 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004070CC pop ecx
.text:004070CD test cl, cl
.text:004070CF jz short loc_407129
.text:004070D1 mov , 38h
.text:004070D7 mov edx, offset aName ; "Name"
.text:004070DC lea eax,
.text:004070DF call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:004070E4 inc
.text:004070E7 mov edx,
.text:004070E9 xor eax, eax
.text:004070EB mov , eax
.text:004070EE lea ecx,
.text:004070F1 inc
.text:004070F4 mov eax,
.text:004070F7 call @TRegistry@ReadString ; TRegistry::ReadString
.text:004070FC lea edx,
.text:004070FF lea eax,
.text:00407102 call sub_4A0484
.text:00407107 dec
.text:0040710A lea eax,
.text:0040710D mov edx, 2
.text:00407112 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00407117 dec
.text:0040711A lea eax,
.text:0040711D mov edx, 2
.text:00407122 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00407127 jmp short loc_40715A
.text:00407129 ; ---------------------------------------------------------------------------
.text:00407129
.text:00407129 loc_407129: ; CODE XREF: sub_406FD8+F7j
.text:00407129 mov , 44h
.text:0040712F mov edx, offset unk_4A37E9
.text:00407134 lea eax,
.text:00407137 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:0040713C inc
.text:0040713F lea edx,
.text:00407142 lea eax,
.text:00407145 call sub_4A0484
.text:0040714A dec
.text:0040714D lea eax,
.text:00407150 mov edx, 2
.text:00407155 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040715A
.text:0040715A loc_40715A: ; CODE XREF: sub_406FD8+14Fj
.text:0040715A mov , 14h
.text:00407160 jmp short loc_40716D
.text:00407162 ; ---------------------------------------------------------------------------
.text:00407162
.text:00407162 loc_407162: ; DATA XREF: .data:fastdns___CPPdebugHook+17B4o
.text:00407162 mov , 28h
.text:00407168 call @_CatchCleanup$qv ; _CatchCleanup(void)
.text:0040716D
.text:0040716D loc_40716D: ; CODE XREF: sub_406FD8+188j
.text:0040716D mov ebx,
.text:00407170 mov , ebx
.text:00407173 test ebx, ebx
.text:00407175 jz short loc_407195
.text:00407177 mov eax,
.text:00407179 mov , eax
.text:0040717C mov , 5Ch
.text:00407182 mov edx, 3
.text:00407187 mov eax,
.text:0040718A mov ecx,
.text:0040718C call dword ptr
.text:0040718F mov , 50h
.text:00407195
.text:00407195 loc_407195: ; CODE XREF: sub_406FD8+19Dj
.text:00407195 mov , 68h
.text:0040719B lea edx,
.text:0040719E mov eax,
.text:004071A1 call sub_4A0484
.text:004071A6 mov eax,
.text:004071A9 mov edx, 2
.text:004071AE mov , 74h
.text:004071B4 push eax
.text:004071B5 lea eax,
.text:004071B8 dec
.text:004071BB call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004071C0 pop eax
.text:004071C1 mov , 68h
.text:004071C7 inc
.text:004071CA mov edx,
.text:004071CD mov large fs:0, edx
.text:004071D4 pop edi
.text:004071D5 pop esi
.text:004071D6 pop ebx
.text:004071D7 mov esp, ebp
.text:004071D9 pop ebp
.text:004071DA retn
.text:004071DA sub_406FD8 endp
.text:004071DA
.t
int __cdecl sub_406FD8(int a1, int a2)
{
int v2; // eax@1
char v3; // ST00_1@1
int v4; // edx@2
int v5; // ST3C_4@5
int v7; // @1
char v8; // @3
int v9; // @2
char v10; // @2
int v11; // @1
char v12; // @1
int v13; // @1
char v14; // @1
int v15; // @1
__InitExceptBlockLDTC();
v15 = 0;
v7 = TRegistry::`...'(dword_427AA0, 1, 131097);
TRegistry::SetRootKey(v7, -2147483646);
v2 = System::AnsiString::AnsiString(
&v14,
"SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\");
v13 = 0;
System::AnsiString::operator+(v2, a2, &v13);
System::AnsiString::AnsiString(&v12, "\\Connection\\");
v11 = 0;
System::AnsiString::operator+(&v13, &v12, &v11);
v3 = TRegistry::OpenKey(v7, v11, 0);
System::AnsiString::~AnsiString(&v11, 2);
System::AnsiString::~AnsiString(&v12, 2);
System::AnsiString::~AnsiString(&v13, 2);
System::AnsiString::~AnsiString(&v14, 2);
if ( v3 )
{
v4 = *(_DWORD *)System::AnsiString::AnsiString(&v10, "Name");
v9 = 0;
TRegistry::ReadString(v7, v4);
sub_4A0484(&v15, &v9);
System::AnsiString::~AnsiString(&v9, 2);
System::AnsiString::~AnsiString(&v10, 2);
}
else
{
System::AnsiString::AnsiString(&v8, &unk_4A37E9);
sub_4A0484(&v15, &v8);
System::AnsiString::~AnsiString(&v8, 2);
}
if ( v7 )
{
v5 = *(_DWORD *)v7;
(*(void (__fastcall **)(int, signed int))(*(_DWORD *)v7 - 4))(v7, 3);
}
sub_4A0484(a1, &v15);
System::AnsiString::~AnsiString(&v15, 2);
return a1;
}
做一些字符串操作然后查注册表中存储的网卡信息,取得name并存储
FASTDNS如何初始化那些DNS串的,存储在哪里?
熟悉windows消息机制的会清楚,ListView显示条目用的是SendMessage LVM_SETITEXT或类似机制,而绝不是自己设置,那么我们只需要在启动时加载程序并拦截该函数,看看数目和ip数目吻合程度就知道了。由于结果较多只贴出循环节:
hwnd=812a0 msg=4103
hwnd=812a0 msg=4101
hwnd=812a0 msg=4109
hwnd=812a0 msg=4142
此时可以用spy++查下hwnd是不是ListView,然后看看消息代码
可知分别对应:
LVM_GETITEMA LVM_INSERTITEMA LVM_FINDITEMA LVM_SETITEMTEXTA
第二个和第四个正是我们处理多column的ListView所用的操作,没想到Delphi程序也是这么做的(只不过可能经过层层封装)
下条件断点,进入后发现LVITEM.pszText为-1(LPSTR_TEXTCALLBACK,该消息是说显示到哪再加载那里的数据,较为灵活,对分析造成了困难),也就是说并未再此时赋值,因此使用该方法寻找dns地址根源是失败的,那么我们再次想到字符串,用winhex搜索地址串,并下数据断点,等移动ListView的滚动条时,程序自动断下,进入.text:0048C33C ; TCustomListView::CNNotify
。。。。。。。。
else
{
v4 = v3 + 308;
if ( v4 )
{
v5 = v4 - 151;
if ( v5 )
{
v6 = v5 - 5;
if ( v6 )
{
if ( v6 == 2 ) // LVN_GETDISPINFOA
{
v64 = TCustomListView::GetItem(v106, (const void *)(v2 + 12));
v65 = *(_DWORD *)(v105 + 8);
v66 = v65 + 12;
if ( *(_BYTE *)(v65 + 12) & 1 )
{
v67 = *(_DWORD *)(v65 + 20);
if ( v67 )
{
v96 = *(_DWORD *)(v64 + 8);
if ( v67 > (*(int (__cdecl **)(unsigned int, _UNKNOWN *, int *))(*(_DWORD *)v96 + 20))(v87, v88, v89) )
{
**(_BYTE **)(v66 + 20) = 0;
}
else
{
(*(void (__fastcall **)(int, int, int *))(*(_DWORD *)v96 + 12))(v96, *(_DWORD *)(v66 + 8) - 1, &v91);
StrPLCopy(*(void **)(v66 + 20), v91, *(_DWORD *)(v66 + 24) - 1);
}
}
else
{
StrPLCopy(*(void **)(v65 + 32), *(char **)(v64 + 0x24), *(_DWORD *)(v65 + 36) - 1);
}
}
。。。。。。。。
可以看到这里正是我们需要的LVN_GETDISPINFOA,程序通过该回调设置真正的列表数据
程序经过最后面这个StrPLCopy,因此我们的重点是看谁改了v64,向上发现源头在TCustomListView::GetItem
跟进,发现最终源头为SendMessageA(hWnd, LVM_GETITEM, 0, &lvitem);得到的*(char*)(lvitem->lparam+0x24)最终结果。
那么谁设置了lparam呢?继续追寻
-100 -101 -102 -150
LVN_ITEMCHANGING FFFFFF9C
LVN_ITEMCHANGEDFFFFFF9B
LVN_INSERTITEM FFFFFF9A
LVN_GETDISPINFOA FFFFFF6A
如果下消息断点,并不能发现LVM_SETITEM消息,可能是对delphi不了解吧
这时还要采用最古老的方法,既然显示给我们了,那么内存里已经有字符串,并且一定是解密的,winhex找到位置后,下硬件断点,到了这里:
FastDNS!DnslistFinalize+0x555:
0040ba8d 3a4d14 cmp cl,byte ptr ss:002b:0018fbf4=2c
向上层回溯,看看拿到dns地址的根源在什么地方:
.text:0040A258 sub_40A258 proc near ; CODE XREF: sub_402474+81p
.text:0040A258
.text:0040A258 var_180 = dword ptr -180h
.text:0040A258 var_17C = dword ptr -17Ch
.text:0040A258 var_178 = byte ptr -178h
.text:0040A258 var_170 = dword ptr -170h
.text:0040A258 var_16C = dword ptr -16Ch
.text:0040A258 var_168 = dword ptr -168h
.text:0040A258 var_164 = byte ptr -164h
.text:0040A258 var_15C = dword ptr -15Ch
.text:0040A258 var_158 = dword ptr -158h
.text:0040A258 var_154 = dword ptr -154h
.text:0040A258 var_150 = dword ptr -150h
.text:0040A258 var_14C = dword ptr -14Ch
.text:0040A258 var_148 = dword ptr -148h
.text:0040A258 var_144 = dword ptr -144h
.text:0040A258 var_140 = dword ptr -140h
.text:0040A258 var_13C = byte ptr -13Ch
.text:0040A258 var_134 = dword ptr -134h
.text:0040A258 var_130 = byte ptr -130h
.text:0040A258 var_128 = dword ptr -128h
.text:0040A258 var_124 = byte ptr -124h
.text:0040A258 var_11C = dword ptr -11Ch
.text:0040A258 var_118 = dword ptr -118h
.text:0040A258 var_114 = byte ptr -114h
.text:0040A258 var_F0 = dword ptr -0F0h
.text:0040A258 var_EC = byte ptr -0ECh
.text:0040A258 var_E8 = dword ptr -0E8h
.text:0040A258 var_D8 = dword ptr -0D8h
.text:0040A258 var_D0 = dword ptr -0D0h
.text:0040A258 var_CC = byte ptr -0CCh
.text:0040A258 var_C8 = dword ptr -0C8h
.text:0040A258 var_B8 = dword ptr -0B8h
.text:0040A258 var_B0 = dword ptr -0B0h
.text:0040A258 var_AC = byte ptr -0ACh
.text:0040A258 var_A4 = dword ptr -0A4h
.text:0040A258 var_A0 = dword ptr -0A0h
.text:0040A258 var_7C = dword ptr -7Ch
.text:0040A258 handle = dword ptr -58h
.text:0040A258 var_30 = dword ptr -30h
.text:0040A258 var_18 = dword ptr -18h
.text:0040A258 arg_0 = dword ptr8
.text:0040A258 arg_4 = dword ptr0Ch
.text:0040A258
.text:0040A258 push ebp
.text:0040A259 mov ebp, esp
.text:0040A25B add esp, 0FFFFFE80h
.text:0040A261 push ebx
.text:0040A262 push esi
.text:0040A263 push edi
.text:0040A264 lea ebx,
.text:0040A26A mov eax, offset unk_4B2A5C
.text:0040A26F call @__InitExceptBlockLDTC
.text:0040A274 mov edx,
.text:0040A277 push edx
.text:0040A278 call sub_40C368
.text:0040A27D pop ecx
.text:0040A27E xor eax, eax
.text:0040A280 mov word ptr , 14h
.text:0040A286 inc dword ptr
.text:0040A289 lea ecx,
.text:0040A28C mov , ecx
.text:0040A292 mov , eax
.text:0040A295 xor edx, edx
.text:0040A297 xor ecx, ecx
.text:0040A299 mov , edx
.text:0040A29C lea eax,
.text:0040A29F inc dword ptr
.text:0040A2A2 mov , ecx
.text:0040A2A5 inc dword ptr
.text:0040A2A8 inc dword ptr
.text:0040A2AB inc dword ptr
.text:0040A2AE dec dword ptr
.text:0040A2B1 lea edx,
.text:0040A2B4 mov word ptr , 8
.text:0040A2BA mov word ptr , 2Ch
.text:0040A2C0 push eax
.text:0040A2C1 inc dword ptr
.text:0040A2C4 push offset asc_4B2712 ; "\r\n"
.text:0040A2C9 push edx ; _DWORD
.text:0040A2CA call FormatString
.text:0040A2CF add dword ptr , 4
.text:0040A2D3 mov ecx,
.text:0040A2D6 add esp, 0Ch
.text:0040A2D9 cmp ecx,
.text:0040A2DC jz short loc_40A316
.text:0040A2DE mov eax,
.text:0040A2E1 mov , eax
.text:0040A2E7 mov edx,
.text:0040A2ED mov , edx
.text:0040A2F0 test edx, edx
.text:0040A2F2 jz short loc_40A310
.text:0040A2F4 mov word ptr , 38h
.text:0040A2FA lea eax,
.text:0040A2FD push eax
.text:0040A2FE mov ecx,
.text:0040A301 push ecx
.text:0040A302 call sub_40AD98
.text:0040A307 mov word ptr , 2Ch
.text:0040A30D add esp, 8
.text:0040A310
.text:0040A310 loc_40A310: ; CODE XREF: sub_40A258+9Aj
.text:0040A310 add , 18h
.text:0040A314 jmp short loc_40A335
.text:0040A316 ; ---------------------------------------------------------------------------
.text:0040A316
.text:0040A316 loc_40A316: ; CODE XREF: sub_40A258+84j
.text:0040A316 push 1
.text:0040A318 push 1
.text:0040A31A lea eax,
.text:0040A320 push eax
.text:0040A321 lea edx,
.text:0040A324 push edx
.text:0040A325 mov ecx,
.text:0040A328 push ecx
.text:0040A329 lea eax,
.text:0040A32C push eax
.text:0040A32D call sub_40A968
.text:0040A332 add esp, 18h
.text:0040A335
.text:0040A335 loc_40A335: ; CODE XREF: sub_40A258+BCj
.text:0040A335 dec dword ptr
.text:0040A338 mov word ptr , 8
.text:0040A33E dec dword ptr
.text:0040A341 mov edi,
.text:0040A344 sub edi,
.text:0040A347 mov esi,
.text:0040A34A test esi, esi
.text:0040A34C jz short loc_40A369
.text:0040A34E cmp edi, 80h
.text:0040A354 jbe short loc_40A35F
.text:0040A356 push esi ; handle
.text:0040A357 call __rtl_close
.text:0040A35C pop ecx
.text:0040A35D jmp short loc_40A369
.text:0040A35F ; ---------------------------------------------------------------------------
.text:0040A35F
.text:0040A35F loc_40A35F: ; CODE XREF: sub_40A258+FCj
.text:0040A35F push edi
.text:0040A360 push esi
.text:0040A361 call sub_4A0CA4
.text:0040A366 add esp, 8
.text:0040A369
.text:0040A369 loc_40A369: ; CODE XREF: sub_40A258+F4j
.text:0040A369 ; sub_40A258+105j
.text:0040A369 dec dword ptr
.text:0040A36C dec dword ptr
.text:0040A36F dec dword ptr
.text:0040A372 lea eax,
.text:0040A375 mov word ptr , 5Ch
.text:0040A37B push eax
.text:0040A37C lea edx,
.text:0040A37F inc dword ptr
.text:0040A382 push offset asc_4B2715 ; "\r"
.text:0040A387 push edx ; _DWORD
.text:0040A388 call FormatString
.text:0040A38D add dword ptr , 4
.text:0040A391 mov ecx,
.text:0040A394 add esp, 0Ch
.text:0040A397 cmp ecx,
.text:0040A39A jz short loc_40A3D4
.text:0040A39C mov eax,
.text:0040A39F mov , eax
.text:0040A3A5 mov edx,
.text:0040A3AB mov , edx
.text:0040A3AE test edx, edx
.text:0040A3B0 jz short loc_40A3CE
.text:0040A3B2 mov word ptr , 68h
.text:0040A3B8 lea eax,
.text:0040A3BB push eax
.text:0040A3BC mov ecx,
.text:0040A3BF push ecx
.text:0040A3C0 call sub_40AD98
.text:0040A3C5 mov word ptr , 5Ch
.text:0040A3CB add esp, 8
.text:0040A3CE
.text:0040A3CE loc_40A3CE: ; CODE XREF: sub_40A258+158j
.text:0040A3CE add , 18h
.text:0040A3D2 jmp short loc_40A3F3
.text:0040A3D4 ; ---------------------------------------------------------------------------
.text:0040A3D4
.text:0040A3D4 loc_40A3D4: ; CODE XREF: sub_40A258+142j
.text:0040A3D4 push 1
.text:0040A3D6 push 1
.text:0040A3D8 lea eax,
.text:0040A3DE push eax
.text:0040A3DF lea edx,
.text:0040A3E2 push edx
.text:0040A3E3 mov ecx,
.text:0040A3E6 push ecx
.text:0040A3E7 lea eax,
.text:0040A3EA push eax
.text:0040A3EB call sub_40A968
.text:0040A3F0 add esp, 18h
.text:0040A3F3
.text:0040A3F3 loc_40A3F3: ; CODE XREF: sub_40A258+17Aj
.text:0040A3F3 dec dword ptr
.text:0040A3F6 mov word ptr , 8
.text:0040A3FC dec dword ptr
.text:0040A3FF mov edi,
.text:0040A402 sub edi,
.text:0040A405 mov esi,
.text:0040A408 test esi, esi
.text:0040A40A jz short loc_40A427
.text:0040A40C cmp edi, 80h
.text:0040A412 jbe short loc_40A41D
.text:0040A414 push esi ; handle
.text:0040A415 call __rtl_close
.text:0040A41A pop ecx
.text:0040A41B jmp short loc_40A427
.text:0040A41D ; ---------------------------------------------------------------------------
.text:0040A41D
.text:0040A41D loc_40A41D: ; CODE XREF: sub_40A258+1BAj
.text:0040A41D push edi
.text:0040A41E push esi
.text:0040A41F call sub_4A0CA4
.text:0040A424 add esp, 8
.text:0040A427
.text:0040A427 loc_40A427: ; CODE XREF: sub_40A258+1B2j
.text:0040A427 ; sub_40A258+1C3j
.text:0040A427 dec dword ptr
.text:0040A42A dec dword ptr
.text:0040A42D dec dword ptr
.text:0040A430 lea eax,
.text:0040A436 mov word ptr , 8Ch
.text:0040A43C push eax
.text:0040A43D lea edx,
.text:0040A443 inc dword ptr
.text:0040A446 push offset asc_4B2717 ; "\n"
.text:0040A44B push edx ; _DWORD
.text:0040A44C call FormatString
.text:0040A451 add dword ptr , 4
.text:0040A455 mov ecx,
.text:0040A458 add esp, 0Ch
.text:0040A45B cmp ecx,
.text:0040A45E jz short loc_40A4A1
.text:0040A460 mov eax,
.text:0040A463 mov , eax
.text:0040A469 mov edx,
.text:0040A46F mov , edx
.text:0040A475 test edx, edx
.text:0040A477 jz short loc_40A49B
.text:0040A479 mov word ptr , 98h
.text:0040A47F lea eax,
.text:0040A485 push eax
.text:0040A486 mov ecx,
.text:0040A48C push ecx
.text:0040A48D call sub_40AD98
.text:0040A492 mov word ptr , 8Ch
.text:0040A498 add esp, 8
.text:0040A49B
.text:0040A49B loc_40A49B: ; CODE XREF: sub_40A258+21Fj
.text:0040A49B add , 18h
.text:0040A49F jmp short loc_40A4C3
.text:0040A4A1 ; ---------------------------------------------------------------------------
.text:0040A4A1
.text:0040A4A1 loc_40A4A1: ; CODE XREF: sub_40A258+206j
.text:0040A4A1 push 1
.text:0040A4A3 push 1
.text:0040A4A5 lea eax,
.text:0040A4AB push eax
.text:0040A4AC lea edx,
.text:0040A4B2 push edx
.text:0040A4B3 mov ecx,
.text:0040A4B6 push ecx
.text:0040A4B7 lea eax,
.text:0040A4BA push eax
.text:0040A4BB call sub_40A968
.text:0040A4C0 add esp, 18h
.text:0040A4C3
.text:0040A4C3 loc_40A4C3: ; CODE XREF: sub_40A258+247j
.text:0040A4C3 dec dword ptr
.text:0040A4C6 mov word ptr , 8
.text:0040A4CC dec dword ptr
.text:0040A4CF mov edi,
.text:0040A4D5 sub edi,
.text:0040A4DB mov esi,
.text:0040A4E1 test esi, esi
.text:0040A4E3 jz short loc_40A500
.text:0040A4E5 cmp edi, 80h
.text:0040A4EB jbe short loc_40A4F6
.text:0040A4ED push esi ; handle
.text:0040A4EE call __rtl_close
.text:0040A4F3 pop ecx
.text:0040A4F4 jmp short loc_40A500
.text:0040A4F6 ; ---------------------------------------------------------------------------
.text:0040A4F6
.text:0040A4F6 loc_40A4F6: ; CODE XREF: sub_40A258+293j
.text:0040A4F6 push edi
.text:0040A4F7 push esi
.text:0040A4F8 call sub_4A0CA4
.text:0040A4FD add esp, 8
.text:0040A500
.text:0040A500 loc_40A500: ; CODE XREF: sub_40A258+28Bj
.text:0040A500 ; sub_40A258+29Cj
.text:0040A500 dec dword ptr
.text:0040A503 dec dword ptr
.text:0040A506 dec dword ptr
.text:0040A509 lea eax,
.text:0040A50F mov word ptr , 0BCh
.text:0040A515 inc dword ptr
.text:0040A518 mov , eax
.text:0040A51E xor edx, edx
.text:0040A520 xor ecx, ecx
.text:0040A522 mov , edx
.text:0040A525 mov , ecx
.text:0040A528 inc dword ptr
.text:0040A52B xor eax, eax
.text:0040A52D mov , eax
.text:0040A530 lea edx,
.text:0040A533 inc dword ptr
.text:0040A536 inc dword ptr
.text:0040A539 inc dword ptr
.text:0040A53C dec dword ptr
.text:0040A53F lea ecx,
.text:0040A542 mov word ptr , 8
.text:0040A548 push edx
.text:0040A549 push ecx
.text:0040A54A mov eax,
.text:0040A54D push eax
.text:0040A54E call sub_40B7F4
.text:0040A553 add esp, 0Ch
.text:0040A556 mov edi,
.text:0040A559 jmp loc_40A850
.text:0040A55E ; ---------------------------------------------------------------------------
.text:0040A55E
.text:0040A55E loc_40A55E: ; CODE XREF: sub_40A258+5FBj
.text:0040A55E push 28h
.text:0040A560 call @$bnew$qui ; operator new(uint)
.text:0040A565 pop ecx
.text:0040A566 mov , eax
.text:0040A56C test eax, eax
.text:0040A56E jz short loc_40A5E6
.text:0040A570 mov word ptr , 0E0h
.text:0040A576 mov edx,
.text:0040A57C xor ecx, ecx
.text:0040A57E mov , ecx
.text:0040A581 mov eax, offset off_4B2DD4
.text:0040A586 mov edx,
.text:0040A58C mov , eax
.text:0040A58F mov ecx,
.text:0040A595 xor eax, eax
.text:0040A597 mov , eax
.text:0040A59A mov edx, offset off_4B2DE4
.text:0040A59F mov ecx,
.text:0040A5A5 mov , edx
.text:0040A5A8 mov esi,
.text:0040A5AE add esi, 20h
.text:0040A5B1 xor eax, eax
.text:0040A5B3 mov , eax
.text:0040A5B5 inc dword ptr
.text:0040A5B8 mov edx,
.text:0040A5BE add edx, 24h
.text:0040A5C1 mov , edx
.text:0040A5C7 mov ecx,
.text:0040A5CD xor eax, eax
.text:0040A5CF mov , eax
.text:0040A5D1 inc dword ptr
.text:0040A5D4 add dword ptr , 0FFFFFFFEh
.text:0040A5D8 mov word ptr , 0D4h
.text:0040A5DE mov edx,
.text:0040A5E4 jmp short loc_40A5EC
.text:0040A5E6 ; ---------------------------------------------------------------------------
.text:0040A5E6
.text:0040A5E6 loc_40A5E6: ; CODE XREF: sub_40A258+316j
.text:0040A5E6 mov edx,
.text:0040A5EC
.text:0040A5EC loc_40A5EC: ; CODE XREF: sub_40A258+38Cj
.text:0040A5EC mov esi, edx
.text:0040A5EE mov word ptr , 8
.text:0040A5F4 mov word ptr , 0ECh
.text:0040A5FA push 2Ch
.text:0040A5FC push 0
.text:0040A5FE push edi
.text:0040A5FF lea eax,
.text:0040A605 push eax
.text:0040A606 call sub_40B96C
.text:0040A60B add esp, 10h
.text:0040A60E lea ecx,
.text:0040A614 add dword ptr , 4
.text:0040A618 mov , ecx
.text:0040A61E mov eax,
.text:0040A624 mov edx,
.text:0040A626 lea eax,
.text:0040A62C call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:0040A631 inc dword ptr
.text:0040A634 lea edx,
.text:0040A63A lea eax,
.text:0040A63D call sub_4A0484
.text:0040A642 dec dword ptr
.text:0040A645 lea eax,
.text:0040A64B mov edx, 2
.text:0040A650 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040A655 dec dword ptr
.text:0040A658 mov word ptr , 8
.text:0040A65E dec dword ptr
.text:0040A661 mov ecx,
.text:0040A667 mov eax,
.text:0040A66D sub ecx, eax
.text:0040A66F mov , ecx
.text:0040A675 mov , eax
.text:0040A67B cmp , 0
.text:0040A682 jz short loc_40A6B5
.text:0040A684 cmp , 80h
.text:0040A68E jbe short loc_40A69F
.text:0040A690 mov edx,
.text:0040A696 push edx ; handle
.text:0040A697 call __rtl_close
.text:0040A69C pop ecx
.text:0040A69D jmp short loc_40A6B5
.text:0040A69F ; ---------------------------------------------------------------------------
.text:0040A69F
.text:0040A69F loc_40A69F: ; CODE XREF: sub_40A258+436j
.text:0040A69F mov ecx,
.text:0040A6A5 push ecx
.text:0040A6A6 mov eax,
.text:0040A6AC push eax
.text:0040A6AD call sub_4A0CA4
.text:0040A6B2 add esp, 8
.text:0040A6B5
.text:0040A6B5 loc_40A6B5: ; CODE XREF: sub_40A258+42Aj
.text:0040A6B5 ; sub_40A258+445j
.text:0040A6B5 dec dword ptr
.text:0040A6B8 dec dword ptr
.text:0040A6BB xor edx, edx
.text:0040A6BD mov word ptr , 110h
.text:0040A6C3 mov , edx
.text:0040A6C9 lea edx,
.text:0040A6CF inc dword ptr
.text:0040A6D2 lea eax,
.text:0040A6D5 call sub_4A05EC
.text:0040A6DA lea edx,
.text:0040A6E0 lea eax,
.text:0040A6E3 call sub_4A0484
.text:0040A6E8 dec dword ptr
.text:0040A6EB lea eax,
.text:0040A6F1 mov edx, 2
.text:0040A6F6 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040A6FB mov word ptr , 11Ch
.text:0040A701 push 2Ch
.text:0040A703 push 1
.text:0040A705 push edi
.text:0040A706 lea ecx,
.text:0040A70C push ecx
.text:0040A70D call sub_40B96C
.text:0040A712 add esp, 10h
.text:0040A715 lea eax,
.text:0040A71B add dword ptr , 4
.text:0040A71F mov , eax
.text:0040A725 lea eax,
.text:0040A72B mov edx,
.text:0040A731 mov edx,
.text:0040A733 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:0040A738 inc dword ptr
.text:0040A73B lea edx,
.text:0040A741 lea eax,
.text:0040A744 call sub_4A0484
.text:0040A749 dec dword ptr
.text:0040A74C lea eax,
.text:0040A752 mov edx, 2
.text:0040A757 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040A75C dec dword ptr
.text:0040A75F mov word ptr , 8
.text:0040A765 dec dword ptr
.text:0040A768 mov ecx,
.text:0040A76E mov eax,
.text:0040A774 sub ecx, eax
.text:0040A776 mov , ecx
.text:0040A77C mov , eax
.text:0040A782 cmp , 0
.text:0040A789 jz short loc_40A7BC
.text:0040A78B cmp , 80h
.text:0040A795 jbe short loc_40A7A6
.text:0040A797 mov edx,
.text:0040A79D push edx ; handle
.text:0040A79E call __rtl_close
.text:0040A7A3 pop ecx
.text:0040A7A4 jmp short loc_40A7BC
.text:0040A7A6 ; ---------------------------------------------------------------------------
.text:0040A7A6
.text:0040A7A6 loc_40A7A6: ; CODE XREF: sub_40A258+53Dj
.text:0040A7A6 mov ecx,
.text:0040A7AC push ecx
.text:0040A7AD mov eax,
.text:0040A7B3 push eax
.text:0040A7B4 call sub_4A0CA4
.text:0040A7B9 add esp, 8
.text:0040A7BC
.text:0040A7BC loc_40A7BC: ; CODE XREF: sub_40A258+531j
.text:0040A7BC ; sub_40A258+54Cj
.text:0040A7BC dec dword ptr
.text:0040A7BF dec dword ptr
.text:0040A7C2 xor edx, edx
.text:0040A7C4 mov , edx
.text:0040A7C7 mov , edx
.text:0040A7CA lea eax,
.text:0040A7CD mov byte ptr , 1
.text:0040A7D1 cmp dword ptr , 0
.text:0040A7D4 jz short loc_40A7DA
.text:0040A7D6 mov edx,
.text:0040A7D8 jmp short loc_40A7DF
.text:0040A7DA ; ---------------------------------------------------------------------------
.text:0040A7DA
.text:0040A7DA loc_40A7DA: ; CODE XREF: sub_40A258+57Cj
.text:0040A7DA mov edx, offset unk_4B2719
.text:0040A7DF
.text:0040A7DF loc_40A7DF: ; CODE XREF: sub_40A258+580j
.text:0040A7DF push edx ; cp
.text:0040A7E0 call inet_addr
.text:0040A7E5 cmp eax, 0FFFFFFFFh
.text:0040A7E8 jz short loc_40A7F9
.text:0040A7EA push esi
.text:0040A7EB mov eax,
.text:0040A7EE push eax
.text:0040A7EF call sub_40C46C
.text:0040A7F4 add esp, 8
.text:0040A7F7 jmp short loc_40A84D
.text:0040A7F9 ; ---------------------------------------------------------------------------
.text:0040A7F9
.text:0040A7F9 loc_40A7F9: ; CODE XREF: sub_40A258+590j
.text:0040A7F9 mov , esi
.text:0040A7FF cmp , 0
.text:0040A806 jz short loc_40A84D
.text:0040A808 mov word ptr , 14Ch
.text:0040A80E dec dword ptr
.text:0040A811 mov edx, 2
.text:0040A816 mov eax,
.text:0040A81C add eax, 24h
.text:0040A81F call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040A824 dec dword ptr
.text:0040A827 mov edx, 2
.text:0040A82C mov eax,
.text:0040A832 add eax, 20h
.text:0040A835 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040A83A mov ecx,
.text:0040A840 push ecx ; handle
.text:0040A841 call __rtl_close
.text:0040A846 pop ecx
.text:0040A847 mov word ptr , 140h
.text:0040A84D
.text:0040A84D loc_40A84D: ; CODE XREF: sub_40A258+59Fj
.text:0040A84D ; sub_40A258+5AEj
.text:0040A84D add edi, 18h
.text:0040A850
.text:0040A850 loc_40A850: ; CODE XREF: sub_40A258+301j
.text:0040A850 cmp edi,
.text:0040A853 jnz loc_40A55E
.text:0040A859 dec dword ptr
.text:0040A85C lea ecx,
.text:0040A862 mov eax,
.text:0040A865 mov edx,
.text:0040A868 push ecx
.text:0040A869 push eax
.text:0040A86A push edx
.text:0040A86B call sub_40AB5C
.text:0040A870 mov word ptr , 8
.text:0040A876 dec dword ptr
.text:0040A879 mov ecx, 18h
.text:0040A87E mov eax,
.text:0040A881 add esp, 0Ch
.text:0040A884 sub eax,
.text:0040A887 cdq
.text:0040A888 idiv ecx
.text:0040A88A mov , eax
.text:0040A890 mov esi,
.text:0040A893 test esi, esi
.text:0040A895 jz short loc_40A8CE
.text:0040A897 mov eax,
.text:0040A89D shl eax, 3
.text:0040A8A0 lea eax,
.text:0040A8A3 mov , eax
.text:0040A8A9 cmp , 80h
.text:0040A8B3 jbe short loc_40A8BE
.text:0040A8B5 push esi ; handle
.text:0040A8B6 call __rtl_close
.text:0040A8BB pop ecx
.text:0040A8BC jmp short loc_40A8CE
.text:0040A8BE ; ---------------------------------------------------------------------------
.text:0040A8BE
.text:0040A8BE loc_40A8BE: ; CODE XREF: sub_40A258+65Bj
.text:0040A8BE mov edx,
.text:0040A8C4 push edx
.text:0040A8C5 push esi
.text:0040A8C6 call sub_4A0CA4
.text:0040A8CB add esp, 8
.text:0040A8CE
.text:0040A8CE loc_40A8CE: ; CODE XREF: sub_40A258+63Dj
.text:0040A8CE ; sub_40A258+664j
.text:0040A8CE dec dword ptr
.text:0040A8D1 dec dword ptr
.text:0040A8D4 dec dword ptr
.text:0040A8D7 mov eax,
.text:0040A8DA mov edx,
.text:0040A8DD mov , edx
.text:0040A8E3 lea ecx,
.text:0040A8E9 push ecx
.text:0040A8EA push eax
.text:0040A8EB mov eax,
.text:0040A8F1 push eax
.text:0040A8F2 call sub_40AB5C
.text:0040A8F7 add esp, 0Ch
.text:0040A8FA dec dword ptr
.text:0040A8FD mov eax,
.text:0040A900 sub eax,
.text:0040A903 mov ecx, 18h
.text:0040A908 cdq
.text:0040A909 idiv ecx
.text:0040A90B mov , eax
.text:0040A911 mov esi,
.text:0040A914 test esi, esi
.text:0040A916 jz short loc_40A94F
.text:0040A918 mov eax,
.text:0040A91E shl eax, 3
.text:0040A921 lea eax,
.text:0040A924 mov , eax
.text:0040A92A cmp , 80h
.text:0040A934 jbe short loc_40A93F
.text:0040A936 push esi ; handle
.text:0040A937 call __rtl_close
.text:0040A93C pop ecx
.text:0040A93D jmp short loc_40A94F
.text:0040A93F ; ---------------------------------------------------------------------------
.text:0040A93F
.text:0040A93F loc_40A93F: ; CODE XREF: sub_40A258+6DCj
.text:0040A93F mov edx,
.text:0040A945 push edx
.text:0040A946 push esi
.text:0040A947 call sub_4A0CA4
.text:0040A94C add esp, 8
.text:0040A94F
.text:0040A94F loc_40A94F: ; CODE XREF: sub_40A258+6BEj
.text:0040A94F ; sub_40A258+6E5j
.text:0040A94F dec dword ptr
.text:0040A952 dec dword ptr
.text:0040A955 mov ecx,
.text:0040A957 mov large fs:0, ecx
.text:0040A95E pop edi
.text:0040A95F pop esi
.text:0040A960 pop ebx
.text:0040A961 mov esp, ebp
.text:0040A963 pop ebp
.text:0040A964 retn
.
这里已经在做字符串处理了,内存中是4.2.2.1,美国 科罗拉多州布隆菲尔德市Level 3通信公司这种形式,因此需要用逗号吧地址和位置分开,查看变量的访问情况后(这是个很耗时的过程)发现还要向上回溯:
.text:00402474 sub_402474 proc near ; CODE XREF: sub_401B74+1A8p
.text:00402474
.text:00402474 var_48 = byte ptr -48h
.text:00402474 s = dword ptr -24h
.text:00402474 var_20 = byte ptr -20h
.text:00402474 handle = dword ptr -18h
.text:00402474 var_8 = dword ptr -8
.text:00402474 arg_0 = dword ptr8
.text:00402474
.text:00402474 push ebp
.text:00402475 mov ebp, esp
.text:00402477 add esp, 0FFFFFFB8h
.text:0040247A mov eax, offset unk_4A2564
.text:0040247F push ebx
.text:00402480 push esi
.text:00402481 push edi
.text:00402482 lea edi,
.text:00402485 mov ebx,
.text:00402488 call @__InitExceptBlockLDTC
.text:0040248D mov word ptr , 14h
.text:00402493 lea edx,
.text:00402496 xor ecx, ecx
.text:00402498 push edx
.text:00402499 lea eax,
.text:0040249C inc dword ptr
.text:0040249F mov , ecx
.text:004024A2 push eax
.text:004024A3 inc dword ptr
.text:004024A6 call sub_408F5C
.text:004024AB cmp , 0
.text:004024AF pop ecx
.text:004024B0 jz short loc_4024B7
.text:004024B2 mov edx,
.text:004024B5 jmp short loc_4024BC
.text:004024B7 ; ---------------------------------------------------------------------------
.text:004024B7
.text:004024B7 loc_4024B7: ; CODE XREF: sub_402474+3Cj
.text:004024B7 mov edx, offset unk_4A21CB
.text:004024BC
.text:004024BC loc_4024BC: ; CODE XREF: sub_402474+41j
.text:004024BC push edx ; s
.text:004024BD lea eax,
.text:004024C0 push eax ; _DWORD
.text:004024C1 call FormatString
.text:004024C6 add dword ptr , 4
.text:004024CA dec dword ptr
.text:004024CD add esp, 0Ch
.text:004024D0 dec dword ptr
.text:004024D3 lea eax,
.text:004024D6 mov edx, 2
.text:004024DB call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:004024E0 mov word ptr , 8
.text:004024E6 mov eax,
.text:004024EC test eax, eax
.text:004024EE jz short loc_4024FD
.text:004024F0 lea edx,
.text:004024F3 push edx
.text:004024F4 push eax
.text:004024F5 call sub_40A258
.text:004024FA add esp, 8
.text:004024FD
.text:004024FD loc_4024FD: ; CODE XREF: sub_402474+7Aj
.text:004024FD dec dword ptr
.text:00402500 dec dword ptr
.text:00402503 mov esi,
.text:00402506 mov eax,
.text:00402509 sub esi, eax
.text:0040250B mov ebx, eax
.text:0040250D test ebx, ebx
.text:0040250F jz short loc_40252C
.text:00402511 cmp esi, 80h
.text:00402517 jbe short loc_402522
.text:00402519 push ebx ; handle
.text:0040251A call __rtl_close
.text:0040251F pop ecx
.text:00402520 jmp short loc_40252C
.text:00402522 ; ---------------------------------------------------------------------------
.text:00402522
.text:00402522 loc_402522: ; CODE XREF: sub_402474+A3j
.text:00402522 push esi
.text:00402523 push ebx
.text:00402524 call sub_4A0CA4
.text:00402529 add esp, 8
.text:0040252C
.text:0040252C loc_40252C: ; CODE XREF: sub_402474+9Bj
.text:0040252C ; sub_402474+ACj
.text:0040252C dec dword ptr
.text:0040252F dec dword ptr
.text:00402532 mov eax,
.text:00402534 mov large fs:0, eax
.text:0040253A pop edi
.text:0040253B pop esi
.text:0040253C pop ebx
.text:0040253D mov esp, ebp
.text:0040253F pop ebp
.text:00402540 retn
.text:0040254
再次调试,发现408F5C处得到的s已经包含地址,而之前再无修改s之处或者传递之处,因此确定sub_408F5C用于解密字符串,之所以是解密,是因为无法通过资源和字符串找到这些数据,也就说一定经过加密了。
进入该函数,这下有趣了:
text:00408F5C sub_408F5C proc near ; CODE XREF: sub_402474+32p
.text:00408F5C
.text:00408F5C var_28 = dword ptr -28h
.text:00408F5C var_18 = word ptr -18h
.text:00408F5C var_C = dword ptr -0Ch
.text:00408F5C var_4 = dword ptr -4
.text:00408F5C arg_0 = dword ptr8
.text:00408F5C
.text:00408F5C push ebp
.text:00408F5D mov ebp, esp
.text:00408F5F add esp, 0FFFFFFD8h
.text:00408F62 mov eax, offset unk_4B1FA0
.text:00408F67 call @__InitExceptBlockLDTC
.text:00408F6C mov , 8
.text:00408F72 push 0D3EEh
.text:00408F77 push offset unk_4A4B80
.text:00408F7C xor edx, edx
.text:00408F7E mov , edx
.text:00408F81 lea ecx,
.text:00408F84 push ecx
.text:00408F85 inc
.text:00408F88 call decode
.text:00408F8D add esp, 0Ch
.text:00408F90 lea edx,
.text:00408F93 mov eax,
.text:00408F96 call sub_4A0484
.text:00408F9B mov eax,
.text:00408F9E mov edx, 2
.text:00408FA3 mov , 14h
.text:00408FA9 push eax
.text:00408FAA lea eax,
.text:00408FAD dec
.text:00408FB0 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00408FB5 pop eax
.text:00408FB6 mov , 8
.text:00408FBC inc
.text:00408FBF mov edx,
.text:00408FC2 mov large fs:0, edx
.text:00408FC9 mov esp, ebp
.text:00408FCB pop ebp
.text:00408FCC retn
.text:00408FCC sub_408F5C endp
.t
text:0040CA68 ; int __cdecl decode(int dest, int src, int len)
.text:0040CA68 decode proc near ; CODE XREF: dosetdns+7Bp
.text:0040CA68 ; sub_4082F4+75p ...
.text:0040CA68
.text:0040CA68 var_30 = dword ptr -30h
.text:0040CA68 var_2C = dword ptr -2Ch
.text:0040CA68 var_1C = word ptr -1Ch
.text:0040CA68 var_10 = dword ptr -10h
.text:0040CA68 var_8 = dword ptr -8
.text:0040CA68 var_4 = byte ptr -4
.text:0040CA68 dest = dword ptr8
.text:0040CA68 src = dword ptr0Ch
.text:0040CA68 len = dword ptr10h
.text:0040CA68
.text:0040CA68 push ebp
.text:0040CA69 mov ebp, esp
.text:0040CA6B add esp, 0FFFFFFD0h
.text:0040CA6E mov eax, offset unk_4B3420
.text:0040CA73 call @__InitExceptBlockLDTC
.text:0040CA78 mov , 8
.text:0040CA7E lea eax,
.text:0040CA81 call unknown_libname_1128 ; CBuilder 5 runtime
.text:0040CA86 inc
.text:0040CA89 mov , 14h
.text:0040CA8F xor edx, edx
.text:0040CA91 mov , edx
.text:0040CA94 mov ecx,
.text:0040CA97 cmp ecx,
.text:0040CA9A jge short loc_40CAE4
.text:0040CA9C
.text:0040CA9C loc_40CA9C: ; CODE XREF: decode+7Aj
.text:0040CA9C mov , 20h
.text:0040CAA2 mov eax,
.text:0040CAA5 mov edx,
.text:0040CAA8 xor ecx, ecx
.text:0040CAAA mov cl,
.text:0040CAAD mov dl, byte_4B32CC
.text:0040CAB3 lea eax,
.text:0040CAB6 call @System@AnsiString@$bctr$qqrc ; System::AnsiString::AnsiString(char)
.text:0040CABB inc
.text:0040CABE lea edx,
.text:0040CAC1 lea eax,
.text:0040CAC4 call sub_4A0498
.text:0040CAC9 dec
.text:0040CACC lea eax,
.text:0040CACF mov edx, 2
.text:0040CAD4 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040CAD9 inc
.text:0040CADC mov ecx,
.text:0040CADF cmp ecx,
.text:0040CAE2 jl short loc_40CA9C
.text:0040CAE4
.text:0040CAE4 loc_40CAE4: ; CODE XREF: decode+32j
.text:0040CAE4 mov , 2Ch
.text:0040CAEA lea edx,
.text:0040CAED mov eax,
.text:0040CAF0 call sub_4A0484
.text:0040CAF5 mov eax,
.text:0040CAF8 mov , 38h
.text:0040CAFE push eax
.text:0040CAFF dec
.text:0040CB02 lea eax,
.text:0040CB05 mov edx, 2
.text:0040CB0A call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:0040CB0F pop eax
.text:0040CB10 mov , 2Ch
.text:0040CB16 inc
.text:0040CB19 mov edx,
.text:0040CB1C mov large fs:0, edx
.text:0040CB23 mov esp, ebp
.text:0040CB25 pop ebp
.text:0040CB26 retn
4A4B80和4B32CC处在data段,可以看到作者煞费苦心地构造了2个数组,后者用于做ascii码可逆映射,前者是加密过的字符串数组。大小分别为54254和256
既然如此,我们写程序总不能把这些数据从文件提取出来再解密啊,所以还是用winhex拷贝来的快。这里只是一种好奇心,看看作者到底怎么存储和解密这些数据。
现在其他问题都解决了,那么FASTDNS怎么测网速的呢?也就是最核心的部分?
根据前述,核心在TfrmFastDNS_actTestSpendingExecute中。文章流程太长了,请听下回分解!!! 对彗星DNS加速器的分析(二)
+00h virtualtable
+0 STOP
+4 FUNC1
+8 FUNC2
+04h HANDLE hthread
+08h ????
+18h FARPROC func0
+1Ch LPVOID param0
+20h FARPROC func1//OnIdle处理函数
+24h LPVOID param1
+28h BOOL IsMainthread??
+30h struct*
+00h int leftTime//剩余次数
+08h double pertime//平均消耗时间
+10h flag statu//成功0 失败3
+38h FARPROC callbackfunc//测试结束的回调函数showstatus
+3Ch DWORD param2 //callbackfunc的参数
+40h int repeatTime//取样次数
+44h int timeout//超时
+48h Class IdDNSResolver_TIdDNSResolver* extends TIdUDPBase extends TIdUDPBase extends....
//原来delphi自带了组件,好方便啊,不过我得自行解决
+00h virtualtable 00412B24
TIdUDPBase::AssignError
TIdUDPBase::DefineProperties
TIdUDPBase::Assign
TIdUDPBase::Loaded
。。。。。。。。。。
+74h char* ipdns
+7Ch int timeout
+90h package*//发包结构体
+94h int repeattime
+9Ch int sendinfo//要发送的数据包
。。。。。。。。
+50h char* ipstart//存放ip地址字串起始位置
+54h char* ipend//存放ip地址字串结束位置
。。。。。。。
.text:0040970C ; DWORD __cdecl FUNC2(int structa, int *usedtime)
.text:0040970C FUNC2 proc near ; DATA XREF: .data:fastdns___CPPdebugHook+105D4o
.text:0040970C
.text:0040970C var_2C = dword ptr -2Ch
.text:0040970C var_1C = word ptr -1Ch
.text:0040970C var_10 = dword ptr -10h
.text:0040970C var_8 = byte ptr -8
.text:0040970C var_4 = byte ptr -4
.text:0040970C structa = dword ptr8
.text:0040970C usedtime = dword ptr0Ch
.text:0040970C
.text:0040970C push ebp
.text:0040970D mov ebp, esp
.text:0040970F add esp, 0FFFFFFD4h
.text:00409712 push ebx
.text:00409713 push esi
.text:00409714 push edi
.text:00409715 mov edi,
.text:00409718 mov ebx,
.text:0040971B mov eax, offset unk_4B25EC
.text:00409720 call @__InitExceptBlockLDTC
.text:00409725 mov , 8
.text:0040972B mov esi,
.text:0040972E test esi, esi
.text:00409730 jz loc_40984A
.text:00409736 mov , 14h
.text:0040973C mov edx,
.text:0040973F lea eax,
.text:00409742 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:00409747 mov edx, eax
.text:00409749 inc
.text:0040974C mov eax, esi
.text:0040974E add eax, 74h
.text:00409751 call sub_4A0484
.text:00409756 dec
.text:00409759 lea eax,
.text:0040975C mov edx, 2
.text:00409761 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00409766 mov ecx,
.text:00409769 mov eax,
.text:0040976C mov , ecx
.text:0040976F mov edx,
.text:00409771 call dword ptr
.text:00409774 mov ecx,
.text:00409777 xor edx, edx
.text:00409779 mov eax,
.text:0040977F call sub_412E58
.text:00409784 mov ecx,
.text:00409787 xor edx, edx
.text:00409789 mov eax,
.text:0040978F call sub_412E6C
.text:00409794 mov ecx,
.text:00409797 mov dl, 1
.text:00409799 mov eax,
.text:0040979F call sub_412E88
.text:004097A4 mov eax,
.text:004097A7 mov edx,
.text:004097AD mov word ptr , 1
.text:004097B3 mov eax,
.text:004097B9 call @TCollection@Clear ; TCollection::Clear
.text:004097BE mov edx,
.text:004097C1 mov eax,
.text:004097C7 call sub_412EA8
.text:004097CC mov , 8
.text:004097D2 mov , 20h
.text:004097D8 mov esi, eax
.text:004097DA lea eax,
.text:004097DD mov edx, offset aWww_microsoft_ ; "www.microsoft.com"
.text:004097E2 call @System@AnsiString@$bctr$qqrpxc ; System::AnsiString::AnsiString(char *)
.text:004097E7 inc
.text:004097EA lea edx,
.text:004097ED lea eax,
.text:004097F0 call sub_4A0484
.text:004097F5 dec
.text:004097F8 lea eax,
.text:004097FB mov edx, 2
.text:00409800 call @System@AnsiString@$bdtr$qqrv ; System::AnsiString::~AnsiString(void)
.text:00409805 mov word ptr , 1
.text:0040980B mov word ptr , 1
.text:00409811 call @GetCurrentTime
.text:00409816 mov esi, eax
.text:00409818 mov , 8
.text:0040981E mov eax,
.text:00409821 call sub_413174
.text:00409826 call @GetCurrentTime
.text:0040982B mov ebx, eax
.text:0040982D sub ebx, esi
.text:0040982F mov , ebx
.text:00409831 cmp ebx, 1
.text:00409834 jnb short loc_40983C
.text:00409836 mov dword ptr , 1
.text:0040983C
.text:0040983C loc_40983C: ; CODE XREF: FUNC2+128j
.text:0040983C mov al, 1
.text:0040983E mov edx,
.text:00409841 mov large fs:0, edx
.text:00409848 jmp short loc_409869
.text:0040984A ; ---------------------------------------------------------------------------
.text:0040984A
.text:0040984A loc_40984A: ; CODE XREF: FUNC2+24j
.text:0040984A mov , 0
.text:00409850 jmp short loc_40985D
.text:00409852 ; ---------------------------------------------------------------------------
.text:00409852
.text:00409852 loc_409852: ; DATA XREF: .data:fastdns___CPPdebugHook+1051Co
.text:00409852 mov , 10h
.text:00409858 call @_CatchCleanup$qv ; _CatchCleanup(void)
.text:0040985D
.text:0040985D loc_40985D: ; CODE XREF: FUNC2+144j
.text:0040985D xor eax, eax
.text:0040985F mov edx,
.text:00409862 mov large fs:0, edx
.text:00409869
.text:00409869 loc_409869: ; CODE XREF: FUNC2+13Cj
.text:00409869 pop edi
.text:0040986A pop esi
.text:0040986B pop ebx
.text:0040986C mov esp, ebp
.text:0040986E pop ebp
.text:0040986F retn
.
本段程序构造某网络包类,sub_413174为真正执行代码,在其前后取时间进行测速:
.text:00413174 sub_413174 proc near ; CODE XREF: FUNC2+115p
.text:00413174
.text:00413174 var_8 = dword ptr -8
.text:00413174 var_4 = dword ptr -4
.text:00413174
.text:00413174 push ebp
.text:00413175 mov ebp, esp
.text:00413177 add esp, 0FFFFFFF8h
.text:0041317A xor edx, edx
.text:0041317C mov , edx
.text:0041317F mov , eax
.text:00413182 xor eax, eax
.text:00413184 push ebp
.text:00413185 push offset loc_413208
.text:0041318A push dword ptr fs:
.text:0041318D mov fs:, esp
.text:00413190 xor eax, eax
.text:00413192 push ebp
.text:00413193 push offset loc_4131EB
.text:00413198 push dword ptr fs:
.text:0041319B mov fs:, esp
.text:0041319E mov eax,
.text:004131A1 call sub_413470
.text:004131A6 mov eax,
.text:004131A9 mov edx,
.text:004131AF mov eax,
.text:004131B2 call @TIdUDPClient@Send ; TIdUDPClient::Send
.text:004131B7 lea ecx,
.text:004131BA or edx, 0FFFFFFFFh
.text:004131BD mov eax,
.text:004131C0 call @TIdUDPBase@ReceiveString ; TIdUDPBase::ReceiveString
.text:004131C5 mov edx,
.text:004131C8 mov eax,
.text:004131CB add eax, 0A0h
.text:004131D0 call @@LStrAsg ; __linkproc__ LStrAsg
.text:004131D5 xor eax, eax
.text:004131D7 pop edx
.text:004131D8 pop ecx
.text:004131D9 pop ecx
.text:004131DA mov fs:, edx
.text:004131DD push offset loc_4131F2
.text:004131E2
.text:004131E2 loc_4131E2: ; CODE XREF: sub_413174+7Cj
.text:004131E2 mov eax,
.text:004131E5 call sub_414B3C
.text:004131EA retn
.text:004131EB ; ---------------------------------------------------------------------------
.text:004131EB
.text:004131EB loc_4131EB: ; DATA XREF: sub_413174+1Fo
.text:004131EB jmp @@HandleFinally ; __linkproc__ HandleFinally
.text:004131F0 ; ---------------------------------------------------------------------------
.text:004131F0 jmp short loc_4131E2
.text:004131F2 ; ---------------------------------------------------------------------------
.text:004131F2
.text:004131F2 loc_4131F2: ; CODE XREF: sub_413174+76j
.text:004131F2 ; DATA XREF: sub_413174+69o
.text:004131F2 xor eax, eax
.text:004131F4 pop edx
.text:004131F5 pop ecx
.text:004131F6 pop ecx
.text:004131F7 mov fs:, edx
.text:004131FA push offset loc_41320F
.text:004131FF
.text:004131FF loc_4131FF: ; CODE XREF: sub_413174+99j
.text:004131FF lea eax,
.text:00413202 call @@LStrClr ; __linkproc__ LStrClr
.text:00413207 retn
.text:00413208 ; ---------------------------------------------------------------------------
.text:00413208
.text:00413208 loc_413208: ; DATA XREF: sub_413174+11o
.text:00413208 jmp @@HandleFinally ; __linkproc__ HandleFinally
.text:0041320D ; ---------------------------------------------------------------------------
.text:0041320D jmp short loc_4131FF
.text:0041320F ; ---------------------------------------------------------------------------
.text:0041320F
.text:0041320F loc_41320F: ; CODE XREF: sub_413174+93j
.text:0041320F ; DATA XREF: sub_413174+86o
.text:0041320F pop ecx
.text:00413210 pop ecx
.text:00413211 pop ebp
.text:00413212 retn
.
从以上代码可以得知,重要调用有:
sub_413470
TIdDNSResolver::Send
TIdDNSResolver::ReceiveString
sub_414B3C
由于调用函数库较多,较为浪费时间,因此这里用WireShark抓取+API break的方式查看网络情况,可以得到如下结果:
启动时 对每个ip做inet_addr
检测时:WSAStartup 101
socket af=AF_INET type=SOCK_DGRAM protocol=IPPROTO_IP
setsockopt level=SOL_SOCKET optname=SO_BROADCAST optval="\0\0\0\0" optlen=4
ntohs hostshort=53//DNS
sendto len=35 flags=0 tolen=sizeof(sockaddr) buf=
b4 c3 01 00 00 01 00 00-00 00 00 00 03 77 77 77.............www
09 6d 69 63 72 6f 73 6f-66 74 03 63 6f 6d 00 00.microsoft.com..
01 00 01
sockaddr=02 00 00 35 04 02 02 01-00 00 00 00 00 00 00 00
select nfds=0 readfs={1,socket} writefds={0,0} exceptfds={0,0}
timeout{tv_sec=2 tv_usec=0}
recvfrom len=8192 flag=0 from=02 00 00 35 04 02 02 01-00 00 00 00 00 00 00 00
fromlen=sizeof(sockaddr) buf=
b4 c3 81 80 00 01 00 04-00 00 00 00 03 77 77 77.............www
09 6d 69 63 72 6f 73 6f-66 74 03 63 6f 6d 00 00.microsoft.com..
01 00 01 c0 0c 00 05 00-01 00 00 0c fd 00 1a 06................
74 6f 67 67 6c 65 03 77-77 77 02 6d 73 06 61 6btoggle.www.ms.ak
61 64 6e 73 03 6e 65 74-00 c0 2f 00 05 00 01 00adns.net../.....
00 00 09 00 1c 03 77 77-77 09 6d 69 63 72 6f 73......www.micros
6f 66 74 03 63 6f 6d 07-65 64 67 65 6b 65 79 c0oft.com.edgekey.
44 c0 55 00 05 00 01 00-00 00 39 00 19 06 65 31D.U.......9...e1
30 30 38 38 04 64 73 63-62 0a 61 6b 61 6d 61 690088.dscb.akamai
65 64 67 65 c0 44 c0 7d-00 01 00 01 00 00 00 0dedge.D.}........
00 04 ac e7 28 ee 00 00-a4 46 c5 01 c2 46 c5 01....(....F...F..
00 00 00 00 00 00 00 00-c3 46 c5 01 00 00 00 00.........F......
c4 46 c5 01 e2 46 c5 01-00 00 00 00 00 00 00 00.F...F..........
e3 46 c5 01 00 00 00 00-40 63 c6 01 5e 63 c6 01.F......@c..^c..
00 00 00 00 00 00 00 00-5f 63 c6 01 00 00 00 00........_c......
74 68 c5 01 94 68 c5 01-00 00 00 00 00 00 00 00th...h..........
95 68 c5 01 00 00 00 00-10 ed c4 01 3b ed c4 01.h..........;...
00 00 00 00 00 00 00 00-3c ed c4 01 00 00 00 00........<.......
40 ed c4 01 6b ed c4 01-00 00 00 00 00 00 00 00@...k...........
6c ed c4 01 00 00 00 00-70 ed c4 01 9b ed c4 01l.......p.......
00 00 00 00 00 00 00 00-9c ed c4 01 00 00 00 00................
a0 ed c4 01 cb ed c4 01-00 00 00 00 00 00 00 00................
cc ed c4 01 00 00 00 00-a0 36 c4 01 cb 36 c4 01.........6...6..
00 00 00 00 00 00 00 00-cc 36 c4 01 00 00 00 00.........6......
70 36 c4 01 9b 36 c4 01-00 00 00 00 00 00 00 00p6...6..........
9c 36 c4 01 00 00 00 00-bc ff c4 01 da ff c4 01.6..............
00 00 00 00 00 00 00 00-db ff c4 01 00 00 00 00................
dc ff c4 01 fa ff c4 01-00 00 00 00 00 00 00 00................
fb ff c4 01 00 00 00 00-fc ff c4 01 1a 00 c5 01................
00 00 00 00 00 00 00 00-1b 00 c5 01 00 00 00 00................
1c 00 c5 01 3a 00 c5 01-00 00 00 00 00 00 00 00....:...........
3b 00 c5 01 00 00 00 00-3c 00 c5 01 5a 00 c5 01;.......<...Z...
00 00 00 00 00 00 00 00-5b 00 c5 01 00 00 00 00........[.......
5c 00 c5 01 7a 00 c5 01-00 00 00 00 00 00 00 00\...z...........
7b 00 c5 01 00 00 00 00-7c 00 c5 01 9a 00 c5 01{.......|.......
00 00 00 00 00 00 00 00-9b 00 c5 01 00 00 00 00................
9c 00 c5 01 ba 00 c5 01-00 00 00 00 00 00 00 00................
bb 00 c5 01 00 00 00 00-bc 00 c5 01 da 00 c5 01................
00 00 00 00 00 00 00 00-db 00 c5 01 00 00 00 00................
dc 00 c5 01 fa 00 c5 01-00 00 00 00 00 00 00 00................
fb 00 c5 01 00 00 00 00-60 65 c6 01 83 65 c6 01........`e...e..
00 00 00 00 00 00 00 00-84 65 c6 01 00 00 00 00.........e......
84 47 c5 01 a8 47 c5 01-00 00 00 00 00 00 00 00.G...G..........
a9 47 c5 01 00 00 00 00-fc 00 c5 01 1b 01 c5 01.G..............
00 00 00 00 00 00 00 00-1c 01 c5 01 00 00 00 00................
ac 47 c5 01 cc 47 c5 01-00 00 00 00 00 00 00 00.G...G..........
cd 47 c5 01 00 00 00 00-c4 0a c5 01 dd 0a c5 01.G..............
00 00 00 00 00 00 00 00-de 0a c5 01 00 00 00 00................
00 0b c5 01 1a 0b c5 01-00 00 00 00 00 00 00 00................
1b 0b c5 01 00 00 00 00-20 0b c5 01 39 0b c5 01........ ...9...
00 00 00 00 00 00 00 00-3a 0b c5 01 00 00 00 00........:.......
40 0b c5 01 5b 0b c5 01-00 00 00 00 00 00 00 00@...[...........
5c 0b c5 01 00 00 00 00-d4 47 c5 01 f8 47 c5 01\........G...G..
00 00 00 00 00 00 00 00-f9 47 c5 01 00 00 00 00.........G......
44 e7 c4 01 68 e7 c4 01-00 00 00 00 00 00 00 00D...h...........
69 e7 c4 01 00 00 00 00-60 0b c5 01 79 0b c5 01i.......`...y...
00 00 00 00 00 00 00 00-7a 0b c5 01 00 00 00 00........z.......
80 0b c5 01 9e 0b c5 01-00 00 00 00 00 00 00 00................
9f 0b c5 01 00 00 00 00-a0 0b c5 01 be 0b c5 01................
00 00 00 00 00 00 00 00-bf 0b c5 01 00 00 00 00................
44 01 c5 01 64 01 c5 01-00 00 00 00 00 00 00 00D...d...........
65 01 c5 01 00 00 00 00-6c 01 c5 01 8e 01 c5 01e.......l.......
00 00 00 00 00 00 00 00-8f 01 c5 01 00 00 00 00................
94 01 c5 01 b6 01 c5 01-00 00 00 00 00 00 00 00................
b7 01 c5 01 00 00 00 00-bc 01 c5 01 df 01 c5 01................
00 00 00 00 00 00 00 00-e0 01 c5 01 00 00 00 00................
e4 01 c5 01 08 02 c5 01-00 00 00 00 00 00 00 00................
09 02 c5 01 00 00 00 00-0c 02 c5 01 31 02 c5 01............1...
00 00 00 00 00 00 00 00-32 02 c5 01 00 00 00 00........2.......
34 02 c5 01 55 02 c5 01-00 00 00 00 00 00 00 004...U...........
56 02 c5 01 00 00 00 00-5c 02 c5 01 7d 02 c5 01V.......\...}...
00 00 00 00 00 00 00 00-7e 02 c5 01 00 00 00 00........~.......
c0 0b c5 01 df 0b c5 01-00 00 00 00 00 00 00 00................
e0 0b c5 01 00 00 00 00-84 02 c5 01 a4 02 c5 01................
00 00 00 00 00 00 00 00-a5 02 c5 01 00 00 00 00................
ac 02 c5 01 cd 02 c5 01-00 00 00 00 00 00 00 00................
ce 02 c5 01 00 00 00 00-e0 0b c5 01 ff 0b c5 01................
00 00 00 00 00 00 00 00-00 0c c5 01 00 00 00 00................
00 0c c5 01 1f 0c c5 01-00 00 00 00 00 00 00 00................
20 0c c5 01 00 00 00 00-20 0c c5 01 3f 0c c5 01 ....... ...?...
00 00 00 00 00 00 00 00-40 0c c5 01 00 00 00 00........@.......
40 0c c5 01 5f 0c c5 01-00 00 00 00 00 00 00 00@..._...........
60 0c c5 01 00 00 00 00-d4 02 c5 01 f8 02 c5 01`...............
00 00 00 00 00 00 00 00-f9 02 c5 01 00 00 00 00................
60 0c c5 01 7e 0c c5 01-00 00 00 00 00 00 00 00`...~...........
7f 0c c5 01 00 00 00 00-80 0c c5 01 9e 0c c5 01................
00 00 00 00 00 00 00 00-9f 0c c5 01 00 00 00 00................
a0 0c c5 01 be 0c c5 01-00 00 00 00 00 00 00 00................
bf 0c c5 01 00 00 00 00-c0 0c c5 01 de 0c c5 01................
00 00 00 00 00 00 00 00-df 0c c5 01 00 00 00 00................
e0 0c c5 01 fd 0c c5 01-00 00 00 00 00 00 00 00................
fe 0c c5 01 00 00 00 00-00 0d c5 01 1e 0d c5 01................
00 00 00 00 00 00 00 00-1f 0d c5 01 00 00 00 00................
fc 02 c5 01 1e 03 c5 01-00 00 00 00 00 00 00 00................
1f 03 c5 01 00 00 00 00-24 03 c5 01 46 03 c5 01........$...F...
00 00 00 00 00 00 00 00-47 03 c5 01 00 00 00 00........G.......
20 0d c5 01 3d 0d c5 01-00 00 00 00 00 00 00 00 ...=...........
3e 0d c5 01 00 00 00 00-40 0d c5 01 5d 0d c5 01>.......@...]...
00 00 00 00 00 00 00 00-5e 0d c5 01 00 00 00 00........^.......
40 36 c4 01 68 36 c4 01-00 00 00 00 00 00 00 00@6..h6..........
69 36 c4 01 00 00 00 00-4c 03 c5 01 73 03 c5 01i6......L...s...
00 00 00 00 00 00 00 00-74 03 c5 01 00 00 00 00........t.......
60 0d c5 01 7e 0d c5 01-00 00 00 00 00 00 00 00`...~...........
7f 0d c5 01 00 00 00 00-80 0d c5 01 9f 0d c5 01................
00 00 00 00 00 00 00 00-a0 0d c5 01 00 00 00 00................
74 03 c5 01 94 03 c5 01-00 00 00 00 00 00 00 00t...............
95 03 c5 01 00 00 00 00-a0 0d c5 01 be 0d c5 01................
00 00 00 00 00 00 00 00-bf 0d c5 01 00 00 00 00................
c0 0d c5 01 d9 0d c5 01-00 00 00 00 00 00 00 00................
da 0d c5 01 00 00 00 00-e0 0d c5 01 ff 0d c5 01................
00 00 00 00 00 00 00 00-00 0e c5 01 00 00 00 00................
00 0e c5 01 1f 0e c5 01-00 00 00 00 00 00 00 00................
20 0e c5 01 00 00 00 00-9c 03 c5 01 bc 03 c5 01 ...............
00 00 00 00 00 00 00 00-bd 03 c5 01 00 00 00 00................
c4 03 c5 01 e5 03 c5 01-00 00 00 00 00 00 00 00................
e6 03 c5 01 00 00 00 00-ec 03 c5 01 13 04 c5 01................
00 00 00 00 00 00 00 00-14 04 c5 01 00 00 00 00................
10 36 c4 01 3d 36 c4 01-00 00 00 00 00 00 00 00.6..=6..........
3e 36 c4 01 00 00 00 00-e0 35 c4 01 0e 36 c4 01>6.......5...6..
00 00 00 00 00 00 00 00-0f 36 c4 01 00 00 00 00.........6......
14 04 c5 01 36 04 c5 01-00 00 00 00 00 00 00 00....6...........
37 04 c5 01 00 00 00 00-00 10 c5 01 22 10 c5 017..........."...
00 00 00 00 00 00 00 00-23 10 c5 01 00 00 00 00........#.......
48 40 c4 01 59 40 c4 01-00 00 00 00 00 00 00 00H@..Y@..........
5a 40 c4 01 00 00 00 00-3c 6f c6 01 51 6f c6 01Z@......<o..Qo..
00 00 00 00 00 00 00 00-52 6f c6 01 00 00 00 00........Ro......
24 6f c6 01 38 6f c6 01-00 00 00 00 00 00 00 00$o..8o..........
39 6f c6 01 00 00 00 00-30 1b c4 01 3f 1b c4 019o......0...?...
00 00 00 00 00 00 00 00-40 1b c4 01 00 00 00 00........@.......
0c 6f c6 01 1e 6f c6 01-00 00 00 00 00 00 00 00.o...o..........
1f 6f c6 01 00 00 00 00-f4 6e c6 01 07 6f c6 01.o.......n...o..
00 00 00 00 00 00 00 00-08 6f c6 01 00 00 00 00.........o......
dc 6e c6 01 ee 6e c6 01-00 00 00 00 00 00 00 00.n...n..........
ef 6e c6 01 00 00 00 00-c4 6e c6 01 d6 6e c6 01.n.......n...n..
00 00 00 00 00 00 00 00-d7 6e c6 01 00 00 00 00.........n......
ac 6e c6 01 bc 6e c6 01-00 00 00 00 00 00 00 00.n...n..........
bd 6e c6 01 00 00 00 00-b0 35 c4 01 df 35 c4 01.n.......5...5..
00 00 00 00 00 00 00 00-e0 35 c4 01 00 00 00 00.........5......
94 6e c6 01 a8 6e c6 01-00 00 00 00 00 00 00 00.n...n..........
a9 6e c6 01 00 00 00 00-7c 6e c6 01 8f 6e c6 01.n......|n...n..
00 00 00 00 00 00 00 00-90 6e c6 01 00 00 00 00.........n......
64 6e c6 01 79 6e c6 01-00 00 00 00 00 00 00 00dn..yn..........
7a 6e c6 01 00 00 00 00-4c 6e c6 01 5d 6e c6 01zn......Ln..]n..
00 00 00 00 00 00 00 00-5e 6e c6 01 00 00 00 00........^n......
34 6e c6 01 46 6e c6 01-00 00 00 00 00 00 00 004n..Fn..........
47 6e c6 01 00 00 00 00-1c 6e c6 01 2f 6e c6 01Gn.......n../n..
00 00 00 00 00 00 00 00-30 6e c6 01 00 00 00 00........0n......
20 0e c5 01 38 0e c5 01-00 00 00 00 00 00 00 00 ...8...........
39 0e c5 01 00 00 00 00-04 6e c6 01 16 6e c6 019........n...n..
00 00 00 00 00 00 00 00-17 6e c6 01 00 00 00 00.........n......
ec 6d c6 01 02 6e c6 01-00 00 00 00 00 00 00 00.m...n..........
03 6e c6 01 00 00 00 00-d4 6d c6 01 e9 6d c6 01.n.......m...m..
00 00 00 00 00 00 00 00-ea 6d c6 01 00 00 00 00.........m......
bc 6d c6 01 cd 6d c6 01-00 00 00 00 00 00 00 00.m...m..........
ce 6d c6 01 00 00 00 00-a4 6d c6 01 b6 6d c6 01.m.......m...m..
00 00 00 00 00 00 00 00-b7 6d c6 01 00 00 00 00.........m......
8c 6d c6 01 9f 6d c6 01-00 00 00 00 00 00 00 00.m...m..........
a0 6d c6 01 00 00 00 00-74 6d c6 01 85 6d c6 01.m......tm...m..
00 00 00 00 00 00 00 00-86 6d c6 01 00 00 00 00.........m......
5c 6d c6 01 6d 6d c6 01-00 00 00 00 00 00 00 00\m..mm..........
6e 6d c6 01 00 00 00 00-44 6d c6 01 55 6d c6 01nm......Dm..Um..
00 00 00 00 00 00 00 00-56 6d c6 01 00 00 00 00........Vm......
2c 6d c6 01 3d 6d c6 01-00 00 00 00 00 00 00 00,m..=m..........
3e 6d c6 01 00 00 00 00-14 6d c6 01 26 6d c6 01>m.......m..&m..
00 00 00 00 00 00 00 00-27 6d c6 01 00 00 00 00........'m......
fc 6c c6 01 10 6d c6 01-00 00 00 00 00 00 00 00.l...m..........
11 6d c6 01 00 00 00 00-e4 6c c6 01 f8 6c c6 01.m.......l...l..
00 00 00 00 00 00 00 00-f9 6c c6 01 00 00 00 00.........l......
cc 6c c6 01 df 6c c6 01-00 00 00 00 00 00 00 00.l...l..........
e0 6c c6 01 00 00 00 00-b4 6c c6 01 c8 6c c6 01.l.......l...l..
00 00 00 00 00 00 00 00-c9 6c c6 01 00 00 00 00.........l......
9c 6c c6 01 af 6c c6 01-00 00 00 00 00 00 00 00.l...l..........
b0 6c c6 01 00 00 00 00-84 6c c6 01 96 6c c6 01.l.......l...l..
00 00 00 00 00 00 00 00-97 6c c6 01 00 00 00 00.........l......
6c 6c c6 01 7e 6c c6 01-00 00 00 00 00 00 00 00ll..~l..........
7f 6c c6 01 00 00 00 00-54 6c c6 01 65 6c c6 01.l......Tl..el..
00 00 00 00 00 00 00 00-66 6c c6 01 00 00 00 00........fl......
3c 6c c6 01 4e 6c c6 01-00 00 00 00 00 00 00 00<l..Nl..........
4f 6c c6 01 00 00 00 00-24 6c c6 01 36 6c c6 01Ol......$l..6l..
00 00 00 00 00 00 00 00-37 6c c6 01 00 00 00 00........7l......
0c 6c c6 01 1e 6c c6 01-00 00 00 00 00 00 00 00.l...l..........
1f 6c c6 01 00 00 00 00-f4 6b c6 01 07 6c c6 01.l.......k...l..
00 00 00 00 00 00 00 00-08 6c c6 01 00 00 00 00.........l......
dc 6b c6 01 ef 6b c6 01-00 00 00 00 00 00 00 00.k...k..........
f0 6b c6 01 00 00 00 00-c4 6b c6 01 d7 6b c6 01.k.......k...k..
00 00 00 00 00 00 00 00-d8 6b c6 01 00 00 00 00.........k......
ac 6b c6 01 bf 6b c6 01-00 00 00 00 00 00 00 00.k...k..........
c0 6b c6 01 00 00 00 00-94 6b c6 01 a7 6b c6 01.k.......k...k..
00 00 00 00 00 00 00 00-a8 6b c6 01 00 00 00 00.........k......
7c 6b c6 01 8f 6b c6 01-00 00 00 00 00 00 00 00|k...k..........
90 6b c6 01 00 00 00 00-64 6b c6 01 78 6b c6 01.k......dk..xk..
00 00 00 00 00 00 00 00-79 6b c6 01 00 00 00 00........yk......
40 0e c5 01 58 0e c5 01-00 00 00 00 00 00 00 00@...X...........
59 0e c5 01 00 00 00 00-4c 6b c6 01 5e 6b c6 01Y.......Lk..^k..
00 00 00 00 00 00 00 00-5f 6b c6 01 00 00 00 00........_k......
34 6b c6 01 45 6b c6 01-00 00 00 00 00 00 00 004k..Ek..........
46 6b c6 01 00 00 00 00-1c 6b c6 01 2e 6b c6 01Fk.......k...k..
00 00 00 00 00 00 00 00-2f 6b c6 01 00 00 00 00......../k......
04 6b c6 01 16 6b c6 01-00 00 00 00 00 00 00 00.k...k..........
17 6b c6 01 00 00 00 00-ec 44 c5 01 00 45 c5 01.k.......D...E..
00 00 00 00 00 00 00 00-01 45 c5 01 00 00 00 00.........E......
d4 44 c5 01 e6 44 c5 01-00 00 00 00 00 00 00 00.D...D..........
e7 44 c5 01 00 00 00 00-bc 44 c5 01 ce 44 c5 01.D.......D...D..
00 00 00 00 00 00 00 00-cf 44 c5 01 00 00 00 00.........D......
a4 44 c5 01 b6 44 c5 01-00 00 00 00 00 00 00 00.D...D..........
b7 44 c5 01 00 00 00 00-8c 44 c5 01 a0 44 c5 01.D.......D...D..
00 00 00 00 00 00 00 00-a1 44 c5 01 00 00 00 00.........D......
f0 1b c4 01 04 1c c4 01-00 00 00 00 00 00 00 00................
05 1c c4 01 00 00 00 00-20 1c c4 01 31 1c c4 01........ ...1...
00 00 00 00 00 00 00 00-32 1c c4 01 00 00 00 00........2.......
08 1c c4 01 1a 1c c4 01-00 00 00 00 00 00 00 00................
1b 1c c4 01 00 00 00 00-98 62 c6 01 aa 62 c6 01.........b...b..
00 00 00 00 00 00 00 00-ab 62 c6 01 00 00 00 00.........b......
b0 62 c6 01 c2 62 c6 01-00 00 00 00 00 00 00 00.b...b..........
c3 62 c6 01 00 00 00 00-c8 62 c6 01 dc 62 c6 01.b.......b...b..
00 00 00 00 00 00 00 00-dd 62 c6 01 00 00 00 00.........b......
60 0e c5 01 79 0e c5 01-00 00 00 00 00 00 00 00`...y...........
7a 0e c5 01 00 00 00 00-0c 78 c6 01 20 78 c6 01z........x.. x..
00 00 00 00 00 00 00 00-21 78 c6 01 00 00 00 00........!x......
80 0e c5 01 98 0e c5 01-00 00 00 00 00 00 00 00................
99 0e c5 01 00 00 00 00-a0 0e c5 01 b8 0e c5 01................
00 00 00 00 00 00 00 00-b9 0e c5 01 00 00 00 00................
c0 0e c5 01 d8 0e c5 01-00 00 00 00 00 00 00 00................
d9 0e c5 01 00 00 00 00-e0 0e c5 01 f9 0e c5 01................
00 00 00 00 00 00 00 00-fa 0e c5 01 00 00 00 00................
00 0f c5 01 19 0f c5 01-00 00 00 00 00 00 00 00................
1a 0f c5 01 00 00 00 00-20 0f c5 01 39 0f c5 01........ ...9...
00 00 00 00 00 00 00 00-3a 0f c5 01 00 00 00 00........:.......
40 0f c5 01 59 0f c5 01-00 00 00 00 00 00 00 00@...Y...........
5a 0f c5 01 00 00 00 00-60 0f c5 01 78 0f c5 01Z.......`...x...
00 00 00 00 00 00 00 00-79 0f c5 01 00 00 00 00........y.......
80 0f c5 01 99 0f c5 01-00 00 00 00 00 00 00 00................
9a 0f c5 01 00 00 00 00-a0 0f c5 01 b9 0f c5 01................
00 00 00 00 00 00 00 00-ba 0f c5 01 00 00 00 00................
c0 0f c5 01 d8 0f c5 01-00 00 00 00 00 00 00 00................
d9 0f c5 01 00 00 00 00-24 78 c6 01 37 78 c6 01........$x..7x..
00 00 00 00 00 00 00 00-38 78 c6 01 00 00 00 00........8x......
3c 78 c6 01 4f 78 c6 01-00 00 00 00 00 00 00 00<x..Ox..........
50 78 c6 01 00 00 00 00-54 78 c6 01 66 78 c6 01Px......Tx..fx..
00 00 00 00 00 00 00 00-67 78 c6 01 00 00 00 00........gx......
e0 0f c5 01 f9 0f c5 01-00 00 00 00 00 00 00 00................
fa 0f c5 01 00 00 00 00-6c 78 c6 01 82 78 c6 01........lx...x..
00 00 00 00 00 00 00 00-83 78 c6 01 00 00 00 00.........x......
84 78 c6 01 9b 78 c6 01-00 00 00 00 00 00 00 00.x...x..........
9c 78 c6 01 00 00 00 00-9c 78 c6 01 b3 78 c6 01.x.......x...x..
00 00 00 00 00 00 00 00-b4 78 c6 01 00 00 00 00.........x......
20 13 c5 01 38 13 c5 01-00 00 00 00 00 00 00 00 ...8...........
39 13 c5 01 00 00 00 00-40 13 c5 01 58 13 c5 019.......@...X...
00 00 00 00 00 00 00 00-59 13 c5 01 00 00 00 00........Y.......
60 13 c5 01 79 13 c5 01-00 00 00 00 00 00 00 00`...y...........
7a 13 c5 01 00 00 00 00-80 13 c5 01 98 13 c5 01z...............
00 00 00 00 00 00 00 00-99 13 c5 01 00 00 00 00................
a0 13 c5 01 b9 13 c5 01-00 00 00 00 00 00 00 00................
ba 13 c5 01 00 00 00 00-b4 78 c6 01 cb 78 c6 01.........x...x..
00 00 00 00 00 00 00 00-cc 78 c6 01 00 00 00 00.........x......
cc 78 c6 01 e3 78 c6 01-00 00 00 00 00 00 00 00.x...x..........
e4 78 c6 01 00 00 00 00-c0 13 c5 01 d8 13 c5 01.x..............
00 00 00 00 00 00 00 00-d9 13 c5 01 00 00 00 00................
e0 13 c5 01 f8 13 c5 01-00 00 00 00 00 00 00 00................
f9 13 c5 01 00 00 00 00-00 14 c5 01 18 14 c5 01................
00 00 00 00 00 00 00 00-19 14 c5 01 00 00 00 00................
20 14 c5 01 38 14 c5 01-00 00 00 00 00 00 00 00 ...8...........
39 14 c5 01 00 00 00 00-e4 78 c6 01 fb 78 c6 019........x...x..
00 00 00 00 00 00 00 00-fc 78 c6 01 00 00 00 00.........x......
40 14 c5 01 58 14 c5 01-00 00 00 00 00 00 00 00@...X...........
59 14 c5 01 00 00 00 00-60 14 c5 01 78 14 c5 01Y.......`...x...
00 00 00 00 00 00 00 00-79 14 c5 01 00 00 00 00........y.......
80 14 c5 01 99 14 c5 01-00 00 00 00 00 00 00 00................
9a 14 c5 01 00 00 00 00-80 35 c4 01 ae 35 c4 01.........5...5..
00 00 00 00 00 00 00 00-af 35 c4 01 00 00 00 00.........5......
a0 14 c5 01 b8 14 c5 01-00 00 00 00 00 00 00 00................
b9 14 c5 01 00 00 00 00-c0 14 c5 01 da 14 c5 01................
00 00 00 00 00 00 00 00-db 14 c5 01 00 00 00 00................
e0 14 c5 01 f9 14 c5 01-00 00 00 00 00 00 00 00................
fa 14 c5 01 00 00 00 00-00 15 c5 01 1a 15 c5 01................
00 00 00 00 00 00 00 00-1b 15 c5 01 00 00 00 00................
20 15 c5 01 39 15 c5 01-00 00 00 00 00 00 00 00 ...9...........
3a 15 c5 01 00 00 00 00-40 15 c5 01 5b 15 c5 01:.......@...[...
00 00 00 00 00 00 00 00-5c 15 c5 01 00 00 00 00........\.......
60 15 c5 01 7b 15 c5 01-00 00 00 00 00 00 00 00`...{...........
7c 15 c5 01 00 00 00 00-80 15 c5 01 99 15 c5 01|...............
00 00 00 00 00 00 00 00-9a 15 c5 01 00 00 00 00................
a0 15 c5 01 bb 15 c5 01-00 00 00 00 00 00 00 00................
bc 15 c5 01 00 00 00 00-c0 15 c5 01 db 15 c5 01................
00 00 00 00 00 00 00 00-dc 15 c5 01 00 00 00 00................
e0 15 c5 01 f8 15 c5 01-00 00 00 00 00 00 00 00................
f9 15 c5 01 00 00 00 00-00 16 c5 01 19 16 c5 01................
00 00 00 00 00 00 00 00-1a 16 c5 01 00 00 00 00................
20 16 c5 01 3a 16 c5 01-00 00 00 00 00 00 00 00 ...:...........
3b 16 c5 01 00 00 00 00-40 16 c5 01 58 16 c5 01;.......@...X...
00 00 00 00 00 00 00 00-59 16 c5 01 00 00 00 00........Y.......
60 16 c5 01 7b 16 c5 01-00 00 00 00 00 00 00 00`...{...........
7c 16 c5 01 00 00 00 00-80 16 c5 01 99 16 c5 01|...............
00 00 00 00 00 00 00 00-9a 16 c5 01 00 00 00 00................
a0 16 c5 01 b9 16 c5 01-00 00 00 00 00 00 00 00................
ba 16 c5 01 00 00 00 00-c0 16 c5 01 da 16 c5 01................
00 00 00 00 00 00 00 00-db 16 c5 01 00 00 00 00................
e0 16 c5 01 fa 16 c5 01-00 00 00 00 00 00 00 00................
fb 16 c5 01 00 00 00 00-00 17 c5 01 19 17 c5 01................
00 00 00 00 00 00 00 00-1a 17 c5 01 00 00 00 00................
20 17 c5 01 39 17 c5 01-00 00 00 00 00 00 00 00 ...9...........
3a 17 c5 01 00 00 00 00-40 17 c5 01 59 17 c5 01:.......@...Y...
00 00 00 00 00 00 00 00-5a 17 c5 01 00 00 00 00........Z.......
60 17 c5 01 79 17 c5 01-00 00 00 00 00 00 00 00`...y...........
7a 17 c5 01 00 00 00 00-80 17 c5 01 9a 17 c5 01z...............
00 00 00 00 00 00 00 00-9b 17 c5 01 00 00 00 00................
a0 17 c5 01 bb 17 c5 01-00 00 00 00 00 00 00 00................
bc 17 c5 01 00 00 00 00-c0 17 c5 01 da 17 c5 01................
00 00 00 00 00 00 00 00-db 17 c5 01 00 00 00 00................
fc 78 c6 01 0f 79 c6 01-00 00 00 00 00 00 00 00.x...y..........
10 79 c6 01 00 00 00 00-14 79 c6 01 26 79 c6 01.y.......y..&y..
00 00 00 00 00 00 00 00-27 79 c6 01 00 00 00 00........'y......
2c 79 c6 01 43 79 c6 01-00 00 00 00 00 00 00 00,y..Cy..........
44 79 c6 01 00 00 00 00-44 79 c6 01 5b 79 c6 01Dy......Dy..[y..
00 00 00 00 00 00 00 00-5c 79 c6 01 00 00 00 00........\y......
e0 17 c5 01 fa 17 c5 01-00 00 00 00 00 00 00 00................
fb 17 c5 01 00 00 00 00-00 18 c5 01 1a 18 c5 01................
00 00 00 00 00 00 00 00-1b 18 c5 01 00 00 00 00................
20 18 c5 01 39 18 c5 01-00 00 00 00 00 00 00 00 ...9...........
3a 18 c5 01 00 00 00 00-40 18 c5 01 5b 18 c5 01:.......@...[...
00 00 00 00 00 00 00 00-5c 18 c5 01 00 00 00 00........\.......
60 18 c5 01 79 18 c5 01-00 00 00 00 00 00 00 00`...y...........
7a 18 c5 01 00 00 00 00-80 18 c5 01 99 18 c5 01z...............
00 00 00 00 00 00 00 00-9a 18 c5 01 00 00 00 00................
a0 18 c5 01 ba 18 c5 01-00 00 00 00 00 00 00 00................
bb 18 c5 01 00 00 00 00-c0 18 c5 01 da 18 c5 01................
00 00 00 00 00 00 00 00-db 18 c5 01 00 00 00 00................
e0 18 c5 01 fa 18 c5 01-00 00 00 00 00 00 00 00................
fb 18 c5 01 00 00 00 00-00 19 c5 01 19 19 c5 01................
00 00 00 00 00 00 00 00-1a 19 c5 01 00 00 00 00................
20 19 c5 01 3a 19 c5 01-00 00 00 00 00 00 00 00 ...:...........
3b 19 c5 01 00 00 00 00-40 19 c5 01 5a 19 c5 01;.......@...Z...
00 00 00 00 00 00 00 00-5b 19 c5 01 00 00 00 00........[.......
60 19 c5 01 7a 19 c5 01-00 00 00 00 00 00 00 00`...z...........
7b 19 c5 01 00 00 00 00-80 19 c5 01 9a 19 c5 01{...............
00 00 00 00 00 00 00 00-9b 19 c5 01 00 00 00 00................
50 35 c4 01 7e 35 c4 01-00 00 00 00 00 00 00 00P5..~5..........
7f 35 c4 01 00 00 00 00-a0 19 c5 01 ba 19 c5 01.5..............
00 00 00 00 00 00 00 00-bb 19 c5 01 00 00 00 00................
c0 19 c5 01 db 19 c5 01-00 00 00 00 00 00 00 00................
dc 19 c5 01 00 00 00 00-e0 19 c5 01 f9 19 c5 01................
00 00 00 00 00 00 00 00-fa 19 c5 01 00 00 00 00................
00 1a c5 01 1a 1a c5 01-00 00 00 00 00 00 00 00................
1b 1a c5 01 00 00 00 00-20 1a c5 01 3a 1a c5 01........ ...:...
00 00 00 00 00 00 00 00-3b 1a c5 01 00 00 00 00........;.......
40 1a c5 01 59 1a c5 01-00 00 00 00 00 00 00 00@...Y...........
5a 1a c5 01 00 00 00 00-5c 79 c6 01 6d 79 c6 01Z.......\y..my..
00 00 00 00 00 00 00 00-6e 79 c6 01 00 00 00 00........ny......
50 1c c4 01 61 1c c4 01-00 00 00 00 00 00 00 00P...a...........
62 1c c4 01 00 00 00 00-68 1c c4 01 79 1c c4 01b.......h...y...
00 00 00 00 00 00 00 00-7a 1c c4 01 00 00 00 00........z.......
90 5b c6 01 a2 5b c6 01-00 00 00 00 00 00 00 00.[...[..........
a3 5b c6 01 00 00 00 00-00 61 c6 01 10 61 c6 01.[.......a...a..
00 00 00 00 00 00 00 00-11 61 c6 01 00 00 00 00.........a......
18 61 c6 01 29 61 c6 01-00 00 00 00 00 00 00 00.a..)a..........
2a 61 c6 01 00 00 00 00-30 61 c6 01 42 61 c6 01*a......0a..Ba..
00 00 00 00 00 00 00 00-43 61 c6 01 00 00 00 00........Ca......
48 61 c6 01 5b 61 c6 01-00 00 00 00 00 00 00 00Ha..[a..........
5c 61 c6 01 00 00 00 00-60 61 c6 01 72 61 c6 01\a......`a..ra..
00 00 00 00 00 00 00 00-73 61 c6 01 00 00 00 00........sa......
80 62 c6 01 92 62 c6 01-00 00 00 00 00 00 00 00.b...b..........
93 62 c6 01 00 00 00 00-74 44 c5 01 85 44 c5 01.b......tD...D..
00 00 00 00 00 00 00 00-86 44 c5 01 00 00 00 00.........D......
5c 44 c5 01 6e 44 c5 01-00 00 00 00 00 00 00 00\D..nD..........
6f 44 c5 01 00 00 00 00-44 44 c5 01 57 44 c5 01oD......DD..WD..
00 00 00 00 00 00 00 00-58 44 c5 01 00 00 00 00........XD......
2c 44 c5 01 3e 44 c5 01-00 00 00 00 00 00 00 00,D..>D..........
3f 44 c5 01 00 00 00 00-14 44 c5 01 27 44 c5 01?D.......D..'D..
00 00 00 00 00 00 00 00-28 44 c5 01 00 00 00 00........(D......
fc 43 c5 01 0f 44 c5 01-00 00 00 00 00 00 00 00.C...D..........
10 44 c5 01 00 00 00 00-e4 43 c5 01 f7 43 c5 01.D.......C...C..
00 00 00 00 00 00 00 00-f8 43 c5 01 00 00 00 00.........C......
cc 43 c5 01 df 43 c5 01-00 00 00 00 00 00 00 00.C...C..........
e0 43 c5 01 00 00 00 00-b4 43 c5 01 c7 43 c5 01.C.......C...C..
00 00 00 00 00 00 00 00-c8 43 c5 01 00 00 00 00.........C......
9c 43 c5 01 b0 43 c5 01-00 00 00 00 00 00 00 00.C...C..........
b1 43 c5 01 00 00 00 00-84 43 c5 01 97 43 c5 01.C.......C...C..
00 00 00 00 00 00 00 00-98 43 c5 01 00 00 00 00.........C......
6c 43 c5 01 7f 43 c5 01-00 00 00 00 00 00 00 00lC...C..........
80 43 c5 01 00 00 00 00-54 43 c5 01 68 43 c5 01.C......TC..hC..
00 00 00 00 00 00 00 00-69 43 c5 01 00 00 00 00........iC......
28 10 c5 01 49 10 c5 01-00 00 00 00 00 00 00 00(...I...........
4a 10 c5 01 00 00 00 00-50 10 c5 01 75 10 c5 01J.......P...u...
00 00 00 00 00 00 00 00-76 10 c5 01 00 00 00 00........v.......
78 10 c5 01 9b 10 c5 01-00 00 00 00 00 00 00 00x...............
9c 10 c5 01 00 00 00 00-a0 10 c5 01 c6 10 c5 01................
00 00 00 00 00 00 00 00-c7 10 c5 01 00 00 00 00................
60 1a c5 01 7f 1a c5 01-00 00 00 00 00 00 00 00`...............
80 1a c5 01 00 00 00 00-c8 10 c5 01 e9 10 c5 01................
00 00 00 00 00 00 00 00-ea 10 c5 01 00 00 00 00................
f0 10 c5 01 10 11 c5 01-00 00 00 00 00 00 00 00................
11 11 c5 01 00 00 00 00-3c 43 c5 01 4d 43 c5 01........<C..MC..
00 00 00 00 00 00 00 00-4e 43 c5 01 00 00 00 00........NC......
80 1a c5 01 9f 1a c5 01-00 00 00 00 00 00 00 00................
a0 1a c5 01 00 00 00 00-a0 1a c5 01 bd 1a c5 01................
00 00 00 00 00 00 00 00-be 1a c5 01 00 00 00 00................
a0 f0 c4 01 ce f0 c4 01-00 00 00 00 00 00 00 00................
cf f0 c4 01 00 00 00 00-18 11 c5 01 38 11 c5 01............8...
00 00 00 00 00 00 00 00-39 11 c5 01 00 00 00 00........9.......
70 f0 c4 01 9a f0 c4 01-00 00 00 00 00 00 00 00p...............
9b f0 c4 01 00 00 00 00-40 f0 c4 01 6b f0 c4 01........@...k...
00 00 00 00 00 00 00 00-6c f0 c4 01 00 00 00 00........l.......
10 f0 c4 01 3c f0 c4 01-00 00 00 00 00 00 00 00....<...........
3d f0 c4 01 00 00 00 00-c0 1a c5 01 da 1a c5 01=...............
00 00 00 00 00 00 00 00-db 1a c5 01 00 00 00 00................
40 11 c5 01 63 11 c5 01-00 00 00 00 00 00 00 00@...c...........
64 11 c5 01 00 00 00 00-e0 ef c4 01 08 f0 c4 01d...............
00 00 00 00 00 00 00 00-09 f0 c4 01 00 00 00 00................
68 11 c5 01 8a 11 c5 01-00 00 00 00 00 00 00 00h...............
8b 11 c5 01 00 00 00 00-90 11 c5 01 b2 11 c5 01................
00 00 00 00 00 00 00 00-b3 11 c5 01 00 00 00 00................
b8 11 c5 01 df 11 c5 01-00 00 00 00 00 00 00 00................
e0 11 c5 01 00 00 00 00-e0 1a c5 01 fd 1a c5 01................
00 00 00 00 00 00 00 00-fe 1a c5 01 00 00 00 00................
e0 11 c5 01 00 12 c5 01-00 00 00 00 00 00 00 00................
01 12 c5 01 00 00 00 00-00 1b c5 01 1e 1b c5 01................
00 00 00 00 00 00 00 00-1f 1b c5 01 00 00 00 00................
20 1b c5 01 3e 1b c5 01-00 00 00 00 00 00 00 00 ...>...........
3f 1b c5 01 00 00 00 00-08 12 c5 01 29 12 c5 01?...........)...
00 00 00 00 00 00 00 00-2a 12 c5 01 00 00 00 00........*.......
30 12 c5 01 51 12 c5 01-00 00 00 00 00 00 00 000...Q...........
52 12 c5 01 00 00 00 00-58 12 c5 01 7f 12 c5 01R.......X.......
00 00 00 00 00 00 00 00-80 12 c5 01 00 00 00 00................
80 12 c5 01 a1 12 c5 01-00 00 00 00 00 00 00 00................
a2 12 c5 01 00 00 00 00-a8 12 c5 01 c8 12 c5 01................
00 00 00 00 00 00 00 00-c9 12 c5 01 00 00 00 00................
d0 12 c5 01 f5 12 c5 01-00 00 00 00 00 00 00 00................
f6 12 c5 01 00 00 00 00-f8 12 c5 01 1c 13 c5 01................
00 00 00 00 00 00 00 00-1d 13 c5 01 00 00 00 00................
20 1d c5 01 45 1d c5 01-00 00 00 00 00 00 00 00 ...E...........
46 1d c5 01 00 00 00 00-40 1b c5 01 59 1b c5 01F.......@...Y...
00 00 00 00 00 00 00 00-5a 1b c5 01 00 00 00 00........Z.......
24 43 c5 01 3b 43 c5 01-00 00 00 00 00 00 00 00$C..;C..........
3c 43 c5 01 00 00 00 00-60 1b c5 01 78 1b c5 01<C......`...x...
00 00 00 00 00 00 00 00-79 1b c5 01 00 00 00 00........y.......
48 1d c5 01 6b 1d c5 01-00 00 00 00 00 00 00 00H...k...........
6c 1d c5 01 00 00 00 00-d4 79 c6 01 eb 79 c6 01l........y...y..
00 00 00 00 00 00 00 00-ec 79 c6 01 00 00 00 00.........y......
bc 79 c6 01 d3 79 c6 01-00 00 00 00 00 00 00 00.y...y..........
d4 79 c6 01 00 00 00 00-70 1d c5 01 91 1d c5 01.y......p.......
00 00 00 00 00 00 00 00-92 1d c5 01 00 00 00 00................
98 1d c5 01 b9 1d c5 01-00 00 00 00 00 00 00 00................
ba 1d c5 01 00 00 00 00-c0 1d c5 01 e1 1d c5 01................
00 00 00 00 00 00 00 00-e2 1d c5 01 00 00 00 00................
a4 79 c6 01 b6 79 c6 01-00 00 00 00 00 00 00 00.y...y..........
b7 79 c6 01 00 00 00 00-8c 79 c6 01 9e 79 c6 01.y.......y...y..
00 00 00 00 00 00 00 00-9f 79 c6 01 00 00 00 00.........y......
74 79 c6 01 86 79 c6 01-00 00 00 00 00 00 00 00ty...y..........
87 79 c6 01 00 00 00 00-b0 ef c4 01 df ef c4 01.y..............
00 00 00 00 00 00 00 00-e0 ef c4 01 00 00 00 00................
80 1b c5 01 9d 1b c5 01-00 00 00 00 00 00 00 00................
9e 1b c5 01 00 00 00 00-a0 1b c5 01 bd 1b c5 01................
00 00 00 00 00 00 00 00-be 1b c5 01 00 00 00 00................
78 61 c6 01 8b 61 c6 01-00 00 00 00 00 00 00 00xa...a..........
8c 61 c6 01 00 00 00 00-e8 1d c5 01 0e 1e c5 01.a..............
00 00 00 00 00 00 00 00-0f 1e c5 01 00 00 00 00................
10 1e c5 01 36 1e c5 01-00 00 00 00 00 00 00 00....6...........
37 1e c5 01 00 00 00 00-c0 1b c5 01 df 1b c5 017...............
00 00 00 00 00 00 00 00-e0 1b c5 01 00 00 00 00................
e0 1b c5 01 ff 1b c5 01-00 00 00 00 00 00 00 00................
00 1c c5 01 00 00 00 00-38 1e c5 01 5f 1e c5 01........8..._...
00 00 00 00 00 00 00 00-60 1e c5 01 00 00 00 00........`.......
60 1e c5 01 84 1e c5 01-00 00 00 00 00 00 00 00`...............
85 1e c5 01 00 00 00 00-80 ef c4 01 a9 ef c4 01................
00 00 00 00 00 00 00 00-aa ef c4 01 00 00 00 00................
50 ef c4 01 79 ef c4 01-00 00 00 00 00 00 00 00P...y...........
7a ef c4 01 00 00 00 00-88 1e c5 01 a9 1e c5 01z...............
00 00 00 00 00 00 00 00-aa 1e c5 01 00 00 00 00................
00 1c c5 01 1d 1c c5 01-00 00 00 00 00 00 00 00................
1e 1c c5 01 00 00 00 00-b0 1e c5 01 d0 1e c5 01................
00 00 00 00 00 00 00 00-d1 1e c5 01 00 00 00 00................
d8 1e c5 01 f9 1e c5 01-00 00 00 00 00 00 00 00................
fa 1e c5 01 00 00 00 00-84 6a c6 01 c3 6a c6 01.........j...j..
00 00 00 00 00 00 00 00-c4 6a c6 01 00 00 00 00.........j......
90 61 c6 01 a1 61 c6 01-00 00 00 00 00 00 00 00.a...a..........
a2 61 c6 01 00 00 00 00-20 1c c5 01 3f 1c c5 01.a...... ...?...
00 00 00 00 00 00 00 00-40 1c c5 01 00 00 00 00........@.......
40 1c c5 01 5f 1c c5 01-00 00 00 00 00 00 00 00@..._...........
60 1c c5 01 00 00 00 00-60 1c c5 01 7e 1c c5 01`.......`...~...
00 00 00 00 00 00 00 00-7f 1c c5 01 00 00 00 00................
80 1c c5 01 9f 1c c5 01-00 00 00 00 00 00 00 00................
a0 1c c5 01 00 00 00 00-a0 1c c5 01 bf 1c c5 01................
00 00 00 00 00 00 00 00-c0 1c c5 01 00 00 00 00................
00 1f c5 01 21 1f c5 01-00 00 00 00 00 00 00 00....!...........
22 1f c5 01 00 00 00 00-c0 1c c5 01 dc 1c c5 01"...............
00 00 00 00 00 00 00 00-dd 1c c5 01 00 00 00 00................
e0 1c c5 01 fd 1c c5 01-00 00 00 00 00 00 00 00................
fe 1c c5 01 00 00 00 00-28 1f c5 01 48 1f c5 01........(...H...
00 00 00 00 00 00 00 00-49 1f c5 01 00 00 00 00........I.......
50 1f c5 01 70 1f c5 01-00 00 00 00 00 00 00 00P...p...........
71 1f c5 01 00 00 00 00-00 1d c5 01 1f 1d c5 01q...............
00 00 00 00 00 00 00 00-20 1d c5 01 00 00 00 00........ .......
40 20 c5 01 5d 20 c5 01-00 00 00 00 00 00 00 00@ ..] ..........
5e 20 c5 01 00 00 00 00-60 20 c5 01 7e 20 c5 01^ ......` ..~ ..
00 00 00 00 00 00 00 00-7f 20 c5 01 00 00 00 00......... ......
80 20 c5 01 9b 20 c5 01-00 00 00 00 00 00 00 00. ... ..........
9c 20 c5 01 00 00 00 00-bc 20 c5 01 d9 20 c5 01. ....... ... ..
00 00 00 00 00 00 00 00-da 20 c5 01 00 00 00 00......... ......
dc 20 c5 01 f9 20 c5 01-00 00 00 00 00 00 00 00. ... ..........
fa 20 c5 01 00 00 00 00-78 1f c5 01 99 1f c5 01. ......x.......
00 00 00 00 00 00 00 00-9a 1f c5 01 00 00 00 00................
fc 20 c5 01 18 21 c5 01-00 00 00 00 00 00 00 00. ...!..........
19 21 c5 01 00 00 00 00-1c 21 c5 01 3a 21 c5 01.!.......!..:!..
00 00 00 00 00 00 00 00-3b 21 c5 01 00 00 00 00........;!......
3c 21 c5 01 59 21 c5 01-00 00 00 00 00 00 00 00<!..Y!..........
5a 21 c5 01 00 00 00 00-5c 21 c5 01 78 21 c5 01Z!......\!..x!..
00 00 00 00 00 00 00 00-79 21 c5 01 00 00 00 00........y!......
7c 21 c5 01 98 21 c5 01-00 00 00 00 00 00 00 00|!...!..........
99 21 c5 01 00 00 00 00-a0 1f c5 01 c0 1f c5 01.!..............
00 00 00 00 00 00 00 00-c1 1f c5 01 00 00 00 00................
9c 21 c5 01 ba 21 c5 01-00 00 00 00 00 00 00 00.!...!..........
bb 21 c5 01 00 00 00 00-bc 21 c5 01 da 21 c5 01.!.......!...!..
ntohs hostshort=13568
shutdown how=SD_SEND
closesocket
直接使用udp层链接即可
另外按照(一)所述,用WinHex可得到ip列表:
4.2.2.1,美国 科罗拉多州布隆菲尔德市Level 3通信公司
4.2.2.2,美国 科罗拉多州布隆菲尔德市Level 3通信公司
4.2.2.3,美国 科罗拉多州布隆菲尔德市Level 3通信公司
4.2.2.4,美国 科罗拉多州布隆菲尔德市Level 3通信公司
4.2.2.5,美国 科罗拉多州布隆菲尔德市Level 3通信公司
4.2.2.6,美国 科罗拉多州布隆菲尔德市Level 3通信公司
4.2.2.10,美国 科罗拉多州布隆菲尔德市Level 3通信公司
4.4.4.4,美国 科罗拉多州布隆菲尔德市Level 3通信公司
8.2.208.5,美国 科罗拉多州布隆菲尔德市Level 3通信公司
8.8.4.4,美国 加利福尼亚州山景市谷歌公司DNS服务器
8.8.8.8,美国 加利福尼亚州山景市谷歌公司DNS服务器
8.8.192.35,美国 科罗拉多州布隆菲尔德市Level 3通信公司
12.17.136.131,美国 ATT用户
12.25.232.115,美国 ATT用户
12.26.86.73,美国 ATT用户
12.32.34.33,美国 ATT用户
12.49.240.68,美国 ATT用户
12.150.146.198,美国 ATT用户
12.166.30.2,美国 ATT用户
12.180.165.40,美国 ATT用户
12.184.191.26,美国 ATT用户
24.113.0.30,美国
24.113.0.31,美国
24.116.213.232,美国
24.116.219.232,美国
24.116.220.232,美国
24.116.222.232,美国
24.116.225.232,美国
24.117.164.232,美国
24.117.215.232,美国
24.138.111.162,加拿大
24.138.111.163,加拿大
24.143.246.29,美国
24.154.1.4,美国 俄亥俄洲
24.154.1.5,美国 俄亥俄洲
24.197.96.16,美国 密苏里州
24.212.0.7,加拿大
24.212.0.8,加拿大
24.222.0.33,加拿大 Andara用户
24.224.127.197,加拿大
24.226.147.200,加拿大
24.237.132.5,美国 阿拉斯加
24.244.65.8,加拿大
24.244.175.2,巴哈马 Cable用户
24.244.175.133,巴哈马 Cable用户
38.98.1.5,美国 华盛顿哥伦比亚特区Cogent通信公司
38.98.10.132,美国 华盛顿哥伦比亚特区Cogent通信公司
38.116.192.11,美国 华盛顿哥伦比亚特区Cogent通信公司
38.117.92.104,美国 华盛顿哥伦比亚特区Cogent通信公司
41.204.224.2,尼日利亚
41.211.224.7,尼日利亚
58.6.115.42,澳大利亚
58.6.115.43,澳大利亚
58.20.57.4,湖南省长沙市 联通
58.20.127.170,湖南省长沙市 联通
58.22.96.66,福建省福州市 联通
58.64.124.150,泰国 ADC网络
59.51.78.210,湖南省衡阳市 电信
59.51.78.211,湖南省衡阳市 电信
59.144.127.17,印度 BHARTI网络
59.151.21.101,北京市 世纪互联IDC机房
59.185.0.50,印度 VSNL网络
60.191.134.206,浙江省台州市 (椒江区)电信
60.191.244.5,浙江省金华市 电信
61.10.0.130,香港 有线电视
61.10.1.130,香港 有线电视
61.55.166.248,河北省邯郸市 联通ADSL
61.128.97.73,新疆乌鲁木齐市 电信
61.128.97.74,新疆乌鲁木齐市 电信
61.128.99.133,新疆乌鲁木齐市 电信
61.128.99.134,新疆乌鲁木齐市 电信
61.128.114.133,新疆乌鲁木齐市 电信
61.128.114.166,新疆乌鲁木齐市 电信
61.128.128.67,重庆市 电信
61.128.128.68,重庆市 电信
61.128.192.4,重庆市 电信
61.128.192.64,重庆市 电信
61.128.192.68,重庆市 电信
61.134.1.4,陕西省西安市 电信IDC机房
61.134.1.9,陕西省西安市 电信IDC机房
61.134.2.5,陕西省西安市 电信ADSL
61.137.94.195,湖南省长沙市 电信
61.137.94.196,湖南省长沙市 电信
61.138.1.9,黑龙江省哈尔滨市 联通
61.139.2.69,四川省成都市 电信
61.139.54.66,四川省凉山州西昌市 电信
61.140.7.67,广东省广州市 电信
61.144.56.100,广东省广州市 电信ADSL
61.144.56.101,广东省广州市 电信ADSL
61.147.37.1,江苏省徐州市 (沛县)电信
61.153.177.196,浙江省温州市 电信
61.153.177.197,浙江省温州市 电信
61.153.177.198,浙江省温州市 电信
61.153.177.199,浙江省温州市 电信
61.155.152.86,江苏省苏州市 电信
61.166.15.170,云南省玉溪市 电信
61.166.150.101,云南省曲靖市 电信ADSL
61.166.150.123,云南省曲靖市 电信DNS服务器
61.177.7.1,江苏省苏州市 电信ADSL
61.178.0.93,甘肃省兰州市 电信ADSL
61.187.91.18,湖南省岳阳市 电信
61.187.98.3,湖南省株洲市 电信DNS服务器
61.187.98.6,湖南省株洲市 电信DNS服务器
61.187.99.3,湖南省株洲市 电信
61.232.202.158,陕西省西安市 铁通DNS
61.232.206.100,湖北省武汉市 铁通
61.232.206.102,湖北省武汉市 铁通
61.233.65.3,河南省洛阳市 铁通
61.233.75.3,河南省郑州市 铁通
61.234.254.5,湖南省 铁通(公用)
61.234.254.6,湖南省 铁通(公用)
61.235.70.98,广东省广州市白云区 快灵通用户
61.235.146.18,河北省石家庄市 铁通ADSL
61.236.159.99,四川省 铁通
61.237.160.66,江苏省苏州市 铁通ADSL
61.247.202.89,韩国
61.247.202.90,韩国
61.247.202.91,韩国
61.247.202.92,韩国
62.3.32.17,英国
62.6.40.162,英国
62.6.40.178,英国
62.8.96.38,英国
62.32.46.100,格鲁吉亚
62.32.49.100,英国
62.39.164.12,法国
62.69.62.6,英国
62.69.62.7,英国
62.73.136.246,英国
62.77.202.25,匈牙利
62.128.175.14,肯尼亚
62.129.139.2,荷兰
62.140.195.132,英国
62.157.94.6,德国
62.171.194.100,英国
62.171.194.105,英国
62.191.128.248,英国
62.196.2.70,意大利
62.208.208.163,德国
62.240.110.197,埃及
62.244.176.176,英国
63.64.9.12,美国 NIC注册机构
63.76.176.252,美国 NIC注册机构
63.88.42.5,美国 NIC注册机构
63.89.185.17,美国
63.91.110.178,美国
63.135.48.130,美国 NIC注册机构
63.139.151.116,加拿大
63.139.151.117,加拿大
63.139.151.118,加拿大
63.139.151.119,加拿大
63.147.76.2,美国 科罗拉多州丹佛市Qwest通信有限责任公司
63.148.170.11,美国 科罗拉多州丹佛市Qwest通信有限责任公司
63.150.244.16,美国 科罗拉多州丹佛市Qwest通信有限责任公司
63.243.188.2,美国 Teleglobe公司
63.245.14.196,美国 佛罗里达州
63.245.243.5,美国
63.246.64.8,美国
63.246.240.20,美国
63.246.240.21,美国
63.251.129.33,美国 Internap网络
64.4.129.250,美国 加洲
64.13.32.5,美国 加洲
64.13.48.12,美国 加洲
64.13.131.34,美国 加洲
64.15.138.6,加拿大
64.30.215.129,美国 加洲
64.42.243.198,加拿大
64.56.133.149,美国 加洲
64.57.176.12,美国 加洲
64.58.4.2,美国 加洲
64.58.15.2,美国 加洲
64.58.254.2,美国 加洲
64.72.224.34,美国 加洲
64.79.224.3,美国 加洲
64.79.224.27,美国 加洲
64.85.177.10,美国 加洲
64.85.177.11,美国 加洲
64.89.247.15,美国 加洲
64.90.209.53,美国 加洲
64.91.89.2,美国 加洲
64.105.97.90,美国 加洲
64.105.124.156,美国 加洲
64.105.152.186,美国 加洲
64.105.156.138,美国 加洲
64.105.172.26,美国 加洲
64.105.179.138,美国 加洲
64.105.189.25,美国 加洲
64.105.202.138,美国 加洲
64.118.80.141,美国 加洲
64.119.60.5,美国 加洲
64.119.60.9,美国 加洲
64.129.67.100,美国 加洲
64.129.67.101,美国 加洲
64.129.67.102,美国 加洲
64.129.67.103,美国 加洲
64.129.67.104,美国 加洲
64.129.67.105,美国 加洲
64.135.2.250,美国 加洲
64.140.128.10,美国 加洲
64.142.109.51,美国 加洲
64.146.192.16,美国 加洲
64.149.136.201,美国 加洲
64.150.192.94,巴哈马
64.192.0.10,美国 威廉姆斯通讯集团公司
64.201.183.97,美国 加洲
64.207.64.5,美国 加洲
64.222.212.249,美国 Verizon环球网
64.233.189.104,美国 加利福尼亚州山景市谷歌公司
64.233.219.99,美国
64.234.41.13,美国
64.234.241.2,美国
64.235.98.226,加拿大
64.235.98.227,加拿大
64.242.250.25,美国
64.247.129.9,美国
64.247.129.24,美国
64.255.237.191,美国
64.255.237.246,美国
65.38.1.2,美国 TULSACONNECT INTERNET SERVICES
65.39.139.53,美国 Peer 1 Network Inc
65.39.196.215,美国 Peer 1 Network Inc
65.50.3.27,加拿大 罗杰斯通信公司
65.54.238.70,美国 Microsoft公司
65.69.27.202,美国 西南Bell用户
65.74.130.6,美国
65.88.88.2,美国 Broadwing通信公司
65.98.224.50,美国
65.115.122.147,美国 科罗拉多州丹佛市Qwest通信有线责任公司
65.125.132.1,美国 科罗拉多州丹佛市Qwest通信有线责任公司
65.160.96.54,美国
65.182.32.35,美国
65.182.168.20,美国
65.183.0.86,美国
65.207.30.58,美国
65.207.30.95,美国
65.207.58.134,美国
65.215.163.151,美国
65.248.165.11,美国 UUNET用户
66.6.49.179,美国
66.6.49.217,美国
66.11.240.150,美国
66.17.189.3,美国
66.18.32.3,美国
66.33.206.206,美国 加利福尼亚州布瑞亚市DreamHost公司
66.33.216.216,美国 加利福尼亚州布瑞亚市DreamHost公司
66.38.159.33,美国
66.38.192.233,美国
66.39.194.62,美国
66.51.128.191,加拿大
66.51.128.241,加拿大
66.51.158.182,美国
66.51.158.183,美国
66.54.175.122,美国
66.59.235.1,加拿大
66.75.160.39,美国 弗吉尼亚州赫恩登镇Road Runner控股有限责任公司
66.76.175.74,美国
66.80.130.35,美国
66.84.126.5,美国
66.93.57.99,美国
66.101.58.3,美国
66.110.192.50,安哥拉
66.111.113.7,美国
66.111.113.8,美国
66.112.11.88,美国
66.115.210.4,美国
66.119.189.138,加拿大 温哥华ZooLink通信公司
66.128.240.7,美国
66.128.240.8,美国
66.133.150.76,美国
66.135.0.18,美国
66.135.102.133,加拿大
66.135.247.30,美国
66.146.160.12,美国
66.151.16.30,美国
66.163.0.161,加拿大
66.163.0.173,加拿大
66.172.201.11,美国
66.180.208.5,美国
66.181.69.116,美国
66.187.16.5,波多黎各
66.187.16.6,波多黎各
66.187.178.238,美国
66.189.0.6,美国
66.189.0.20,美国
66.199.228.254,美国 纽约
66.207.155.31,美国 Pennsylvania
66.207.199.44,美国 Beanfield公司
66.209.48.10,加拿大
66.209.192.5,美国
66.212.224.241,美国
66.212.252.10,美国
66.212.252.11,美国
66.218.145.10,美国
66.218.145.11,美国
66.218.224.40,美国 CableAmerica公司
66.218.245.10,美国 CableAmerica公司
66.218.245.13,美国 CableAmerica公司
66.234.16.12,加拿大
66.234.185.2,美国
66.240.67.234,美国
66.242.160.5,美国
66.242.160.6,美国
66.244.95.20,美国
66.249.71.227,美国 加利福尼亚州山景市谷歌公司
66.251.214.70,美国
66.251.214.71,美国
66.252.79.12,美国
66.252.240.25,美国
67.14.192.2,美国
67.14.192.3,美国
67.15.193.162,美国 ThePlanet机房
67.15.193.163,美国 ThePlanet机房
67.15.193.164,美国 ThePlanet机房
67.15.193.165,美国 ThePlanet机房
67.15.193.166,美国 ThePlanet机房
67.15.193.167,美国 ThePlanet机房
67.15.193.168,美国 ThePlanet机房
67.15.193.169,美国 ThePlanet机房
67.15.193.170,美国 ThePlanet机房
67.15.193.171,美国 ThePlanet机房
67.18.214.114,美国 ThePlanet机房
67.32.14.245,美国 乔治亚州
67.55.85.229,加拿大 蒙特利尔
67.58.192.10,美国
67.63.68.57,美国 肯塔基州
67.63.68.58,美国 肯塔基州
67.128.8.2,美国
67.133.62.13,美国
67.138.54.100,美国
67.142.166.18,美国
67.142.168.17,美国
67.142.168.18,美国
67.142.168.19,美国
67.199.112.21,美国 弗吉尼亚州
67.201.32.11,美国 弗吉尼亚州
67.201.32.12,美国 弗吉尼亚州
67.211.225.10,美国 弗吉尼亚州
67.214.64.6,美国 弗吉尼亚州
67.214.64.7,美国 弗吉尼亚州
67.214.64.28,美国 弗吉尼亚州
68.4.16.30,美国 加州
68.6.16.30,美国 Cox通信用户
68.6.16.245,美国 Cox通信用户
68.8.16.30,美国 Cox通信用户
68.28.154.11,美国 加利福尼亚州La
68.87.64.154,美国 新泽西州月桂山镇Comcast通信公司
68.87.64.199,美国 新泽西州月桂山镇Comcast通信公司
68.87.66.199,美国 新泽西州月桂山镇Comcast通信公司
68.105.29.140,美国 亚利桑那洲
68.105.29.142,美国 亚利桑那洲
68.178.101.99,美国
68.208.149.226,美国 南方贝尔公司用户
68.234.128.70,美国 宾夕法尼亚州Coudersport
69.1.131.3,美国
69.4.184.138,美国
69.4.184.139,美国
69.6.190.3,美国
69.6.190.6,美国
69.7.33.10,美国
69.7.192.1,美国
69.9.129.9,美国
69.9.144.10,美国
69.18.41.140,美国
69.18.41.209,美国
69.24.208.3,美国
69.25.160.15,美国
69.25.160.20,美国
69.28.104.5,美国
69.28.136.102,美国
69.28.144.102,美国
69.28.207.4,美国
69.28.239.8,美国
69.45.112.40,美国
69.49.32.2,美国
69.50.208.2,美国
69.51.76.26,美国
69.51.76.36,美国
69.57.17.129,美国
69.57.18.161,美国
69.59.32.9,美国 CafeNetwork
69.63.44.106,美国
69.63.44.108,美国
69.63.44.109,美国
69.65.16.101,美国
69.65.17.102,美国
69.87.16.254,美国
69.93.110.242,美国 ThePlanet机房
69.111.95.106,美国
69.155.200.6,美国 密苏里州圣路易斯市
69.165.167.157,美国
69.165.167.158,美国
70.43.17.40,美国
70.43.67.3,美国
70.45.95.8,美国
70.45.95.9,美国
70.86.61.71,美国 ThePlanet机房
70.228.181.2,美国 东北部七州电讯网
70.254.229.2,美国 东北部七州电讯网
71.15.32.9,美国 密苏里州圣路易斯市
71.36.224.29,美国
72.1.80.220,美国 缅因州
72.13.161.10,美国 缅因州
72.13.167.34,美国 缅因州
72.14.163.190,加拿大 Oakville
72.14.189.120,美国 新泽西州亚特兰提克县阿布西肯市Linode有限责任公司
72.19.128.53,美国 缅因州/新罕布什尔州
72.22.224.3,美国 缅因州/新罕布什尔州
72.29.162.17,美国 缅因州/新罕布什尔州
72.37.141.91,美国 缅因州/新罕布什尔州
72.45.110.250,美国 缅因州/新罕布什尔州
72.45.111.250,美国 缅因州/新罕布什尔州
72.45.111.251,美国 缅因州/新罕布什尔州
72.45.127.250,美国 缅因州/新罕布什尔州
72.45.127.251,美国 缅因州/新罕布什尔州
72.51.175.10,美国 佛罗里达州
72.51.175.11,美国 佛罗里达州
72.233.151.51,美国 加利福尼亚州圣弗朗西斯科市
74.51.143.98,美国
74.51.143.99,美国
74.84.119.150,美国 联合航空通信网络(东南部通用)
74.84.119.153,美国 联合航空通信网络(东南部通用)
74.86.49.131,美国 德克萨斯州达拉斯市SoftLayer科技公司
74.111.35.68,美国
74.143.31.19,美国
74.174.200.5,美国
74.174.200.10,美国
74.200.84.4,美国
74.204.42.10,美国
74.222.30.2,美国 加利福尼亚州洛杉矶市Vrtservers公司
75.101.149.182,美国 华盛顿州金县西雅图市亚马逊公司
75.116.63.155,美国
75.116.63.156,美国
75.116.63.157,美国
75.116.63.158,美国
75.116.127.155,美国
75.116.127.156,美国
75.126.98.108,美国 德克萨斯州达拉斯市SoftLayer科技公司
76.10.67.2,美国 联合航空通信网络(北部通用)
76.10.191.198,美国 联合航空通信网络(北部通用)
76.10.191.199,美国 联合航空通信网络(北部通用)
76.14.0.8,美国 联合航空通信网络(北部通用)
76.14.0.9,美国 联合航空通信网络(北部通用)
76.14.96.13,美国 联合航空通信网络(北部通用)
76.14.96.14,美国 联合航空通信网络(北部通用)
76.14.192.8,美国 联合航空通信网络(北部通用)
76.14.192.9,美国 联合航空通信网络(北部通用)
76.73.18.50,美国 FDC丹佛机房
76.77.79.154,加拿大
76.77.208.23,美国 新泽西州月桂山镇Comcast有线通信公司
76.77.208.24,美国 新泽西州月桂山镇Comcast有线通信公司
77.75.184.4,英国
77.220.15.4,安哥拉
77.243.34.71,丹麦
77.247.144.3,荷兰
77.247.144.131,荷兰
80.10.250.14,法国
80.70.172.108,德国
80.72.146.34,丹麦
80.83.47.11,瑞士
80.95.160.2,荷兰
80.118.192.100,法国
80.118.196.40,法国
80.190.139.6,德国
80.241.16.34,奥地利
80.241.16.36,奥地利
80.254.77.39,瑞士
80.254.79.157,瑞士
81.7.200.80,德国
81.27.133.50,意大利
81.29.66.3,英国
81.92.99.6,瑞士
81.95.144.16,英国
81.144.190.98,英国
81.149.140.110,英国
81.199.0.36,以色列
81.199.3.7,以色列
82.96.64.2,德国
82.96.65.2,德国
82.113.193.3,意大利
82.148.223.100,荷兰
82.165.177.207,美国
82.180.0.166,荷兰
82.195.157.15,荷兰
82.195.157.19,荷兰
82.200.117.26,哈萨克斯坦
82.216.111.121,法国 图卢兹
82.216.111.122,法国 图卢兹
82.229.244.191,法国 巴黎
83.97.120.225,美国
83.137.137.46,美国
83.146.21.5,加拿大
83.146.21.6,加拿大
83.170.69.2,英国 伦敦市UK2集团公司
83.218.143.36,美国
83.244.236.176,英国
84.19.188.171,英国
84.39.1.20,荷兰
84.45.99.230,英国
84.103.237.140,法国
84.103.237.141,法国
84.103.237.142,法国
84.103.237.143,法国
84.103.237.144,法国
84.103.237.146,法国
84.243.238.4,法国
85.17.143.192,荷兰 阿姆斯特丹Leaseweb IDC
85.17.170.136,荷兰 阿姆斯特丹Leaseweb IDC
85.17.184.36,荷兰 阿姆斯特丹Leaseweb IDC
85.37.17.6,英国 伦敦
85.37.17.10,英国 伦敦
85.37.17.12,英国 伦敦
85.37.17.14,英国 伦敦
85.37.17.17,英国 伦敦
85.37.17.40,英国 伦敦
85.37.17.43,英国 伦敦
85.37.17.44,英国 伦敦
85.37.17.46,英国 伦敦
85.37.17.47,英国 伦敦
85.37.17.48,英国 伦敦
85.37.17.49,英国 伦敦
85.37.17.50,英国 伦敦
85.37.17.56,英国 伦敦
85.37.17.57,英国 伦敦
85.38.28.68,英国 伦敦
85.38.28.70,英国 伦敦
85.38.28.71,英国 伦敦
85.38.28.72,英国 伦敦
85.38.28.73,英国 伦敦
85.38.28.74,英国 伦敦
85.38.28.76,英国 伦敦
85.38.28.77,英国 伦敦
85.38.28.79,英国 伦敦
85.38.28.80,英国 伦敦
85.38.28.81,英国 伦敦
85.38.28.83,英国 伦敦
85.38.28.84,英国 伦敦
85.38.28.85,英国 伦敦
85.38.28.86,英国 伦敦
85.38.28.89,英国 伦敦
85.38.28.90,英国 伦敦
85.38.28.91,英国 伦敦
85.38.28.92,英国 伦敦
85.38.28.93,英国 伦敦
85.38.28.94,英国 伦敦
85.38.28.95,英国 伦敦
85.38.28.96,英国 伦敦
85.38.28.98,英国 伦敦
85.38.28.99,英国 伦敦
85.88.19.10,欧洲 电信联盟英国客户端
85.88.19.11,欧洲 电信联盟英国客户端
85.90.33.5,欧洲 电信联盟英国客户端
85.90.229.188,欧洲 电信联盟英国客户端
85.214.18.161,英国 伦敦大学
85.234.133.209,英国 伯明翰市
85.255.112.107,英国 北爱尔兰
85.255.113.94,英国 北爱尔兰
85.255.113.98,英国 北爱尔兰
85.255.113.101,英国 北爱尔兰
85.255.113.102,英国 北爱尔兰
85.255.113.106,英国 北爱尔兰
85.255.113.107,英国 北爱尔兰
85.255.113.108,英国 北爱尔兰
85.255.113.109,英国 北爱尔兰
85.255.113.115,英国 北爱尔兰
85.255.113.117,英国 北爱尔兰
85.255.113.118,英国 北爱尔兰
85.255.113.130,英国 北爱尔兰
85.255.113.147,英国 北爱尔兰
85.255.113.198,英国 北爱尔兰
85.255.113.205,英国 北爱尔兰
85.255.114.12,英国 北爱尔兰
85.255.114.40,英国 北爱尔兰
86.64.145.142,英国 威尔士
86.64.145.143,英国 威尔士
86.64.145.144,英国 威尔士
86.64.145.145,英国 威尔士
86.64.145.146,英国 威尔士
86.64.233.83,英国 威尔士
86.64.233.84,英国 威尔士
86.64.233.85,英国 威尔士
87.98.222.22,法国
87.98.222.250,法国
87.117.198.200,英国
87.117.237.100,英国
87.118.100.175,德国
87.237.0.20,美国
87.249.121.242,尼日利亚
89.107.0.84,美国
89.145.68.166,英国
89.238.64.148,美国
91.85.5.25,英国
91.121.136.250,法国
92.246.34.129,美国
94.23.39.201,法国
94.23.69.12,法国
94.23.200.250,法国
94.23.208.250,法国
94.23.216.250,法国
94.23.232.250,法国
94.75.209.141,荷兰 阿姆斯特丹市
94.75.228.29,荷兰 阿姆斯特丹市
94.75.253.77,荷兰 阿姆斯特丹市
95.36.102.181,美国
96.2.187.66,美国
96.5.80.11,美国
97.64.180.150,欧洲
97.64.187.150,欧洲
97.64.187.153,欧洲
97.67.232.17,欧洲
97.67.232.18,欧洲
97.77.8.218,美国
97.77.36.246,美国
98.124.193.1,美国
109.0.64.242,欧洲和中东地区
109.0.64.243,欧洲和中东地区
113.111.211.22,广东省广州市 电信
116.66.201.190,印度尼西亚
116.199.206.54,印度尼西亚
119.31.230.42,欧洲
119.46.240.1,欧洲
119.46.240.2,欧洲
119.46.240.3,欧洲
119.46.240.4,欧洲
119.46.240.5,欧洲
119.46.240.6,欧洲
119.46.240.7,欧洲
119.46.241.1,欧洲
119.46.241.2,欧洲
119.46.241.4,欧洲
119.46.241.5,欧洲
119.46.241.7,欧洲
119.145.145.42,广东省深圳市 电信ADSL
119.146.223.130,广东省 电信
120.136.16.2,印度尼西亚
121.14.117.71,广东省中山市 电信
121.28.7.38,河北省石家庄市 联通ADSL
121.199.254.185,北京市 万网IDC机房
122.70.138.4,北京市 铁通
122.70.138.9,北京市 铁通
123.129.254.13,山东省 联通
123.196.113.38,中国
124.42.122.8,北京市 光环新网
124.224.20.254,宁夏 电信
125.22.47.125,印度
128.2.200.100,美国 卡耐基·梅隆大学
128.8.10.90,美国 马里兰大学
128.9.0.107,美国 加利福尼亚州
128.63.2.53,美国 马里兰州
128.84.154.9,美国 康乃尔大学
128.86.249.14,英国 伦敦大学
128.100.100.128,加拿大 多伦多大学
128.114.129.105,美国 加利福尼亚大学
128.143.2.126,美国 University of Virginia
128.143.3.7,美国 University of Virginia
128.143.22.119,美国 University of Virginia
128.189.4.1,加拿大 温哥华
128.194.176.195,美国 德克萨斯州A&M大学
128.233.119.73,加拿大 萨斯卡彻温大学
128.233.150.126,加拿大 萨斯卡彻温大学
129.66.20.6,美国 阿拉巴马州超级计算机中心
129.66.95.3,美国 阿拉巴马州超级计算机中心
129.66.172.9,美国 阿拉巴马州超级计算机中心
129.71.1.1,美国 西维吉尼亚网络教育
129.108.202.20,美国 德克萨斯大学
129.113.38.36,美国 德克萨斯大学
129.128.5.233,加拿大 阿尔伯达大学
129.128.76.233,加拿大 阿尔伯达大学
129.128.209.13,加拿大 阿尔伯达大学
129.137.254.4,美国 辛辛那提大学
129.137.255.4,美国 辛辛那提大学
129.175.34.240,法国 Paris-Sud University
129.186.88.244,美国
129.206.100.126,德国
129.250.35.250,美国
129.250.35.251,美国
129.250.48.66,美国
129.250.48.82,美国
129.250.48.221,美国
129.250.50.14,美国
130.179.16.11,加拿大 曼尼托巴大学
130.179.16.67,加拿大 曼尼托巴大学
131.94.134.129,美国 佛罗里达国际大学
131.104.20.10,加拿大
131.104.136.36,加拿大
131.191.7.12,美国
131.247.100.1,美国 佛罗里达州坦帕市南佛罗里达大学
132.170.13.121,美国 中佛罗里达大学
132.170.13.227,美国 中佛罗里达大学
132.170.249.15,美国 中佛罗里达大学
132.203.250.10,加拿大
132.203.250.13,加拿大
132.206.25.21,加拿大 McGill University
132.206.44.21,加拿大 McGill University
132.210.157.248,加拿大 施尔布鲁克大学
132.210.162.235,加拿大 施尔布鲁克大学
132.213.1.27,加拿大 魁北克大学赫尔校区
132.216.44.21,加拿大 麦吉尔大学
133.145.228.6,日本 东京
134.2.200.2,德国
134.58.60.1,比利时 荷语天主教鲁汶大学
134.139.1.2,美国 California State University
136.142.57.10,美国 University of Pittsburgh
136.142.188.76,美国 University of Pittsburgh
137.82.1.1,加拿大 University of British Columbia
139.7.144.165,德国
139.103.8.23,加拿大
139.142.5.108,加拿大
139.142.5.131,加拿大
139.142.140.22,加拿大
140.148.3.33,墨西哥
140.186.1.14,美国
140.198.80.134,美国
140.198.80.145,美国
141.166.30.6,美国 University of Richmond
141.211.125.17,美国 密歇根大学
141.211.144.15,美国 密歇根大学
141.211.144.17,美国 密歇根大学
142.46.1.130,加拿大
142.46.58.101,加拿大
142.46.227.161,加拿大
142.47.133.81,加拿大
142.57.224.50,加拿大
142.58.103.1,加拿大 Simon Fraser University
142.58.103.2,加拿大 Simon Fraser University
142.103.1.1,加拿大 University of British Columbia
142.104.0.18,加拿大 维多利亚大学
142.146.39.30,加拿大
142.154.239.225,加拿大
142.166.86.18,加拿大
142.166.86.19,加拿大
142.169.1.5,加拿大
142.176.33.186,加拿大
142.177.1.2,加拿大 Halifax NS
142.204.1.2,加拿大
142.204.79.71,加拿大
142.204.140.20,加拿大
142.232.99.100,加拿大
142.232.99.101,加拿大
143.93.32.2,德国
144.202.248.30,美国
144.202.248.31,美国
145.253.2.6,德国
146.188.96.6,美国
147.144.1.251,美国 加州
147.144.1.252,美国 加州
148.202.3.5,墨西哥
148.216.1.2,墨西哥
148.231.1.3,墨西哥
148.233.151.6,墨西哥
148.233.151.8,墨西哥
149.250.222.22,德国
150.198.164.100,美国
153.90.2.138,美国 Montana State University
154.11.147.2,英国
155.94.110.176,美国
155.135.55.2,美国 California State University
156.154.70.1,美国
156.154.70.22,美国
156.154.71.1,美国
156.154.71.22,美国
157.89.36.108,美国 Eastern Kentucky University
157.193.40.42,比利时
157.193.71.1,比利时
158.43.128.72,英国
158.43.240.4,英国
158.169.9.30,卢森堡
158.195.34.2,斯洛伐克
158.234.250.70,英国
161.6.94.106,美国 Western Kentucky University
161.45.25.37,美国 田纳西州
161.45.193.4,美国 田纳西州
161.76.9.2,英国
161.109.128.2,美国
162.105.129.27,北京大学 计算中心
164.124.101.31,韩国
164.214.4.52,美国 马里兰州
164.214.4.61,美国 马里兰州
165.21.100.88,新加坡 电信SINGNET
165.87.13.129,美国
165.87.201.244,美国
165.95.31.17,美国 德克萨斯州A&M大学
165.112.13.138,美国
166.90.244.254,美国
166.111.8.28,清华大学 网络中心core
166.111.8.29,清华大学 网络中心core
166.111.8.30,清华大学 网络中心core
166.111.168.12,清华大学 继续教育学院
167.193.196.160,美国
168.95.1.1,台湾省 中华电信
168.95.192.1,台湾省 台北
168.95.192.174,台湾省 台北
168.126.63.15,韩国
168.126.63.16,韩国
168.126.63.60,韩国
168.126.63.61,韩国
168.143.113.201,美国 Englewood
168.143.113.202,美国 Englewood
168.160.231.1,北京市
168.160.233.11,北京市 飞华拨号
168.234.219.130,危地马拉
173.13.41.153,美国 CISCO公司VPN用户
173.46.255.30,北美地区
173.49.90.154,北美地区
173.71.0.35,美国 佛吉尼亚州Reston市Verizon Internet Services
173.212.47.47,北美地区
174.34.129.34,美国 theplanet
174.37.59.9,美国 德克萨斯州达拉斯市SoftLayer科技公司
174.120.16.34,美国 德克萨斯州休斯顿The Planet互联网服务公司
174.142.8.58,加拿大 魁北克省蒙特利尔市iWeb科技公司
189.7.160.15,巴西
189.200.0.5,墨西哥
189.204.33.67,墨西哥
192.5.5.241,美国 加利福尼亚州
192.9.9.3,美国 sun(公司)
192.26.210.1,美国
192.33.4.12,法国
192.36.148.17,瑞典 斯德哥尔摩
192.42.42.60,瑞士
192.58.128.30,美国 弗吉尼亚州
192.68.228.85,德国
192.69.21.200,德国
192.77.51.5,加拿大
192.112.36.4,美国 弗吉尼亚州
192.197.217.18,美国
192.203.230.10,美国 加利福尼亚州
192.219.33.33,美国
192.219.63.253,美国
192.228.26.137,马来西亚
192.231.207.102,美国
193.0.14.129,英国 伦敦
193.1.100.130,爱尔兰
193.33.134.250,英国
193.55.52.20,法国
193.63.88.11,英国 University of London Computer Centre
193.93.36.50,卢森堡
193.93.172.36,卢森堡
193.108.252.50,斯洛文尼亚
193.110.205.2,芬兰
193.200.145.10,保加利亚
193.201.97.16,俄罗斯
193.205.80.1,意大利 The University of Trento
193.226.61.1,罗马尼亚
194.6.79.162,英国
194.8.57.12,欧洲
194.8.62.65,欧洲
194.20.8.1,意大利
194.20.8.4,意大利
194.25.0.68,德国
194.29.234.144,朝鲜
194.72.0.98,英国
194.72.0.114,英国
194.72.6.57,英国
194.72.9.38,英国
194.73.82.242,英国
194.74.65.68,英国
194.74.65.69,英国
194.77.8.1,德国
194.106.162.2,塞尔维亚和黑山
194.106.162.3,塞尔维亚和黑山
194.106.162.10,塞尔维亚和黑山
194.113.59.64,德国
194.126.101.34,爱沙尼亚
194.154.16.99,英国
194.182.3.2,丹麦
194.196.235.7,德国
194.196.235.133,德国
194.196.235.135,德国
194.208.99.201,奥地利
194.238.48.2,英国
194.238.48.3,英国
194.239.132.34,丹麦
194.239.132.50,丹麦
194.246.101.57,德国
195.12.4.247,英国
195.18.114.5,荷兰
195.27.150.42,英国
195.27.150.138,英国
195.27.150.140,英国
195.40.0.250,英国
195.40.1.11,英国
195.40.1.19,英国
195.40.1.250,英国
195.50.140.14,德国
195.50.140.38,德国
195.50.140.40,德国
195.50.140.69,德国
195.50.140.70,德国
195.50.140.71,德国
195.78.6.210,摩纳哥
195.82.195.100,丹麦
195.92.67.19,英国
195.92.67.20,英国
195.92.168.138,英国
195.92.168.139,英国
195.99.66.220,英国
195.114.160.108,波兰
195.129.12.83,欧洲
195.154.223.1,法国
195.166.13.4,英国
195.167.185.162,英国
195.175.39.11,土耳其
195.175.39.17,土耳其
195.175.39.165,土耳其
195.175.39.167,土耳其
195.175.39.169,土耳其
195.184.180.4,匈牙利
195.186.1.126,瑞士
195.186.4.110,瑞士
196.207.15.42,南非
196.207.15.43,南非
198.20.32.17,美国
198.31.248.3,美国
198.32.64.12,美国 弗吉尼亚州
198.41.0.4,美国 弗吉尼亚州
198.60.22.2,美国
198.77.116.8,美国
198.77.116.12,美国
198.77.116.221,美国
198.77.116.223,美国
198.77.116.225,美国
198.77.116.227,美国
198.103.148.4,美国
198.164.4.2,美国
198.164.30.2,美国
198.168.8.130,新加坡
198.176.174.181,美国
198.176.174.189,美国
198.176.208.44,美国
198.188.2.69,美国
198.189.143.112,美国
198.190.246.27,美国
198.208.22.27,美国
199.9.65.2,美国/加拿大
199.44.2.10,美国/加拿大
199.166.210.5,美国/加拿大
199.202.105.108,美国/加拿大
199.235.121.1,美国/加拿大/以色列
199.247.2.1,美国/加拿大/以色列
200.6.158.23,巴西 圣保罗
200.6.158.24,巴西 圣保罗
200.12.229.1,巴西 圣保罗
200.12.232.4,巴西 圣保罗
200.23.29.218,巴西 圣保罗
200.23.59.19,巴西 圣保罗
200.23.59.39,巴西 圣保罗
200.36.160.100,巴西 圣保罗
200.38.100.210,美国 San Diego California
200.46.127.101,巴西 圣保罗
200.49.160.31,巴西 圣保罗
200.49.161.131,巴西 圣保罗
200.56.224.11,巴西 圣保罗
200.57.2.108,巴西 圣保罗
200.57.64.66,巴西 圣保罗
200.57.64.67,巴西 圣保罗
200.57.64.85,巴西 圣保罗
200.57.64.86,巴西 圣保罗
200.57.146.148,巴西 圣保罗
200.62.64.1,巴西 圣保罗
200.62.64.65,巴西 圣保罗
200.69.193.1,厄瓜多尔
200.73.16.178,巴西 圣保罗
200.76.49.8,美国 /墨西哥
200.76.49.9,美国 /墨西哥
200.94.160.245,巴西 圣保罗
200.95.144.3,墨西哥
200.107.60.58,巴西 圣保罗
200.252.98.162,巴西 圣保罗
201.82.0.15,巴西 Vivax公司
201.117.66.4,巴西 Vivax公司
201.134.72.19,巴西 Vivax公司
201.144.5.42,巴西 Vivax公司
201.144.5.43,巴西 Vivax公司
201.159.192.6,巴西 Vivax公司
201.159.192.7,巴西 Vivax公司
202.12.19.1,北京市 广电网
202.12.27.33,日本
202.14.67.4,香港 特别行政区
202.14.67.14,香港 特别行政区
202.27.184.3,新西兰
202.38.64.1,安徽省合肥市 中国科学技术大学
202.44.8.2,泰国
202.44.8.34,泰国
202.45.84.58,香港 特别行政区
202.45.84.59,香港 特别行政区
202.56.250.5,印度
202.60.252.8,香港 九龙先达电脑网络有限公司
202.67.240.221,香港 特别行政区
202.67.240.222,香港 特别行政区
202.81.252.1,香港 特别行政区
202.81.252.2,香港 特别行政区
202.85.146.104,香港 柴湾互联优势有限公司
202.96.0.133,北京市 联通
202.96.26.243,北京市 联通
202.96.49.1,北京市 东方网景
202.96.64.68,辽宁省丹东市振兴区 杜鹃网吧(白房路12-10)
202.96.64.70,辽宁省沈阳市 联通
202.96.69.38,辽宁省大连市 联通
202.96.75.64,辽宁省沈阳市 联通
202.96.75.68,辽宁省沈阳市 联通
202.96.75.78,辽宁省沈阳市 联通
202.96.86.18,辽宁省抚顺市 联通
202.96.86.24,辽宁省抚顺市 联通
202.96.91.58,辽宁省阜新市 联通
202.96.96.68,浙江省杭州市 (萧山区)电信
202.96.102.3,浙江省 电信
202.96.103.36,浙江省 电信
202.96.104.15,浙江省宁波市 联通
202.96.104.18,浙江省宁波市 联通
202.96.104.25,浙江省宁波市 联通
202.96.113.34,浙江省衢州市 电信
202.96.128.43,广东省广州市 电信IDC机房
202.96.128.68,广东省广州市 电信IDC机房
202.96.128.86,广东省广州市 电信IDC机房
202.96.128.110,广东省广州市 电信IDC机房
202.96.128.133,广东省广州市 电信IDC机房
202.96.128.143,广东省广州市 电信IDC机房
202.96.128.166,广东省广州市 电信IDC机房
202.96.133.199,广东省珠海市 电信
202.96.134.33,广东省深圳市福田区 电信
202.96.134.133,广东省深圳市福田区 电信
202.96.134.134,广东省深圳市福田区 电信
202.96.134.188,广东省深圳市福田区 电信
202.96.135.133,广东省深圳市 电信
202.96.144.47,广东省汕头市 数据局
202.96.154.8,广东省深圳市 电信
202.96.154.15,广东省深圳市 电信
202.96.199.97,上海市 电信ADSL
202.96.199.132,上海市 电信ADSL
202.96.199.133,上海市 电信ADSL
202.96.209.5,上海市 电信DNS服务器
202.96.209.6,上海市 电信DNS服务器
202.96.209.133,上海市 电信DNS服务器
202.97.7.6,北京市 电信骨干网
202.97.7.17,北京市 电信骨干网
202.97.16.195,甘肃省 电信骨干网
202.97.224.68,黑龙江省哈尔滨市 联通
202.97.224.69,黑龙江省哈尔滨市 联通
202.97.224.80,黑龙江省哈尔滨市 联通
202.97.227.138,黑龙江省哈尔滨市 联通
202.97.229.133,黑龙江省哈尔滨市 联通
202.97.230.4,黑龙江省哈尔滨市 联通
202.98.0.68,吉林省长春市 联通
202.98.3.68,吉林省长春市 联通
202.98.5.68,吉林省长春市 联通DNS服务器
202.98.14.18,吉林省长春市 联通
202.98.14.19,吉林省长春市 联通
202.98.32.68,重庆市 电信
202.98.96.68,四川省成都市 电信
202.98.96.69,四川省成都市 电信
202.98.99.34,四川省成都市 电信
202.98.160.68,云南省 电信
202.98.160.78,云南省 电信
202.98.161.68,云南省 电信
202.98.192.67,贵州省贵阳市 电信
202.98.192.68,贵州省贵阳市 电信
202.98.198.167,贵州省兴义市 电信
202.98.198.168,贵州省兴义市 电信
202.98.224.68,西藏拉萨市 电信
202.99.64.69,天津市 联通
202.99.96.16,天津市 联通
202.99.96.68,天津市 联通DNS
202.99.104.68,天津市 联通DNS
202.99.160.68,河北省秦皇岛市 联通
202.99.160.69,河北省秦皇岛市 联通
202.99.166.4,河北省张家口市 联通
202.99.168.8,河北省保定市 联通
202.99.168.83,河北省保定市 联通
202.99.170.45,河北省秦皇岛市 联通
202.99.176.30,河北省沧州市 联通
202.99.192.66,山西省运城市 联通
202.99.192.68,山西省运城市 四方科技有限公司
202.99.198.6,山西省晋中市 联通
202.99.224.8,内蒙古锡林浩特市 网客驿站网吧
202.99.224.67,内蒙古呼和浩特市 联通
202.99.224.68,内蒙古呼和浩特市 联通
202.99.224.203,内蒙古呼和浩特市 联通
202.100.0.68,陕西省西安市 电信
202.100.4.15,陕西省西安市 电信
202.100.4.16,陕西省西安市 电信
202.100.10.2,陕西省西安市 电信
202.100.10.194,陕西省西安市 电信
202.100.13.11,陕西省西安市 电信
202.100.24.20,陕西省汉中市 电信
202.100.64.66,甘肃省兰州市 电信局枢纽楼(西口电信局)
202.100.64.68,甘肃省兰州市 电信局枢纽楼(西口电信局)
202.100.72.13,甘肃省兰州市 电信
202.100.96.68,宁夏银川市 兴庆区东信龙网吧(凤凰南街大坤水疗旁边)
202.100.128.68,青海省西宁市 城中区特殊视角网吧(凤凰山路258-44号)
202.100.160.68,新疆乌鲁木齐市 电信
202.100.192.68,海南省海口市 电信
202.100.199.8,海南省三亚市 电信
202.101.6.2,上海市 电信
202.101.10.10,上海市金山区 /青浦区
202.101.98.54,福建省福州市 电信
202.101.98.55,福建省福州市 电信DNS服务器
202.101.103.54,福建省厦门市 电信
202.101.103.55,福建省厦门市 电信
202.101.107.55,福建省泉州市 电信
202.101.107.85,福建省泉州市 电信
202.101.107.98,福建省泉州市 电信
202.101.110.55,福建省莆田市 电信
202.101.111.55,福建省莆田市 电信
202.101.112.55,福建省漳州市 电信
202.101.113.55,福建省龙岩市 电信
202.101.114.55,福建省三明市 电信
202.101.115.55,福建省南平市 电信
202.101.172.35,浙江省杭州市 电信
202.101.172.37,浙江省杭州市 电信
202.101.172.47,浙江省杭州市 电信
202.101.172.51,浙江省杭州市 电信
202.101.224.68,江西省上饶市 电信
202.101.224.69,江西省上饶市 电信
202.101.226.68,江西省九江市 电信
202.101.226.69,江西省九江市 电信
202.101.240.36,江西省南昌市 电信
202.102.2.141,江苏省无锡市 电信
202.102.3.141,江苏省常州市 数据局
202.102.3.144,江苏省常州市 数据局
202.102.4.141,江苏省镇江市 电信
202.102.7.90,江苏省扬州市 热线
202.102.7.141,江苏省扬州市 热线
202.102.8.141,江苏省 南通地区
202.102.9.141,江苏省盐城市 电信
202.102.10.141,江苏省淮阴市 电信
202.102.11.141,江苏省盐城市 电信
202.102.12.141,江苏省连云港市 电信
202.102.13.141,江苏省 电信
202.102.14.141,江苏省苏州市 电信
202.102.14.146,江苏省苏州市 电信
202.102.15.162,江苏省 电信
202.102.24.34,江苏省南京市 电信
202.102.24.35,江苏省南京市 电信
202.102.29.3,江苏省南京市 电信
202.102.48.141,江苏省宿迁市 电信
202.102.49.141,江苏省泰州市 电信
202.102.128.68,山东省济南市 联通
202.102.128.69,山东省济南市 联通
202.102.134.68,山东省青岛市 联通
202.102.134.69,山东省青岛市 联通
202.102.152.3,山东省济南市 联通
202.102.152.36,山东省济南市 联通
202.102.154.3,山东省青岛市 联通
202.102.192.68,安徽省阜阳市 电信IDC机房
202.102.199.68,安徽省芜湖市 电信
202.102.200.98,安徽省蚌埠市 电信
202.102.200.101,安徽省蚌埠市 电信
202.102.224.68,河南省 联通DNS服务器
202.102.227.68,河南省 联通DNS服务器
202.102.245.12,河南省郑州市 联通
202.103.0.68,湖北省武汉市 电信
202.103.0.112,湖北省武汉市 电信
202.103.0.117,湖北省武汉市 电信
202.103.24.68,湖北省武汉市 电信
202.103.44.5,湖北省武汉市 电信
202.103.44.150,湖北省武汉市 电信
202.103.83.3,湖南省怀化市 电信
202.103.88.3,湖南省娄底市 电信
202.103.96.68,湖南省长沙市 电信
202.103.96.110,湖南省长沙市 电信
202.103.96.112,湖南省长沙市 电信
202.103.99.3,湖南省岳阳市 电信
202.103.100.100,湖南省长沙市 电信
202.103.100.206,湖南省长沙市 电信
202.103.176.22,广东省茂名市 电信ADSL
202.103.218.23,广西百色市 电信
202.103.224.68,广西南宁市 电信
202.103.225.68,广西柳州市 电信
202.103.225.70,广西柳州市 电信
202.103.229.40,广西梧州市 电信
202.105.65.195,广东省广州市白云区 /天河区电信ADSL
202.105.179.11,广东省珠海市 电信IDC机房
202.106.0.20,北京市朝阳区 联通ADSL
202.106.46.151,北京市 联通ADSL
202.106.124.195,北京市 联通ADSL
202.106.148.1,北京市 联通ADSL
202.106.169.100,北京市 联通ADSL
202.106.196.115,北京市 北京信息科技大学
202.106.196.152,北京市 联通ADSL
202.109.114.79,上海市 电信智慧广场机房
202.109.129.2,江西省南昌市 电信
202.109.226.68,福建省三明市 电信
202.112.0.33,北京市中国教育和科研计算机网
202.112.0.34,北京市中国教育和科研计算机网
202.112.0.35,北京市中国教育和科研计算机网
202.112.10.36,北京邮电大学 网络中心
202.112.10.37,北京邮电大学 网络中心
202.112.14.151,四川省成都市 电子科技大学
202.112.20.131,湖北省武汉市 武汉电子信息专修学院
202.112.26.34,上海交通大学
202.112.112.100,北京市 中国人民大学
202.112.144.30,北京交通大学 DNS服务器
202.113.16.10,南开大学 网络中心首选DNS服务器
202.113.16.11,南开大学 学生邮件系统、网络中心备用DNS服务器
202.114.0.242,华中科技大学 DNS服务器
202.114.64.2,湖北省武汉市 武汉大学
202.114.96.1,湖北省武汉市 武汉理工大学(鉴湖校区)
202.114.96.2,湖北省武汉市 武汉理工大学(鉴湖校区)
202.114.112.13,武汉大学 信息学部
202.114.240.6,湖北省武汉市 武汉科技大学
202.115.32.39,四川大学 工程设计中心
202.115.64.33,四川省成都市 西南交通大学
202.115.64.34,四川省成都市 西南交通大学
202.116.160.33,华南农业大学
202.117.0.20,西安交通大学 家属区拨号用户
202.117.0.21,西安交通大学 家属区拨号用户
202.138.96.2,印度
202.138.103.100,印度
202.140.96.51,香港 特别行政区
202.140.96.52,香港 特别行政区
202.159.65.166,印度尼西亚
202.175.3.3,澳门 特别行政区
202.175.3.8,澳门 特别行政区
202.181.202.140,香港 特别行政区
202.181.224.2,香港 特别行政区
202.188.0.133,马来西亚
202.188.1.5,马来西亚
202.194.48.130,山东省烟台市 鲁东大学
202.196.64.1,河南省郑州市 郑州大学(南校区)
202.201.48.1,甘肃省兰州市 西北师范大学
202.201.48.2,甘肃省兰州市 西北师范大学
202.202.128.33,重庆市 重庆医科大学
202.202.128.34,重庆市 重庆医科大学
202.203.128.33,云南省 教育网
202.203.128.34,云南省 教育网
202.216.228.18,日本
202.224.32.150,日本
202.224.32.151,日本
202.239.113.26,日本
202.247.0.231,日本
202.247.0.234,日本
203.34.118.10,澳大利亚 悉尼
203.80.96.9,香港 特别行政区
203.80.96.10,香港 特别行政区
203.92.214.7,日本 AT&T环球网络
203.93.18.1,北京市 金桥网
203.93.18.2,北京市 金桥网
203.93.19.133,广东省深圳市 天威有线宽带(关内)
203.96.128.68,新西兰
203.96.128.69,新西兰
203.98.129.1,香港 特别行政区
203.98.129.9,香港 特别行政区
203.109.230.58,新西兰
203.109.230.59,新西兰
203.112.2.5,日本
203.113.10.149,泰国
203.121.130.40,泰国
203.130.138.18,泰国
203.130.138.19,泰国
203.138.63.122,日本
203.138.71.154,日本
203.145.184.13,印度
203.155.33.1,泰国
203.156.254.182,上海市 中国移动通信集团上海有限公司
203.208.0.1,中国 讯业金网用户
203.248.240.31,韩国
204.9.161.50,加拿大 多伦多
204.11.119.21,美国
204.13.249.152,美国
204.15.49.62,美国
204.15.204.73,美国
204.16.144.131,美国
204.16.145.131,美国
204.19.43.2,美国
204.19.249.46,美国
204.101.45.5,加拿大 艾伯塔省埃德蒙顿
204.110.15.179,美国/加拿大
204.127.133.11,美国/加拿大
204.127.133.12,美国/加拿大
204.127.163.11,美国/加拿大
204.127.163.12,美国/加拿大
204.153.24.1,美国/加拿大
204.174.16.4,美国/加拿大
204.174.18.2,美国/加拿大
204.187.144.34,美国/加拿大
204.194.36.2,美国/加拿大
204.213.72.2,美国 弗吉尼亚州费尔法克斯县雷斯顿地区Sprint公司
204.225.221.2,美国/加拿大
204.244.30.36,美国/加拿大
205.151.16.2,美国/加拿大
205.151.251.2,美国/加拿大
205.151.251.9,美国/加拿大
205.160.52.53,美国 奥克拉荷马州止水市Chickasaw Telecommunications Services(CTS)公司
205.171.2.65,美国 科罗拉多州丹佛市Qwest通信公司
205.171.3.25,美国 科罗拉多州丹佛市Qwest通信公司
205.171.3.65,美国 科罗拉多州丹佛市Qwest通信公司
205.188.146.145,美国 弗吉尼亚州斯特灵地区美国在线公司总部
205.205.169.69,美国
205.209.16.12,美国
205.209.16.98,美国
205.210.42.205,美国/加拿大
205.234.216.10,美国/加拿大
205.236.148.130,美国/加拿大
205.247.104.20,美国
205.252.144.126,美国 弗吉尼亚州赫恩登镇香港电讯盈科有限公司美国分公司
205.252.144.228,美国 弗吉尼亚州赫恩登镇香港电讯盈科有限公司美国分公司
206.24.209.19,美国/加拿大
206.48.0.10,美国/加拿大
206.63.63.150,美国/加拿大
206.64.118.165,美国/加拿大
206.67.48.250,美国/加拿大
206.78.48.130,美国/加拿大
206.108.253.70,美国/加拿大
206.123.113.254,美国/加拿大
206.132.48.21,美国/加拿大
206.166.57.20,美国/加拿大
206.167.36.22,美国/加拿大
206.169.210.8,美国/加拿大
206.180.162.9,美国/加拿大
206.191.0.139,美国/加拿大
206.191.0.203,美国/加拿大
206.201.23.123,美国/加拿大
206.210.96.53,美国/加拿大
206.248.79.244,美国/加拿大
206.248.142.221,加拿大
206.248.142.222,加拿大
206.248.154.22,加拿大
206.248.154.170,加拿大
206.252.217.6,美国/加拿大
207.15.198.2,美国
207.15.198.3,美国
207.17.190.5,美国
207.17.190.7,美国
207.23.111.102,美国
207.42.84.38,美国
207.91.250.34,美国/加拿大
207.102.99.66,美国/加拿大
207.102.99.82,美国/加拿大
207.103.0.2,美国/加拿大
207.103.206.67,美国/加拿大
207.126.96.162,美国/加拿大
207.150.240.2,美国/加拿大
207.150.240.4,美国/加拿大
207.150.240.10,美国/加拿大
207.158.39.6,美国/加拿大
207.158.39.7,美国/加拿大
207.170.227.121,美国/加拿大
207.176.226.3,加拿大
207.178.128.92,加拿大
207.179.130.2,加拿大
207.179.130.3,加拿大
207.180.2.78,加拿大
207.225.209.66,美国
207.230.32.1,美国/加拿大
207.248.32.2,美国
207.248.32.3,美国
207.248.33.243,美国
207.248.57.10,美国
207.248.57.11,美国
207.253.250.66,美国/加拿大
207.254.24.2,美国/加拿大
208.34.108.10,美国/加拿大
208.39.233.5,美国/加拿大
208.51.187.6,美国/加拿大
208.54.220.21,美国/加拿大
208.59.247.43,美国
208.65.88.1,美国
208.65.88.2,美国
208.65.173.71,美国
208.65.225.2,美国
208.66.71.6,美国
208.66.71.7,美国
208.67.220.220,美国 加利福尼亚州旧金山市OpenDNS有限责任公司
208.67.222.220,美国 加利福尼亚州旧金山市OpenDNS有限责任公司
208.67.222.222,美国 加利福尼亚州旧金山市OpenDNS有限责任公司
208.67.223.255,美国 加利福尼亚州旧金山市OpenDNS有限责任公司
208.68.0.194,美国
208.68.0.195,美国
208.68.50.70,美国
208.68.50.71,美国
208.69.84.9,美国
208.69.160.2,美国
208.71.28.2,美国
208.71.147.74,美国
208.71.159.3,美国
208.72.120.204,美国
208.72.136.5,美国
208.72.145.1,美国
208.72.145.5,美国
208.74.158.3,美国
208.74.158.10,美国
208.75.224.254,美国
208.76.139.27,美国
208.77.0.11,美国
208.79.56.204,美国
208.82.128.2,美国
208.83.64.5,美国
208.83.64.6,美国
208.83.192.162,美国
208.86.182.143,美国
208.88.168.5,美国
208.88.168.6,美国
208.89.107.86,美国
208.90.15.229,美国
208.90.237.9,美国
208.91.112.53,美国
208.93.220.20,美国
208.93.222.6,美国
208.94.72.2,美国
208.94.78.2,美国
208.94.147.150,美国
208.94.147.151,美国
208.95.18.150,美国
208.96.10.221,美国
208.96.162.13,美国
208.97.25.29,美国
208.98.152.3,美国
208.98.152.6,美国
208.98.188.81,美国
208.106.121.4,美国
208.110.128.2,美国
208.110.170.5,美国
208.112.89.183,美国
208.116.30.21,美国
208.123.144.2,美国
208.151.69.65,美国/加拿大
208.167.231.55,美国/加拿大
208.175.109.19,美国/加拿大
208.196.63.2,美国 弗吉尼亚州劳登县阿什本地区MCI通信服务公司
208.218.130.5,美国 弗吉尼亚州劳登县阿什本地区MCI通信服务公司
208.246.8.14,美国 弗吉尼亚州劳登县阿什本地区MCI通信服务公司
209.5.21.78,美国/加拿大
209.20.130.77,美国/加拿大
209.40.66.10,美国/加拿大
209.53.200.2,加拿大
209.53.200.3,加拿大
209.59.164.10,加拿大
209.59.164.250,加拿大
209.60.128.194,加拿大
209.62.57.2,美国 ThePlanet机房
209.74.143.1,美国/加拿大
209.81.0.254,美国/加拿大
209.87.239.20,美国/加拿大
209.90.90.174,美国/加拿大
209.90.160.220,美国/加拿大
209.105.192.122,美国/加拿大
209.114.255.27,美国/加拿大
209.115.131.51,美国/加拿大
209.115.142.1,美国/加拿大
209.115.142.9,美国/加拿大
209.115.142.132,美国/加拿大
209.120.245.58,美国/加拿大
209.124.63.37,美国/加拿大
209.133.21.10,美国/加拿大
209.137.192.10,美国/加拿大
209.137.193.10,美国/加拿大
209.139.247.254,美国/加拿大
209.142.182.250,美国/加拿大
209.147.123.3,美国/加拿大
209.163.108.67,美国/加拿大
209.165.131.71,美国/加拿大
209.165.131.73,美国/加拿大
209.166.160.36,美国/加拿大
209.166.160.132,美国/加拿大
209.172.0.5,美国/加拿大
209.179.23.232,美国/加拿大
209.191.139.131,美国/加拿大
209.197.128.2,美国/加拿大
209.202.110.120,美国/加拿大
209.202.110.121,美国/加拿大
209.226.175.236,美国/加拿大
209.226.175.237,美国/加拿大
209.234.64.193,美国
209.242.0.2,美国 加州
209.244.0.3,美国 Broomfield
209.244.0.4,美国 Broomfield
209.250.128.6,美国/加拿大
209.251.130.31,美国/加拿大
209.251.130.41,美国/加拿大
209.252.33.101,美国/加拿大
209.252.33.103,美国/加拿大
210.14.232.241,中国 联通
210.21.4.130,广东省广州市 联通
210.21.196.5,广东省深圳市 联通
210.21.196.6,广东省深圳市 联通
210.21.196.50,广东省深圳市 联通
210.22.14.68,广东省深圳市 联通
210.22.70.2,上海市 联通
210.22.70.3,上海市 联通
210.22.84.3,上海市 联通
210.33.116.112,浙江省 浙江广播电视大学
210.38.192.33,广东省韶关市 韶关学院
210.51.170.66,北京市 联通亦庄IDC中心
210.52.149.2,辽宁省大连市 联通
210.52.207.2,上海市 联通
210.53.0.3,四川省 联通
210.79.232.248,北京市 中国工程技术信息网
210.80.60.1,UUNET亚太区网络
210.80.60.2,UUNET亚太区网络
210.130.137.22,日本
210.138.175.22,日本
210.143.144.12,日本
210.150.255.66,日本
210.153.1.1,日本
210.164.22.69,日本
210.191.71.1,日本
210.191.71.13,日本
210.192.103.50,北京市 万网公司IDC
211.29.132.16,澳大利亚 悉尼
211.31.132.89,澳大利亚
211.31.132.91,澳大利亚
211.90.8.129,河北省石家庄市 联通
211.90.72.65,内蒙古呼和浩特市 联通
211.90.80.65,山西省太原市 联通
211.90.88.129,江苏省 联通(全省通用)
211.90.88.132,江苏省 联通(全省通用)
211.90.120.80,江苏省无锡市 联通
211.90.216.129,浙江省杭州市 联通
211.91.88.129,安徽省合肥市 联通
211.91.120.129,湖北省武汉市 联通
211.91.184.129,河南省郑州市 联通
211.91.216.129,湖南省长沙市 联通
211.91.248.129,江西省南昌市 联通
211.92.8.161,重庆市 联通
211.92.136.81,贵州省贵阳市 联通
211.92.144.161,云南省昆明市 联通
211.92.248.65,甘肃省兰州市 联通
211.93.0.81,宁夏银川市 联通
211.93.8.81,青海省西宁市 联通
211.93.16.65,新疆乌鲁木齐市 联通
211.93.24.129,黑龙江省哈尔滨市 联通
211.93.64.129,吉林省长春市 联通
211.93.80.129,辽宁省沈阳市 联通
211.94.33.193,河北省石家庄市 联通
211.94.33.194,河北省石家庄市 联通
211.94.65.97,北京市 联通
211.94.193.129,天津市 联通
211.95.1.97,上海市 联通
211.95.72.1,上海市 联通
211.95.129.161,四川省成都市 联通
211.95.193.97,广东省广州市 联通
211.97.64.129,广西南宁市 联通
211.97.96.65,海南省海口市 联通
211.97.104.129,福建省福州市 联通
211.97.168.129,山东省济南市 联通
211.97.184.100,山东省青岛市 联通
211.98.2.4,广东省广州市 铁通
211.98.2.40,广东省广州市 铁通
211.98.4.1,广东省广州市 铁通
211.98.4.15,广东省广州市 铁通
211.98.72.7,云南省昆明市 铁通DNS服务器
211.98.72.8,云南省昆明市 铁通DNS服务器
211.98.72.73,云南省昆明市 铁通
211.98.192.3,河南省郑州市 铁通
211.99.199.194,北京市 世纪互联数据中心
211.99.199.195,北京市 世纪互联数据中心
211.100.1.10,北京市
211.100.2.130,北京市
211.103.13.101,江苏省无锡市 移动
211.136.17.97,广西南宁市 移动
211.136.17.98,广西南宁市 移动
211.136.17.99,广西南宁市 移动
211.136.17.100,广西南宁市 移动
211.136.17.101,广西南宁市 移动
211.136.17.107,广西南宁市 移动
211.136.18.171,广东省深圳市 移动
211.136.20.193,广西南宁市 /广东省广州市移动
211.136.20.194,广西南宁市 /广东省广州市移动
211.136.20.195,广西南宁市 /广东省广州市移动
211.136.20.196,广西南宁市 /广东省广州市移动
211.136.20.197,广西南宁市 /广东省广州市移动
211.136.20.203,广西南宁市 /广东省广州市移动
211.136.28.228,北京市 移动GPRS
211.136.28.231,北京市 移动GPRS
211.136.28.234,北京市 移动GPRS
211.136.28.237,北京市 移动GPRS
211.136.32.100,北京市 移动GPRS
211.136.32.103,北京市 移动GPRS
211.136.32.106,北京市 移动GPRS
211.136.32.109,北京市 移动GPRS
211.136.112.50,上海市 移动GPRS
211.136.150.66,上海市 移动GPRS
211.136.192.6,广东省 移动(全省通用)
211.137.32.178,辽宁省 移动(全省通用)
211.137.58.20,湖北省武汉市 移动
211.137.64.163,湖北省武汉市 移动
211.137.130.3,陕西省 移动
211.137.130.19,陕西省 移动
211.137.160.5,天津市 移动
211.137.160.185,天津市 移动
211.137.241.34,黑龙江省哈尔滨市 移动
211.137.241.35,黑龙江省哈尔滨市 移动
211.138.13.66,河北省 移动
211.138.31.3,河南省郑州市 移动
211.138.31.4,河南省郑州市 移动
211.138.75.123,青海省西宁市 移动
211.138.91.1,内蒙古呼和浩特市 移动
211.138.91.2,内蒙古呼和浩特市 移动
211.138.106.3,山西省 移动(全省通用)
211.138.106.19,山西省 移动(全省通用)
211.138.130.254,浙江省 移动(全省通用)
211.138.145.194,福建省福州市 移动
211.138.151.161,福建省福州市 移动
211.138.156.6,福建省福州市 移动
211.138.156.66,福建省福州市 移动
211.138.157.106,福建省泉州市 移动
211.138.164.6,海南省海口市 移动
211.138.164.7,海南省海口市 移动
211.138.180.2,安徽省合肥市 移动
211.138.180.3,安徽省合肥市 移动
211.138.200.69,江苏省 移动(全省通用)
211.138.242.18,广西南宁市 移动
211.138.252.30,广西南宁市 移动
211.138.252.32,广西南宁市 移动
211.138.252.71,广西南宁市 移动
211.139.1.3,贵州省贵阳市 移动
211.139.2.18,贵州省贵阳市 移动
211.139.29.68,云南省 移动DNS服务器
211.139.29.69,云南省 移动DNS服务器
211.139.73.34,西藏拉萨市 移动
211.139.73.35,西藏拉萨市 移动
211.139.136.68,广东省 移动GPRS(全省通用)
211.139.163.6,广东省 移动GPRS(全省通用)
211.140.10.2,浙江省杭州市 移动
211.140.14.36,浙江省杭州市 移动
211.140.197.58,辽宁省大连市 移动
211.141.0.99,吉林省吉林市 移动
211.141.16.99,吉林省 移动
211.141.90.68,江西省南昌市 移动
211.141.90.69,江西省南昌市 移动
211.142.210.98,湖南省长沙市 移动
211.142.210.100,湖南省长沙市 移动
211.143.60.56,河北省 移动GRPS(全省通用)
211.150.124.76,北京市 263网络通信股份有限公司
211.150.125.198,北京市 263网络通信股份有限公司
211.162.62.1,广东省广州市 长城宽带
211.162.78.1,广东省深圳市 长城宽带
212.8.216.41,德国
212.24.188.131,匈牙利
212.24.192.15,卢森堡
212.29.0.1,德国
212.30.96.123,法国
212.31.224.2,意大利
212.34.160.56,德国
212.34.164.68,德国
212.40.0.10,瑞士
212.51.207.67,波兰 Technical University of Lodz
212.56.224.20,卢森堡
212.58.224.138,英国
212.68.193.196,比利时
212.72.23.31,阿曼
212.73.209.34,法国
212.74.114.193,英国
212.76.68.200,沙特阿拉伯
212.83.64.140,荷兰
212.98.160.65,白俄罗斯
212.108.200.75,匈牙利
212.111.32.7,英国
212.118.241.1,英国
212.118.241.33,英国
212.135.1.32,英国
212.135.1.33,英国
212.135.1.34,英国
212.135.1.35,英国
212.135.1.204,英国
212.158.248.5,俄罗斯
212.158.248.6,俄罗斯
212.159.11.150,英国
212.189.127.131,荷兰
212.222.128.86,德国
212.223.22.22,德国
213.11.43.241,法国
213.19.146.3,荷兰
213.41.78.235,法国
213.41.78.237,法国
213.41.78.238,法国
213.52.192.198,英国
213.92.5.193,意大利
213.94.78.16,奥地利
213.94.78.17,奥地利
213.94.78.18,奥地利
213.131.66.248,埃及
213.138.110.132,伊朗
213.143.65.12,斯洛文尼亚
213.159.10.58,荷兰
213.160.40.2,瑞士
213.160.212.2,英国
213.161.83.20,英国
213.172.33.34,西班牙
213.183.65.31,德国
213.191.74.12,德国
213.191.92.82,德国
213.201.213.227,荷兰
213.203.192.234,德国
213.214.0.44,德国
213.249.210.4,欧洲
213.249.210.5,欧洲
213.249.210.6,欧洲
213.251.133.164,英国
216.13.127.50,美国/加拿大
216.16.248.50,加拿大
216.17.3.121,美国/加拿大
216.17.3.122,美国/加拿大
216.17.220.1,美国/加拿大
216.17.220.49,美国/加拿大
216.17.220.65,美国/加拿大
216.21.128.22,美国/加拿大
216.21.129.22,美国/加拿大
216.23.179.1,美国/加拿大
216.24.27.208,美国/加拿大
216.26.137.20,美国 Xodiax
216.29.107.8,美国/加拿大
216.36.128.2,加拿大
216.36.128.3,加拿大
216.38.154.66,美国
216.48.26.101,美国/加拿大
216.52.1.1,美国/加拿大
216.52.1.33,美国/加拿大
216.52.41.1,美国/加拿大
216.52.94.33,美国/加拿大
216.52.126.1,美国/加拿大
216.52.161.33,美国/加拿大
216.52.169.1,美国/加拿大
216.52.169.33,美国/加拿大
216.54.2.10,美国/加拿大
216.54.2.11,美国/加拿大
216.55.128.7,美国/加拿大
216.57.160.5,美国/加拿大
216.57.160.8,美国/加拿大
216.58.97.20,美国/加拿大
216.68.71.4,美国/加拿大
216.81.96.67,美国/加拿大
216.83.194.5,美国/加拿大
216.85.85.217,美国/加拿大
216.87.84.211,美国 科罗拉多州丹佛市ViaWest公司
216.94.180.2,美国/加拿大
216.106.14.194,美国/加拿大
216.106.184.2,美国/加拿大
216.106.184.50,美国/加拿大
216.110.214.2,美国/加拿大
216.114.192.111,美国/加拿大
216.123.198.243,美国/加拿大
216.129.211.2,美国/加拿大
216.130.105.133,美国/加拿大
216.130.189.116,美国/加拿大
216.131.94.5,美国/加拿大
216.131.95.20,美国/加拿大
216.134.244.11,美国/加拿大
216.144.4.10,美国/加拿大
216.144.192.250,美国/加拿大
216.146.35.35,美国/加拿大
216.146.36.36,美国/加拿大
216.152.160.30,美国/加拿大
216.168.202.21,美国/加拿大
216.171.96.38,美国/加拿大
216.171.98.75,美国/加拿大
216.171.98.76,美国/加拿大
216.181.30.11,美国/加拿大
216.187.117.12,美国/加拿大
216.187.117.130,美国/加拿大
216.187.119.10,美国/加拿大
216.198.139.69,美国
216.206.157.7,美国
216.211.190.3,美国 纽约
216.211.191.3,美国 纽约
216.220.80.200,美国/加拿大
216.220.93.193,美国/加拿大
216.220.96.17,美国/加拿大
216.220.208.209,美国/加拿大
216.221.96.36,美国/加拿大
216.221.96.38,美国/加拿大
216.224.112.15,美国/加拿大
216.227.100.60,美国/加拿大
216.227.253.10,美国/加拿大
216.230.107.8,美国/加拿大
216.230.112.41,美国/加拿大
216.230.112.42,美国/加拿大
216.235.128.10,美国/加拿大
216.235.138.10,美国/加拿大
216.239.80.185,美国 加利福尼亚州山景市谷歌公司
216.240.187.22,美国/加拿大
216.241.164.234,美国/加拿大
216.245.224.4,美国/加拿大
216.251.128.22,美国/加拿大
216.251.128.40,美国/加拿大
216.254.141.2,美国 纽约州
217.10.135.6,英国
217.10.160.8,英国
217.10.162.8,英国
217.14.164.35,德国
217.17.22.2,德国
217.19.176.2,欧洲
217.20.127.32,欧洲
217.20.127.198,欧洲
217.27.240.20,欧洲
217.64.112.13,英国
217.72.162.2,英国
217.72.168.34,英国
217.79.186.148,欧洲
217.116.226.3,丹麦
217.144.144.11,欧洲
217.150.35.129,欧洲
217.154.96.244,英国
217.154.96.245,英国
217.154.131.34,英国
217.170.32.66,俄罗斯
217.174.194.33,美国
217.175.160.11,法国
217.194.96.10,乌克兰
218.2.135.1,江苏省南京市 电信ADSL
218.5.75.141,福建省厦门市 电信IDC机房
218.6.200.139,四川省成都市 电信ADSL
218.29.54.109,河南省新乡市 联通IDC机房
218.29.255.68,河南省郑州市 联通
218.30.19.40,陕西省西安市 电信DNS
218.30.103.93,北京市 电信IDC机房
218.40.228.9,日本
218.76.64.138,湖南省吉首市 电信
218.76.90.1,湖南省吉首市 电信
218.76.192.100,湖南省邵阳市 邵阳学院七里坪校区
218.76.192.101,湖南省邵阳市 电信
218.76.248.6,湖南省永州市 (东安县)电信ADSL
218.76.248.60,湖南省永州市 (东安县)电信ADSL
218.76.248.100,湖南省永州市 (东安县)电信ADSL
218.77.31.200,湖南省怀化市
218.85.139.33,福建省厦门市 电信ADSL
218.85.157.99,福建省福州市 电信DNS服务器
218.87.132.1,江西省赣州市 电信ADSL
218.87.142.1,江西省赣州市 电信ADSL
218.89.0.124,四川省乐山市 电信DNS服务器
218.102.62.71,香港 特别行政区
218.104.32.106,江苏省苏州市 联通
218.104.78.2,安徽省合肥市 联通
218.104.78.3,安徽省合肥市 联通
218.104.111.112,湖北省武汉市 联通
218.104.111.114,湖北省武汉市 联通
218.104.128.106,福建省厦门市 联通路由器
218.104.136.156,福建省厦门市 联通
218.107.207.40,福建省厦门市 联通
218.108.245.157,浙江省杭州市 华数宽带
218.108.248.20,浙江省杭州市 华数宽带
218.108.248.200,浙江省杭州市 华数宽带
218.138.156.161,日本 东京
218.201.4.3,重庆市 移动
218.201.17.2,重庆市 移动
218.202.152.130,新疆乌鲁木齐市 移动
218.203.101.3,宁夏 移动
218.203.101.4,宁夏 移动
218.203.160.194,甘肃省兰州市 移动
218.203.160.195,甘肃省兰州市 移动
218.205.229.114,四川省资阳市 移动
218.219.54.67,日本
218.223.68.33,日本
218.223.68.73,日本
218.244.147.72,北京市 电信通中关村IDC(万网租用)
218.248.240.135,印度 BSNL网络
218.248.240.208,印度 BSNL网络
218.251.89.134,日本
219.72.225.253,湖南省 中信网络有限公司
219.72.225.254,湖南省 中信网络有限公司
219.146.0.130,山东省济南市 电信
219.146.0.132,山东省济南市 电信
219.147.198.230,黑龙江省齐齐哈尔市 电信
219.148.162.31,内蒙古呼和浩特市 电信
219.149.194.55,吉林省长春市 电信DNS服务器
219.150.32.132,山东省济南市 电信DNS服务器
219.150.150.150,河南省开封市 电信
219.151.32.66,西藏拉萨市 电信
219.157.70.130,河南省洛阳市 联通
219.235.1.248,上海市 邦特网络通信
219.238.235.184,北京市 瑞星信息技术有限公司(中关村大街中科大厦)
220.103.99.3,日本
220.168.208.3,湖南省常德市 电信
220.168.208.6,湖南省常德市 电信
220.170.0.18,湖南省衡阳市 电信
220.170.64.68,湖南省衡阳市 电信
220.170.64.96,湖南省衡阳市 电信
220.189.127.107,浙江省嘉兴市 电信
220.192.8.58,上海市 电信CDMA
220.231.41.77,北京市 光环新网
220.248.192.12,江西省南昌市 联通
220.248.192.13,江西省南昌市 联通
220.255.4.18,新加坡 电信SINGNET
221.3.131.9,云南省昆明市 联通
221.3.131.10,云南省昆明市 联通
221.4.8.1,广东省广州市 联通
221.4.66.66,广东省广州市 联通
221.4.98.66,广东省深圳市 联通
221.5.88.88,广东省肇庆市 联通ADSL
221.6.4.66,江苏省南京市 联通
221.6.96.177,江苏省无锡市 联通
221.7.34.10,甘肃省兰州市 联通
221.7.128.68,广西南宁市 联通
221.7.136.68,广西柳州市 联通
221.10.251.196,四川省自贡市 联通
221.11.132.2,海南省海口市 联通
221.12.1.228,浙江省杭州市 联通
221.12.33.228,浙江省宁波市 电信
221.12.65.228,浙江省温州市 联通
221.130.32.100,北京市 移动
221.130.32.103,北京市 移动
221.130.32.106,北京市 移动
221.130.32.109,北京市 移动
221.130.33.52,北京市 移动
221.130.33.60,北京市 移动
221.130.252.200,重庆市 移动IDC机房
221.176.3.70,江西省 移动
221.176.3.73,江西省 移动
221.176.3.76,江西省 移动
221.176.3.79,江西省 移动
221.176.3.82,江西省 移动
221.176.3.85,江西省 移动
221.176.4.6,江西省 移动
221.176.4.9,江西省 移动
221.176.4.12,江西省 移动
221.176.4.15,江西省 移动
221.176.4.18,江西省 移动
221.176.4.21,江西省 移动
221.228.255.1,江苏省无锡市 电信ADSL
222.45.0.110,江苏省无锡市 /南通市铁通
222.45.1.40,江苏省徐州市 铁通
222.73.44.148,上海市 电信(沈家弄路)IDC机房
222.75.152.129,宁夏银川市 电信
222.85.85.85,河南省郑州市 电信
222.88.88.88,河南省洛阳市 电信IDC机房
222.124.198.150,印度尼西亚
222.172.200.68,云南省昆明市 电信DNS服务器
222.246.129.80,湖南省长沙市 电信
222.246.129.81,湖南省长沙市 电信
此时要解决的问题都已解决,可以完整地写一个程序了^_^
页:
[1]