无文件攻击
无文件攻击是一种高级持续性威胁(APT)的攻击方式,它不会在目标系统的磁盘上留下可执行文件,而是利用系统内置的工具或脚本执行恶意代码,从而绕过传统的安全防护措施。无文件攻击的最大特点就是恶意代码直接在内存中运行,难以被发现和清除。
根据受感染计算机上的指纹数量来收集三种主要类型的无文件威胁。
类型 I:未执行文件活动
完全无文件恶意软件可以视为永远不需要在磁盘上写入文件的恶意软件。 此类恶意软件首先会如何感染计算机? 例如,目标计算机接收恶意网络数据包,这些数据包会利用 EternalBlue 漏洞。 此漏洞允许安装 DoublePulsar 后门,该后门最终仅驻留在内核内存中。 在这种情况下,没有文件或文件上写入的任何数据。
受攻击的设备可能还具有隐藏在设备固件 ((如 BIOS) 、USB 外围 ((如 BadUSB 攻击) )或网络卡固件中的恶意代码。 所有这些示例不需要磁盘上的文件才能运行,理论上只能在内存中生存。 恶意代码会在重新启动、磁盘重新安装和 OS 重新安装后生存下来。
这种类型的感染可能特别难以检测,因为大多数防病毒产品都无法检查固件。 如果产品确实能够检查和检测恶意固件,则此级别的威胁修正仍存在重大挑战。 这种类型的无文件恶意软件需要高度复杂,并且通常取决于特定的硬件或软件配置。 这不是一个可以轻松可靠地利用的攻击向量。 虽然存在危险,但此类威胁并不常见,对大多数攻击并不实际。
类型 II:间接文件活动
恶意软件可以通过其他方式在计算机上实现无文件状态,而无需大量的工程工作。 此类的无文件恶意软件不会直接在文件系统上写入文件,但最终可能会间接使用文件。 例如, 使用 Poshspy 后门 攻击者在 WMI 存储库中安装了恶意 PowerShell 命令,并将 WMI 筛选器配置为定期运行该命令。
可以通过命令行执行此类安装,而无需在文件上已有后门。 可以安装恶意软件并在理论上运行,而无需接触文件系统。 但是,WMI 存储库存储在 CIM 对象管理器管理的中央存储区域中的物理文件上,通常包含合法数据。 尽管感染链在技术上确实使用物理文件,但它被视为无文件攻击,因为 WMI 存储库是一个多用途数据容器,无法检测和删除。
类型 III:操作所需的文件
某些恶意软件可以有一种无文件持久性,但不能不使用文件进行操作。 此方案的一个示例是 Kovter,它在注册表中为随机文件扩展名创建 shell 打开谓词处理程序。 打开具有此类扩展名的文件将导致通过合法工具mshta.exe执行脚本。
调用打开的谓词时,将启动注册表中的关联命令,从而导致执行小型脚本。 此脚本从其他注册表项中读取数据并执行它,进而导致加载最终有效负载。 但是,若要首先触发打开的谓词,Kovter 必须删除具有上述示例中谓词 (所针对的具有相同扩展名的文件,扩展名为 .bbf5590fd) 。 它还必须设置配置为在计算机启动时打开此类文件的自动运行密钥。
Kovter 被视为无文件威胁,因为文件系统没有实际用途。 具有随机扩展名的文件包含在验证威胁是否存在时不可用的垃圾数据。 存储注册表的文件是无法检测到的容器,如果存在恶意内容,则无法将其删除。
按感染主机对无文件威胁进行分类
在介绍了广泛的类别后,我们现在可以深入了解详细信息,并提供感染宿主的细目。 此综合分类涵盖通常称为无文件恶意软件的全景。 它推动我们努力研究和开发新的保护功能,以消除攻击的类,并确保恶意软件不会在军备竞赛中占上风。
利用
- 基于文件 的 (类型 III:可执行文件、Flash、Java、文档) :初始文件可以利用操作系统、浏览器、Java 引擎、Flash 引擎等执行 shellcode 并在内存中传递有效负载。 虽然有效负载是无文件的,但初始条目向量是一个文件。
- 基于网络的 (类型 I) :利用目标计算机中的漏洞的网络通信可以在应用程序或内核上下文中实现代码执行。 例如 WannaCry,它利用 SMB 协议中以前修复的漏洞在内核内存中传递后门。
硬件
-
基于设备的 (类型 I:网卡、硬盘) :硬盘和网卡等设备需要芯片集和专用软件才能正常运行。 在设备的芯片集中驻留在和运行的软件称为固件。 虽然任务很复杂,但固件可能受到恶意软件的感染,就像 公式间谍组织被抓到一样。
-
基于 CPU 的 (类型 I) :新式 CPU 很复杂,可能包括用于管理目的运行固件的子系统。 此类固件可能容易被劫持,并允许执行从 CPU 内部运行的恶意代码。 2017 年 12 月,两位研究人员报告了一个漏洞,该漏洞允许攻击者执行 管理引擎内的代码 (ME) 存在于 Intel 的任何新式 CPU 中。 同时,观察到攻击者组 PLATINUM 能够使用 Intel 的 Active Management Technology (AMT) 绕过安装的操作系统执行 不可见的网络通信。 ME 和 AMT 本质上是位于 CPU 内部且在极低级别运行的自主微计算机。 由于这些技术的目的是提供远程可管理性,因此它们可以直接访问硬件,独立于操作系统,即使计算机已关闭,也可以运行。
-
除了在固件级别易受攻击外,CPU 还可以使用直接插入硬件线路的后门进行制造。 这种攻击在过去已经 研究并证明是可能的 。 据报道,x86 处理器的某些模型包含一个类似于 RISC 的辅助嵌入式 CPU 核心,可以 有效地提供后门 ,通过该后门,常规应用程序可以获得特权执行。
-
基于 USB 的 (类型 I) :可以使用恶意固件重新编程各种 USB 设备,这些固件能够以邪恶的方式与操作系统交互。 例如, BadUSB 技术 允许重新编程的 USB 摇杆充当键盘,通过击键将命令发送到计算机,或作为网络卡,可以随时重定向流量。
-
基于 BIOS 的 (类型 I) :BIOS 是在芯片集中运行的固件。 它在计算机上启用电源、初始化硬件,然后将控制权传输到启动扇区时执行。 BIOS 是一个重要组件,在低级别运行并在启动扇区之前执行。 可以使用恶意代码重新编程 BIOS 固件,就像过去使用 Mebromi rootkit 一样。
-
基于虚拟机监控程序的 (类型 I) :新式 CPU 提供硬件虚拟机监控程序支持,使操作系统能够创建可靠的虚拟机。 虚拟机在封闭的模拟环境中运行,理论上不知道仿真。 接管计算机的恶意软件可能会实现小型虚拟机监控程序,以隐藏在正在运行的操作系统领域之外。 此类恶意软件过去已被理论化,最终 观察到真正的虚拟机监控程序根基,尽管迄今鲜为人知。
执行和注入
-
基于文件 的 (类型 III:可执行文件、DLL、LNK 文件、计划任务) :这是标准执行向量。 可以将简单的可执行文件作为第一阶段恶意软件启动,以在内存中运行额外的有效负载,或注入其他合法运行的进程。
-
基于宏 的 (类型 III:Office 文档) : VBA 语言 是一种灵活而强大的工具,旨在自动编辑任务并向文档添加动态功能。 因此,攻击者可能会滥用它来执行恶意操作,例如解码、运行或注入可执行有效负载,甚至实现整个勒索软件,如 qkG。 宏在 Office 进程的上下文中执行 (,例如,Winword.exe) 并使用脚本语言实现。 防病毒无法检查任何二进制可执行文件。 虽然 Office 应用需要用户的明确同意才能从文档中执行宏,但攻击者使用社交工程技术来欺骗用户允许执行宏。
-
基于脚本 的 (类型 II:文件、服务、注册表、WMI 存储库、shell) :默认情况下,Windows 平台上提供 JavaScript、VBScript 和 PowerShell 脚本语言。 脚本与宏具有相同的优势,它们是文本文件 (不是二进制可执行文件) 并在解释器的上下文中运行 (如wscript.exe、powershell.exe) ,这是一个干净而合法的组件。 脚本是通用的,可以通过双击) 或直接在解释器的命令行上执行,从文件 (运行脚本。 在命令行上运行允许恶意软件将恶意脚本编码为 自动启动注册表项 内的服务,作为 WMI 存储库中的 WMI 事件订阅 。 此外,获得受感染计算机访问权限的攻击者可能会在命令提示符上输入脚本。
-
基于磁盘 的 (类型 II:启动记录) :启动记录是磁盘或卷的第一个扇区,包含启动操作系统启动过程所需的可执行代码。 Petya 等威胁可以通过使用恶意代码覆盖启动记录来感染该记录。 启动计算机时,恶意软件会立即获得控制。 启动记录位于文件系统外部,但操作系统可访问它。 新式防病毒产品能够对其进行扫描和还原。
无文件攻击的原理:
- 无文件攻击是指不向磁盘写入可执行文件的攻击方法,难以被常规方法检测出来。无文件攻击通常利用系统中内置的可信程序或工具,通过执行恶意的脚本或代码,或者利用系统的漏洞,将恶意代码注入到内存中,实现攻击的目的。
- 无文件攻击可以分为不同的类型,根据执行代码的角度,可以分为基于文件、基于宏、基于脚本、基于磁盘等。根据攻击的持久化,可以分为一次性的无文件攻击和持久化的无文件攻击。持久化的无文件攻击通常会利用系统的计划任务、注册表、启动项等,实现恶意代码的自启动。
无文件攻击的常见手法有:
- 利用Office文档的宏功能,通过嵌入恶意脚本或下载远程代码,启动系统可信程序(如Rundll32、Powershell等),并对其进行远程线程注入,将恶意代码植入内存中。
- 利用系统的计划任务或注册表,创建自启动项,调用系统可信程序执行恶意脚本,实现攻击的持久化。
- 利用系统的命令行工具(如Mshta、Certutil等),执行恶意的HTML或VBScript代码,或者下载恶意文件并执行。
- 利用.NET框架,通过托管代码注入技术,将恶意的.NET程序集加载到内存中,并执行。
- 利用缓冲区溢出漏洞,将恶意代码注入到目标进程的内存中,并执行。
无文件攻击的检测方法有:
- 监控进程内存,利用已知的远控、Shellcode、无文件攻击框架等特征,匹配正在运行进程的内存数据,查找恶意代码。
- 监控系统行为,利用行为检测技术,分析系统进程的启动、注入、网络通信等异常行为,发现可疑的攻击活动。
- 监控系统日志,利用日志分析技术,收集和分析系统的事件日志、安全日志、应用日志等,发现可疑的攻击痕迹。
- 监控系统配置,利用配置管理技术,检查系统的计划任务、注册表、服务等,发现可疑的自启动项或恶意修改。
无文件攻击的防御方法有:
- 禁用或限制系统内置的工具或脚本,如关闭Office文档的宏功能,禁用或限制Rundll32、Powershell、Mshta等程序的执行。
- 安装和更新系统的补丁,修复已知的缓冲区溢出漏洞,防止恶意代码的注入。
- 安装和更新系统的杀毒软件,利用杀毒软件的实时防护、行为防护、内存防护等功能,阻止恶意代码的执行。
- 安装和更新系统的EDR软件,利用EDR软件的行为检测、日志分析、配置管理等功能,检测和清除无文件攻击;使用最新的安全软件,及时更新系统的补丁和防护规则,提高系统的安全性能和抵抗能力。
- 应用白名单策略,限制可信程序或工具的执行权限,防止恶意代码的注入或执行。
- 启用系统的安全设置,禁用不必要的服务或功能,如PowerShell、宏、WMI等,减少攻击的攻击面。
- 使用行为分析技术,监测系统的异常行为,如进程注入、注册表修改、网络连接等,及时发现和阻止攻击。
- 使用内存取证技术,分析内存中的恶意代码,提取攻击的特征和证据,追踪攻击的来源和目的。
无文件攻击是一种隐蔽而危险的攻击方式,需要我们提高警惕,加强防护,及时应对。
无文件攻击的案例:
- 一种利用Office文档的宏功能,通过嵌入恶意脚本或下载远程代码,启动系统可信程序(如Rundll32、Powershell等),并对其进行远程线程注入,将恶意代码植入内存中的无文件勒索病毒攻击¹²。
- 一种利用系统的计划任务或注册表,创建自启动项,调用系统可信程序执行恶意脚本,实现攻击的持久化的无文件远控攻击²³。
- 一种利用系统的命令行工具(如Mshta、Certutil等),执行恶意的HTML或VBScript代码,或者下载恶意文件并执行的无文件下载器攻击²³。
- 一种利用.NET框架,通过托管代码注入技术,将恶意的.NET程序集加载到内存中,并执行的无文件.NET注入攻击²³。
- 一种利用VMware ESXi服务器的漏洞,通过一个shell脚本文件执行,该脚本文件使用各种命令删除虚拟机的快照,并将其替换为加密的文件的无文件勒索软件攻击⁴。
参考资料:
¹: 防病毒技术:无文件攻击 - .Ding - 博客园
²: 无文件攻击 - 百度百科
³: 浅谈无文件
源: 与必应的对话, 2023/2/16(1) 防病毒技术:无文件攻击 - .Ding - 博客园. https://www.cnblogs.com/meandme/p/10337267.html#:~:text=%E6%9C%80%E5%88%9D%EF%BC%8C%E2%80%9C%E6%97%A0%E6%96%87%E4%BB%B6%E6%94%BB,%E6%96%87%E4%BB%B6%E6%81%B6%E6%84%8F%E8%BD%AF%E4%BB%B6%E2%80%9D%E3%80%82 访问时间 2023/2/16.
(2) 防病毒技术:无文件攻击 - .Ding - 博客园. https://www.cnblogs.com/meandme/p/10337267.html 访问时间 2023/2/16.
(3) 百度百科-验证. https://baike.baidu.com/item/%E6%97%A0%E6%96%87%E4%BB%B6%E6%94%BB%E5%87%BB/60205622 访问时间 2023/2/16.
(4) 浅谈无文件攻击_CanMeng’Blog的博客-CSDN博客_无文件攻击. https://blog.csdn.net/weixin_41679427/article/details/104920331 访问时间 2023/2/16.
(5) 常见的windows下无文件落地攻击手法 - 腾讯云开发者社区-腾讯云. https://cloud.tencent.com/developer/article/1802231 访问时间 2023/2/16.
(6) 无文件攻击,如何被EDR在1分钟内自动检出?_wx5fb4cb72234a5的技术博客_51CTO博客. https://bing.com/search?q=%e6%97%a0%e6%96%87%e4%bb%b6%e6%94%bb%e5%87%bb+%e5%a6%82%e4%bd%95%e5%8f%91%e7%8e%b0 访问时间 2023/2/16.
(7) 浅谈无文件攻击_CanMeng’Blog的博客-CSDN博客_无文件攻击. https://blog.csdn.net/weixin_41679427/article/details/104920331 访问时间 2023/2/16.
(8) 无文件攻击,如何被EDR在1分钟内自动检出?-安全客 - 安全资讯平台. https://www.anquanke.com/post/id/286389 访问时间 2023/2/16.
(9) 解密无文件攻击的各种姿势及最新检测方法_systemino的博客-CSDN博客. https://blog.csdn.net/systemino/article/details/106538783 访问时间 2023/2/16.
(10) 如何检测无文件恶意软件攻击? - TechTarget安全. https://searchsecurity.techtarget.com.cn/11-26239/ 访问时间 2023/2/16.
相关文章:

无文件攻击
无文件攻击是一种高级持续性威胁(APT)的攻击方式,它不会在目标系统的磁盘上留下可执行文件,而是利用系统内置的工具或脚本执行恶意代码,从而绕过传统的安全防护措施。无文件攻击的最大特点就是恶意代码直接在内存中运行…...
JS高级——数据类型
数据类型 基本类型 String: 任意字符串Number: 任意的数字boolean: true/falseundefined: undefinednull: null 对象类型 Object: 任意对象Function 一种特别的对象(可以执行)Array: 一种特别的对象 判断 typeof //不能区分数组与对象、null与obje…...
场景案例│数字员工在银行业的典型应用场景,效率及准确率“双高”
伴随数字经济的高速发展,企业数字化转型步伐不断加快,银行内部信息系统越趋复杂,业务处理的自动化及智能化需求日益旺盛。调查显示,数字员工为60~75%的银行流程带来约30~40%的效能提升,能够全面帮助银行在各场景流程中…...

2023美国大学生数学建模竞赛选题建议
总的来说,这次算是美赛环境题元年,以往没有这么多环境题目,大部分题目都是开放度相当高的题目。C君认为的难度:D>C>AE>BF,开放度:DF>ABE>C。A题 遭受旱灾的植物群落这次A题为环境类题目&…...

整合K8s+SpringBoot+gRpc
本文使用K8s当做服务注册与发现、配置管理,使用gRpc用做服务间的远程通讯一、先准备K8s我在本地有个K8s单机二、准备service-providerpom<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.…...
ROS 教程:使用 Moveit C++ 接口进行拾取和放置任务
文章目录 简介Moveit C++ 接口Gazebo 取放世界初始化界面拾取流程1.移动到原位2.将TCP放在蓝框上方3.打开夹具4. 将 TCP 移近物体5.关闭夹具6. 将 TCP 移至板上方7./8. 降低 TCP 并打开夹具使用 Moveit 避免碰撞将碰撞对象添加到 Moveit 规划组结论参考简介 本教程展示了如何使…...
seo细分和切入点
seo细分和切入点本文重点介绍做SEO网站细分和切入点的方法:当我们的行业和关键词竞争性比较大的时候,我们可以考虑对行业或者产品做细分,从而找到切入点。可以按照以下三个方面进行细分。1、按城市细分例如:A:餐饮培训…...

PyQt5数据库开发1 4.3 QSqlTableModel 之 Qt项目的创建
目录 一、新建Qt项目 1. 编辑资源文件 2. 添加前缀 3. 新建放资源文件的目录 4. 添加图标文件 二、Action 1. 新建打开数据库Action 2. 添加其他Action 三、工具栏 1. 添加工具栏 2. 拖动actOpenDB到工具栏 3. 设置工具栏属性 4. 添加分隔符 5. 添加其他工具 6.…...

【大数据】第三章:详解HDFS(送尚硅谷笔记和源码)
什么是HDFS HDFS是(Hadoop Distributed File System)的缩写,也即Hadoop分布式文件系统。它通过目录树定位在分布式场景下 在不同服务器主机上的文件。它适用于一次写入,多次读出的场景。 HDFS的优缺点 优点 1,高容…...

27岁想转行IT,还来得及吗?
来不来得及不还是看你自身的意愿和条件,这个问题要问你自己吧! 每个人的能力、看法都不同。面对类似的问题,很多人会把侧重点放在IT上,或者27岁上面。那么我们试着换一个方式来问呢:什么时候适合转行,有哪些…...

Web前端CSS清除浮动的5种方法
在移动端清除浮动布局,常用的5种方法: 使用清除浮动的类;使用overflow属性;使用 flex 布局;使用grid 布局;使用 table 布局。 根据实际情况选择适合的方法,需要注意兼容性和语义性问题。在移动…...

Java:博客系统,实现加盐加密,分页,草稿箱,定时发布
文章目录1. 项目概述2. 准备工作2.1 数据库表格代码2.2 前端代码2.3 配置文件3. 准备项目结构3.1 拷贝前端模板3.2 定义实体类3.3 定义mapper接口和 xml 文件3.4 创建其他包4. 统一数据返回4.1 Result 类4.2 统一数据格式5. 注册5.1 逻辑5.2 验证数据规范性5.3 实现注册5.4 前端…...

JuiceFS 在火山引擎边缘计算的应用实践
火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算、网络、存储、安全、智能为核心能力的新一代分布式云计算解决方案。边缘存储主要面向适配边缘计算的典型业务场景&#…...
实验06 二叉树遍历及应用2022
A. 【程序填空】二叉树三种遍历题目描述给定一颗二叉树的特定先序遍历结果,空树用字符‘0’表示,例如AB0C00D00表示如下图请完成以下程序填空,建立该二叉树的二叉链式存储结构,并输出该二叉树的先序遍历、中序遍历和后序遍历结果输…...

基于蜣螂算法改进的LSTM分类算法-附代码
基于蜣螂算法改进的LSTM分类算法 文章目录基于蜣螂算法改进的LSTM分类算法1.数据集2.LSTM模型3.基于蜣螂算法优化的RF4.测试结果5.Matlab代码摘要:为了提高LSTM数据的分类预测准确率,对LSTM中的参数利用蜣螂搜索算法进行优化。1.数据集 数据的来源是 UC…...
如何正确应用GNU GPLv3 和 LGPLv3 协议
文章目录前言GNU GPLv3.0Permissions(许可)Conditions(条件)Limitations(限制)GNU LGPLv3.0应用GPLv3.0应用LGPLv3.0建议的内容:添加文件头声明附录GNU GPLv3.0原文GNU LGPLv3.0 原文前言 对于了解开源的朋友们,GNU GPL系列协议可谓是老朋友了。原来我基…...
Python局部函数及用法(包含nonlocal关键字)
Python 函数内部可以定义变量,这样就产生了局部变量,可能有人会问,Python 函数内部能定义函数吗?答案是肯定的。Python 支持在函数内部定义函数,此类函数又称为局部函数。 那么,局部函数有哪些特征&#x…...
关于BMS的介绍及应用领域
电池管理系统(Battery Management System,BMS)是一种集成电路系统,它用于监测和控制电池系统状态,以确保电池的正常运行和安全使用。BMS的应用涵盖了电动汽车、储能系统、无人机、电动工具等各个领域,可以提…...

2月datawhale组队学习:大数据
文章目录一、大数据概述二、 Hadoop2.1 Hadoop概述2.2 su:Authentication failure2.3 使用sudo命令报错xxx is not in the sudoers file. This incident will be reported.2.4 创建用户datawhale,安装java8:2.5 安装单机版Hadoop2.5.1 安装Hadoop2.5.2 修…...
在Spring框架中创建Bean实例的几种方法
我们希望Spring框架帮忙管理Bean实例,以便得到框架所带来的种种功能,例如依赖注入等。将一个类纳入Spring容器管理的方式有几种,它们可以解决在不同场景下创建实例的需求。 XML配置文件声明 <?xml version"1.0" encoding"…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...