对Windows 2000中wkssvc.dll中某个函数的分析

win2003迁移win2008r2 dcdiag错误报告,求大神解 目录服务器诊断 正在执行初始化设置:    正在尝试查找主服务器...    主服务器 = SAI-AD    * 已识别的 AD 林。     已完成收集初始化信息。 正在进行所需的初始化测试        正在测试服务器: Default-First-Site-Name\SAI-AD       开始测试: Connectivity 阅读详情

by envymask

文件名: wkssvc.dll
语言:简体中文
文件版本:5.0.2195.6862
最后修改时间:2003-10-23

RPC接口
UUID:6bffd098-a112-3610-9833-46c3f87e345a
Opnum::0x16
Function Name:NetrUnjoinDomain2
远程可以通过管道wkssvc调用,匿名帐号就行

说明:这是一个具有潜在漏洞的函数,为什么说具有潜在漏洞呢?因为我没有找到方法触发,这个过程要重现,首先要控制目标机器的DNS服务器A,添加某个域名的Service Type查询目录,然后指向一个受控制的IP B,把这个Service Type解析到B IP,然后在B机器上伪造一个LDAP服务器,负责返回查询结果,也就是返回后面那个DomainControllerName的关键。根据我的测试,我最大只能在LDAP数据包将Hostname字段增加到0xff,而且Windows在调用DsGetDcNameW后,只处理Hostname字段小于64字节的数据包,大于或等于64字节的不处理,这儿又卡住了。如果哪位牛Man能够构造这种Long Hostname的数据包,而且能让Windows处理,就能触发这个溢出。
由于是今年9月份的时候分析的这个dll,很多细节都不记得了,只能想起来这么些。

远程调用方法:
先建立Null Session的SMB连接,然后调用下面的API
NetJoinDomain(L"////目标IP",
L"某个域名",NULL,NULL,NULL,NETSETUP_DOMAIN_JOIN_IF_JOINED);

函数调用过程:
NetrUnjoinDomain2 -> sub_7672068E -> sub_7671EDB6 -> sub_76721D5B


Codz:


调用详细过程
:
NetrUnjoinDomain2:

.text:7671CE58                 push    ebp
.text:7671CE59                 mov     ebp, esp
.text:7671CE5B                 push    ecx
.text:7671CE5C                 push    ecx
.text:7671CE5D                 push    esi
.text:7671CE5E                 push    edi
.text:7671CE5F                 xor     edi, edi
.text:7671CE61                 xor     esi, esi
.text:7671CE63                 cmp     [ebp+arg_8], edi ; arg_8不能为0
.text:7671CE66                 mov     [ebp+var_4], edi
.text:7671CE69                 mov     [ebp+var_8], edi
.text:7671CE6C                 jnz     short loc_7671CE71 ; 必跳
.text:7671CE6E                 push    57h
.text:7671CE70                 pop     esi
.text:7671CE71
.text:7671CE71 loc_7671CE71:                           ; CODE XREF: sub_7671CE58+14j
.text:7671CE71                 cmp     esi, edi
.text:7671CE73                 jnz     short loc_7671CECC ; 不跳
.text:7671CE75                 lea     eax, [ebp+var_8]
.
text:7671CE78                 push    eax
.text:7671CE79                 push    [ebp+arg_14]
.
text:7671CE7C                 push    [ebp+arg_0]
.
text:7671CE7F                 call    sub_7671CD18    ; 返回值要为0
.text:7671CE84                 mov     esi, eax
.text:7671CE86                 cmp     esi, edi
.text:7671CE88                 jnz     short loc_7671CECC ; 不跳
.text:7671CE8A                 lea     eax, [ebp+var_4]
.
text:7671CE8D                 push    eax
.text:7671CE8E                 call    sub_7671DFA6    ; 调用GetComputerName
.text:7671CE93                 mov     esi, eax        ; 返回值要为0
.text:7671CE95                 cmp     esi, edi
.text:7671CE97                 jnz     short loc_7671CECC ; 不跳
.text:7671CE99                 mov     eax, [ebp+var_4]
.
text:7671CE9C                 cmp     esi, edi
.text:7671CE9E                 mov     [ebp+arg_4], eax
.text:7671CEA1                 jnz     short loc_7671CECC ; 不跳
.text:7671CEA3                 call    sub_76718EA7    ; 返回值要为0
.text:7671CEA8                 mov     esi, eax
.text:7671CEAA                 cmp     esi, edi        ;
.
text:7671CEAC                 jnz     short loc_7671CECC ; 不跳
.text:7671CEAE                 push    [ebp+arg_18]
.
text:7671CEB1                 push    [ebp+var_8]
.
text:7671CEB4                 push    [ebp+arg_10]
.
text:7671CEB7                 push    [ebp+arg_C]
.
text:7671CEBA                 push    [ebp+arg_8]
.
text:7671CEBD                 push    [ebp+arg_4]
.
text:7671CEC0                 call    sub_7672068E    ; 进入才能溢出
...
...
...


sub_7672068E:

.
text:7672068E                 push    ebp
.text:7672068F                 mov     ebp, esp
.text:76720691                 push    ecx
.text:76720692                 push    ebx
.text:76720693                 push    esi
.text:76720694                 xor     esi, esi
.text:76720696                 and     [ebp+var_4], esi
.text:76720699                 call    sub_76723855
.text:7672069E                 push    offset aNetpdodomainjo ; "NetpDoDomainJoin/n"
.text:767206A3                 call    sub_767238B6
.text:767206A8                 cmp     [ebp+arg_4], esi
.text:767206AB                 pop     ecx
.text:767206AC                 jnz     short loc_767206B1 ; 必跳
.text:767206AE                 push    57h
.text:767206B0                 pop     esi
.text:767206B1
.text:767206B1 loc_767206B1:                           ; CODE XREF: sub_7672068E+1Ej
.text:767206B1                 test    esi, esi
.text:767206B3                 jnz     short loc_7672072F ; 不跳
.text:767206B5                 cmp     [ebp+arg_0], esi
.text:767206B8                 jnz     short loc_767206CF
.text:767206BA                 lea     eax, [ebp+var_4]
.
text:767206BD                 push    eax
.text:767206BE                 call    sub_767207F7    ; 返回值要为0
.text:767206C3                 mov     esi, eax
.text:767206C5                 test    esi, esi
.text:767206C7                 jnz     short loc_7672072F ; 不跳
.text:767206C9                 mov     eax, [ebp+var_4]
.
text:767206CC                 mov     [ebp+arg_0], eax
.text:767206CF
.text:767206CF loc_767206CF:                           ; CODE XREF: sub_7672068E+2Aj
.text:767206CF                 test    esi, esi
.text:767206D1                 jnz     short loc_7672072F ; 不跳
.text:767206D3                 mov     ebx, [ebp+arg_14] ; arg_14要为1
.text:767206D6                 push    [ebp+arg_0]
.
text:767206D9                 test    bl, 1           ; bl要为1
.text:767206DC                 jz      short loc_76720717 ; 不跳
.text:767206DE                 call    sub_7671EC9B
.text:767206E3                 mov     esi, eax
.text:767206E5                 cmp     esi, 0A83h
.text:767206EB                 jnz     short loc_767206FC
.text:767206ED                 test    ebx, 80000000h
.text:767206F3                 jnz     short loc_767206FA
.text:767206F5                 test    bl, 20h
.text:767206F8                 jz      short loc_767206FC
.text:767206FA
.text:767206FA loc_767206FA:                           ; CODE XREF: sub_7672068E+65j
.text:767206FA                 xor     esi, esi
.text:767206FC
.text:767206FC loc_767206FC:                           ; CODE XREF: sub_7672068E+5Dj
.text:767206FC                                         ; sub_7672068E+6Aj
.text:767206FC                 test    esi, esi
.text:767206FE                 jnz     short loc_7672072F ; 不跳
.text:76720700                 push    ebx
.text:76720701                 push    [ebp+arg_10]
.
text:76720704                 push    [ebp+arg_C]
.
text:76720707                 push    [ebp+arg_8]
.
text:7672070A                 push    [ebp+arg_4]
.
text:7672070D                 push    [ebp+arg_0]
.
text:76720710                 call    sub_7671EDB6    ; 进入才能溢出
...
...
...



sub_7671EDB6:
...
...
...
.
text:7671EEF7                 lea     eax, [ebp+var_20]
.
text:7671EEFA                 push    eax
.text:7671EEFB                 push    [ebp+var_C]
.
text:7671EEFE                 call    ds:RtlRunDecodeUnicodeString
.text:7671EF04                 push    3
.text:7671EF06                 push    [ebp+var_1C]
.
text:7671EF09                 push    [ebp+arg_C]
.
text:7671EF0C                 push    [ebp+var_28]
.
text:7671EF0F                 push    [ebp+arg_0]
.
text:7671EF12                 call    sub_767202DC    ; 返回值要是2554h或0
.text:7671EF17                 mov     edi, eax
.text:7671EF19                 lea     eax, [ebp+var_20]
.
text:7671EF1C                 push    eax
.text:7671EF1D                 lea     eax, [ebp+var_C]
.
text:7671EF20                 push    eax
.text:7671EF21                 call    ds:RtlRunEncodeUnicodeString
.text:7671EF27                 cmp     edi, esi        ; ESI = 2554h
.text:7671EF29                 jnz     short loc_7671EF2D ; 此处不跳
.text:7671EF2B                 xor     edi, edi
.text:7671EF2D
.text:7671EF2D loc_7671EF2D:                           ; CODE XREF: sub_7671EDB6+173j
.text:7671EF2D                 cmp     edi, ebx        ; ebx = 0
.text:7671EF2F                 jnz     loc_7671F677    ; 此处不跳,上面edi 应该为 0
.text:7671EF35                 cmp     [ebp+var_38], ebx
.text:7671EF38                 jnz     short loc_7671EF59 ; 此处跳
.text:7671EF3A                 lea     eax, [ebp+var_8]
.
text:7671EF3D                 push    eax
.text:7671EF3E                 lea     eax, [ebp+var_4]
.
text:7671EF41                 push    eax
.text:7671EF42                 lea     eax, [ebp+var_48]
.
text:7671EF45                 push    eax
.text:7671EF46                 push    1020h
.text:7671EF4B                 push    [ebp+arg_0]
.
text:7671EF4E                 push    [ebp+var_28]
.
text:7671EF51                 push    ebx
.text:7671EF52                 call    sub_7671FEEA    ; 调用DsGetDcNameW或DsGetDcNameWithAccountW函数
.text:7671EF52                                         ; 并将返回的DomainControllerName Copy到NetApiBufferAllocate
.text:7671EF52                                         ; 申请的内存,再把内存地址赋值给var_4
.text:7671EF57                 mov     edi, eax        ; 返回值要为0
.text:7671EF59
.text:7671EF59 loc_7671EF59:                           ; CODE XREF: sub_7671EDB6+182j
.text:7671EF59                 cmp     edi, ebx        ; ebx = 0
.text:7671EF5B                 jnz     loc_7671F677    ; 此处不跳
.text:7671EF61                 lea     eax, [ebp+var_20]
.
text:7671EF64                 push    eax
.text:7671EF65                 push    [ebp+var_C]
.
text:7671EF68                 call    ds:RtlRunDecodeUnicodeString
.text:7671EF6E                 push    [ebp+var_44]
.
text:7671EF71                 push    [ebp+var_1C]
.
text:7671EF74                 push    [ebp+arg_C]
.
text:7671EF77                 push    [ebp+var_4]     ; DomainControllerName
.text:7671EF7A                 call    sub_76721D5B    ; 进入有溢出函数

sub_76721D5B
:

.
text:76721D5B                 push    ebp
.text:76721D5C                 mov     ebp, esp
.text:76721D5E                 sub     esp, 2D0h
.text:76721D64                 push    ebx
.text:76721D65                 push    esi
.text:76721D66                 push    edi
.text:76721D67                 mov     edi, [ebp+arg_0] ; arg_0超长就溢出
.text:76721D6A                 xor     esi, esi
.text:76721D6C                 xor     ebx, ebx
.text:76721D6E                 cmp     word ptr [edi], 5Ch
.text:76721D72                 lea     eax, [ebp+var_2D0]
.
text:76721D78                 mov     [ebp+var_4], esi
.text:76721D7B                 jz      short loc_76721D97
.text:76721D7D                 lea     eax, [ebp+var_2D0]
.
text:76721D83                 push    offset asc_76711A14 ; wchar_t *
.
text:76721D88                 push    eax             ; wchar_t *
.
text:76721D89                 call    ds:wcscpy
.text:76721D8F                 pop     ecx
.text:76721D90                 lea     eax, [ebp+var_2CC]
.
text:76721D96                 pop     ecx
.text:76721D97
.text:76721D97 loc_76721D97:                           ; CODE XREF: sub_76721D5B+20j
.text:76721D97                 test    [ebp+arg_C], 20h
.text:76721D9B                 jz      short loc_76721DA0 ; arg_0
.text:76721D9D                 push    2
.text:76721D9F                 pop     ebx
.text:76721DA0
.text:76721DA0 loc_76721DA0:                           ; CODE XREF: sub_76721D5B+40j
.text:76721DA0                 push    edi             ; arg_0
.text:76721DA1                 push    offset aWsIpc   ; "%ws/IPC$"
.text:76721DA6                 push    eax             ; 局部变量
.text:76721DA7                 call    ds:swprintf     ; 溢出
 
MATLAB机械臂轨迹规划:在关节空间中生成多项式轨迹以及 jtraj函数(内容超详细讲解) matlab机器人仿真,关节空间多项式轨迹生成 阅读详情

相关推荐

MS1030超声波流量计电路实战:如何用15ps精度优化水表设计(附配置代码)

本文深入探讨了如何利用MS1030超声波流量计芯片实现15ps高精度测量,以优化水表设计。文章从系统误差分配出发,详细解析了硬件电路设计要点、SPI通信配置及核心优化技巧,如利用可编程偏置电压和8回波累加功能来提升抗干扰能力与测量稳定性,并附有实用的配置代码示例。

svm4gardener的博客 341

wkssvc.dll文件丢失导致程序无法运行问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个wkssvc.dll文件(挑选合适的版本文件)把它放入到程序或系统目录中,当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此将缺失的文件放回到原目录之后就能打开你的软件或游戏了.那么出现wkssvc.dll丢失要怎么解决?

2301_76755223的博客 907

别再只盯着GPS了!手把手教你用Python仿真UWB定位,30厘米精度是怎么算出来的?

本文详细解析了UWB(超宽带)室内定位技术的原理与实现,通过Python代码演示如何从三边测量法到实现30厘米精度的定位。文章涵盖了UWB的核心数学模型、Python仿真环境搭建、误差分析及优化策略,为开发者提供了实用的技术指南和应用场景。

weixin_26873711的博客 254

Win7系统提示找不到wkssvc.dll文件的解决办法

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个wkssvc.dll文件(挑选合适的版本文件)把它放入到程序或系统目录中,当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此将缺失的文件放回到原目录之后就能打开你的软件或游戏了.那么出现wkssvc.dll丢失要怎么解决?

file 537

从0到1:提示工程架构师搭建Agentic AI系统的全流程实战手册

Agentic AI(自主智能体)是具备自主决策能力的大模型应用感知(Perceive):获取外部环境信息(比如代码仓库、用户输入、数据库数据);记忆(Memory):存储和检索历史信息(比如过去的审计记录、用户偏好);规划(Plan):将复杂任务拆解为可执行的步骤(比如“代码审计”拆成3步);行动(Act):调用工具或API完成具体操作(比如调用Git克隆仓库、调用Safety查漏洞);反馈(Feedback):根据结果调整策略(比如用户说“报告不够详细”,下次增加逻辑漏洞的分析深度)。

AI Agent Harness Engineering 1043

16G显存+llama.cpp跑大模型的黄金配置指南

大语言模型(LLM)本地部署的核心瓶颈在于显存与推理效率的平衡。llama.cpp作为轻量级C/C++推理引擎,通过GGUF模型格式、量化压缩(如Q4_K_M)和CUDA底层优化,显著降低GPU资源需求。在消费级硬件中,16G显存成为兼顾模型能力(如Qwen3-4B、Llama-3-8B)、长上下文支持(4K token)与系统稳定性的关键阈值。它既规避了12G显存的容量焦虑,又绕开了24G高端卡的成本与散热负担,特别适合Windows 11原生环境下的生产级AI应用,如RAG、智能客服与文档分析。

weixin_32629853的博客 407

IPC连接知识

一 摘要  二 什么是ipc$  三 什么是空会话  四 空会话可以做什么  五 ipc$所使用的端口  六 ipc管道在hack攻击中的意义  七 ipc$连接失败的常见原因  八 复制文件失败的原因  九 关于at命令和xp对ipc$的限制  十 如何打开目标的IPC$共享以及其他共享  十一 一些需要shell才能完成的命令  十二 入侵中可能会用到的命令  十三 对比过去和现今的ipc$入...

miaozk2006的专栏 683

26、机器学习模型的成员推断攻击与隐私保护

本文探讨了机器学习模型面临的成员推断攻击及其对隐私的潜在威胁。通过使用CIFAR-10数据集,详细介绍了如何利用影子模型和攻击模型推断特定数据点是否属于模型的训练集。实验表明,即使无法直接访问模型参数和原始数据,攻击者仍能以高于随机猜测的概率进行推断,从而构成隐私风险。此外,文章还分析了实验的关键技术点,并提出了多种隐私保护建议,包括数据脱敏、差分隐私、模型正则化等方法。

coffee的博客 129

找不到全局编录服务器,Active Directory 域服务无法建立与全局编录的连接。指定的域不存在。 - winServer论坛 - 51CTO技术论坛_中国领先的IT技术社区...

有DC01(主域),DC02、DC03,两台辅域,昨天DC03挂了,就出现问题了。DC03信息已经删除,怀疑DNS问题,但是小白不太懂,求指点。目录服务器诊断正在执行初始化设置:正在尝试查找主服务器...主服务器 = DC01* 已识别的 AD 林。已完成收集初始化信息。正在进行所需的初始化测试正在测试服务器: Default-First-Site-Name\DC01开始测试: Connectiv...

weixin_35779093的博客 1841

dji psdk开发 关于SDK认证芯片的使用

Payload SDK V3.10.0 于 2025-1-8 发布,增加了 Matrice 4T/4E 机型支持,同时也增加了 DJI SDK 认证芯片(DJI SDK CC)功能支持。关于认证芯片的介绍大疆 SDK 认证芯片(DJI SDK Certified Chip),简称 DJI SDK CC,用于认证基于 DJI Eport/Eport-Lite 接口开发的第三方负载设备,确保设备能够正常工作并与无人机可以进行有效通信,起到负载安全认证和功能授权的作用。

热爱生活,忠于自己 2152

SPICE仿真软件:HSPICE_(20).HSPICE仿真结果的后处理

HSPICE仿真结果的后处理是一个多步骤的过程,包括读取结果文件、可视化、分析和导出。通过使用命令行工具、Python脚本和HSPICE内置工具,可以高效、准确地完成这些任务。Python脚本的灵活性和强大的数据分析能力使其成为后处理的理想选择。自动化处理可以显著提高工作效率,减少人为错误,而高级分析方法可以更深入地理解仿真结果,为电路设计提供有力支持。

kkchenjj的博客 1382

域渗透记录

环境搭建 环境说明 DC: •IP:10.10.10.10•OS:Windows 2012 WEB: •IP1:10.10.10.80•IP2:192.168.111.80•OS:Windows 2008•网站搭建:Weblogic 10.3.6 MSSQL 2008 注意登录de1ay域,登录名为de1ay.com\administrator 密码为1qaz@WSX PC: •IP1:10.10.10.201•IP2:192.168.111.201•OS:Windows 7 攻击机: •IP:192.1

weixin_43058307的博客 411

多无人车协同探索开源包部署教程及常见报错解决方式

本博客将介绍项目的基本概念、部署步骤以及常见问题的解决方案。该项目利用 RRT(Rapidly-exploring Random Tree)算法,通过多机器人协作进行高效的环境探索,适用于自动化与自主导航任务。项目简介:介绍该项目的核心算法、特点及应用场景,展示如何通过多个机器人共同工作来提升探索效率。部署教程:详细讲解如何在 ROS Noetic 环境中部署该项目,安装依赖、创建工作空间、克隆代码并编译项目。项目运行:包括单机器人与多机器人自主探索的示例,帮助读者快速理解和实践项目。

慕羽★的博客 1764

GetLastError() 返回值一览

函数原型: DWORD GetLastError() 中文版(不完全)   〖0〗-操作成功完成。   〖1〗-功能错误。   〖2〗-系统找不到指定的文件。   〖3〗-系统找不到指定的路径。   〖4〗-系统无法打开文件。   〖5〗-拒绝访问。   〖6〗-句柄无效。   〖7〗-存储控制块被损坏。   〖8〗-存储空间不足,无法处理此命令。   〖9〗-存储控制块地...

Kiritow的学园 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

诺顿引起的系统频繁重启的解决方法重新

诺顿引起的系统频繁重启的解决方法重新(引piggybank (吞硬币的小猪) 大侠)先查看一下,究竟KB924270怎么招惹诺顿了:查阅 Microsoft 安全公告 MS06-070Workstation 服务中的漏洞可能允许远程执行代码 (924270) http://www.microsoft.com/china/technet/security/bulletin/ms06-070.

SANER的翅膀 1692

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

windows 操作系统中 各个DLL 作用简介

                          windows  dll 库文件作用和用途 (win7) aaclient.dll 何时何地都可以访问客户端  accessibilitycpl.dll 轻松访问控制面板  acledit.dll 访问控制列表编辑器  aclui.dll 安全描述符编辑器  acppage.dll 兼容性选项卡外壳扩展库  ActionCenter.dll ...

或许 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

AD域登录过程详解

您现在的位置:首页 > 嘉为原创 > 系统技术 > 详情 AD域登录过程详解 赵海兵 IT咨询顾问   网络及系统技术工程师、IT系统服务工程师、微软系统技术工程师、企业服务咨询顾问。 客户端查找DC过程 用户在加入域的客户端计算机上登录的时候,计算机会向本机的netLogon 服务发送RPC请求,请求包括域名,站点,

baidu_23564015的博客 3万+

Windows network services internals 3

 http://forum.eviloctal.com/thread-2724-1-40.html4.9 Windows services running RPC services over TCP/IP4.9.1 Messenger serviceThe messenger service runs two RPC services, available on two endpoints

4608

windows XP系统内核文件分析

C:/WINDOWS/system32:12520437.cpx ...代码页转换表. 12520850.cpx ... 代码页转换表.6to4svc.dll ....在 IP4网络上提供IPv6 连接的服务aaaamon.dll ....Aaaa Monitor Dll acledit.dll ....访问控制列表编辑器ac3filter.cpl ..ac3filter 控制面板扩展 属于我所安...

weixin_34378045的博客 494

域用户登录的具体过程

1、客户端发起net logon 服务会 运行DsGetDcName这个API。 2、DsGetDcName就会从客户端收集DNS和site的信息。 3、Net logon 会根据IP地址找到相应的DNS服务器,并发送一个 DNS Query的数据包,查询site内所有DC的SRV记录和A记录。 4、DNS 服务器会返回一个 response数据包,里面包含site内所有DC的一张表格。如果

IT经验分享 9174

注册服务时提示,System Error. Code:5. 拒绝访问

重装系统之后,使用Win+R 运行'c:\Windows\SysWOW64\scktsrvr.exe /install'注册服务时发现以下错误: 原因:是当前用户的权限过低导致 解决方法: 使用Win+ X在以下界面中选择 之后再次输入'c:\Windows\SysWOW64\scktsrvr.exe /install'就好啦. ...

orzl_的博客 7078

循环嵌套(多层 for 循环)

表:order(订单表,order_id, user_id)、user(用户表,user_id, user_name)✅ 优化:先查所有订单,拿到所有 user_id 批量 in 查询,内存 join。✅ 优化:先把优惠券转 HashMap,单层循环查找(hash 查找 O (1))SQL 只有 2 次,O (1) 数据库查询,内存遍历 O (n)。需求:查询所有订单列表,同时带出每个订单对应的用户名称。需求:订单列表、优惠券列表,把订单匹配对应的优惠券名称。复杂度:O (M+N),非常快。

weixin_43732943的博客 215
上一篇: HTTPS中间人攻击
下一篇: MS07-004分析
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值