自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

这是一个c++热爱者的博客哟

这是一个c++热爱者的博客哟

  • 博客(243)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++11 并发指南九(综合运用 C++11 多线程下生产者消费者模型详解)

前面八章介绍了 C++11 并发编程的基础(抱歉哈,第五章-第八章还在草稿中),本文将综合运用 C++11中的新的基础设施(主要是多线程、锁、条件变量)来阐述一个经典问题——,并给出完整的解决方案。

2023-01-29 13:07:15 3971

原创 C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)

前面三篇文章《C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)》、《C++11 并发指南六( 类型详解二 std::atomic )》、《C++11 并发指南六(atomic 类型详解三 std::atomic (续))》都是采用 C++ 的方式介绍原子对象,本节我会给大家介绍 C++11 原子操作中 C 风格的 API。

2023-01-29 13:04:50 4147 1

原创 C++多线程07:thread_local

thread-local storage 和static(或者说global) 存储很类似,每一个线程都将拥有一份这个数据的拷贝,对象的生命周期从线程开始时开始(对于全局变量),或者首先分配空间。当线程退出的时候对象析构;一般在声明时赋值,在本thread中只执行一次。当用于类成员变量时,必须是static的。C++11 thread_local用法 - 知乎 (zhihu.com)存储类说明符 - cppreference.com。

2023-01-20 15:47:40 2799

原创 3C++内存管理详解(三)

class Testpublic:Test() //构造函数:_a(0)cout

2024-04-07 22:43:02 837

原创 2C++类和对象(二)

/类体:由成员变量和成员函数组成 };//注意后面的分号其中class为定义类的关键字,className为类的名字,{}中为类的主体,注意定义结束时加上后面的分号。类中的元素称为类的成员:类中的数据称为类的属性或者成员变量,类中的函数称为类的方法或者成员函数。1、声明和定义全部放在类体中。需要注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。2、声明放在头文件(.h)中,定义放在源文件(.cpp)中。注意:一般情况下,更期望采用第二种方式。

2024-04-07 22:42:31 1035

原创 1C++入门基础(一)

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机,20世纪80年代,计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此,C++是基于C语言而产生的,它既可以进行。

2024-04-07 22:41:54 726

原创 kylin v10 配置 rime 输入法

找到 ibus 首选项,选择 输入法 ————》 添加 ————》 中文 ——————》 rime .网上选择 一个 rime 方案(雾凇 rime)将文件全部复制到这个rime 文件夹下。

2024-02-20 16:44:07 261

原创 Linux Rootkit实验|0201 基本功能之Root后门

内核中的事情,真的是要细心。顺着FreeBuf的文章往下看时,这个地方少分配了一个尾零。事实上应该是另外注意,是:个人以为rootkit应该提供一个能够远程连接的root shell(对于内网的机器,用reverse shell是不是更好),并具备痕迹清理、自我删除甚至更强的反取证功能(另外,是否需要隐藏当前登录用户?

2024-02-03 10:59:16 828

原创 Linux Rootkit实验|0200 基本功能之阻止模块加载

感觉Linux kernel虽然是用C写的,但有很鲜明的面向对象的特点。尤其是在结构体中嵌入函数指针作为成员,几乎就是类+方法的翻版。带着这种背景观点去探索源码可能会好一些,你看到某些结构体,可以猜测它们会不会有对应的一些方法。从探索模块加载过程的旅程来看,阅读内核源码没有想象中的难,也并非枯燥,而是充满了乐趣,也许是因为带着问题去探索吧。我们注意到,上面的通知处理函数使用了锁机制。这是内核编程中经常需要注意的。

2024-02-03 10:57:59 1131

原创 Linux Rootkit实验|01 基于修改系统调用表的Hook

配合着源码在线阅览,边做边能查到内核代码的感觉非常棒。本次实验中的比第一次实验中的grep要方便许多。实验过程中深感自己学识浅薄,静水流深呐。一个朋友在FreeBuf文章下评论说:“写得不错。但获取sys_call_table的地址对hook这一大目标并没有起到多大作用,甚至是多余的。”后来他又说:“回复有所歧义,说不需要知道sys_call_table的地址是针对2.6以前的内核版本,之前的版本可以直接引用sys_call_table变量,多谢提醒!

2024-02-03 10:56:08 975

原创 Linux Rootkit:内核 5.7+ 的新方法

我们无法轻松地将符号名称解析为内存地址,这意味着我们无法使用 ftrace 挂钩函数(回想一下,我们使用 ftrace 来注册当等于。,他们可以随心所欲地使用任何其他导出的内核函数。获取我们想要挂钩的函数的地址。这是一个非常简单的修复,但说明了一种在不破坏现有支持的情况下处理此类更改的好方法。尽管共享相同的名称,但存储库中实际上有两个略有不同的文件。值得注意的是,截至撰写本文时,可用于 Ubuntu 20.04 的最新内核是。当然,如果我们不是在内核 5.7+ 上进行编译,那么这些都不会触发,并且。

2024-02-03 10:55:20 812

原创 Fancy Bear 是一名伐木工人,没关系 - 深入了解 Drovorub 的内核组件

我认为这是一个广泛的、内核范围的决定,如果采取不同的做法,将会产生很多影响(如果您知道确切的原因,请告诉我!示例中所做的那样) - 尽管我将内核对象硬编码为可执行文件中的数组,但没有理由不能通过相反,这样就不会在文件系统上的任何地方留下内核模块的残余。可悲的是,这只是我的猜测。用户态进程的 PID 很可能作为附加数据的一部分传递给任何需要某种输出的命令(至少在我看来这是有意义的,但我在这里完全猜测)。在这篇文章中,我想介绍一下该内核模块使用的一些技术,以及它与我们在其他文章中已经介绍过的技术的关系。

2024-02-03 01:01:53 598

原创 9隐藏登录用户(无需接触磁盘即可修改文件内容)_Linux_Rootkit.md

通常,每个用户只有其中一个(尽管不一定),并且仅真正用于生成显示驱动程序(X、Wayland 等),或者如果您实际位于服务器上,则仅用于登录会话本身。如果我们得到匹配,那么我们可以继续分配一个内核缓冲区,调用真正的系统调用,并将填充的用户空间缓冲区复制到内核缓冲区中。在直接开始编写内核模块之前(此时,我仍然不确定如何在不覆盖此文件的情况下隐藏用户),我决定编写一个用户空间工具来解析此文件以掌握它的含义布局。(最后一个参数是一个偏移量,我们可以在上面看到它从(文件的开头)开始,并在每次读取时递增。

2024-02-03 00:57:29 1072

原创 8隐藏开放端口_Linux_Rootkit.md

完成上述所有内容的目的是为了说明了解如何构建这些模块所需的内核源代码的研究。源代码告诉我们,这个特定的结构是“套接字的网络层表示”——这听起来就像我们所追求的!并不是真正的文件,而是由内核中分配给不同 IO 操作(打开/关闭/读/写/等)的函数定义的。我们的钩子需要做的就是检查监听端口是否等于我们想要隐藏的端口,如果是则返回,如果不是则。这成为我们的目标,因为如果我们可以控制它,那么我们就可以控制(以及其他类似的)请注意,我们实际上并没有触及内核中的内部套接字表,因此连接的功能完全没有受到损害!

2024-02-03 00:53:52 789

原创 7隐藏进程_Linux_Rootkit.md

因此,我们需要想出一种方法来告诉我们的模块我们想要隐藏哪个 PID。一旦我们将内核模块的其余部分(Ftrace 等)放在一起,我们就可以构建它并尝试它。因此,如果我们隐藏带有我们想要保密的 PID 名称的目录,那么这些用户空间工具将不会注意到该进程的存在!希望您喜欢这个 - 它比平常短一点,但这只是因为这里没有太多新内容,只是我们已经介绍过的技术的巧妙组合。现在我们可以告诉 rootkit 我们想要隐藏哪个 PID,我们必须真正隐藏它!具有我们要隐藏的 PID 名称的文件或目录。),我们还可以隐藏进程!

2024-02-03 00:51:54 549

原创 6隐藏目录_Linux_Rootkit.md

此时,我们意识到我们必须将自己的缓冲区分配到内核空间,在那里修改它,然后将其复制回来(就像第。它仍然在内核中,但由于它不在标头中,因此您的模块将无法构建。(我们希望挂钩两者,但除了 32 位版本中的一小部分添加之外,它们是相同的)。这很有用,因为它让我们可以轻松地跳过内存中的这些结构来查找我们想要的内容。我们需要弄清楚的最后一件事是如何让系统跳过我们发现的以前缀“boogaloo”开头的任何条目。)就像我们一样循环遍历条目,它们将到达我们想要隐藏的条目之前的条目,并且当它将其循环变量增加。

2024-02-03 00:46:30 622

原创 5从用户空间隐藏内核模块_Linux_Rootkit.md

事实上,我们的 Rootkit 仍在运行,这意味着我们仍在内存中,任何形式的内存分析或具有远程能力的 DFIR 专业人员都会很快发现我们(特别是使用“rootkit”之类的名称四处走动!列表中的每一项都不知道自己在大局中的位置,只知道谁在前面,谁在后面。结构作为字段包含在另一个结构中,该结构保存我们链接在一起的对象,更容易且更易于管理。事实上,在我们的内核模块中,我们可以通过查看指向和模块的指针来找出列表中哪些模块在我们之前/之后。请注意,在上面的内核源代码片段中,结构中没有条目或类似内容。

2024-02-03 00:44:57 715

原创 4通过干扰 Char 设备为 PRNG 添加后门_Linux_Rootkit.md

如果我们这样做,我们会看到每次迭代时抛硬币的比例都会改变,但每次运行时都会给出相同的数字!所有系统调用都是如此,但是由于我们的目标都不在系统调用表中,因此我们最好手动检查。正如之前的帖子中提到的,这是通过查看以下内容来完成的。我们已经大大减少了可用的随机性(在这个特定的统计数据的情况下,我们已经将其减少到零!,它有 2 个参数;我们真的应该首先了解一下读取是如何完成的——特别是如果我们想介入这些读取并干扰它们的话!这个函数的内部结构相当不重要,因为我们最终的钩子无论如何都会通过完整调用这个函数来开始。

2024-02-03 00:42:32 990

原创 04 模块基础 隐藏模块

sysfs 与 procfs 相类似,同样是一个基于 RAM 的虚拟文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用,其中便包括我们的 rootkit 模块信息,sysfs 会动态读取内核中的 kobject 层次结构并在。简单测试,我们可以发现无论是在 procfs 中还是 sysfs 中都已经没有了我们的 rootkit 的身影,而提权的功能依旧正常,我们很好地完成了隐藏模块的功能。的身影,而提权的功能依旧正常,我们很好地完成了隐藏模块的功能。来获取当前内核模块的 module 结构体,

2024-02-03 00:38:30 747

原创 3Root 后门_Linux_Rootkit.md

找到一些相关代码,然后深入挖掘以找到事物的正确定义的过程会一次又一次地出现。部分,那么您就知道我们将如何使用 ftrace 进行挂钩,并且我们将为较新的约定以及 4.17.0 之前的版本。信号的这些名称实际上只是数字(正如您将看到的,内核中的许多东西都是这种情况)。正如这份文件告诉我们的,“一个任务只能改变自己的凭证,而不能改变另一个任务的凭证”。好的,如果您一直在关注,那么请完成您的 hook 和 ftrace 业务的其余部分(请参阅。内核源代码的副本- 这样,你就可以 grep 得到你想要的东西。

2024-02-03 00:35:35 573

原创 2Ftrace 和函数挂钩_Linux_Rootkit.md

首先,我们将看看旧的方法,因为它仍然适用于 Ubuntu 16.04 等发行版,并且一旦旧的方法有意义,新版本就更容易理解。好的,您已经构建了第一个内核模块,但现在您想让它做一些很酷的事情 - 比如改变正在运行的内核的行为。,那么您会发现每个系统调用都有一个分配给它的关联编号(这些编号实际上相当灵活,并且会因不同体系结构和内核版本而异,但幸运的是,我们提供了用一堆宏来帮助我们摆脱麻烦)。,我们只需要自己模仿这个函数声明(一旦我们将钩子放在适当的位置),我们就可以按照我们喜欢的方式使用这些参数。

2024-02-03 00:31:02 683

原创 1简介和工作流程_Linux_Rootkit.md

那么,内核 rootkit 到底有什么作用呢?维基百科将 rootkit 定义为:“Rootkit 是计算机软件的集合,通常是恶意的,旨在允许访问计算机或其软件的某个区域(例如,未经授权的用户),并且经常掩盖其存在或其他程序的存在。软件。当然,作为内核rootkit 意味着我们编写的代码将通过我们将编写的内核模块以内核级权限(ring 0)运行。

2024-02-03 00:28:57 897

原创 Linux 系统开始配置

关于在 Ubuntu 下移除 Snap 软件包做个总结,我想说的是这些处理 Snap 软件包的方法实属无奈。主要是这对新用户来说很困难。我希望这个指南能帮助你处理好 Snap 软件包。完结撒花。本文介绍了 6 个 zsh 插件,每个插件都有特定的场景用途,希望能给大家的日常工作提升效率。

2024-02-02 23:46:28 1052

原创 rime 输入法自定义配置教程

rime 输入法自定义配置教程安装自定义配置基础配置部署编译方案选择样式文件横排显示配色样式输入配置进阶配置字典配置字典获取颜文字输入符号模糊拼音高级配置时间组件Emoji英文输入的支持定制组件我的配置打开我们的Rime,使用过程中。你会发现,它应该是这样的:初始状态乍一看,有一些问题: - 样式复古,有点像以前上世界的界面?- 没有词库,操作一般为了进一步现代化。我们这里对其进行配置。默认情况下的配置文件(配置文件存放在配置目录下;文件注释核心配置、全局配置平台相关配置。

2024-02-02 23:21:48 1145

原创 卸载Ubuntu双系统

我们卸载无论出于哪种原因,我们都是要卸载干净它。下面教大家如何将Ubuntu系统卸载干净,让电脑磁盘重新回到安装前的清爽状态。

2024-02-02 23:13:34 1448

原创 CMake Msys2 搭配vscode

MSYS2(Minimal SYStem 2)是一个集成了大量的GNU工具链、工具和库的开源软件包集合。它提供了一个类似于Linux的shell环境,可以在Windows系统中编译和运行许多Linux应用程序和工具。MSYS2基于MinGW-w64平台,提供了一个完整的开发环境,包括GCC编译器、GDB调试器、Make、Git版本控制系统和许多其他开发工具。除了常用的开发库和工具之外,MSYS2还提供了许多专门针对Windows平台的库和工具,方便开发人员进行跨平台开发和移植工作。

2024-02-02 22:55:25 1783

原创 普通用户添加sudo权限

我们在Linux系统中经常需要根据不同的需求创建对应的新用户, 但是新用户作为一个普通用户, 权限是非常有限的,最后命令还是没能够执行, 原因是没有权限, 最后提示告诉我们, 因此我们只需要将用户sanji添加到这个文件中就可以了, 说干就干。

2024-02-02 10:30:35 453

原创 创建加密分区或者文件

现在,你已经在 GParted Live 环境中,可以使用 GParted 工具来管理你的磁盘分区,包括创建、调整大小、删除、格式化等操作。如果显示的输出大部分是不可读的字符和非打印字符,那么这通常表明文件已经被成功加密,并且在没有解密的情况下无法直接访问其原始内容。总的来说,关闭开机自动挂载后重启系统,会导致系统不再自动处理加密卷的解锁和挂载,你需要手动进行这些操作来访问加密卷上的数据。在系统启动过程中,如果一个加密卷没有设置为自动解锁和挂载,那么它会保持锁定状态,直到你使用正确的密码或密钥通过。

2023-12-28 18:58:26 1334 1

原创 firejail沙盒测试命令

需要注意的是,这个新的/bin目录只在Firejail的沙箱环境中存在,当沙箱关闭时,所有在这个目录中的修改都会被丢弃。列表中的文件和目录必须表示为相对于/opt目录的相对路径,并且不能包含/字符(例如,/opt/foo应表示为foo,但/opt/foo/bar – 表示为 foo/bar – 是不允许的)。列表中的文件和目录必须表示为相对于/srv目录的相对路径,并且不能包含/字符(例如,/srv/foo应表示为foo,但/srv/foo/bar – 表示为 srv/bar – 是不允许的)。

2023-12-27 14:14:45 614

原创 带你手把手解读rejail沙盒源码(0.9.72版本) (八) fnettrace-dns

DNS,全称。采用模式,DNS client发出查询请求,DNS server响应请求。DNS client通过查询DNS server获得主机的 IP 地址,进而完成后续的 TCP/IP 通信过程。当 Windows 系统用户使用命令时,DNS 会自动查找注册了主机名和 IP 地址的数据库,并返回对应的 IP 地址。

2023-12-19 16:47:12 962

原创 带你手把手解读rejail沙盒源码(0.9.72版本) (七) fnetfilter

如果一个进程是"可被核心转储"的,那么当它因为某种原因异常终止时,操作系统会自动或根据配置生成一个核心转储文件。是C编程语言中的一个函数,用于查找第一个字符串(称为“源字符串”)中不包含第二个字符串(称为“拒绝字符串”)中的任何字符的初始子串的长度。总的来说,这个函数主要用于在非root用户运行的进程中检测dumpable状态,并在必要时提供警告和调试信息,以增强系统的安全性。),如果是,则输出帮助信息并返回0。这段代码是用C语言编写的,主要功能是在给定命令和目标文件的情况下,根据特定条件处理它们。

2023-12-19 16:18:22 804 1

原创 ELF文件结构

可重定位文件需要包含描述如何修改节内容的相关信息,从而使可执行文件和共享目标文件能够保存进程的程序镜像所需要的正确信息。重定位表是进行重定位的重要依据。

2023-12-18 16:56:48 888

原创 带你手把手解读frejail沙盒源码(0.9.72版本) (六)fldd

这段代码是一个简单的C程序,主要用于解析ELF(可执行和可链接格式)文件,并输出其中包含的库文件列表。定义了一些全局变量和结构体。实现了一些辅助函数,如用于查找存储在链表中的元素,用于向链表中添加元素等。函数是整个程序的核心,它接收一个ELF文件路径作为参数,然后打开该文件并将其映射到内存中。接着,它遍历ELF文件的各个节区,寻找动态链接器、运行路径和需要的库文件等信息,并将这些信息添加到相应的链表中。函数负责查找给定库文件的实际路径,并递归地解析依赖的其他库文件。函数初始化默认的库搜索路径。

2023-12-18 16:22:44 900

原创 详细解读Linux网络命名空间,veth, birdge与路由

名称空间将全局系统资源包装在一个抽象中,使名称空间中的进程看起来拥有自己的全局资源的独立实例。对全局资源的更改对作为命名空间成员的其他进程可见,但对其他进程不可见。名称空间的一个用途是实现容器。(摘录自中对namespace的介绍)Namespace是Linux提供的一种对于系统全局资源的隔离机制;从进程的视角来看,同一个namespace中的进程看到的是该namespace自己独立的一份全局资源,这些资源的变化只在本namespace中可见,对其他namespace没有影响。

2023-12-15 18:28:12 1315

原创 带你手把手解读firejail沙盒源码(0.9.72版本)(四)fnet()

根据您提供的信息,fnet文件夹包含五个代码文件:arp.c、interface.c、veth.c、 和 macvlan.c。这些文件共同实现了一个用于管理网络接口的工具集。arp.c - 这个文件主要负责ARP扫描功能,即通过发送ARP请求包来获取网络中的其他设备的信息(IP地址和MAC地址)。它会创建一个RAW套接字,然后发送一系列的ARP请求包,并监听返回的响应包。interface.c - 这个文件包含了多个函数,用于管理和配置网络接口。例如,它可以添加虚拟以太网设备到网桥中,将接口设置为“UP”状

2023-12-15 18:22:53 699

原创 带你手把手解读firejail沙盒源码(0.9.72版本) (三) fcopy

这个main.c程序的功能是复制文件和目录。它提供了一个命令行工具,可以将源路径下的所有文件和子目录递归地复制到目标路径下。它支持以下功能:静默模式:通过环境变量可以启用静默模式,在此模式下,不会显示任何警告信息。详细模式:通过环境变量可以启用详细模式,在此模式下,会显示状态消息。复制大小限制:通过环境变量可以设置复制文件的大小限制,超过该限制的文件将被忽略。跟踪符号链接:当指定选项时,将跟踪源路径中的符号链接,并复制它们指向的实际文件或目录。

2023-12-14 17:04:42 1102

原创 带你手把手解读firejail沙盒源码(0.9.72版本)(三) etc-cleanup

然后在输出缓冲区中添加 “private-etc” 标志和可能存在的组名 “@games”、“@tls-ca” 和 “@x11”。程序首先检查参数数量,如果不足,则显示帮助信息并退出。分别用于记录在 “private-etc” 条目中是否出现过特定的组名 “@tls-ca”、“@x11” 和 “@games”。当遇到以 “private-etc” 开头的行时,程序会解析后面的条目,并根据条目的内容更新全局数组。文件),处理其中的 “private-etc” 条目,并将它们按组分组并进行排序。

2023-12-14 17:01:37 940

原创 带你手把手 解读 firejail 沙盒源码(0.9.72版本)之 bash_completion组件 (二)

这四个文件一起构成了一个 Bash 自动补全功能的实现。以下是它们各自的作用:1. `Makefile`: 这是一个 Makefile 文件,用于管理 `firecfg.bash_completion`、`firejail.bash_completion` 和 `firemon.bash_completion` 的生成和清理。通过执行 `make` 命令可以生成这些补全脚本。

2023-12-12 17:02:10 349

原创 带你手把手 解读 firejail 沙盒源码(0.9.72版本)目录和组件 (一)

Firejail 是一个用于 Linux 系统的安全工具,它通过创建轻量级的沙箱环境来运行应用程序。这种沙箱环境将应用程序与系统其余部分隔离,限制了应用程序对系统的访问权限,从而增强了系统的安全性。Firejail 通过利用 Linux 内核的多个安全特性来实现其功能,包括命名空间、seccomp-bpf 和用户/组标识符映射等。这些技术使得 Firejail 能够在不修改操作系统或应用程序代码的情况下提供强大的安全保护。

2023-12-12 16:57:58 1026

原创 指针,函数指针,二级指针,指针传参,回调函数,指针步长

在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的内存单元,可以说地址指向该内存单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。这是官方对指针的定义,其实我们可以理解为:在内存中,内存被细分为一个个大小为一个字节的内存单元,每一个内存单元都有自己对应的地址。我们可以将这些内存单元形象地看成一个个的房间,将内存单元(房间)对应的地址形象地看成房间的门牌号。

2023-12-11 15:00:09 1045

SELinux:为任何Linux环境带来世界级的安全性! SELinux为Linux/UNIX集成商、管理员和开发人员提供了最

SELinux:为任何Linux环境带来世界级的安全性! SELinux为Linux/UNIX集成商、管理员和开发人员提供了最先进的平台,用于构建和维护高度安全的解决方案。既然SELinux已经包含在Linux 2.6内核中,并且默认情况下在Fedora Core、Red Hat Enterprise Linux和其他主要发行版中提供,那么利用它的好处比以往任何时候都要容易。 SELinux by Example是在生产环境中使用SELinux的第一个完整的实践指南。由三位领先的SELinux研究人员和开发人员撰写,它阐明了使用SELinux的各个方面,从其架构和安全对象模型到其策略语言。这本书彻底解释了SELinux示例策略-包括强大的新参考策略-展示了如何快速地使它们适应您独特的环境。它还包含一个全面的SELinux策略语言参考,并涵盖了Fedora Core 5和即将推出的Red Hat Enterprise Linux版本5中令人兴奋的新功能。 ·彻底理解SELinux的访问控制和安全机制·使用SELinux从头开始构建安全系统·获得对内核资源的细粒度控制·为类型强制、角

2024-01-16

SELinux by Example

1.内核策略语言部分旨在作为内核策略语言语句和规则的参考,并附有来自参考策略源的支持示例。此外,政策 DB 第 32 版的所有语言更新都应包含在内。如需更详细的策略语言解释,推荐阅读《SELinux by Example》一书。 《SELinux by Example》是一本专为理解和实践Security-Enhanced Linux(SELinux)安全模型而编写的指南性书籍。SELinux是Linux内核中的一个强制访问控制(MAC)系统,用于增强操作系统的安全性。 这本书通常会深入浅出地介绍SELinux的基本概念、架构以及如何配置和管理SELinux策略。书中通过实例和实际应用场景来帮助读者掌握SELinux的工作原理,内容可能包括: 1. **SELinux基础知识**:介绍SELinux的历史背景、目标、基本术语及工作模式(如`enforcing`、`permissive`和`disabled`)。 2. **策略构建与管理**:详细阐述如何创建、安装、更新和调试SELinux策略模块,使用工具如`semodule`、`checkpolicy`、`audit2all

2024-01-16

SELinux Notebook 是一本关于 SELinux 的开源书籍,最初由 Richard Haines创建并捐赠给 SE

SELinux Notebook 是一本关于 SELinux 的开源书籍,最初由 Richard Haines创建并捐赠给 SELinux 社区。该笔记本的目标是成为有关 SELinux 的最新、最全面的书籍,涵盖 Linux 内核组件、用户空间库和工具、策略工具链以及策略本身。 SELinux Notebook 是免费提供的,欢迎并鼓励社区做出贡献! 为 SELinux Notebook 做出贡献 直接在 GitHub 上查看笔记本 SELinux Notebook 有多种不同的格式,包括可以直接在 GitHub 上查看的在线格式,一次查看一个部分,从以下链接开始: SELinux 笔记本 离线查看笔记本 虽然 SELinux Notebook 是一本不断更新的活书,但我们偶尔也会发布具有各种格式的预构建版本的新版本,这些版本可以下载和离线阅读。我们的发布页面包含有关每个版本以及预构建笔记本的更多信息: https://github.com/SELinuxProject/selinux-notebook/releases 构建您自己的 SELinux 笔记本 BUILD.md

2024-01-15

第四章套接字通信博客的有图案的版本

博客上传本地图片太麻烦了,直接整了个pdf,大家结合博客一起看吧

2023-11-01

python Django web 联通用户管理系统实训代码

类似于客户管理系统,实现对管理员账户 部门账户 用户账户 靓号账户 任务发布 的增删查改,实现导入导出excel数据,生成pdf, 上传图片媒体资源。用户登录期间,随机图片验证码验证,登录账号的Cookie,Session保存。在增删删改期间,实现了 Ajax 页面无刷新上传数据。 在浏览数据信息方面,实现了模块级别的分页查询,实现了 e-chart 的数据可视化。在存储数据方面实现了md5 加密存储数据。Django 优点 1. 高度集成化:Django包含了很多常用功能,如自动化ORM系统、Form系统、Cache系统、Routing、Middleware、Template系统等,这样就能够很方便的使用这些功能,不需要自己来实现这些底层的功能。 2. 自动化Admin管理站点:Django自带一个基于Web的Admin管理站点,无需自行开发,可快速完成对模型的管理。 3. 强调面向对象编程思想:Django强调对模型、视图、控制器的封装,让开发人员更关注业务开发本身而不是技术层面,使代码结构更清晰。 4. 安全性较高:Django带有一些内置安全性功能,如防止跨站脚本攻击、C

2023-06-16

python Django web 实训项目的实验报告

python Django web 实训项目的实验报告 类似于客户管理系统,实现对管理员账户 部门账户 用户账户 靓号账户 任务发布 的增删查改,实现导入导出excel数据,生成pdf, 上传图片媒体资源。用户登录期间,随机图片验证码验证,登录账号的Cookie,Session保存。在增删删改期间,实现了 Ajax 页面无刷新上传数据。 在浏览数据信息方面,实现了模块级别的分页查询,实现了 e-chart 的数据可视化。在存储数据方面实现了md5 加密存储数据。 静态文件存放在 pms/app1/static Html文件存放在 pms/app1/template 验证码模块 md5加密模块 分页模块 bootstrap模块 form 模块在 pms/app1/utils Models 文件存放在 pms/app1/ Form上传的图片文件 存放在 pms/app1/city ModelForm 上传的图片 存放在 pms/app1/media Xxx.py 文件存放在 pms/app1/views Django 优点 1. 高度集成化:Django包含了很多常用功能,如自动化OR

2023-06-16

《C++17 完全指南》

本书为《C++17 the complete guide》(第一版) by Nicolai M. Josuttis的个人中文翻译版, 仅供学习和交流使用 C++17是现代 C++编程中的下一个版本,最新版本的gcc、clang和 Visual C++ 都至少已经部分支持它。尽管 迁移到 C++17 并不像迁移到 C++11一样是一个巨大的变化,但 C++17也包含了非常多很小但却很有价值的语言 和库特性。它们再一次改变了我们使用 C++编程的方式,无论是对应用程序员还是提供基础库的程序员来说都 是如此。

2023-01-21

MSVC C++ STL 源码解析系列.md

MSVC C++ STL 源码解析系列.md

2023-01-10

C# Asp MVC 五层 .net 学生管理系统main.tar

这套源码 适合毕业设计和课程设计,因为有足够的注释 ,所以理解简单。采用五层架构 ,符合高内聚,低耦合的设计规范。课程设计书里有 软件测试。 一.导入数据库 数据库文件一般在Data、DB或者App_Data文件夹内 有两种方法导入数据库,任选其一即可: 1.用sqlserver打开XXX.sql脚本,然后执行脚本,即可自动创建数据库。 2 用sqlserver附件mdf文件(此方法有版本限制,某些低版本sqlserver可能出现无法附件的情况)(推荐此方法) 二.运行项目 1.修改链接字符串 链接字符串在web.config文件内,一般使用默认配置即可无需修改, 修改也很简单,将你的数据库服务器名复制进来,替换掉链接字符串里的服务器名即可(就是这个点号)。操作请看图:。 2 用VS打开解决方案文件(即.sln文件),如果没有解决方案文件,就用VS打开网站,运行即可。如果运行起来后,没有自动显示页面,则需设置默认启动项,右键某个你想设置的.aspx文件,在弹出的界面中点击“设为启动项”即可,然后重新点击运行。

2022-09-13

网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"==

网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"== “重载.pdf 构造函数可以调用虚函数吗, 析构函数可... 后置加加(1).pdf 后置加加.pdf 网将模板声明为友元.pdf @静态数据成员(1).pdf 静态数据成员.pdf 拷贝构造函数.pdf 类的继承.pdf 类的组合.pdf 模板.pdf 模板的特化(具体化) .pdf 前置加加重载(1).pdf 前置加加重载pdf 國浅拷贝与深拷贝.pdf 输入输出函数重载(1).pdf 输入输出函数重载pdf 画委托构造函数.pdf 析构函数.pdf 虛表.pdf 网虛函数和多态.pdf 网虚析构函数.pdf 网友元函数(1).pdf 國友元函数.pdf 运算符重载(1).pdf 运算符重载pdf 指针函数和函数指针.pdf 网重载赋值号的问题?为什么不能自赋值1...

2022-07-21

this指针的笔记呀呀呀呀

this指针的笔记呀呀呀呀

2022-07-21

git reset 的三个参数.pdf

1.--soft: 仅仅移动本地库 原先是统一战线的,git reset --soft 版本号 如果是后退了,相当于 工作区、暂存区 前进了 如果是前进了,相当于 工作区、暂存区 后退了 这个时候 git status 会根... 2.--mixed:本地库和暂存区否会变 git reset --mixed 版本号 如果是前进 相当于工作区自己后退了 如果是后退,相当于工作区前进了 此时git status,也会相应的发生变化,比如 变红色、变绿色等

2022-06-13

C#实现的学生管理系统,期末实训报告

含有sql脚本,和期末实训报告。目 录 第一章 学生信息管理系统概述 1.1 系统的主要功能 1.2 设计方法概述 1.3 学生信息管理系统的现状分析 1.3.1 学生信息管理系统应用的现状 1.3.2 管理系统开发的目的 第二章 系统开发平台 2.1 数据库系统的选择 2.2 系统开发工具的选择 第三章 系统框架设计 3.1 系统开发梗概 3.2 系统开发的步骤 3.3 系统的逻辑体系结构 第四章 系统概要和数据库设计 4.1 系统功能模块图 4.2 功能的说明 5.1 数据库及表的设计 5.2 数据库中的数据库关系图 5.3 数据库中存储过程的设计 5.3.1 存储过程的含义 5.3.2 存储过程的应用 第五章 系统详细设计及实现 5.4 系统模块设计 5.4.1 主窗口的设计 5.4.2 查询 5.4.3 密码修改 5.4.4选修课选课 第六章 开发系统遇到的问题和获得的经验 6.1 系统开发过程中遇到的问题 6.1.1 数据库连接 6.1.2 数据库中的表设计 6.1.3用户权限问题 6.2 从系统开发中获得

2022-05-15

QT学生管理系统的数据库文件(SQLLite)

和学生管理系统配套使用

2022-04-28

qt学生信息管理系统(含有数据库源码)

qt学生信息管理系统(含有数据库源码)

2022-04-28

makefile 文件编写

makefile 文件编写

2022-04-05

mysql 基础 进阶 运维

我自己做了个学习笔记,放在网上,大家也可以参考参考,不算特别详细但是老师讲到的知识点都记录下来了,欢迎大家观看

2022-03-20

Linux教程.zip

Linux教程.zip

2022-03-20

群主-SQL.pdf

群主-SQL.pdf

2022-03-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除