安全见闻4
今天学了Windows操作系统和驱动程序的相关知识
Windows注册表
注册表是windows系统中具有层次结构的核心数据库
储存的数据对windows 和Windows上运行的应用程序和服务至关重要。注册表时帮助windows控制硬件、软件、用户环境和windows界面的一套数据文件。
打开注册表编辑器
WIN+R 输入—>regedit
注册表结构
注册表中,所有的数据都是通过一种树状结构以键和子键的方式组织起来的,就像磁盘文件系统的目录结构一样。
每个键包含一组特定的信息,每个键的键名都是和它所包含的信息相关联的。注册表的根键共有5个,且全为大写。
可以通过编辑器完成开机自启动
注册表安全
影子用户
除了注册表里的文件,其他地方都不能查看到admin$的文件,无论管理员账号密码如何更改,都可以用改影子账户完成登陆和远程登陆。
映象劫持
注册表远程登陆
在线恶意文件检测平台
VirSCAN:https://www.virscan.org/language/zh-cn/
腾讯哈勃分析系统:https://habo.qq.com
魔盾安全分析:https://www.maldun.com/submit/submit_file/
微步在线云沙箱:https://s.threatbook.cn/
Jotti的恶意软件扫描系统:https://virusscan.jotti.org/
Falcon Sandbox:https://www.hybrid-analysis.com/
VirusTotal:https://www.virustotal.com/gui/home
奇安信文件深度分析平台:https://sandbox.ti.qianxin.com/
ScanVir:http://www.scanvir.com/
windows防火墙
Windows防火墙是操作系统中至关重要的安全组件,它可以有效地防止未经授权的访问和潜在的安全威胁。
windows计划任务
计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。任务计划在每次系统启动的时候启动并在后台运行。
当我们需要在服务器上定时执行一些重复性的事件时使用的,可以通过计划任务程序来运行准备好的脚本、批处理文件夹、程序或命令,在某个特定的时间运行。
可以在任务计划程序窗口写入任务计划程序
打开任务计划程序窗口
方式一:控制面板–>windows工具–>任务计划程序
方式二:运行窗口或者撞断面板执行如下命令:Taskschd.msc
Windows10系统的任务计划程序窗口如下:
这个计划任务可以提权,到管理员权限,使用最高权限运行即可
如果是执行cmd脚本
说明:可以直接选择到具体路径就行,最好的保证能执行脚本的方法如下
路径:输入 cmd
添加参数:输入要执行的脚本路径,如c:\aa.bat
起始于:选择这个程序的执行的路径,一般会选择到该程序所在的目录,确保执行的时候,里面会调用到同目录文件,可以顺利调用
如果是执行powershell
说明:很多powershell脚本添加后是无法执行的,只能通过先打开powershell,然后把脚本当做一个参数输入,才能顺利打开
路径:输入powershell
添加参数:输入要执行的脚本路径,如:c:\aa.ps1
起始于:选择这个程序的执行的路径,一般会选择到该程序所在的目录,确保执行的时候,里面会调用到同目录文件,可以顺利调用
Windows事件日志
Windows事件日志是Windows操作系统中的一个重要组件,它记录了系统、应用程序和安全相关的活动。通过这些日志,管理员可以监控系统的健康状况、诊断问题以及检测潜在的安全威胁。
定义与功能
事件日志为操作系统及关联的应用程序提供一种标准化、集中式记录重要软件及硬件信息的方法。这些事件包括有关Windows组件和已安装应用程序的信息、警告和错误消息。事件日志可以为IT运维、开发运维和安全运维团队提供丰富的信息,帮助他们了解系统发生了什么,例如系统崩溃、恶意活动发生或基础设施故障等。
Windows内核驱动
驱动分类以及简单介绍
NT (Windows NT)
- 定义:Windows NT 是 Microsoft 开发的一系列操作系统的基础架构,首次发布于 1993 年。它是 Windows 操作系统的内核,支持多种硬件平台。
特点:
多用户和多任务:Windows NT 支持多用户和多任务处理,允许多个用户同时使用系统。
安全性:提供了强大的安全模型,包括用户权限和访问控制。
可移植性:设计上支持多种硬件架构,如 x86、x64、ARM 等。
模块化:操作系统的设计允许各种组件独立
版本:Windows NT 系列包括多个版本,如 Windows NT 3.1、Windows NT 4.0、Windows 2000、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 10 和 Windows 11。
WDM (Windows Driver Model)
定义:WDM 是 Microsoft 提出的一个驱动程序模型,旨在为 Windows NT 系列操作系统提供统一的驱动程序接口。
特点:
统一接口:WDM 提供了一种标准化的接口,使得开发人员可以为多种类型的设备编写驱动程序,而无需为每种设备类型编写不同的代码。
支持多种设备类型:WDM 驱动程序可以支持各种设备,包括 USB、PCI、SCSI 和其他类型的硬件。
电源管理:WDM 还内置了电源管理功能,允许驱动程序有效管理设备的电源状态。
兼容性:WDM 驱动程序能够在多个 Windows 版本上运行,增加了设备的兼容性。
KWDF (Kernel-Mode Driver Framework)
定义:KWDF 是一种内核模式驱动程序框架,旨在帮助开发人员创建和管理 Windows 内核模式驱动程序。
特点:
提供了一个高层次的 API,简化了驱动程序的开发。
支持多种设备类型,包括 USB、PCI、SCSI 和其他硬件设备。
处理常见的驱动程序任务,如设备 I/O、设备创建和销毁、以及电源管理。
提供了事件和回调机制,以处理硬件事件。
使用场景:适用于需要直接与硬件交互并在内核模式下运行的驱动程序。
UWDF (User-Mode Driver Framework)
定义:UWDF 是一种用户模式驱动程序框架,允许驱动程序在用户模式下运行,从而提高系统的稳定性和安全性。
特点:
允许驱动程序在用户模式中执行,减少内核模式驱动程序的复杂性。
提供了与 KWDF 类似的 API,但专为用户模式设计。
在用户模式下运行的驱动程序可以更容易地进行调试和测试。
适合于较低复杂度的设备驱动程序,例如某些 USB 设备。
使用场景:适用于不需要直接与硬件交互或对性能要求不高的驱动程序。
总结:
NT是原生的核心架构,而WDM是基于NT衍生出的驱动开发框架,可以兼容多个NT版本
KWDF和UWDF是属于高度封装的一个框架,不直接接触到原生的API,为了方便驱动程序的开发而设计的
windows系统服务
什么是服务:可以在计算机启动时自动启动,可以暂停和重新启动的而且不显示任何用户界面。
1、可以用services.msc打开可视化界面进行查看和管理,也可以用CMD命令行进行操作。
服务安全
1、服务是一种允许用户执行各种任务和管理功能的机制,然而也带来安全威胁。
2、例如:特权升级、远程代码执行、信息泄漏、恶意软件传播。
3、处于安全考虑,我们要时刻关注运行的服务,是有陌生的服务运行,发现及时禁用掉。
4、导出运行的服务列表,及时作对比,看是否有增加。
5、攻击者很可能会将恶意代码或程序伪装成服务运行。
Windows进程线程
进程和线程的区别:
关系:进程包含线程。
根本区别:进程是系统分配资源的最小单位;线程是系统调度CPU执行的最小单位。
存储:多个进程的内存是隔离开的,一个进程中的多个线程可以共享内存。
开销:线程的创建、销毁的代价都比进程小。即 进程的状态转换 开销大于线程。
线程(假如有bug)可能会导致整个进程挂掉无法运行;而 进程间是独立运行的(也可能存在进程通信)
操纵者不同:进程的操纵者是操作系统(OS);线程的操纵者一般是程序员。
拥有资源不同:每个进程有自己的内存和资源,一个进程中的线程会共享这些内存和资源。
CPU利用率不同:进程的CPU利用率较低,因为上下文切换开销较大,而线程的CPU的利用率较高,上下文的切换速度快。
什么是进程?——Process
每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运 行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。 进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程; 同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。
进程是系统分配资源的最小单位。
操纵者:进程是由操作系统创建及管理的。(操作系统管理进程:(1)先创建一个PCB结构体——>用于 描述进程信息;(2)把多个进程PCB结构体,通过一定的数据结构组织起来)
系统对进程的调度:主要以 时间片轮转调度算法(一个CPU以时间片轮转调度的方式,依次执行多个进程)
进程的状态:创建状态、就绪状态、运行状态、阻塞状态、终止/销毁状态。
程序 和 进程
· 程序是在一个静态磁盘上的一个可执行文件。
· 进程是动态的,将可执行文件加载到系统中。加载就是将信息放在内存中,分配一些资源,并且执行程序中所有指令。
进程的存储—虚拟地址空间:
进程不直接使用物理内存,而是使用虚拟地址空间;
虚拟内存空间 里面里面是使用 分页式存储管理(页-Page-类似于书页目录)
PCB结构体:
(1)PID:进程ID,是进程的唯一身份标识(类似于数据库 主键,唯一性),但是它不是固定不变的,是每次启动进程时动态分配的。
(2)进程状态:5个。
(3)内存指针:进程内存地址
(4)资源清单:io设备,(硬件设备),硬盘文件
文件描述符表:定位硬盘中的文件,包括 默认创建三个文件描述符(输入输出):类似于java中的System.out(标准输出) 、 System.err(错误输出) 、System.in(标准输入)。
(5)调度信息:进程执行了多少代码,等待了多久.....
(5)上下文:保存本次的执行状态,以便下次执行。
三、什么是线程?——Thread
一个线程就是一个 " 执行流 ". 每个线程之间都可以按照顺讯执行自己的代码 . 多个线程之间 " 同时 " 执行着多份代码。线程是操作系统能够进行运算调度的最小单元。它被包含在进程中,是进程中实际运行的单位。一个进程中可以并发多个线程,每个线程执行不同的任务 。
线程是系统调度CPU执行的最小单位。
操纵者:线程的操纵者一般是编程人员。
Java线程的状态:创建状态、可运行状态、等待状态、超时等待状态、阻塞状态、销毁状态。
线程比进程更轻量级。所以虽然多进程也可以并发,也选择多线程。
线程的优势:(1)创建线程比创建进程更快;(2)销毁线程比销毁进程更快;(3)调度线程比调度进程更快
Windows系统编程
Windows系统编程是指在微软的Windows操作系统上开发应用程序的过程。Windows提供了大量的API(应用程序接口),这些API允许开发者访问系统的底层功能,如文件操作、网络通信、图形界面等。本篇文章将为初学者提供一个Windows编程的基础框架,包括所需工具、开发环境配置以及一些基本的编程概念。
理解Windows API
Windows API是一组函数的集合,它们为开发者提供了与操作系统交互的方式。通过这些API,你可以执行诸如创建窗口、读写文件等操作。
2. 使用MSDN文档
微软官方的MSDN文档是学习Windows API的最佳资源之一。这里不仅有详细的函数说明,还有使用示例和注意事项。
学习图形用户界面(GUI)编程
GUI编程是Windows应用开发的重要组成部分。了解如何使用MFC(Microsoft Foundation Classes)或WPF(Windows Presentation Foundation)等框架来创建美观且功能丰富的用户界面。
相关文章:
安全见闻4
今天学了Windows操作系统和驱动程序的相关知识 Windows注册表 注册表是windows系统中具有层次结构的核心数据库 储存的数据对windows 和Windows上运行的应用程序和服务至关重要。注册表时帮助windows控制硬件、软件、用户环境和windows界面的一套数据文件。 打开注册表编辑器…...
Denoising Diffusion Restoration Models论文解读
论文要点 恢复的线性逆问题可以使用预训练的DDPM完成:1. 将降质矩阵使用SVD,得到分解矩阵;2. 使用分解矩阵将图像投影到降质类型间共享的谱空间;3. 谱空间中执行DDPM。 评价 同Track的方法同样很多,比如后续的DDNM、…...
基于SpringBoot的校园消费点评管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
vue 修改el-tree高亮样式
vue 修改el-tree高亮样式 ::v-deep .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content, ::v-deep .el-tree-node > .el-tree-node__content:hover {background-color: #eff8ee !important;color: #009764; }...
【NLP 38、激活函数 ④ GELU激活函数】
别盲目,别着急,慢慢走,没事的 —— 25.2.24 一、定义与数学表达式 GELU(Gaussian Error Linear Unit,高斯误差线性单元)是一种结合概率分布的非线性激活函数,其核心思想是通过输入值服从标准正…...
QT:paintEvent、QPainter、QPaintDevice
paintEvent 介绍 在 Qt 编程中,paintEvent 是 QWidget 类中的一个非常重要的虚函数,用于处理绘图事件。当一个 QWidget 或其派生类的实例需要进行重绘操作时,Qt 会自动调用该控件的 paintEvent 函数。 触发时机 窗口首次显示:当…...
OpenHarmony-4.基于dayu800 GPIO 实践(2)
基于dayu800 GPIO 进行开发 1.DAYU800开发板硬件接口 LicheePi 4A 板载 2x10pin 插针,其中有 16 个原生 IO,包括 6 个普通 IO,3 对串口,一个 SPI。TH1520 SOC 具有4个GPIO bank,每个bank最大有32个IO: …...
HTML项目一键打包工具:HTML2EXE 最新版
HTML2EXE 工具可以一键打包生成EXE可执行文件。可以打包任意HTML项目或者是一个网址为单个EXE文件,直接打开即可运行。支持KRPano全景VR项目、WebGL游戏项目、视频播放、,课件打包、网址打包等。 下载地址: 最新版HTML2EXE首次发布下载地址 一、功能特点…...
BGP配置华为——路径优选验证
实验拓扑 实验要求 实现通过修改AS-Path属性来影响路径选择实现通过修改Local_Preference属性来影响路径选择实现通过修改MED属性来影响路径选择实现通过修改preferred-value属性来影响路径选择 实验配置与效果 1.改名与IP配置 2.as300配置OSPF R3已经学到R2和R4的路由 3.…...
深度学习基础--ResNet网络的讲解,ResNet50的复现(pytorch)以及用复现的ResNet50做鸟类图像分类
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 如果说最经典的神经网络,ResNet肯定是一个,这篇文章是本人学习ResNet的学习笔记,并且用pytorch复现了ResNet50&…...
TMDS视频编解码算法
因为使用的是DDR进行传输,即双倍频率采样,故时钟只用是并行数据数据的5倍,而不是10倍。 TMDS算法流程: 视频编码TMDS算法流程实现: timescale 1 ps / 1ps //DVI编码通常用于视频传输,将并行数据转换为适合…...
深度解析SmartGBD助力Android音视频数据接入GB28181平台
在当今数字化时代,视频监控与音视频通信技术在各行各业的应用愈发广泛。GB28181协议作为中国国家标准,为视频监控设备的互联互通提供了规范,但在实际应用中,许多Android终端设备并不具备国标音视频能力,这限制了其在相…...
前端兼容处理接口返回的文件流或json数据
参考文档:JavaScript | MDN 参考链接:Blob格式转json格式,拿到后端返回的json数据_blob转json-CSDN博客 参考链接:https://juejin.cn/post/7117939029567340557 场景:导入上传文件,导入成功,…...
Eclipse 透视图 (Perspective)
Eclipse 透视图 (Perspective) Eclipse 是一款强大的集成开发环境(IDE),广泛应用于 Java 开发领域。其中,透视图(Perspective)是 Eclipse 中的一个核心概念,它将不同的工具和视图组合在一起,以便开发者能够更高效地完成特定的开发任务。本文将详细介绍 Eclipse 透视图…...
嵌入式硬件篇---滤波器
文章目录 前言一、模拟电子技术中的滤波器1. 基本概念功能实现方式 2. 分类按频率响应低通滤波器高通滤波器带通滤波器带阻滤波器 按实现方式无源滤波器有源滤波器 3. 设计方法巴特沃斯滤波器(Butterworth)切比雪夫滤波器(Chebyshevÿ…...
从零到一学习c++(基础篇--筑基期十一-类)
从零到一学习C(基础篇) 作者:羡鱼肘子 温馨提示1:本篇是记录我的学习经历,会有不少片面的认知,万分期待您的指正。 温馨提示2:本篇会尽量用更加通俗的语言介绍c的基础,用通俗的语言去…...
Java基础常见的面试题(易错!!)
面试题一:为什么 Java 不支持多继承 Java 不支持多继承主要是为避免 “菱形继承问题”(又称 “钻石问题”),即一个子类从多个父类继承到同名方法或属性时,编译器无法确定该调用哪个父类的成员。同时,多继承…...
DPVS-2:单臂负载均衡测试
上一篇编译安装了DPVS,这一篇开启DPVS的负载均衡测试 : 单臂 FULL NAT模式 拓扑-单臂 单臂模式 DPVS 单独物理机 CLINET,和两个RS都是另一个物理机的虚拟机,它们网卡都绑定在一个桥上br0 , 二层互通。 启动DPVS …...
C#中提供的多种集合类以及适用场景
在 C# 中,有多种集合类可供使用,它们分别适用于不同的场景,部分代码示例提供了LeetCode相关的代码应用。 1. 数组(Array) 特点 固定大小:在创建数组时需要指定其长度,之后无法动态改变。连续存储…...
【蓝桥杯集训·每日一题2025】 AcWing 6135. 奶牛体检 python
6135. 奶牛体检 Week 1 2月21日 农夫约翰的 N N N 头奶牛站成一行,奶牛 1 1 1 在队伍的最前面,奶牛 N N N 在队伍的最后面。 农夫约翰的奶牛也有许多不同的品种。 他用从 1 1 1 到 N N N 的整数来表示每一品种。 队伍从前到后第 i i i 头奶牛的…...
【为什么用pg数据库用 != null 过滤不出null值】
为什么用pg数据库用 ! null 过滤不出null值 1. NULL 的特殊性质2. 为什么 ! null 无效3. 正确的过滤 NULL 的方式示例 4. 为什么 IS NULL 和 IS NOT NULL 有效5. 示例对比6. 总结 在 PostgreSQL 中,使用 ! null 过滤不出 NULL 值的原因与 SQL 标准中 NULL 的特殊性质…...
Classic Control Theory | 12 Real Poles or Zeros (第12课笔记-中文版)
笔记链接:https://m.tb.cn/h.Tt876SW?tkQaITejKxnFLhttps://m.tb.cn/h.Tt876SW?tkQaITejKxnFL...
Kubernetes开发环境minikube | 开发部署MySQL单节点应用
minikube是一个主要用于开发与测试Kubernetes应用的运行环境 本文主要描述在minikube运行环境中部署MySQL单节点应用 minikube start --force kubectl get nodes 如上所示,启动minikube单节点运行环境 minikube ssh docker pull 如上所示,从MySQL官…...
大厂数据仓库数仓建模面试题及参考答案
目录 什么是数据仓库,和数据库有什么区别? 数据仓库的基本原理是什么? 数据仓库架构是怎样的? 数据仓库分层(层级划分),每层做什么?分层的好处是什么?数据分层是根据什么?数仓分层的原则与思路是什么? 数仓建模常用模型有哪些?区别、优缺点是什么?星型模型和雪…...
腾讯SQL面试题解析:如何找出连续5天涨幅超过5%的股票
腾讯SQL面试题解析:如何找出连续5天涨幅超过5%的股票 作者:某七年数据开发工程师 | 2025年02月23日 关键词:SQL窗口函数、连续问题、股票分析、腾讯面试题 一、问题背景与难点拆解 在股票量化分析场景中,"连续N天满足条件"是高频面试题类型。本题要求在单表stoc…...
安装可视化jar包部署平台JarManage
一、下载 下载地址:JarManage 发行版 - Gitee.com 🚒 下载 最新发行版 下载zip的里面linux和windows版本都有 二、运行 上传到服务器,解压进入目录 🚚 执行java -jar jarmanage-depoly.jar 命令运行 java -jar jarmanage-dep…...
基于数据可视化+SpringBoot+安卓端的数字化OA公司管理平台设计和实现
博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…...
输入搜索、分组展示选项、下拉选取,全局跳转页,el-select 实现 —— 后端数据处理代码,抛砖引玉展思路
详细前端代码写于上一篇:输入搜索、分组展示选项、下拉选取,el-select 实现:即输入关键字检索,返回分组选项,选取跳转到相应内容页 —— VUE项目-全局模糊检索 【效果图】:分组展示选项 >【去界面操作体…...
性能巅峰对决:Rust vs C++ —— 速度、安全与权衡的艺术
??关注,带你探索Java的奥秘!?? ??超萌技术攻略,轻松晋级编程高手!?? ??技术宝库已备好,就等你来挖掘!?? ??订阅,智趣学习不孤单!?? ??即刻启航,编…...
unity学习53:UI的子容器:面板panel
目录 1 UI的最底层容器:canvas 1.1 UI的最底层容器:canvas 1.2 UI的合理结构 2 UI的子容器:面板panel 2.1 创建panel 2.2 面板的本质: image ,就是一个透明的图片,1个空容器 3 面板的属性 4 面板的…...
