- 博客(587)
- 资源 (32)
- 收藏
- 关注
原创 拜占庭算法
拜占庭算法是一种用于解决分布式系统中由于各个节点的不可靠性和网络的不稳定性从而导致节点间可能存在的信任问题的算法,它可以保证在一定条件下,即使有部分节点出现故障(不发送消息)或者作恶(只发送相反的消息)的情况下,仍然可以让各个节点之间达成一致的共识。
2023-10-11 20:27:10
764
原创 命令执行|待
popen()函数调用fork函数用创建管道的方式启动一个进程,并调用shell. 因为管道是被定义成单向的, 所以type参数只能定义成只读或者只写, 不能是两者同时, 结果流也相应的是只读或者只写。用fork函数创建新进程后,经常会在新进程中调用exec函数去执行另外一个程序。system可以看做是fork+execl+waitpid,system在执行完后会返回到原程序中继续执行后面的代码,不会直接退出。popen()函数的返回值是一个普通的标准I/O流, 它只能用pclose()函数来关闭。
2023-10-11 12:35:37
314
原创 centos7下安装openssl开发环境
执行make、make install,编译Openssl。设定Openssl安装。切换openssl版本。
2023-09-11 15:25:44
428
原创 调用libssl库函数,静态编译报错问题解决,最后做到可移植
加上static选项就报错,猜测可能是没有静态库的软连接?按照网上的一些解决方案没成功。能生成可执行文件,放到其他机器上报错如下,这里默认的是动态链接,没有做到可移植。上面命令去掉static也报错。按照网上的解决方法也没解决。
2023-09-08 16:19:41
343
原创 【云计算•云原生】5.云原生之初识DevOps
一个软件周期中是由这两个团队相互协作完成的,开发人员写好一部分功能后交给运维人员,就需要等带运维人员的反馈,导致延长软件开发周期。DevOps 工具链主要有两种形式:一体式或开放式的工具链。开放式工具链可以根据团队的需求使用不同工具进行定制。持续反馈包括定期收集反馈的文化和流程,以及从反馈中获取洞察信息的工具。主要是对产品进行设计,工具有:Jira Product Discovery, mural, miro。DevOps核心就在于简化Dev和Ops两个团队之间的工作流程,让软件的整体开发过程更加快捷。
2023-09-02 13:40:35
1952
原创 【云计算•云原生】7.play with kubernetes在线实验环境
play with kubernetes网站链接每次登录提供4小时在线实验环境,最多可以开5个节点。
2023-05-10 09:00:00
1648
1
原创 【云计算•云原生】5.云原生之初识OpenStack
*它本质上是OpenStack云的所有用户的中心列表,映射到云提供的所有服务,这些服务是用户有权使用的。为公有云及私有云的建设与管理提供软件的开源项目,覆盖了网络、虚拟化、操作系统、服务器等各个方面。与传统的通过磁盘驱动器上的位置来引用文件的想法不同,开发人员可以使用唯一标识符来引用文件或信息,并让OpenStack决定在哪里存储这些信息。它还保留了每个用户对OpenStack云的每个不同组件的系统使用情况的可验证计数。在数据访问速度是最重要的考虑因素的场景中,这种更传统的访问文件的方式可能很重要。
2023-05-06 11:14:23
1452
1
原创 【云计算•云原生】4.云原生之什么是Kubernetes
微服务上线时根据不同服务需要有一些可变配置,为了实现对微服务各个节点的灵活配置,k8s内置支持微服务的配置configmap,将配置信息写入configmap,然后configmap以环境变量的方式注入到pod中,pod中的容器可以访问这些配置。这样两层可以实现POD 在集群之间的网络连接。kubelet: 与master节点上API server交互,负责管理worker节点上的组件,运行在集群中每个节点node上。一个工作节点可以有多个 pod,主节点会考量负载自动调度 pod 到哪个节点运行。
2023-04-30 11:04:42
3847
原创 【云计算•云原生】3.一小时熟练掌握docker容器
docker是一个开源的应用容器引擎,可以让开发人员把编写好的代码和运行代码所需要的环境打包进一个容器里,通过移植容器可以避免多次搭建环境以及代码在一台机器上可以运行而到了另一台机器上因环境问题报错。区分镜像和容器用户基于镜像来运行容器,可以把镜像和容器类比成类和对象docker、dockerfile与docker-compose区别docker是一个可以基于镜像创建容器的软件dockerfile把手工安装docer镜像的过程变成一个配置文件脚本,以后只需要运行这个文件就可获得所需环境。
2023-04-27 08:00:00
1373
原创 [Golang从零到壹] 2.快速掌握基础语法
golang官网API文档官网页面 => Packages => 输入要搜索的函数或者包(例如fmt包) => Index栏中找 => Example查看代码示例golang的特点go语言一个文件要归属一个包内存自动回收机制,不需要像C一样malloc之后还得free天然并发,go就出名在高并发的支持上函数可以返回多个值程序执行入口为main函数多条语句不能写在同一行golang中数据类型不能自动转换不支持默认值参数,不支持函数重载golang源码的编译。
2023-04-25 16:12:01
483
原创 【云计算•云原生】2.云计算环境下的新趋势—云原生
按照自己的理解,可以将云原生拆分成云+原生,云就是上一节中的云计算的云;原生即为诞生的环境。而云原生又是在云计算的基础上发展起来的。可以解释:云原生是基于微服务的架构而开发的应用业务,在开发的最开始就按照微服务架构进行开发和部署,即以容器的方式进行打包、上云,并由云基础设施进行调度和管理。云原生架构有两个核心:一是应用要以微服务方式构建;二是在应用要面向容器部署。
2023-04-25 11:30:00
907
1
原创 【云计算•云原生】1.什么是云计算?它为什么这么火?
按照自己的理解,云计算中的计算并不是就指代单纯的计算,就好像计算机并不是只算数,还用来上网玩游戏啥的。而云指的就是互联网和虚拟。那么云计算指的是将一个资源非常强大的物理机或者是一些分散的物理机集群起来,用虚拟化的技术做成不同类别的资源池,比如cpu资源池、磁盘存储资源池、带宽资源池等。而用户可以根据自己的需求定制自己需要的各类资源从而构成一个虚拟出来的计算机,以共自己使用。再说通俗一点就是普通用户在云服务提供商买一台云服务器,或者企业买一套云产品。但是从云服务提供商角度来讲云计算技术还包括它的实现。
2023-04-24 13:43:12
1145
原创 [渗透测试笔记] 56.日薪2k的蓝队hw中级定级必备笔记系列篇4之面试必备web中间件漏洞汇总
如果请求中包含Range头,Nginx会根据指定的start和end位置,返回指定长度的内容。假设静态文件存储在/home/目录下,而该目录在url中名字为files,那么就需要用alias设置目录的别名,url上/files没有加后缀/,而alias设置的/home/是有后缀/的,所以我们访问**/files…[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k7zoauKe-1681796686186)(images/a%20(2)]-16494699626843.png)
2023-04-18 13:46:08
775
原创 [Golang从零到壹] 1.环境搭建和第三方包管理
我们的依赖下载完成后是存储了 $GOPATH ⽬录下的,如果有特殊需要,需要将 GOPATH 下的依赖转移⾄该项⽬根 ⽬录下的 vendor(⾃动新建) ⽂件夹下,可以使⽤该命令。然后需要在GOPATH目录下创建如下目录,以后会自动用到这些目录,go最原始的是这样,但是现在这三个文件夹用处改变了,但是为了安全起见还是创建这三个文件夹。,但是这样比较慢了,可以用go的第三方包管理器go module来做,这也是现在高版本的go的做法。下面,然后在取消goproxy,这样项目中的文件就可以导入包了。
2023-03-30 22:30:16
608
2
原创 [渗透测试笔记] 53.日薪2k的蓝队hw中级定级必备笔记2
漏洞原理,shrio提供记住密码的功能,其过程有aes加密环节和反序列化环节,1.2.4以下版本使用了默认密钥,构造恶意payload,可以触发反序列化漏洞。RCE是远程代码执行,出现这种漏洞的情况一般是服务端设计上提供了可以执行远程命令的接口。使用方法是填上一个链接直接扫描,在请求的url、headers、body中随机包含了能代表自己特征的信息。同样在url、headers、body中随机包含自己的特征。thinkphp的rce就是在未开启强制路由的情况下调用任意类的任意方法导致远程代码执行。
2023-03-06 22:08:12
1030
原创 pyinstaller打包项目成绿色软件
packagelab是项目路径下自定义个的一个文件夹的名称,用于存放虚拟环境。成功后在项目路径下dist文件夹下包含了生成的exe和各种依赖文件。目的是为了保持打包环境的干净,避免引入其他的无关的库,导致包过大。dist目录下的文件夹可以直接发布,相当于一个绿色软件了。如果运行报错找不到ui文件的话,参考。
2023-03-06 19:41:34
229
原创 [系统安全] 虚拟化安全之虚拟化概述
虚拟机自省要实现对虚拟机内部的细粒度监视,必须从外部确定虚拟机中哪块区域是有意义的,这块有意义区域被安放在宿主机物理内存的哪个地方,这个地方存储的是任意数量的01组合,如何将其还原成在虚拟机中看来是有语义含义的字符序列或数据结构。页表初始化的过程:最开始的时候用户态物理内存为空,当有进程开始执行时,就会开始访问虚拟内存,由于此时的虚拟页并没有映射到物理页帧,因此会触发缺页中断,然后从物理页中申请页,并分配给虚拟页,进而建立虚拟页和物理页帧之间的映射关系,同时填充页表项。然后为此虚拟地址分配新的物理页。
2023-02-26 16:50:27
666
1
原创 [渗透测试笔记] 55.浅谈漏洞相关名词解释
Common Vulnerability Scoring System,通用漏洞评分系统,被设计用来评测漏洞的严重程度,并帮助确定所需反应的紧急度和重要度。是中国国家信息安全漏洞库,英文名称“China National Vulnerability Database of Information Security。CVE是一个公开已知的网络安全漏洞和暴露的列表,方便链接来自漏洞数据库的信息。CVE指的是产品或系统内漏洞的特定示例。而CWE指的是软件缺陷的类型。给出了cvss的3.0和3.1版本的评分。
2023-02-21 21:53:46
354
原创 移动端自动化python使用appium包登录qq
听标题挺高大上的,其实内容还是脚本小子的高度。。。为了写个月报一下午抓紧学点东西,好凑点字数,汗。。。为啥学这个内容,因为找内容的时候翻csdn翻到一个自动抢红包的,就是用的这个技术,前面实验挺好,到后面登录微信的时候先是微信密码忘了,后来又找不到ui控件的标识,到饭点了,不搞了。。。
2023-01-11 17:44:10
622
1
原创 Centos7安装MariaDB数据库
centos和kali一样内置了mariadb数据库,这是mysql的一个分支,用起来和mysql基本一摸一样,但是直接。根据报错信息去找这个文件发现根本就没有,那就重装一次吧。安装后初次进入,密码为空,直接回车就可以。然后提示设置密码和允许远程登录等等。如果有的话就挨个卸载了。安装新的mariadb。
2022-12-20 12:57:37
208
1
原创 SecPod:基于虚拟化的安全系统框架
页表没有从脆弱的内核中隔离出来=> 导致内存保护需要监视guest页表的每次更新,这和硬件虚拟化支持的最新进展相冲突=> 提出SecPod:一个基于虚拟化的安全系统的可扩展框架,它可以提供强大的隔离和与现代硬件兼容。paging delegation: 将分页委托给安全空间executeion trapping: 截获企图滥用特权指令来推翻SecPod的内核尝试目前已经实现了基于KVM的SecPod的原型。
2022-11-24 16:15:52
993
1
原创 为了买个硬盘,我专门写了篇笔记
B+M键:使用上述两个间隙,在卡的左侧有五个销,在右侧有六个销。由于物理设计的原因,B+M钥匙卡仅限于PCIe x2速度。M键:在卡的左侧有一个间隙,间隙的左侧有五个引脚。B键:在卡的右侧有一个间隙,间隙的右侧有六个插针。插槽接口不影响传输速度,但是插槽接口不适配的话是肯定插不到电脑上的。SATA总线+AHCI协议,这是普通的SATA3, 速度大约550MB/s;SATA总线+AHCI协议,这是普通的SATA3,速度大约550MB/s;M.2卡槽接口可以走的总线和协议,后面还会分析性能。
2022-11-18 14:57:55
3009
5
原创 [论文笔记] SecPod:一个基于虚拟化安全系统的框架
操作系统内核对于一个计算机系统的安全是关键的。许多系统都被提出提高他的安全性。那些系统的一个基础的脆弱点就是页表,页表的数据结构控制了内存保护,它并没有从脆弱的内核中隔离出来,因此容易收到篡改。为了解决这个问题,研究人员依赖于虚拟化来实现可靠的内核内存保护。不幸的是,这样的内存保护需要监视客户页表的每次更新。这从根本上与硬件虚拟化支持的最新进展相冲突。在本文中,我们提出了一个可扩展的基于虚拟化的安全系统框架SecPod,它可以提供强隔离和与现代硬件的兼容性。
2022-10-31 18:22:40
380
原创 自己动手写操作系统系列第4篇,完结篇之实现系统调用
而压栈到出栈的这段时间内,这个结构体的地址就对应到将寄存器压栈的地址,这样通过这个结构体就可以取出刚才压栈的一些寄存器的值了。一般来说,每个进程都要加载属于自己的代码和数据,这些代码和数据的寻址都是用段加偏移的形式,也就是逻辑地址形式表示的。cpu硬件是自动的将逻辑地址计算为cpu可寻址的线性地址,然后根据操作系统对页目录表和页表的设置,自动将线性地址计算为cpu可寻址的物理地址。保护模式是基于段的。除了进程0之外,所有的进程都必须由一个在3特权级的进程创建,因此0进程最终要转变到特权级3上再创建子进程。
2022-10-26 20:53:51
703
原创 自己动手写操作系统系列第3篇,实现时钟和键盘中断
Master 8259A的端口地址是0x20,0x21;Slave 8259A的端口地址是0xA0,0xA1。主从PIC如下如所示,PIC是一个8259A芯片,上面有一些引脚,其中包括了ICW、OCW等引脚。每一个8259A芯片都有两个I/O ports,程序员可以通过它们对8259A进行编程。,IMR根据设定的中断屏蔽字决定丢弃还是接受。当一个外部中断请求通过中断请求线。PIC1以外全部禁止。
2022-10-26 20:48:22
980
原创 [论文阅读] 信息安全领域四大顶会
由于一些原因貌似不能考公了,被迫卷起来了,导师说之前有师哥师姐去IBM、腾讯、阿里、华为啥的,听得我直接感觉自己不配了,想退学回家捡破烂的第一天。S&P分为两类:SP Conference Information、SP Workshops Information。USENIX Security是USENIX中的安全方面的会议,可以直接在官网下载。
2022-10-25 19:15:09
1274
1
原创 自己动手写操作系统系列第2篇,初始化全局描述符表和中断描述符表
在高字节中,低4位是字符前景色,高4位是字符的背景色。中断向量索引到IDT中的某个表项,其中有的表项会继续索引到GDT中的表项。ICW:初始化控制数据,ICW有4个,编号1~4,1\3\4不需要修改,ICW2决定IRQ以那一号中断通知cpu。每个字符在屏幕上都是由2个字节来表示的,而且是连续的2个字节。IMR:中断屏蔽寄存器,8位寄存器分别对应8路IRQ信号,如果某一位为1,则此位所对应的IRQ信号被屏蔽。PIC:可编程中断控制器,PIC的一些编号需要遵从内部规则,照抄就可以,其寄存器都是8位。
2022-10-22 17:54:17
769
原创 ubuntu下安装pwndbg、gef、peda
文件中就有三个调试工具的配置了,用哪一个就把另外两个注释掉,然后gdb命令就可以调出来。要注意最后这个路径根据具体的情况来写,并且ubuntu和kali的安装情况不一样。
2022-10-21 10:34:12
1535
原创 自己动手写操作系统系列第1篇,从开机加电到切换保护模式
本系列为小组作业,参考了很多教程,包括ucore、30天自制操作系统、linux内核设计的艺术等内容、以及最重要的是小组里的几位大佬,本篇文章只是记录自己在学习过程中每一步的脚印,并包含了很多相关知识的补充。本系列大约会有五篇文章,可以完全从零基础编写一个十分简单的操作系统内核。
2022-10-16 21:39:49
1153
原创 [系统安全] 逆向工程进阶篇之对抗逆向分析
线性反汇编策略是遍历每一个代码段,根据二进制码进行反汇编,缺点是不会区分某个二进制码是数据还是指令,全部按照指令来反汇编。如果在一个函数开头加上这个字节码,则反汇编器会认为是一个call指令,这条call指令占用了函数开头的4个字节,从而破坏掉要这个完整的函数。通过使用windwos提供的api可以判断自己是否正在被调试,比如下面的一些函数,如果在分析的代码中看到这些函数,就说明这个代码样本在检测自身是否被调试。当恶意代码意识到自己被调试时,可以改变正常的执行路径或者修改自身程序导致崩溃而对抗调试。
2022-10-14 12:52:00
2449
buflab-handout, csapp lab3
2022-12-23
SocksCap64SocksCap64
2022-03-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人