自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

分享观点和经验,欢迎交流。

既可以朝九晚五,也可以 浪迹夭涯。gongzhonghao:abin在路上

  • 博客(60)
  • 资源 (3)
  • 收藏
  • 关注

原创 Rust实战系列-复合数据类型

主要介绍复合数据类型,包括结构体、枚举,以及为类型添加函数,以类型安全的方式处理错误,使用特征(trait)定义并实现通用函数。

2022-08-23 23:52:52 460 1

原创 Rust实战系列-基本语法

主要介绍 Rust 的语法、基本类型和数据结构,通过实现一个简单版 grep 命令行工具,来理解 Rust 独有的特性。

2022-08-21 23:38:36 834

原创 Rust实战系列-Rust介绍

Rust实战系列第一部分,主要包括Rust的基本介绍。

2022-08-19 23:11:05 1017

原创 容器镜像基础(nydus)

包括 nydus 的基本概念、架构和容器镜像加速使用方法。

2022-08-13 16:06:56 865

原创 stackbd:在一个块设备上堆叠另一个块设备

stackbd 是一个虚拟的块设备,它作为另一个块设备的前端,如 USB 闪存盘或循环设备。它将I/O请求传递给底层设备,同时它打印请求信息用于调试。它还有可能修改请求。堆叠块设备(stackbd)是基于 Linux 设备映射器的代码,它是 Linux 内核中的一个块设备,RedHat 支持,用于创建逻辑卷,或者说,修改 I/O 请求的地址值和目标设备。stackbd,暂时不修改请求。它的作用是作为一个嗅探器,对每一个请求,都会打印出它的读/写状态,块地址,页数,以及总的字节大小。除了调试目的外,这个

2021-01-10 22:17:31 324

原创 Linux内核中块层上的多队列

如果你想知道SSD为什么使用多队列,可以看看这篇文章:https://kernel.dk/blk-mq.pdf1. 多块层以下关于多队列层的总结来自 The Multi-Queue Interface Article,Linux kernel git 展示了如何转换为blk-mq。blk_mq 的API实现了两级块层设计,该设计使用两组独立的请求队列。软件暂存队列,按CPU分配;硬件调度队列,其数量通常与blcok设备支持的实际硬件队列数量匹配。如上图所示,软件暂存队列和硬件调度队

2021-01-10 17:46:00 640

原创 寻找驱逐集的理论和实践

摘要许多微架构攻击依赖于攻击者有效地找到小型 驱逐集(映射到同一缓存集的虚拟地址集合)的能力。这种能力已经成为缓存侧信道、rowhammer 和推测性执行攻击的决定性基础。尽管这很重要,但寻找小型驱逐集的算法在文献中还没有得到系统的研究。在本文中,我们进行了这样一个系统的研究。我们首先将问题形式化,并分析一组随机的虚拟地址是驱逐集的概率。然后,我们基于阈值组测试的思想,提出了新的算法,该算法能在线性时间内将随机驱逐集缩减到最小驱逐集,比目前最先进的算法(时间复杂度为O2的算法)有所改进。我们用严格的经

2020-12-16 19:48:41 579

原创 infiniswap用到的技术

infiniswap来自 NSDI’17,其代码主要用到以下技术:configfs(主要)configfs-用户空间控制的内核对象配置https://www.kernel.org/doc/Documentation/filesystems/configfs/configfs.txtconfigfs_sample.c 理解RDMA深入浅出全面解析RDMARDMA技术详解(一):RDMA概述RDMA技术详解(二):RDMA Send Receive操作RDMA编程:事件通知机制

2020-12-08 11:14:22 423

原创 内核中获取内存使用情况

在内核编程的过程中,需要获取主机的内存使用率,多方搜索无果,以此为记!代码如下:void update_memory_rate(){ struct sysinfo mem_info; unsigned long total; unsigned long free; unsigned long used; uint32_t uint_kb; si_meminfo(&mem_info); //更新内存使用信息,保存在&mem_info中 uint_kb = mem_info

2020-12-03 20:36:42 398

原创 blk_mq多队列块设备浅析

1. 为什么要使用多队列在主机中,多cpu运行多个线程,每个线程都能和文件系统交互,文件系统层也是用多线程和bio层交互,但是,块设备层只有一个队列:在块设备层,来自多个cpu的bio请求被放在同一个队列中,造成阻塞:因此,提出了多队列的方法,在块设备层也做成多线程:但是,在块设备层实现多个队列并不能像文件系统一样考虑,因为块设备层需要与硬件交互,这需要硬件也支持多队列,最理想的情况是,硬件支持的队列足够多,上层的每个队列(基于软件的队列),都有硬件队列和其关联。但有些时候,硬件支持的队列有限

2020-11-22 22:39:40 3156

原创 块设备驱动、bio理解

别人写过的内容,我就不写了。贴一下大佬的博客,写的非常好:块设备驱动实战基础篇一 (170行代码构建一个逻辑块设备驱动)块设备驱动实战基础篇二 (继续完善170行过滤驱动代码至200行)块设备驱动实战基础篇三 (BIO请求回调机制)块设备驱动实战基础篇四 (逐渐成型,加入ioctl通信机制)较遗憾的是,该博主的 块设备驱动实战高级篇 自2013年后就未更新了,可能有更重要的事忙。复制进去的demo代码,直接编译会报错,做了轻微改动。我的实验环境如下:系统:ubuntu 16

2020-11-22 22:38:31 775

原创 configfs_sample.c 理解

1. 编译运行代码从如下链接获得:https://github.com/torvalds/linux/blob/master/samples/configfs/configfs_sample.c编写 Makefile 文件:obj-m += configfs_sample.oall: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modulesclean: make -C /lib/modules/$(shell unam

2020-11-03 22:29:16 321

原创 configfs-用户空间控制的内核对象配置

1. 什么是configfs?configfs 是一个基于内存的文件系统,它提供了与sysfs相反的功能。sysfs 是一个基于文件系统的内核对象视图,而 configfs 是一个基于文件系统的内核对象管理器(或称为config_items)。在 sysfs 中,一个对象在内核中被创建(例如,当内核发现一个设备时),并在 sysfs 中注册,然后它的属性会出现在 sysfs 中,允许用户空间通过 readdir(3)/read(2) 读取,同时,也允许用户通过 write(2) 修改一些属性。重要

2020-10-30 11:00:29 1408 1

原创 infiniswap安装

环境:ubuntu14.04,内核4.04uname -aLinux ubuntu 4.4.0-142-generic #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux1. 客户端守护进程安装客户端编译安装:cd setup./install daemon运行客户端守护程序:cd ../infiniswap_daemon./infiniswap-daemon

2020-10-30 10:54:58 199

原创 qemu-kvm安装and配置桥接和SR-IOV

kvm和docker的区别:kvm是全虚拟化,需要模拟各种硬件,docker是容器,共享宿主机的CPU,内存,swap等。本文安装的qemu-kvm属于kvm虚拟化,其中:kvm负责cpu虚拟化和内存虚拟化,QEMU模拟IO设备(网卡、磁盘等)。参考资料:qemu和docker区别:https://www.cnblogs.com/boyzgw/p/6807986.htmlqemu,kvm,qemu-kvm关系:https://www.cnblogs.com/echo1937/p/7138294.ht.

2020-10-20 18:41:40 2375

原创 同时安装Office2016和Visio2016

最近由于学习需要使用Visio,于是下载来安装。之前使用的Office2016一切正常,但是怎么都安装不上visio,把Office2016卸载了安,又没有word、ppt这些,反正就是没法同时安装上,这时才觉得肯定安装过程有问题。途中还试过安装visio2010,是可以使用的,但对于有点强迫症的我,非要安visio2016。参考文章:http://blog.sina.com.cn/s/blo...

2020-10-19 15:19:31 58197 56

原创 mac使用pptp的正确方式

环境:macos mojave 10.14.6尝试的解决方案:mac自带vpn 结论:已经不支持pptp协议使用shimo 结论:无用,连接的时候没反应为了解决不能连接的问题,某老外写的pptp连接工具 结论:无用,报错信息和下一步脚本执行结果一样实用pppd,步骤如下:1)进入 /etc/ppp/peers/ 目录,创建 test.vpn,此文件名...

2020-10-18 13:25:05 3721 1

原创 Linux内核模块开发(简单)

Linux系统为应用程序提供了功能强大且容易扩展的API,但在某些情况下,这还远远不够。与硬件交互或进行需要访问系统中特权信息的操作时,就需要一个内核模块。Linux内核模块是一段编译后的二进制代码,直接插入Linux内核中,在 Ring 0(x86–64处理器中执行最低和受保护程度最低的执行环)上运行。这里的代码完全不受检查,但是运行速度很快,可以访问系统中的所有内容。Intel x86架构使用了4个级别来标明不同的特权级。Ring 0实际就是内核态,拥有最高权限。而一般应用程序处于Ring 3状态

2020-10-14 17:27:58 1898

原创 NetSpectre:通过网络读取任意内存

摘要推测执行是现代处理器能够实现高性能的一个关键因素。在推测执行过程中,处理器可能会执行程序一般不会执行到的操作。如果推测执行被中止,这些操作对体系结构的影响和结果会被丢弃,但对微架构的影响可能会保留下来。最近公布的Spectre攻击就是利用这些保留下来的微架构状态来读取其他程序的内存内容。然而,Spectre攻击需要在目标系统上进行某种形式的本地代码执行。因此,只要攻击者无法在目标机器运行任何代码,该系统就被认为是安全的。在本文中,我们介绍了NetSpectre,一种通用的远程Spectre变种1攻击

2020-09-29 18:21:25 735

原创 Packet Chasing:通过缓存侧信道监视网络数据包

摘要本文介绍了一种对网络的攻击–Packet Chasing,这种攻击不需要访问网络,无论接收数据包的进程的特权级别如何,都能发挥作用。一个间谍进程可以很容易地探测和发现网络驱动程序使用的每个缓冲区的确切缓存位置。更有用的是,它可以发现这些缓冲区用于接收数据包的确切顺序。这样就可以通过缓存侧信道监控数据包频率和数据包大小。该攻击既可以在发送者和无法访问网络的远程间谍程序之间建立秘密通道,也可以进行直接攻击,识别网络上受害者的网页访问模式等。除了识别潜在的攻击外,本工作还提出了一种基于软件的短期缓解措施,以

2020-08-19 16:28:09 946

原创 Mastik:微体系结构侧信道攻击工具包

1. 引言微体系结构侧通道攻击利用了处理器内部组件的竞争,从而泄漏了进程之间的信息。虽然从理论上讲这类攻击很简单,但实际的实现方式往往很复杂,并且需要对文献记载不充分的处理器函数和其他领域专有的知识有充分的了解。因此,进入微体系结构侧通道攻击的工作存在障碍,这阻碍了该领域的发展以及现有软件抵御此类攻击的能力的分析。本文介绍 Mastik,一个用于测试微体系结构侧通道攻击的工具包。Mastik旨在提供已发布的攻击和分析技术的实现。在撰写本文时,Mastik尚处于 开发的早期阶段。0.02版的代号 “Aye

2020-08-17 11:03:10 681

原创 Infiniband网卡安装、使用总结

最近多次安装、使用infiniband网卡,每次都要到处寻找相关资料,所以决定做此总结,方便查找。1. 基础知识首先,得了解什么是RDMA,贴几个资料:深入浅出全面解析RDMARDMA技术详解(一):RDMA概述RDMA技术详解(二):RDMA Send Receive操作然后得了解如何实现,这两个可以有个初步了解:RDMA编程:事件通知机制RDMA read and write with IB verbs编程过程,真正有用的还是官方的手册:RDMA Aware Networks P.

2020-06-22 22:39:33 4302

原创 NetCAT:来自网络的实用缓存攻击

不断增加的外围设备正在增加现代处理器中内存管理子系统的压力,例如:DRAM的可用吞吐量已经不能满足现代网卡的传输速率。为了达到承诺的传输性能,Intel处理器使IO操作直接在末级缓存(LLC)上进行,而不需要经过DRAM。虽然直接缓存访问替代直接内存访问对提升性能使可行的,但是,忽略了安全性的考虑,因为末级缓存(LLC)是在CPU和所有外围设备之间共享,包括网卡。DCA,在最近的Intel处理...

2020-04-26 15:41:53 1238

原创 从线性回归案例理解深度学习思想

我不是主攻人工智能、深度学习方向,但是作为计算机相关领域的学习者,如果不了解下,总觉得已经跟不上时代了,况且,人工智能真的是大势所趋,学会了,能够尝试用在不同领域。本文将使用回归的思想来求解二元一次方程的最佳解,理解深度学习的根本思想。假设,对于二元一次方程:y = a * x + b假设我们能够采集到一组数据(x,y),这些值都是满足以上等式的,但是,现实生活中往往不能这样顺利(如果采集...

2020-04-09 00:07:13 367

原创 深入理解“骑士”漏洞 VoltJockey

先理解一下题目:VoltJockey: Breaching TrustZone by Software-Controlled Voltage Manipulation over Multi-core Frequencies,这个漏洞打破了ARM下的TrustZone(可信执行环境),通过使用软件控制的电压来影响多核上的频率来达到目的,这个软件实际上就是DVFS(dynamic voltage a...

2020-03-19 17:39:28 1742

原创 基于边信道的硬件攻击小综述

1. 什么是边信道攻击?边信道攻击:side channel attack,简称SCA,也称为侧信道攻击。不同于一般的攻击形式,这是一种对加密电子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息进行利用,从而获取密码信息的方法。这类攻击的有效性远高于传统针对密码算法进行数学分析或暴力破解的方法,给加密设备带来了严重的威胁。1.1 一般分类缓存攻击,通过获取对缓存的访问权...

2019-12-17 15:55:29 1859 1

原创 国内下载vscode速度慢解决

找到对应的文件,点击下载,会出现一个类似下面的链接:https://az764295.vo.msecnd.net/stable/f06011ac164ae4dc8e753a3fe7f9549844d15e35/code_1.37.1-1565886362_amd64.deb赋值并将红框内的部分更换为如下内容:vscode.cdn.azure.cn更换后的链接为:https:...

2019-08-29 08:39:18 16574 9

原创 centos与内核版本对应关系

centos是基于redhat的二次开发,redhat会封装不同版本的内核,有时候,我们需要指定内核版本的centos,下面两个网站或许对你有帮助:https://access.redhat.com/articles/3078https://wiki.centos.org/Download比如,我想下载内核版本为3.10.0-693的centos,先找到:再找到:点击t...

2019-07-28 20:33:31 12805

原创 layedit添加首行缩进

由于在编辑的时候,有首行缩进的需求,并且,如果直接使用空格进行缩进,还会出现layedit看到的效果和实际显示的效果不一致的情况。多方搜索无果,于是决定修改源代码。具体步骤如下:1、首先找到layedit.js文件,打开路径位置如下:layui/lay/modules/layedit.js,我是在Kz.layedit的基础上进行修改的,关于Kz.layedit,它是这位大佬在layedit...

2019-07-20 16:41:08 936 6

原创 Beego在views中格式化显示时间(int64转string)

最近在使用beego开发系统的过程中,遇到时间转换问题,需求如下:通过以下函数获取Unix时间戳,后台数据库格式为int64:time.Now().Unix()效果图:从数据库获取数据,直接以this.Data[''user''] = user的形式将结构体传递给前台页面:但是,在前台views中显示的时候,我希望把 int64 格式的字符串转换成 2019-03-0...

2019-03-06 22:38:13 2088

原创 beego入门之登陆程序(sql数据库操作、session操作、前后端数据交互)

此次更新内容为go语言框架beego的入门程序,该程序能够实现简单的登陆功能,包括的内容有sql数据库操作,session操作、数据交互,适合beego入门时琢磨。前提是go语言环境已经安装好,集成开发环境我用的GoLand1、安装需要用到的插件:go get github.com/astaxie/beego //安装beegogo get github.com/beego/...

2018-12-08 14:26:19 1883

原创 2018中国移动校招笔试记录

 本来打算找实习,就投了简历,后来才知道奥,中国移动不要实习,每年都是统一招聘,他们肯定希望招长期,毕竟这个工作费时费力。中国移动校招分为面试——笔试——再面试,如果都过了,恭喜你大佬,你就可以在规定时间内去报到啦。虽然我只是打酱油的,可能里面的大佬觉得可以给我一次做题的机会,所以,下面是我记录的笔试内容,希望对正在找这方面资料的你有帮助(考试前我尝试找,没找到)。1.文字理解(感...

2018-10-29 20:38:30 6702 9

原创 数据结构错题集整理

第二章:线性表 第三章:栈与队列例如进栈序列为123,出栈的序列可以是132。 只要队列不满就可以进行进队列操作,只要队列不空就可以进行出队列操作,并不规定进队列、出队列操作的次序。因为无论出队和入队,都要进行求余运算,将队首指针和队尾指针转化为有效的顺序队下标值,另外,循环顺序队中的元素可以平行移动,所以本叙述是正确的。第五章:数组和广义表 ...

2018-08-18 15:05:39 1333 2

原创 web安全之dvwa总结

为了学习web安全,决定从dvwa开始,dvwa的安装参考。1、DVWA简介DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。DVWA共有十个模块,分别是:Brute Force(暴力(破...

2018-07-20 21:37:00 1826

原创 网络安全技术(第4版)复习资料整理

第一章:1、2017年6月1日,《网络安全法》开始实施。2、网络安全5大基本要素:保密性、完整性、可用性、可控性、不可否认性。3、计算机网络面临的威胁:(1)主动攻击:终端、篡改、伪造(2)被动攻击:截获、窃取。4、网络脆弱性的原因:(1)开放的网络环境(网络用户可以自由访问网站,不受时间和空间约束,病毒等有害信息可以在网络快速扩散)。(2)协议本身脆弱性(网络传输离不开协议,二这些协议在不同层次...

2018-06-28 11:17:58 7148

原创 局域网攻击演示(网安实训第五天)

 局域网攻击演示(1)信息收集1对局域网进行主机发现扫描:nmap -sP 192.168.183.0/242确定攻击目标:本机ip地址为129,内网中还存在另一台主机,ip为134,这就是我们的目标,我们对它进一步扫描。nmap -sV 192.168.183.134通过分析,我们发现:目标主机开启大量可利用端口,ftp、ssh、telnet、smtp、mys...

2018-06-22 17:16:13 870

原创 脚本攻击、后渗透攻击(网安全实训第四天)

1.通过脚本快速攻击2.后渗透攻击续1.通过脚本快速攻击我们可以通过msfconsole -x “msfconsole内输入的命令”实现快速攻击,进一步,我们可以将攻击需要执行的命令写成脚本,进行攻击。(1)编辑脚本vi abin.rc输入以下内容。(根据实际情况修改)use exploit/windows/smb/ms08_067_netapiset RHOST...

2018-06-09 12:01:51 854

原创 nessus安装、msfconsole辅助模块使用(网安全实训第三天)

本期内容:nessus安装、msfconsole辅助模块使用、后渗透攻击  1. nessus安装  2.msfconsole辅助模块使用3.后渗透攻击1. nessus安装(1)下载nessus下载地址:https://www.tenable.com/downloads/nessus我下载的Nessus-7.1.0-x64.exe(2)去官网获...

2018-06-09 10:26:05 1579

原创 nmap扫描进阶、msfconsole攻击入门(网安全实训第二天)

本期内容:nmap扫描、msfconsole攻击入门 1. nmap扫描进阶2.msfconsole攻击入门1.nmap扫描进阶(1)nmap命令 nmap --sP -iL abin.txt (从abin.txt导入ip地址列表进行扫描,-sP主机存货判断)nmap -A 120.55.226.24 (启用操作系统检测,版本检测,脚本扫描和跟踪路由)nmap -sS...

2018-06-09 08:56:56 6234 2

原创 nmap扫描、信息收集(网安全实训第一天)

本期内容:网站信息收集、nmap扫描1. 信息收集2. nmap扫描1.信息收集(1)确定目标首先,我们确定攻击目标,在这里,我们随便找一个网站做测试,我以码云为例。(2)nslookup查看ipnslookup gitee.com通过查询,得到gitee.cn的IP地址为:120.55.226.24(3)根据ip查询地理位置地址在这里:https://www.ma...

2018-06-08 16:56:03 1287

Burpsuite-1.7.26

Burpsuite-1.7.26,破解版,直接打开就可以使用,需要java环境。

2018-07-19

空空如也

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

TA关注的人

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