自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 问答 (4)
  • 收藏
  • 关注

原创 Go-zero学习 api如何了解到我们希望如何读取post请求数据

如官网所描述的type ( LoginReq { Username string `json:"username"` Password string `json:"password""` } LoginReply { Id int64 `json:"id"` Name string `json:"name"` Gender string `json:"gender"` AccessToken string `json:"a

2022-04-18 09:53:02 2876

原创 python pip install一些第三方库的时候error

ERROR: Command errored out with exit status 1:command: /usr/bin/python2 -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘"’"’/tmp/pip-install-Hhwh9G/install/setup.py’"’"’; file=’"’"’/tmp/pip-install-Hhwh9G/install/setup.py’"’"’;f=getattr(tokenize, ‘"’

2021-10-05 17:18:14 811

原创 Golang(五) 关于for range

试想这个程序的输出会是什么呢?package mainimport "fmt"func main(){ slice := []int{0,1,2,3} m := make(map[int]*int) for key,val := range slice{ m[key] = &val } fmt.Println(*m[2])}输出是3,嘿嘿,这是怎么回事其实是这样的,val变量在整个循环过程都是一个块固定的内存,地址是没有改动的.range只是将slice的值取出来放在这块

2021-09-28 10:29:12 268

原创 golang(四)使用os/exec来操控程序

package mainimport ( "fmt" "os/exec" "sync")func main() { var wg sync.WaitGroup var err error path := "/home/keli/1_Workbench/1_Go/src/temp/main/1.out" cmd := exec.Command(path) //生成一个指令 in, err := cmd.StdinPipe() // 生成一个指向子进程标准输入流的管道 注意这个时候子进

2021-08-31 16:49:46 337

原创 如何使用python对程序进行gdb调试

意义许多时候,我们调试程序时,需要自动化的做输入,甚至有些时候,这些输入必须由代码构成,因为很多实验中的输入内容是很难手动输入的。那么我们就需要通过python完成这些输入。那么我们就以一个简单的栈溢出实验来说明这个操作是如何完成的准备首先,我们需要准备python2.7,并且用pip下载模块pwntools。你会发现pwntools依赖一些其他的模块,不要紧,缺少一个pip下载一个就可以了。然后就是使用apt下载gdbserver.python2 运行我们工具的环境pwntools 我们的工具

2021-08-16 10:56:35 4059

原创 Python 非阻塞地从输入流中读取数据

import sysimport time import select while True: time.sleep(2) print("hello") recv = "" if select.select([sys.stdin], [], [], 0.0)[0]: print("input:"+input()) if recv != "": print(recv)关键:select.select([sys.stdin],

2021-08-07 16:39:36 868

原创 Golang(三)在vscode上显示Error loading workspace: gopls requires a module at the root of your workspace。

并不影响正常使用,但是始终显示有一个error,让人不舒服。这里是搜集和我自己研究得到的解决方法。网上找到的方法1:将 gopls 的版本回退到 v0.5.5 可以解决GO111MODULE=on go get golang.org/x/tools/gopls@v0.5.5意思就是说,这个是新版才有的bug,旧版没有。笑死,旧版只能是更加不支持。不好用,我的gopls都不能正常使用了。方法2在settings.json添加下面一段设置"gopls": { "experiment

2021-08-05 10:36:05 11382 6

原创 Golang(二) 没有泛型怎么办

用interface{}来指代一切类型例子编写一个Remove函数,Remove函数可以根据传入的元素的下标index,删除slice中的这个元素函数原型func Remove(slice interface{},index int)为了完成这个函数,所需要用到的知识reflect,提供反射机制的package什么是反射机制,我的理解就是反射机制代码在运行时,也能保留一些源代码信息。因为,实际上,程序运行的时候,在内存中是只有机器语言的。我们的源代码都统一编译成了汇编语言。reflect帮助我们

2021-07-26 23:09:25 361

原创 从纯小白开始,在Ubuntu linux上使用golang (一)准备

几样准备go语言集成开发包这个是写go程序必须的了git工具会使用git工具来下载一些go语言的package(有点像是一些类库吧)代码编辑器可以直接使用vim,但是我采用的还是VSCode具体准备流程-go语言集成开发包安装首先使用命令获取安装包这个命令会将安装包下载在当前目录,所以先切换到你一般的下载路径wget https://golang.google.cn/dl/go1.16.6.linux-amd64.tar.gz查看下载路径如果能看到这个安装包就ok了go1.16.

2021-07-19 20:35:25 1096 5

原创 计算机网络 CSMA/CD载波监听多点接入/碰撞检测协议

网线上有计算机发送数据时,网线的传输资源就被占用了。但是这个跟计算机内部总线被占用不同,总线的占用有cpu做调节,所以不会争抢,但是网线是没有cpu来调节的,所以连接在网线上的各个主机必须要遵循一个协议,来避免网线的抢占。用一个形象的比喻这个协议就是,开会发言。会议上的人都保持一个谦逊的态度,每当发言的时候,听到别人也发言了,那么就马上停止发言,等一会,再发言。这个CSMA/CD就是这样一个协议,每台主机都检测着网线是否被占用,一旦检测到别的主机的信号,就意识到这个网线被别的主机占用了,就立即放弃发送信

2021-05-05 15:20:02 3194 3

原创 ida 如何进行vmware linux虚拟机动态调试

一.查看虚拟机ip使用命令ifconfig注意是if,windows下是ipconfig,有所不同.那么我们就可以看到虚拟机得IP了如果看不着ip,查看一下虚拟机能否上网虚拟机无法上网得办法可以看看这个https://blog.csdn.net/fishyfine/article/details/115589468二.确保你的windows系统可以ping得通虚拟机如果ping不上,可能虚拟机防火墙没关,用指令sudo ufw disable关一下三.然后我们就可以打开我们的ida,设置一

2021-04-11 10:24:19 1213

原创 vmware 虚拟机突然无法上网怎么办

点击这里虚拟网络编辑器,经过一段加载时间进入到这样得窗口点击红色箭头处经过一段时间得加载点击红色箭头处,我这里没有点过更改设置所以是无法点击的.点完这个,再次开启虚拟机,应该就可以上网了....

2021-04-11 10:08:34 247

原创 计算机操作系统 PV题目

struct Semaphore{ int value; queue process; };吃水果问题问题描述:桌子上有一只盘子,每次只能放一个水果,爸爸专向盘中放苹果,妈妈专向盘中放桔子,儿子专吃盘里的桔子,女儿专吃盘里的苹果.只要盘子空,则爸爸或妈妈可以向盘中放水果,仅当盘中有自己需要的水果时,儿子或女儿可从中取出.//分析://首先爸爸,妈妈,儿子,女儿的动作都不一样,所以应当有四个进程//一家人都是互斥的访问盘子,需要一个互斥变量//爸爸女儿同步,需要两个同步变量

2021-04-03 18:51:20 1483

原创 计算机操作系统笔记 PV信号量机制解决同步和互斥

首先说明一下什么叫做PV信号量机制:信号量,接下来用Semaphore或者S来表示.其意义是代表当前临界资源的数量.正数表示目前空闲的临界资源数量.0表示目前没有临界资源空闲,也没有进程等待临界资源.负数表示目前有多少进程在等待临界资源.P,V是操作系统内核中定义的两个原语,原语的意思就是说计算机运行的最小单位,在运行原语的时候是不会出现中断的.计算机程序大多都是交替进行的,但是原语程序是一次性完成的.P原语程序的具体操作为S-1如果S-1以后仍然大于等于零,则进程继续进行如果S-1以后以后小于

2021-04-03 16:17:38 2317 1

原创 CTF 从网上下载的ELF为什么无法使用呢.process不行,pwndbg也不行

把这个执行->允许文件作为程序执行勾选就行了

2021-03-24 18:09:16 250

原创 如何自己制作鼠标宏

用AutoHotKey就行,一个可以制作热键脚本的东西附上下载链接和脚本语法说明书比如我就制作了一个利用鼠标侧键翻页的小程序,很简单的脚本XButton1::{LCTRL down}{Tab}{LCTRL up}

2021-03-20 18:02:06 9049 1

原创 如何用Github下工具,以ROPgadgets为例

github下不了,直接从https://gitee.com/上,解压后用setup.py安装就完事sudo python ./setup.py install

2021-03-15 19:16:41 387

原创 C# MD5密码加密

public static string GetMD5(string str) { MD5 md5 = MD5.Create(); byte[] bytes = Encoding.UTF8.GetBytes(str); byte[] md5Bytes = md5.ComputeHash(bytes); StringBuilder sb = new StringBuilder();

2021-03-13 17:31:02 307

原创 Ubuntu上开始我的C/C++编程之路

Vim的使用首先当然是下载了sudo apt-get install vim之后就可以开始vim的教程了vimtutor会在命令行里开启一个教程几个比较重要的内容i,a是开始编辑x是删除一个字符dw是删除一个单词p可以插入刚才删掉的话/是搜索,n,N上下搜索,ctrl + g是显示文件属性ctrl + o回到刚才的位置%查找与之配对的({之类的符号输入 :#,#s/old/new/g其中#,#代表的是替换操作的若干行中首尾两行的行号输入:%s/old/new/g则是替换整个文件

2021-03-12 18:02:08 124

原创 Ubuntu 使用python 需要作的准备

首先先更新pip下载源先来到用户目录下,也就是~下面,就是有桌面,文档之类的文件夹的那么目录拉cd /.pip/pip.conf #如果没有这个文件就用mkdir 和 touch 创建出来sudo gedit ./pip.conf #打开这个文件,在里面把国内下载源的内容输入进去比如[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host = https://pypi.tuna.tsi

2021-03-12 16:09:50 144

原创 计算机网络 服务端的应用层

客户端的请求消息经过层层处理到达应用层,应用层所获得的就是与客户端应用层所看到的请求消息的样子.这时应用程序就可以根据http协议的规定,来解读这个请求消息的内容.处理其中的信息后,服务端的应用程序就需要开始制作响应消息.响应消息与请求消息的思路大体相同.响应消息的第一行记录的是状态码和响应短语.状态码记录的是请求的执行状态.比如请求消息请求的是index.html的网页文件,那么状态码就会显示这个网页文件是否存在.<消息头>中也是记录了与交互内容无关,与建立交互有关的内容.<

2021-03-12 11:06:30 426

原创 计算机网络 一:客户端的应用层

计算机网络分为应用层,运输层,网络层,数据链路层,物理层.我们从客户端的应用层(也就是我们的日常应用)讲起,一层一层向下处理我们在应用程序里填写的数据,直到从客户端的物理层发送给服务器,再从服务器的物理层接受到这些数据开始,一层一层处理这些数据,再将数据转化成服务器应用程序能够理解的数据内容.人们在1.输入网址,或者2.在网站填写一些数据并点击发送按钮时,就会触发计算机网络的数据传输.数据传输的过程在http协议这方面看,就是http协议根据用户请求向下发送一段请求消息,请求消息中包含(方法,URI)

2021-03-12 10:41:37 550

原创 win10装了Ubuntu18.04后时间不正常了,怎么办?

原理:Windows把硬件时间当作本地时间,也就以为着Windows系统中显示的时间和BIOS中显示的时间是一样的.Ubuntu把硬件时间当作UTC,也就以为着Ubuntu系统中显示的时间是硬件时间经过换算得到的.显示的时间是硬件时间+时区.而Ubuntu会定时更新时间,所以我们看到的Ubuntu时间是正常的.为了让两个系统显示的时间都是正确的,有两种方案:1.更改Windows中注册表在网上找到的没用的方法:windows系统中的注册表设置HKEY_LOCAL_MACHINE\SYSTEM\C

2021-03-07 23:16:04 219

原创 2.安装好ubuntu 18.04 啥东西都没有,如何上网呢?

有线上网如果刚安装好就可以有线上网,那就没啥可说的了。但是比如我这种情况,在学校里,以前用win10的时候就是通过拨号来上网的。那我Ubuntu如何拨号上网呢?刚刚安装好Ubuntu,基本没什么软件,打开右下角的应用收藏夹里是这个样子的。真可谓一穷二白,找不到网上说的NetworkManager这个应用正式开始我们通过一个叫做nmcli 交互式连接编辑器的工具(实际上这个是NetworkManager的一个命令行工具,这里是关于这个的一篇文章)来完成拨号连接的建立。如果显示没有这个工具,那么可以等

2021-03-05 22:40:28 980

原创 我的联想拯救者y7000p怎么安装双系统Linux ubuntu 18.04呢?

这是我的电脑配置硬盘和内存是现在内存又重新加装了一根8G的,所以实际上是16G内存了.不过在安装这个双系统的时候还是8G的内存.我原先的操作系统就是电脑自带的win10系统的最新版本,我有日常更新啦开始安装了首先制作一个启动盘准备的材料一个超过2G的U盘(我淘宝上买的32G的FAT32的u盘,现在哪还有卖2G的呀)准备一个linux ubuntu 18.04的系统镜像系统之家ubuntu 18.04的链接(系统之家里已经有ubuntu 20.0了,不过我还是决定下载18.04,比较太新版

2021-03-05 11:46:31 2593 5

原创 C++ 编译器和预处理器定义的可以显示源代码信息的变量

编译器为每个函数定义了__func__来显示函数的名字预处理器定义了用于调试的名字:__FILE__//存放文件名的字符串字面量__LINE__//存放当前行号的整型字面值__TIME__//存放文件编译时间的字符串字面值__DATE__//存放文件编译日期的字符串字面值...

2021-02-19 12:24:35 107

原创 计算机组成原理 可寻址的最小内存空间和存储的基本单元有什么不同

从书中可见,可寻址的最小内存空间和存储的基本单元是不同的。存储的基本单元,被称为存储字。存储字的位数与存储器中的数据线根数是相同的。也就是说,存储器在取数据的时候,是按一个存储字一个存储字取的。即存储字是存储器存取数据的单位(最小大小)。那么可寻址的最小内存空间什么意思呢?我应该是一直搞错了一个概念,就是可寻址和存取并不是等价的。一个内存块有自己的地址,我可以将它取出来,但不代表说,我取的时候仅仅取它这么一块内存块。即,存储器取数据时,取出一个存储字,然后我们可以再从存储字里面挑出一个字节(所.

2021-02-14 22:49:25 1935 1

原创 VisualStduio2019 C++如何重定向(用文件输入输出)

<in.txt 将in.txt文件输入到程序的输入流中>out.txt 将程序输出流输入到out.txt中在资源文件夹中创建in.txt和out.txt文件在in.txt中输入需要的输入内容

2021-02-14 17:52:04 1091

原创 计算机组成原理 时钟同步

啥是时钟同步根据数字电路,D触发器的电路图,我们可以发现,触发器在连接了时钟后,输出需要上升沿(时钟脉冲)到来才会变化.可以推理出,与时钟同步的意思就是,一个时钟周期内,只做一个动作.到下一个脉冲才可能换一个动作.为啥要时钟同步因为时延的原因,多个触发器协同工作时,输入到来的时间可能不同.但是我们需要输出是保持同时变化的,那么就需要时钟脉冲来保证同步.所以时钟同步,不光意为与时钟同步,还意为通过时钟与协同部件保持同步....

2021-02-02 12:30:45 969

原创 计算机组成原理 第二篇:总线 2.总线的分类,功能和性能指标

虽然在总线1中提到的总线结构中,似乎总线非常少,只有一两根.但是实际上,我们已经提到了,总线中其实包含了很多的数据线.并且各部件之间的位置关系也非常复杂.比如,有些io设备是用usb接口接在计算机主机上的,实际上,这个usb数据线,其实就是总线.故而总线有非常的多,我们通过分类来,了解总线功能特性的不同.并且个人认为,在这里讨论的总线已经不仅仅是计算机内部的线路,而是与计算机相连接的线路皆是总线.这样理解的话,那么总线的定义似乎也没有错.总线的分类与功能按数据传送方式区分并行传输总线这种总线中含有n

2021-02-02 12:14:57 1629

原创 计算机组成原理 第二篇:总线 1.总线原理和意义

总线是什么总线是连接多个部件的信息传输线,是各部件共享的传输介质.总线可以传输的原理总线实际上是由许多传输线或通路组成,每条线上保持的电平高低即是所传输的信号,每条线可一位一位地传输二进制代码.一串二进制代码可以在一段时间内逐一传输完成.若干条传输线可以同时传输若干位二进制代码.故而,可以理解总线具有,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同信息的性质.而总线中的电路线根据其上传输信号的意义分为地址总线,数据总线,控制总线.各个部件连接在总线上,根据控制总线和地址总线上的

2021-01-27 20:47:19 2322

原创 计算机组成原理 第一篇:总概

计组是在学习什么?(基于唐朔飞的计算机组成原理)计组是一门学习计算机硬件的课程,涉及一定的数字电路的知识(其实也没涉及多少,了解基本电路知识,触发器,加法器等电路芯片的使用和作用即可).计算机的硬件,也就是计算机的实体部分,主要有中央处理机(控制单元和运算逻辑单元),存储器,I/O设备.计算机如何工作的呢?我们应该已经知道,使用编译器编译源代码,可以产生一个.exe文件,这个文件是可以直接运行的.那为什么我们不能直接运行源代码,而要做这样一系列处理呢?大致来说是这样的:计算机不能够直接识别源代码

2021-01-27 19:04:27 1406

原创 调试时查看汇编和寄存器数据等

编程时可以利用Disassembly窗口查看汇编代码在Debug选项下,设置断点才能弹出窗口也可以通过寄存器窗口监视寄存器中的数据

2020-12-09 21:44:48 1394

原创 vs如何让源码和目标代码更相近

为了便于对比源程序和目标程序,尽量减少由编译器额外增加的指令,所以在项目属性页中的配置属性中采用如下设置:1)在C/C++项下,常规的调试信息格式子项,选择"c7兼容(/z7)"原先设置是:用于"编辑并继续"的程序数据库(Z1)2)在C/C++项下,代码生成的基本运行时检查子项,选择"默认值",既不进行堆栈帧的检查,也不进行未初始化变量的检查原本设置是:两者(/RTC1,等同于/RTCsu)(/RTC1)3)在C/C++项下,代码生成的基本运行时检查子项,选择"否(/CS-)"原先设置是:启

2020-12-09 21:41:20 339

原创 八皇后问题

八皇后问题#include<stdio.h> #include<stdlib.h> int Count = 1; void Flush(int Board[][8],int ChessBoard[][8]);int IsLegal(int ChessBoard[][8],int Loop);void Trial(int i, int ChessBoard[][8]);int main(void) { int ChessBoard[8][8] = {

2020-09-09 16:10:34 117

原创 Kruskal最小生成树

城市间道路铺设问题实验#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//图的邻接矩阵表示法#define MaxVertexNum 100 /*最大顶点个数设为100*/#define INFINITY 65535 /*∞设为双字节无符号整数的最大值65535*/typedef int Vertex;//用顶点下标表示顶点为整型typedef int WeightType;//边的

2020-09-09 15:57:21 197

原创 哈弗曼编码

数据压缩中的编码问题实验#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#define Minwight -1typedef struct Node* ElementType;struct Node { int Weight; char Key;};typedef struct HfTNode* HuffmanTree;struct HfTNode { ElementTy

2020-09-09 15:40:56 165

原创 编译原理:中缀表达式求值

编译器中的表达式求值问题实验#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>typedef char* ElementType;typedef struct SNode* PtrToSNode;struct SNode { ElementType Data; PtrToSNode Next;};typedef PtrToSNod

2020-09-09 15:34:09 798

原创 堆栈穷举法走迷宫

迷宫问题实验#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>typedef struct MNode ElementType;struct MNode { int X; int Y;};typedef struct SNode* PtrToSNode;struct SNode { ElementType Data; PtrToSNode Next;};typedef P

2020-09-09 15:17:53 191

原创 约瑟夫环问题

约瑟夫环问题实验源代码#include<stdio.h>#include<stdlib.h> typedef int ElementType;typedef struct QNode* Queue;typedef struct QNode* PtrToQNode;struct QNode { ElementType Data; PtrToQNode Next;};void JosephRing(int, int, int);//约瑟夫环函数 int Jud

2020-09-09 15:02:08 147

空空如也

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

TA关注的人

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