首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WSUS客户端访问服务端异常报错-0x8024401f「建议收藏」

2021-11-29 22:15:10:401 804 cd8 WS WARNING: 与位于“http://xxxx.xxxx.xxx.xxx:8530/ClientWebService/client.asmx”的终结点进行通信时出现错误。 2021-11-29 22:15:10:401 804 cd8 WS WARNING: 服务器已返回 HTTP 状态代码“500 (0x1F4)”以及文本“Internal Server Error”。 2021-11-29 22:15:10:401 804 cd8 WS WARNING: 服务器无法处理该请求。 2021-11-29 22:15:10:401 804 cd8 WS WARNING: MapToSusHResult mapped Nws error 0x803d000f to 0x8024401f 2021-11-29 22:15:10:401 804 cd8 WS WARNING: Web service call failed with hr = 8024401f. 2021-11-29 22:15:10:401 804 cd8 WS WARNING: Current service auth scheme=’None’. 2021-11-29 22:15:10:401 804 cd8 WS WARNING: Proxy List used: ‘(null)’, Bypass List used: ‘(null)’, Last Proxy used: ‘(null)’, Last auth Schemes used: ‘None’. 2021-11-29 22:15:10:401 804 cd8 WS FATAL: OnCallFailure failed with hr=0X8024401F

03
您找到你想要的搜索结果了吗?
是的
没有找到

SSDT Hook的妙用-对抗ring0 inline hook

******************************************************* 1,SSDT SSDT即系统服务描述符表,它的结构如下(参考《Undocument Windows 2000 Secretes》第二章): typedef struct _SYSTEM_SERVICE_TABLE { PVOID ServiceTableBase; //这个指向系统服务函数地址表 PULONG ServiceCounterTableBase; ULONG NumberOfService; //服务函数的个数,NumberOfService*4 就是整个地址表的大小 ULONG ParamTableBase; }SYSTEM_SERVICE_TABLE,*PSYSTEM_SERVICE_TABLE; typedef struct _SERVICE_DESCRIPTOR_TABLE { SYSTEM_SERVICE_TABLE ntoskrnel; //ntoskrnl.exe的服务函数 SYSTEM_SERVICE_TABLE win32k; //win32k.sys的服务函数,(gdi.dll/user.dll的内核支持) SYSTEM_SERVICE_TABLE NotUsed1; SYSTEM_SERVICE_TABLE NotUsed2; }SYSTEM_DESCRIPTOR_TABLE,*PSYSTEM_DESCRIPTOR_TABLE; 内核中有两个系统服务描述符表,一个是KeServiceDescriptorTable(由ntoskrnl.exe导出),一个是KeServieDescriptorTableShadow(没有导出)。两者的区别是,KeServiceDescriptorTable仅有ntoskrnel一项,KeServieDescriptorTableShadow包含了ntoskrnel以及win32k。一般的Native API的服务地址由KeServiceDescriptorTable分派,gdi.dll/user.dll的内核API调用服务地址由KeServieDescriptorTableShadow分派。还有要清楚一点的是win32k.sys只有在GUI线程中才加载,一般情况下是不加载的,所以要Hook KeServieDescriptorTableShadow的话,一般是用一个GUI程序通过IoControlCode来触发(想当初不明白这点,蓝屏死机了N次都想不明白是怎么回事)。 2,SSDT HOOK SSDT HOOK 的原理其实非常简单,我们先实际看看KeServiceDescriptorTable是什么样的。 lkd> dd KeServiceDescriptorTable 8055ab80 804e3d20 00000000 0000011c 804d9f48 8055ab90 00000000 00000000 00000000 00000000 8055aba0 00000000 00000000 00000000 00000000 8055abb0 00000000 00000000 00000000 00000000 在windbg.exe中我们就看得比较清楚,KeServiceDescriptorTable中就只有第一项有数据,其他都是0。其中804e3d20就是 KeServiceDescriptorTable.ntoskrnel.ServiceTableBase,服务函数个数为0x11c个。我们再看看804e3d20地址里是什么东西: lkd> dd 804e3d20 804e3d20 80587691 805716ef 8057ab71 80581b5c 804e3d30 80599ff7 80637b80 80639d05 80639d4e 804e3d40 8057741c 8064855b 80637347 80599539 804e3d50 8062f4ec 8057a98c 8059155e 8062661f 如上,80587691 805716ef 8057ab71 80581b5c 这些就是系统服务函数的地址了。比如当我们在ring3调用O

02
领券