2023 江苏省第一届数据安全技术应用职业技能竞赛 决赛 部分wp

news2024/12/26 23:39:55

文章目录

      • 一、前言
        • 比赛平台全貌
        • 题目附件及工具下载(123网盘)
      • 二、参考文章
      • 三、题目(解析)
        • 一、内存取证-MemoryLife
          • 1、请给出内存镜像中黑客使用工具对外连接的IP地址及端口号是___________。(格式为IP_PORT)
          • 2、请给出内存镜像中用户BGS-Chenyi的开机密码___________。
          • 3、黑客工具里的LOGONSERVER环境变量值是___________。
          • 4. 请给出内存镜像中屏幕里的内容___________。
          • 5. 请给出wps.ini最后的修改时间_____________。(格式为YYYY-MM-DD_hh:mm:ss_+0000)
        • 二、MISC
          • 1、misc-steg
          • 2、misc-Easy_pic

一、前言

这边也是有幸发现了2023年决赛的真题,大致看了一下发现题目也是比较有意思,那我们这边就来复现一下,我这边因为能力也是有限所以就参考了一下大佬的文章,可能有的题目做法不唯一,这里也是仅供参考,那我们话不多说,直接进入主题

比赛平台全貌

在这里插入图片描述

题目附件及工具下载(123网盘)

题目附件下载

https://www.123pan.com/s/q2J1jv-IkBvd.html
提取码:0905

基本工具下载

https://www.123pan.com/s/q2J1jv-6kBvd.html
提取码:0905

二、参考文章

2023 江苏省数据安全竞赛 决赛

三、题目(解析)

一、内存取证-MemoryLife

常用工具;

  • Volatility: 这是一个开源的内存取证框架,支持多种操作系统和内存格式,功能强大,能够提取和分析系统内存中的各种信息。您提到的版本2.6也是这个工具的一个版本。

  • FTK Imager: 这是一个广泛使用的取证工具,虽然它主要用于磁盘取证,但也支持内存取证。它可以创建内存映像,并对其进行分析。

  • Rekall: 这是一个开源的内存取证工具,类似于Volatility,支持对多种操作系统的内存进行分析。它也提供了一些先进的分析功能,用于提取和分析内存中的数据。

这里除了“Volatility”,其它两个工具我也接触很少,这里就不过多介绍了。(因为相比较于,还是“Volatility”更好用),那这里推荐大家一篇我个人觉得比较好的关于“Volatility2.6”工具的基本使用教程——《内存取证例题及Volatility2.6的使用(含命令详细解析)》

说实话,如果对取证一点都不了解的师傅,那这里还是推荐先简单了解一下工具“Volatility”再进行作答,那我们这里话不多说,直接进入正题。

1、请给出内存镜像中黑客使用工具对外连接的IP地址及端口号是___________。(格式为IP_PORT)

解题思路

下载附件得到文件“MemoryLife.raw”,那这里我们得先简单了解一下后缀以“raw”结尾的是什么文件;

通常来说后缀以 .raw 的文件通常表示“原始”数据文件,其具体含义可以根据上下文有所不同。一般来说,.raw 文件可以包含以下几种类型的数据:

  1. 原始内存映像:在数字取证和内存分析中,.raw 文件通常表示从计算机内存中提取的原始内存映像。这样的文件包含了内存中的所有数据,包括运行中的进程、网络连接和其他系统状态信息。

  2. 原始磁盘映像:在磁盘取证中,.raw 文件可以表示原始磁盘映像文件。这种文件包含了磁盘的完整拷贝,包括文件系统的结构和所有的数据块。它通常用于数字取证和数据恢复。

  3. 原始图像数据:在图像处理领域,.raw 文件也可能表示未经处理的图像数据文件,这种文件通常由数码相机生成,包含了传感器捕捉到的原始数据,没有经过任何图像处理。

那我们这里肯定母庸质疑肯定就是“原始内存映像”了,我的“vol2.6”是装在kali里的(具体可以参照上面我说那篇文章),首先先把文件移动到“volatility_2.6_lin64_standalone”目录下,接着才能进一步分析;

得到;

在这里插入图片描述

首先,取证万事开头百分之九九都是查看镜像信息,分析出到底是哪一个操作系统,所以使用参数imageinfo;(重点)

使用命令;

./vol -f MemoryLife.raw imageinfo

得到;

在这里插入图片描述

操作系统:Win7SP1x64

那这里题目问我们黑客使用工具对外连接的IP地址及端口号,关键词“IP地址及端口号”,那我们首先肯定就想到了“netscan”,那为什么呢?

简单来说netscan 插件专门设计用于扫描内存中的网络连接信息。它能够从内存中提取当前和历史的网络连接数据,包括:

  • 活跃的网络连接
  • 打开的端口
  • 远程IP地址
  • 本地IP地址

那这里操作系统我们也有了,所以我们可以使用命令;

./vol -f MemoryLife.raw --profile=Win7SP1x64 netscan

得到;

在这里插入图片描述

简单分析一下;

往下翻的时候发现nc.exe 连接到 192.168.233.1:54266 。那我们知道nc.exe 是一个网络工具(Netcat),通常用于网络测试和调试,但也很有可能被黑客用于远程控制和数据传输,所以这里值得我们注意一下。

那为什么我们会怀疑“nc.exe”呢?

从客观层面分析一共五点;

  • Netcat 作为恶意工具

    • nc.exe 是一个功能强大的网络工具,能够进行多种网络操作,包括监听端口、发起连接等。黑客经常利用它来进行恶意活动,比如建立反弹Shell、传输数据或绕过防火墙。
  • 外部连接的异常端口

    • 连接到 192.168.233.1:54266 表示 nc.exe 正在与一个可能的远程主机进行通信。端口号 54266 是一个高端口号,通常不用于标准服务,这可能表明它正在连接到某个专用或不常见的服务。
  • 内部IP连接

    • 尽管 192.168.233.1 是一个本地网络地址,nc.exe 通过高端口连接的行为表明它可能是在尝试从内部网络到外部网络进行通信,这可能是隐藏或传输数据的手段。
  • 非法连接

    • 如果 nc.exe 连接的远程地址是未授权的或未知的IP,并且它尝试在非常规端口上进行通信,这可能是黑客利用 nc.exe 进行恶意活动的迹象。黑客可能通过这种方式与控制服务器进行通信,或执行其他未经授权的操作。

这里题目问我们的是黑客使用工具对外连接的IP地址及端口号,提交格式(IP_PORT),那我们尝试提交,最后发现正确

至此

flag{192.168.233.1_54266}
2、请给出内存镜像中用户BGS-Chenyi的开机密码___________。

解题思路

题目让我们获取内存镜像中用户BGS-Chenyi的开机密码,简单来说就是获取密码呗,那这里通过分析内存镜像获取密码的工具有很多,那也就是说方法不唯一,不过大多数工具还是只能分析出密码加密的MD5,还需要自己去解一下MD5才行,相对来说,性价比不是很高,今天就给师傅们带来一个较为便捷的工具——“Passware Kit Forensic”(工具已为师傅们准备好,在“基本工具”中下载即可)

那这里就先简单介绍一下“Passware Kit Forensic”;

Passware Kit Forensic 是一款专门用于数字取证和密码恢复的工具。它主要用于在调查过程中从各种数据源中提取、恢复和分析密码和加密信息。

主要功能

  1. 密码恢复

    • Passware Kit Forensic 能够恢复各种类型的密码,包括 Windows 登录密码、文件加密密码、应用程序密码等。
    • 它支持对加密磁盘、加密文件、电子邮件等进行密码破解。
  2. 内存取证

    • 可以分析内存镜像(如 .raw 文件)来提取加密信息和密码。
    • 支持从系统内存中提取和解密密码哈希和其他敏感信息。
  3. 磁盘和文件分析

    • 能够分析磁盘镜像和文件系统,寻找和恢复加密文件和密码。
    • 提供对文件和磁盘的深度扫描,查找隐藏和加密的内容。
  4. 加密文件解密

    • 支持对各种加密文件进行解密,包括文档、压缩文件和数据库等。
    • 提供对密码保护的文件和数据的破解功能。
  5. 报告生成

    • 自动生成详细的报告,记录恢复的密码信息和分析结果。
    • 报告格式可以根据需求进行定制,适用于法庭和调查报告。
  6. 支持多种平台和应用

    • 支持多种操作系统(如 Windows、macOS)和应用程序(如 Microsoft Office、Adobe Acrobat)的密码恢复。

总而言之好用就完事了,那这里我们直接把附件“MemoryLife.raw”,放入到工具“PasswareKitForensic”进行分析;

进入主页面,点击“内存分析”;

在这里插入图片描述

这里默认全选,内存图像就选择我们的附件“MemoryLife.raw”,接着开始分析即可;

在这里插入图片描述

这边都还没分析完整,我们就已经发现了用户“BGS-Chenyi”的开机密码;

在这里插入图片描述

至此;

flag{abc123456}
3、黑客工具里的LOGONSERVER环境变量值是___________。

解题思路

题目问我们黑客工具里的"LOGONSERVER"环境变量值是什么,首先我们得先了解什么是“LOGONSERVER”环境变量;

简单来说就是LOGONSERVER 其实就是 Windows 操作系统中的一个环境变量,表示当前用户登录的域控制器服务器的名称。这个变量在用户登录到域时由操作系统自动设置。

主要特点

  1. 域控制器的名称: LOGONSERVER 变量的值通常是处理用户登录请求的域控制器的名称。它指向处理用户身份验证的服务器。

  2. 用途:

    • 身份验证: 用于确定用户登录的域控制器,这对于身份验证和资源访问非常重要。
    • 网络管理: 管理员可以使用 LOGONSERVER 变量来识别用户通过哪个域控制器登录,这在进行故障排除或网络监控时非常有用。
  3. 如何查看:

    • 在命令行中输入 echo %LOGONSERVER% 可以查看当前用户登录的域控制器。
    • 在 PowerShell 中,使用 echo $env:LOGONSERVER 来查看。

示例

假设在命令行中运行 echo %LOGONSERVER% 输出 \\DC01,这意味着当前用户是通过名为 DC01 的域控制器登录的。

总的来说:LOGONSERVER 是一个用于指示用户登录的域控制器的环境变量,对于理解和管理 Windows 域环境中的登录过程非常有用。

那我们这里根据题题一,我们已经知道黑客使用的工具是“nc.exe”,那这里我们就可以直接“dump”下来,接着使用“010”进一步分析,那这里我们都说了要“dump”,在此之前肯定要先知道进程的ID(PID),所以这里我们就可以使用插件“pslist”列出所有的进程然后再进行查找“nc.exe”,最后再使用插件“memdump”提取指定进程的内存映像,最后使用“010”分析,这里我们感觉步骤很麻烦,其实也还好,简单来说就是,知道了要查找“nc.exe”,那我们得先找到进程ID(PID),接着下载导出即可;

使用命令;

./vol -f MemoryLife.raw --profile=Win7SP1x64 pslist

得到;

在这里插入图片描述

不难看出那一列才是PID(ID),往下随便翻翻就看见了;

在这里插入图片描述

最后也是成功找到了“nc.exe”的PID:3036

那接着肯定就是“dump”下来了呗,我们使用插件“memdump”;

./vol -f MemoryLife.raw --profile=Win7SP1x64 memdump -p 3036 -D ./

简单分析一下;

那这里的-p 3036: 肯定就是指定要提取的进程的进程 ID(PID)。

这里的-D ./: 是指定输出目录为当前目录(./),提取的文件将保存在该目录下。(并不是保存在“D”盘的意思哈)

得到;

在这里插入图片描述

因为我这里是在kali里嘛,我肯定要移动到我的本机中丢进“010”进行分析,具体的移动步骤我就不说了,直接放“010”;

“010”成功打开;(010的基本使用功能”搜索“就不在此多叙,很简单)

在这里插入图片描述

那题目问我们的是LOGONSERVER环境变量值,所以这里我们直接查找“LOGONSERVER”试试看;

因为通常来说“LOGONSERVER”这个值的格式是 UNC (Universal Naming Convention) 路径格式,是用于标识网络中的计算机,例如“LOGONSERVER=\xxx-xxxxxx-PC”,所以我们可以尝试直接定位一下看看有没有

最后也是得到;

在这里插入图片描述

至此;

flag{\\BGS-CHENYJ-PC}
4. 请给出内存镜像中屏幕里的内容___________。

解题思路

题目让我们给出屏幕中的内容,那这里我们就可以查内存镜像中的“mspaint.exe”,那为什么要查它呢?简单来说就是mspaint.exe 是 Microsoft Windows 操作系统中的一个内置程序,通常用于图像编辑和查看,题目问我们屏幕中的内容,因此我们就可以从“mspaint.exe”进行下手,那也还是老规矩,先查PID(ID),接着再“dump”下来进行分析;

“mspaint.exe”这里简单分析一下;

  1. 功能
  • 图像编辑mspaint.exe 提供了基本的图像编辑功能,如绘制、剪裁、调整大小、旋转、添加文本等。
  • 图像查看:用户可以使用 Paint 查看各种图像文件,如 BMP、JPEG、PNG 和 GIF 等格式。
  • 简单绘图工具:提供了画笔、铅笔、橡皮擦、填充等绘图工具,用于创建和编辑图像。
  1. 内存结构

在内存中,mspaint.exe 进程的结构可以分为以下几个部分:

  • 进程代码段:包含程序的可执行代码。
  • 数据段:存储全局变量和静态数据。
  • :用于动态分配内存,比如临时存储图像数据或用户输入的图形对象。
  • :用于存储函数调用的临时数据,如局部变量和返回地址。
  • 图形对象:包含 GDI(Graphics Device Interface)对象和其他图形数据,这些数据用于渲染和显示图像。
  1. 内存映像分析

分析 mspaint.exe 的内存映像可以包括以下几个方面:(也就是我们本题所遇到的情况)

  • 进程识别:通过内存分析工具(如 Volatility)识别 mspaint.exe 进程及其 PID。
  • 提取图像数据:从进程的内存映像中提取图形对象和缓冲区数据。可以使用工具解析 GDI 对象或 DirectX 缓冲区。
  • 恢复文件:从内存映像中恢复用户可能正在编辑的图像或未保存的工作文件。
  1. 常见分析方法
  • 使用 Volatility:可以通过 Volatilityprocdump 插件提取 mspaint.exe 进程的内存映像。
  • 查看 GDI 对象:分析 GDI 对象和图形数据,了解绘图操作的细节。
  • 进程内存检查:通过工具检查进程内存中的堆栈和数据段,查找潜在的图像数据或文件句柄。
  1. 实例应用
  • 数字取证:在数字取证过程中,可以使用内存映像分析恢复在 mspaint.exe 中未保存的图像。
  • 恶意软件分析:分析 mspaint.exe 的内存映像可以帮助检测和分析恶意软件利用图形程序的行为。

总的来说:通过这些,我们可以深入了解 mspaint.exe 进程的运行状态、内存使用情况以及可能的图形数据。这种分析可以用于数据恢复、恶意软件分析或其他取证目的。

所以这里我们先查到"mspaint.exe"的PID(进程号),使用插件“pslist”;

使用命令;

./vol -f MemoryLife.raw --profile=Win7SP1x64 pslist

得到;

在这里插入图片描述

最后得到PID:4312,接着使用插件“memdump”dump下来进行分析;

使用命令;

./vol -f MemoryLife.raw --profile=Win7SP1x64 memdump -p 4312 -D ./

得到;

在这里插入图片描述

成功下载,那题目既然都说了“屏幕中”的内容,那也就是说涉及到了图像,所以我们直接丢进“gimp”进行调整看看有没有我们想要的信息;

gimp官方下载

下载并且安装完成(操作很简单这里不再多叙),那我们打开“gimp”,打开文件发现报错了,提示信息是“未知文件类型”,那我们尝试修改一下文件后缀,改成“.data”试试看;

在这里插入图片描述

最后也是成功打开,多尝试调整图像的“高度”跟“宽度”即可发现;

宽度:576
高度:2350

得到;

在这里插入图片描述

最后简单旋转一下即可得到;

至此;

flag{gydk5sp}
5. 请给出wps.ini最后的修改时间_____________。(格式为YYYY-MM-DD_hh:mm:ss_+0000)

解题思路

题目问我们“wps.ini”最后被修改的时间,那这里我们就可以考虑使用“mftparser”插件来分析进行分析,那为什么呢?简单来说mftparser 插件用于分析 NTFS 文件系统的 Master File Table (MFT),它可以提供关于文件的详细信息,包括最后修改时间。而且wps.ini 文件应该是位于 NTFS 文件系统上,所以使用 mftparser 可以帮助我们准确地提取文件的元数据。

使用命令;

./vol -f MemoryLife.raw --profile=Win7SP1x64 mftparser

得到;

在这里插入图片描述

这里发现数据较多,那我们就可以使用“grep”来进行过滤一下,题目中说“wps.ini”,所以我们就可以;

使用命令;

./vol -f MemoryLife.raw --profile=Win7SP1x64 mftparser | grep 'wps'

得到;

在这里插入图片描述

也是发现了;

2023-09-19 03:31:27 UTC+0000 2023-09-19 03:31:27 UTC+0000   2023-09-19 03:31:27 UTC+0000   2023-09-19 03:31:27 UTC+0000   wps.ini

所以最后也是成功发现了“wps.ini”最后被修改时间,提交格式为:YYYY-MM-DD_hh:mm:ss_+0000

至此;

flag{2023-09-19_03:31:27_+0000}
二、MISC
1、misc-steg

解题思路

下载附件,得到一张图片,丢进010简单分析一下看看有没有东西;

在这里插入图片描述

无任何发现,kali也丢了,并没有什么发现,最后一个个尝试也是在“Stegsolve”里面发现了关键;

在这里插入图片描述

在“Stegsolve”中的“Blue plane 0”发现关键,仔细查看会发现后面有一排不知道是字母还是汉字的,能看见一点点;

在这里插入图片描述

发现是“LSB”隐写,不过这里肯定是加密了,暂时看不到,那我们接着返回通道继续翻翻看还有没有什么线索;

在这里插入图片描述

哎,最后也是在“Alpha plane 0”中发现了关键,提示:爆破我,3num!!!

在这里插入图片描述

那我们这里就直接上“B神”的工具——“PuzzleSolver”(这里已为大家准备好在工具包,下载解压即可使用)

注意这里如果是使用“ cloacked-pixel”是会报错的,提示我们负载的 AES 信息大小不是 32 的倍数;

所以这里我们使用“stegpy 爆破”即可;

在这里插入图片描述

最后也是成功爆破出来了,最后的结果就是在图片的目录下会有一个文件“_flag.txt”(注意这里爆破的可能会久一些,大家耐心等待即可)

在这里插入图片描述

打开“_flag.txt”,得到;

在这里插入图片描述

至此;

flag{47136824-3036-4996-a04d-34c4f3ea85f7}
2、misc-Easy_pic

解题思路

下载附件,得到的也还是一张图片,老规矩丢进010简单分析一下看看有没有信息;

在这里插入图片描述

也是没有任何发现,那这里为了节省一些时间,我直接跳过尝试的阶段,反正总之什么都试了一遍,最后也是在盲水印工具——“WaterMake”(工具已在工具包中,下载解压即可使用)中发现了线索,是一个“KEY”

在这里插入图片描述

WaterMake中发现“KEY”;

在这里插入图片描述

这里看不太清楚,不过我们可以“图片另存为”放大来看,虽然有点费眼,但也是没有办法的事情,毕竟嘛使用工具是最简单的;

在这里插入图片描述

费力九牛二虎之力也是成功把这个“KEY”扣下来了,KEY: cloacked-pixel-master;

接着还是老规矩,直接上”B神“的工具,注意输入我们解析出的“password”(这里如果没有password选项的,那就是需要vip才具备)

在这里插入图片描述

至此;

flag{212fbab2b03c95ccbc75e3e568105ac5}

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

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

相关文章

Windows Server Backup(2016) 备份

Windows Server Backup(2016) 备份 1.使用 Windows Server Backup 备份 点击添加角色和功能,根据向导,添加 Windows Server Backup 功能。 添加完成后可通过 控制面板\系统和安全\管理工具 找到 Windows Server Backup,如下图 打开后如图&…

Openlayers6之地图覆盖物Overlay详解及使用,地图标注及弹窗查看详情(结合React)

demo案例:用户实现地图加载人员位置定位,并设置人员图片文字等标注,点击定位点查看人员详情。 主要通过ol/geom Point设置Style和ol/Overlay实现。主要实现步骤: 实现图文标注的实质是添加点时设置Ponit的样式,图片标…

浅谈安科瑞智慧用电系统在电气火灾中的应用

摘要:为了对电气火灾事故进行预测和预警,同时为了对电气火灾事故的应急救援提供 支持,将智慧用电监控系统应用于电气火灾中。该系统利用物联网、移动互联网、云平台、大数据技术,实现对电气线路电流、漏电、温度、谐波等参数进行…

leetcode日记(66)子集

实际上和上一题差不多&#xff0c;可以直接套用上一题回溯递归的函数写出来&#xff0c;复杂度比较高&#xff0c;因为是按照数字个数依次代入函数&#xff0c;然后通通放入一个vector中。 class Solution { public:vector<vector<int>> subsets(vector<int>…

Linux 实验基础环境准备(外网篇)

1.关闭禁用防火墙和selinux systemctl disable firewalld --now sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config2.保证可以连接外网 ping -c3 www.baidu.com 3.配置yum为阿里仓库并下载epel源 mkdir /etc/yum.repos.d/bak/; mv /etc/yum.repos.d/*.repo /e…

【AI-16】浅显易懂说一下RNN和Transformer

循环神经网络&#xff08;RNN&#xff09;曾经是自然语言处理领域的主流&#xff0c;但它们面临着长距离依赖和梯度消失等问题&#xff0c;限制了其在处理长文本序列时的表现。随后&#xff0c;Transformer模型的出现改变了这一局面。 循环神经网络&#xff08;RNN&#xff09…

实施MES管理系统的过程中可能会遇到的风险

在制造业的数字化转型浪潮中&#xff0c;MES管理系统的部署成为了企业提升生产效率、优化资源配置的关键一环。然而&#xff0c;这一过程的复杂性和潜在风险不容忽视。本文将从多个维度探讨实施MES管理系统的过程中可能面临的挑战&#xff0c;并提出一系列策略以应对这些挑战&a…

工作随记:我在OL8.8部署oracle rac遇到的问题

文章目录 一、安装篇问题1&#xff1a;[INS-08101] Unexpected error while executing the action at state:supportedosCheck问题1解决办法&#xff1a;问题2&#xff1a;[INS-06003] Failed to setup passwordless SSH connectivity with thefollowing nodeis): [xxxx1, xxxx…

天玑9400新猛料:CPU性能提升30%,同场景仅需8G3 30%功耗

年底的手机市场的新消息简直让人应接不暇&#xff0c;而其中最令人期待的&#xff0c;无疑是天玑9400旗舰芯。这款芯片据说性能提升了30%&#xff0c;在相同场景下功耗却降低到了8G3的30%。网友们纷纷表示&#xff1a;“发哥这次真的稳住了&#xff0c;天玑系列越来越给力&…

Python中的类多态之方法重写和动态绑定使用详解

概要 多态(Polymorphism)是面向对象编程的核心特性之一,它允许同一接口在不同的类中具有不同的实现。多态通过方法重写和动态绑定来实现,使得代码更加灵活和可扩展。本文将详细介绍Python中的类多态,包括方法重写和动态绑定,涵盖基本概念、具体用法和实际应用示例。 多态…

Linux磁盘管理与文件结构(一):磁盘、MBR与分区和文件系统

文章目录 1、磁盘结构物理结构数据结构硬盘存储容量数据区域定位磁盘接口类型 2、MBR与磁盘分区表示主引导记录&#xff08;MBR&#xff09;磁盘分区结构示例 磁盘分区表示 3、文件系统类型XFS 文件系统Swap 交换文件系统Linux 支持的其他文件系统类型 1、磁盘结构 物理结构 …

vue前端自适应布局,一步到位所有自适应

页面展示 实现内容 1&#xff0c;左右布局 左侧固定宽带&#xff0c;右侧自适应剩余的宽度。中间一条分割线&#xff0c;可以拖拉&#xff0c;自适应调整左右侧的宽度。左侧的高度超长自动出现横向滚动条&#xff0c;左侧宽度超长&#xff0c;自动出现竖向滚动条。 2&#x…

栈的实现及括号匹配问题

一、栈的概念及结构 栈是一种特殊的线性表&#xff0c;只允许在固定的一端进行插入删除元素操作。 进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。 栈中的数据元素遵循后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#xff1a…

Linux/C 高级——shell脚本

1. shell脚本基础概念 1.1概念 shell使用方式&#xff1a;手动下命令和脚本 脚本本质是一个文件&#xff0c;文件里面存放的是特定格式的指令&#xff0c;系统可以使用脚本解析器翻译或解析指令并执行&#xff08;它不需要编译&#xff09;。 shell脚本本质&#xff1a;shell命…

浅谈 Spring AOP框架 (2)——Spring统一功能处理

文章目录 一、AOP实战——SpringBoot统一功能处理1.1、使用拦截器实现用户登录权限的统一验证1.1.1、使用原生Spring AOP实现统一拦截的难点1.1.2、Spring 拦截器1.1.2.1、Spring拦截器 使用步骤1.1.2.2、拦截器实现原理 1.2、统一数据格式返回1.2.1、为什么要返回统一的数据格…

Linux/C 高级——条件编译

1.根据宏是否定义 #define 宏名 #ifdef 宏名 /*code1*/ #else /*code2*/ #endif 执行顺序&#xff1a;宏名如果定义则编译code1&#xff0c;否则编译code2 例子&#xff1a; 2.根据宏值 #define 宏名 值 #if 宏名 /*code1*/ #else /*code2*/ #endif 执行顺序&#xff1a;宏的值…

真值表编程

打开真值表进行编辑 在图表中创建并标记真值表后&#xff0c;您可以指定其逻辑行为。要打开真值表&#xff0c;请双击真值表函数。 默认情况下&#xff0c;真值表包含一个条件表和一个动作表&#xff0c;每个表都有一行。条件表包含一个决策列D1和一个动作行。 选择动作语言 …

达梦数据库 数据类型

达梦数据类型 1.背景2.要求3.描述与使用3.1 常规数据类型3.1.1 字符数据类型3.1.1.1 CHAR类型3.1.1.2 CHARACTER类型3.1.1.3 VARCHAR类型 3.1.2 数值数据类型3.1.2.1 NUMERIC类型3.1.2.2 DECIMAL类型3.1.2.3 DEC类型3.1.2.4 NUMBER类型3.1.2.5 INTEGER类型3.1.2.6 INT类型3.1.2…

VC++_opencv插件ImageWatch的安装和使用

1、插件安装 以VS2015为例&#xff1a; 进入扩展和更新界面&#xff0c;点“联机”&#xff0c;然后输入“ImageWatch”进行搜索&#xff1a; 2、安装完毕后重启VisualStudio 如下图在菜单“视图\其他窗口”找到“ImageWatch”这个栏目 然后点开&#xff1a; 也可让其停靠在Vi…

c++----初识模板

大家好&#xff0c;这篇博客想与大家分享一些我们c中比较好用的知识点。模板。首先咧&#xff0c;我们都知道模板嘛&#xff0c;就是以前人的经验总结出来的知识。方便我们使用。这里的模板也是一样的。当我们学习过后&#xff0c;对于一些在c中的自定义函数&#xff0c;我们在…