EDR规避技术解析:从API钩子绕过到直接系统调用实战

news2026/4/28 16:38:30
1. 项目概述与核心价值最近在安全研究领域一个名为“EDRSilencer”的开源工具引起了我的注意。这个项目由netero1010发布在GitHub上从名字就能直观地感受到它的目标让EDR端点检测与响应系统“沉默”。对于从事渗透测试、红队评估或安全研究的朋友来说这无疑是一个极具吸引力的工具。在真实的攻防对抗中现代EDR产品是企业防御体系中的核心哨兵它们通过行为监控、内存扫描、API钩子等多种技术对进程的一举一动进行深度洞察使得许多传统的攻击手法和工具变得无所遁形。而EDRSilencer的出现正是试图从技术层面为攻击载荷或后渗透工具提供一个“隐身”的解决方案。简单来说EDRSilencer是一个旨在绕过或禁用EDR安全检测机制的工具或框架。它的核心价值在于通过一系列底层技术手段干扰或欺骗EDR的监控能力从而让恶意代码在授权测试的语境下则是红队工具能够更隐蔽地执行。这并非一个简单的“一键免杀”工具其背后涉及对Windows操作系统内核、进程内存管理、API调用链等深层次原理的理解和运用。对于安全从业者而言无论是站在防御方蓝队研究攻击者的规避技术以增强检测能力还是站在攻击方红队在授权范围内测试防御体系的健壮性深入理解这类工具的原理都至关重要。2. EDR工作原理与规避技术背景要理解EDRSilencer在做什么我们首先需要弄清楚现代EDR系统通常是如何工作的。EDR远不止是一个高级杀毒软件它是一个综合性的监控与分析平台。2.1 EDR的核心监控维度典型的EDR会从多个维度收集端点的活动数据进程创建与行为监控记录哪个父进程创建了子进程使用了哪些命令行参数加载了哪些DLL。异常的行为链例如由办公软件发起的PowerShell进程再下载可执行文件会触发警报。API调用监控Hook/挂钩这是EDR最强大的技术之一。EDR驱动或DLL会注入到用户模式进程中挂钩Hook关键的Windows API函数如NtCreateProcess、NtAllocateVirtualMemory、NtWriteVirtualMemory等。当目标进程调用这些API时控制权会先经过EDR的检测代码分析参数和行为是否可疑。内存扫描与代码检测EDR会定期或触发式地扫描进程内存寻找已知的恶意代码片段签名、混淆后的Shellcode特征或检测是否存在异常的内存保护属性例如可写、可执行的内存区域即WX这是Shellcode的典型特征。网络连接与文件操作监控异常的外联IP、域名以及敏感目录的文件创建、修改行为。2.2 常见的EDR规避技术分类针对上述监控手段攻击技术也在不断进化EDRSilencer这类工具便是这些技术的集大成者或实践方案。规避技术主要分为以下几类直接对抗Kill/Disable尝试终止EDR的进程、服务或驱动。这种方法简单粗暴但极易触发防御方的“进程保护”或“服务守护”机制并留下巨大的日志告警在现代对抗中已不常见。绕过钩子Unhooking这是用户态规避的核心。思路是找到EDR注入的DLL或修改的API函数前几个字节即Hook的“蹦床”并将其恢复为原始的系统DLL如ntdll.dll中的代码。这样进程的API调用就不再经过EDR的检测逻辑。间接系统调用Syscall既然用户态的API如CreateRemoteThread可能被挂钩那么直接调用底层对应的系统调用如NtCreateThreadEx呢系统调用号通过syscall或int 2eh指令进入内核。EDR难以在用户态挂钩单个syscall指令。因此攻击者会直接组装汇编指令通过系统调用的方式与内核交互完全绕过用户态的API监控。内存操作规避为了避免内存扫描采用动态解密运行时才将恶意代码解密为可执行形式、内存镂空Process Hollowing将合法进程的内存替换为恶意代码、或利用仅可执行X不可写W的内存区域等技术。父进程欺骗PPID Spoofing让新创建的进程看起来是由一个可信的、白名单内的父进程如explorer.exe、svchost.exe创建的从而绕过基于进程链的检测。EDRSilencer的实现很可能会综合运用上述多种技术形成一个相对完整的规避链条。3. EDRSilencer核心模块深度解析基于公开的项目信息和安全社区的常见实践我们可以推断并拆解EDRSilencer可能包含的核心功能模块。请注意以下分析是基于技术原理的通用性探讨具体实现需参考项目源码。3.1 用户态钩子检测与清除模块这是实现“静默”的第一步。该模块的核心任务是定位并移除EDR在目标进程内设置的API钩子。实现原理与步骤获取原始Ntdll首先需要一份干净的、未被挂钩的ntdll.dll副本。这可以通过从磁盘重新加载LoadLibraryExwithLOAD_LIBRARY_AS_IMAGE_RESOURCE或从另一个可信进程如新创建的、尚未被EDR注入的“傀儡”进程的内存中复制得到。遍历进程模块与函数枚举当前进程加载的所有模块找到ntdll.dll在内存中的基址。然后解析其导出表定位到关键API函数如NtCreateThreadExNtAllocateVirtualMemory的内存地址。字节对比与修复将内存中ntdll.dll内目标函数的前N个字节通常是包含jmp指令的Hook桩代码与干净的ntdll.dll副本中的对应字节进行逐字节比较。一旦发现差异即说明该函数被挂钩。随后将干净副本中的原始字节写回内存中的对应位置恢复函数原貌。内存保护属性修改在写入前通常需要使用VirtualProtect或NtProtectVirtualMemory将目标内存页的保护属性从PAGE_EXECUTE_READ常见于代码段临时改为PAGE_EXECUTE_READWRITE以便写入。修复完成后再改回原始属性。注意直接修改ntdll.dll的.text段代码段在较新的Windows版本如Windows 10/11和启用控制流防护CFG的环境下可能会引发异常或崩溃。更高级的技术会采用“模块空洞”Module Stomping或“动态调用”等间接方式。实操心得并非所有ntdll.dll的导出函数都需要修复。应重点关注进程、线程、内存、注册表操作相关的函数形成一个“最小必要修复列表”以减少操作量和潜在的不稳定性。修复钩子后EDR可能通过线程回调或定时器重新注入。因此这个操作最好在恶意代码执行的关键路径前即时进行或者结合其他技术如阻塞EDR线程使用。3.2 直接系统调用Direct Syscall模块在清理了用户态钩子或为了更彻底地规避直接使用系统调用是更底层的方案。该模块负责生成并调用不经过ntdll.dll包装的直接系统调用。实现原理与步骤系统调用号获取每个Windows系统调用都有一个唯一的编号如NtCreateThreadEx的编号是0xA9。这个编号随Windows版本和架构x64/x86而变化。传统方法是通过解析ntdll.dll中对应函数的机器码来提取syscall指令前的立即数即系统调用号。但更稳健的方式是维护一个针对不同Windows版本的系统调用号表SSN - System Service Number。汇编函数构造编写一个汇编函数或使用内联汇编其功能是将系统调用号放入eax寄存器x64下是rax。按照x64调用约定前四个参数放入rcxrdxr8r9其余入栈设置好参数。执行syscall指令。处理返回。动态组装与调用在C/C代码中可以将上述汇编指令的字节码存储在数组中通过分配具有可执行权限的内存复制字节码并将其转换为函数指针进行调用。或者使用编译器相关的内联汇编特性如MSVC的__asm或外部汇编文件。堆栈对齐与返回地址混淆直接系统调用时堆栈必须16字节对齐否则可能导致崩溃。此外为了对抗基于调用栈的检测EDR会检查syscall指令的返回地址是否在ntdll.dll内需要手动设置一个伪造的返回地址。参数计算示例假设我们需要直接调用NtAllocateVirtualMemory来分配内存。其函数原型简化如下NTSTATUS NtAllocateVirtualMemory( HANDLE ProcessHandle, PVOID *BaseAddress, ULONG_PTR ZeroBits, PSIZE_T RegionSize, ULONG AllocationType, ULONG Protect );在直接系统调用中我们需要查找当前系统版本下NtAllocateVirtualMemory的SSN。将ProcessHandle进程句柄放入rcx。将BaseAddress一个指向指针的指针的地址放入rdx。将ZeroBits放入r8。将RegionSize的地址放入r9。将AllocationType和Protect按顺序压入堆栈。将SSN放入rax然后执行syscall。注意事项系统调用号SSN是动态的Windows每次重大更新都可能改变。因此一个健壮的实现必须包含SSN的动态解析或一个覆盖广泛版本的查找表。直接系统调用完全绕过了用户态的所有钩子但内核态的ETWWindows事件跟踪和某些驱动程序级别的监控仍然可能捕获到这些活动。因此它常与ETW绕过等技术结合使用。3.3 进程注入与内存操作规避模块即使API调用被隐藏在目标进程内分配可执行内存并写入Shellcode的行为本身也是高度可疑的。此模块旨在让这些操作变得更“安静”。常见技术实现早期Bird APC注入在目标进程的主线程尚未开始执行其入口点代码如main或WinMain之前通过排队异步过程调用APC将Shellcode注入并执行。此时许多EDR的线程上下文钩子可能还未完全就绪。进程镂空Process Hollowing的变种创建一个处于挂起状态的合法进程如notepad.exe将其主模块exe文件映射的内存区域清空“镂空”然后在该内存地址写入Shellcode并修改入口点最后恢复线程执行。更高级的变种会修复被破坏的进程内存结构如PEB以更好地隐藏。反射式DLL注入Reflective DLL Injection不通过LoadLibraryAPI而是手动将DLL文件映射到进程内存中自行解析导入表、重定位并调用DllMain。整个过程完全在内存中完成不触及磁盘也避开了监控LoadLibrary的钩子。使用合法的内存区域尝试在已经存在的、具有可执行权限的内存页中例如某些大型应用程序的JIT编译区域寻找空隙写入代码而不是分配新的PAGE_EXECUTE_READWRITE内存后者是巨大的红旗Red Flag。实操心得内存属性欺骗在分配内存时可以先分配PAGE_READWRITE属性的内存写入Shellcode然后改为PAGE_EXECUTE_READ。这比直接分配PAGE_EXECUTE_READWRITEWX更隐蔽。一些EDR会监控VirtualProtect调用中属性向PAGE_EXECUTE_*的转变。时序与延迟在注入后不要立即执行。可以结合线程休眠、等待事件等操作将恶意代码的执行与注入行为在时间上分离以绕过基于时间关联的检测。4. 构建与使用EDRSilencer的实践指南假设我们拿到了EDRSilencer的源代码并打算在受控环境中进行研究和测试。以下是基于常见C/C安全工具项目的通用构建和使用流程。4.1 环境准备与编译获取源码从GitHub克隆项目仓库。git clone https://github.com/netero1010/EDRSilencer.git cd EDRSilencer检查依赖查看项目根目录的README.md、CMakeLists.txt或.sln文件确定编译依赖。常见依赖包括Windows SDK特定版本的Visual Studio如VS2019/2022的C工具集可能的第三方库如用于加密的libsodium用于格式化的fmt等。选择编译模式Debug模式便于调试但生成的二进制文件体积大包含调试符号不适合实际使用。Release模式进行优化去除调试信息生成最终的可执行文件或DLL。对于规避工具通常需要进一步处理如加壳、混淆以去除编译特征。编译使用CMake或直接打开Visual Studio解决方案进行编译。# 假设使用CMake mkdir build cd build cmake .. -A x64 cmake --build . --config Release编译成功后在build/Release或类似目录下找到生成的.exe或.dll文件。4.2 核心功能调用示例EDRSilencer可能以库Lib的形式提供也可能是一个独立的命令行工具。以下是一个假设性的、以库形式使用的代码片段展示了如何集成其核心功能。#include “edr_silencer.h” // 假设的头文件 #include windows.h int main() { // 1. 初始化Silencer可能需要指定目标进程PID或自身进程 HANDLE hSilencer EDRSilencer_Init(GetCurrentProcessId()); if (hSilencer NULL) { printf(“[!] 初始化失败\n”); return -1; } // 2. 执行用户态钩子清理可选如果后续使用syscall则非必须 BOOL cleanupSuccess EDRSilencer_CleanUserHooks(hSilencer); if (!cleanupSuccess) { printf(“[!] 清理用户态钩子失败\n”); // 可以选择继续或退出 } // 3. 准备Shellcode例如一个简单的MessageBox unsigned char shellcode[] { /* ... 你的Shellcode字节数组 ... */ }; SIZE_T shellcodeSize sizeof(shellcode); // 4. 使用Silencer提供的“安全”内存分配函数内部可能使用直接系统调用 LPVOID pRemoteMem EDRSilencer_AllocMemory(hSilencer, shellcodeSize, PAGE_EXECUTE_READ); if (pRemoteMem NULL) { printf(“[!] 内存分配失败\n”); EDRSilencer_Close(hSilencer); return -1; } // 5. 使用Silencer提供的“安全”内存写入函数 BOOL writeSuccess EDRSilencer_WriteMemory(hSilencer, pRemoteMem, shellcode, shellcodeSize); if (!writeSuccess) { printf(“[!] 内存写入失败\n”); EDRSilencer_FreeMemory(hSilencer, pRemoteMem); EDRSilencer_Close(hSilencer); return -1; } // 6. 使用Silencer提供的“安全”线程创建函数例如通过直接syscall调用NtCreateThreadEx HANDLE hThread EDRSilencer_CreateThread(hSilencer, pRemoteMem); if (hThread NULL) { printf(“[!] 线程创建失败\n”); EDRSilencer_FreeMemory(hSilencer, pRemoteMem); EDRSilencer_Close(hSilencer); return -1; } // 7. 等待线程执行完毕可选 WaitForSingleObject(hThread, INFINITE); // 8. 清理资源 CloseHandle(hThread); EDRSilencer_FreeMemory(hSilencer, pRemoteMem); EDRSilencer_Close(hSilencer); printf(“[] 操作完成\n”); return 0; }4.3 测试与验证方法在真实使用前必须在完全受控、隔离的测试环境中进行验证。搭建测试环境使用虚拟机如VMware VirtualBox安装Windows 10/11。安装一款主流的EDR产品或其试用版并确保其所有防护模块特别是行为检测、内存扫描处于开启状态。基线行为记录在不使用EDRSilencer的情况下运行一个普通的Shellcode注入程序。使用EDR的管理控制台、Windows事件日志Event Viewer以及Sysinternals套件如Process Monitor Process Explorer记录下所有告警和可观测的行为如进程创建、特定API调用、内存操作。应用EDRSilencer测试将你的测试程序与EDRSilencer集成或直接运行EDRSilencer的示例程序。观察EDR控制台是否产生了与步骤2相同或更少的告警Process Monitor中是否还能看到NtCreateThreadEx等敏感API的调用如果使用了直接系统调用且实现正确应该看不到恶意线程是否成功创建并执行使用dumpbin /exports或x64dbg等调试器查看目标进程的ntdll.dll关键API的头部字节是否被恢复对比分析详细对比两次测试的日志和监控结果。成功的规避应该显著减少甚至消除EDR的行为告警并在进程监控工具中表现出更“干净”的API调用栈。5. 对抗升级与防御视角EDRSilencer代表了攻击方规避技术的一种实现。从防御方蓝队来看了解这些技术是构建更强大检测能力的基础。5.1 EDRSilencer的潜在检测点没有银弹。即使工具再精巧也会留下蛛丝马迹。防御者可以从以下维度思考检测策略内核态监控用户态的绕过技术如直接系统调用依然会触发内核中的系统调用处理器。内核模式驱动程序可以监控syscall入口KiSystemCall64并过滤分析来自非ntdll.dll内存区域的调用。这是一种强力的检测手段。异常的内存模式检查进程内存中是否存在大块的、仅PAGE_EXECUTE_READ属性且内容看似随机或加密的区域。检测VirtualProtect调用中将内存从PAGE_READWRITE改为PAGE_EXECUTE_READ的操作序列这可能是“写入后执行”的迹象。代码完整性校验定期或触发式地对关键系统DLL如ntdll.dll的.text段进行哈希校验与已知的干净版本对比以发现钩子清除行为。行为时序与关联分析虽然单个操作被隐藏但一系列事件的组合和时间关系仍可能异常。例如一个进程在极短时间内进行了“分配内存-写入数据-修改保护属性-创建线程”这一系列操作即使每个步骤都试图隐藏其紧凑的时序本身就可疑。静态特征与工具标识EDRSilencer编译后的二进制文件其字符串、导入函数表、代码片段可能具有特征。防御端可以通过YARA规则或机器学习模型来识别这些工具家族的特征。5.2 红队使用中的注意事项与风险对于在授权测试中使用此类工具的红队成员必须清醒认识到其风险和局限性稳定性风险直接操作内存、修改系统DLL、使用未公开的底层接口极易导致目标进程崩溃或系统蓝屏BSOD。在关键业务系统上测试前务必在相同环境的测试机上充分验证。检测升级文中提到的检测方法正在被越来越多的顶级EDR产品采用。依赖公开的、已知的规避技术其“保鲜期”很短。一旦特征被提取很快就会被加入检测规则。法律与授权边界必须在明确、书面的授权范围内使用。任何未经授权的使用都是非法的。工具本身是中性的责任在于使用者。道德考量此类工具的双重用途属性非常明显。安全研究人员有责任通过负责任的披露如向EDR厂商报告绕过技术的细节来促进整体安全水平的提升而不是仅仅将其用于突破防线。5.3 未来趋势从规避到隐蔽当前的对抗焦点正在从“完全规避检测”向“在检测下隐蔽生存”演变。更高级的威胁行为者APT可能不再追求绝对的静默而是降低活动频率极低频率的恶意操作混杂在海量的合法噪声中。模仿合法行为使恶意代码的内存访问模式、API调用序列尽可能模仿chrome.exejava.exe等正常软件。利用合法工具Living-off-the-land完全不使用自定义的恶意二进制文件仅使用系统内置的powershellwmiccertutil等LotLBinaries来完成攻击链。因此无论是EDRSilencer的开发者还是使用者都需要持续关注这些前沿的攻防动态理解技术原理背后的博弈本质。对于防御者而言则需要构建多层、异构的防御体系结合终端行为分析、网络流量分析、威胁情报和异常检测模型才能有效应对日益复杂的威胁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2553633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…