<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fishyfine的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fishyfine</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fishyfine]]></copyright><item><title><![CDATA[Go-zero学习 api如何了解到我们希望如何读取post请求数据]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/124242462</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/124242462</guid><author>fishyfine</author><pubDate>Mon, 18 Apr 2022 09:53:02 +0800</pubDate><description><![CDATA[如官网所描述的
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]]></description><category></category></item><item><title><![CDATA[python pip install一些第三方库的时候error]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/120615966</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/120615966</guid><author>fishyfine</author><pubDate>Tue, 05 Oct 2021 17:18:14 +0800</pubDate><description><![CDATA[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, ‘"’]]></description><category></category></item><item><title><![CDATA[Golang(五) 关于for range]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/120523880</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/120523880</guid><author>fishyfine</author><pubDate>Tue, 28 Sep 2021 10:29:12 +0800</pubDate><description><![CDATA[试想这个程序的输出会是什么呢?
package main
import "fmt"
func main(){
	slice := []int{0,1,2,3}
	m := make(map[int]*int)
	for key,val := range slice{
		m[key] = &amp;val
	}
	fmt.Println(*m[2])
}

输出是3,嘿嘿,这是怎么回事
其实是这样的,val变量在整个循环过程都是一个块固定的内存,地址是没有改动的.range只是将slice的值取出来放在这块]]></description><category></category></item><item><title><![CDATA[golang(四)使用os/exec来操控程序]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/120021564</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/120021564</guid><author>fishyfine</author><pubDate>Tue, 31 Aug 2021 16:49:46 +0800</pubDate><description><![CDATA[package main

import (
	"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() // 生成一个指向子进程标准输入流的管道 注意这个时候子进]]></description><category></category></item><item><title><![CDATA[如何使用python对程序进行gdb调试]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/119725222</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/119725222</guid><author>fishyfine</author><pubDate>Mon, 16 Aug 2021 10:56:35 +0800</pubDate><description><![CDATA[意义
许多时候，我们调试程序时，需要自动化的做输入，甚至有些时候，这些输入必须由代码构成，因为很多实验中的输入内容是很难手动输入的。那么我们就需要通过python完成这些输入。
那么我们就以一个简单的栈溢出实验来说明这个操作是如何完成的
准备
首先，我们需要准备python2.7，并且用pip下载模块pwntools。你会发现pwntools依赖一些其他的模块，不要紧，缺少一个pip下载一个就可以了。然后就是使用apt下载gdbserver.
python2 运行我们工具的环境
pwntools 我们的工具]]></description><category></category></item><item><title><![CDATA[Python 非阻塞地从输入流中读取数据]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/119488590</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/119488590</guid><author>fishyfine</author><pubDate>Sat, 07 Aug 2021 16:39:36 +0800</pubDate><description><![CDATA[import sys
import 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],]]></description><category></category></item><item><title><![CDATA[Golang(三)在vscode上显示Error loading workspace: gopls requires a module at the root of your workspace。]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/119406891</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/119406891</guid><author>fishyfine</author><pubDate>Thu, 05 Aug 2021 10:36:05 +0800</pubDate><description><![CDATA[并不影响正常使用，但是始终显示有一个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]]></description><category></category></item><item><title><![CDATA[Golang（二） 没有泛型怎么办]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/119100088</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/119100088</guid><author>fishyfine</author><pubDate>Mon, 26 Jul 2021 23:09:25 +0800</pubDate><description><![CDATA[用interface{}来指代一切类型
例子
编写一个Remove函数，Remove函数可以根据传入的元素的下标index，删除slice中的这个元素
函数原型func Remove(slice interface{},index int)
为了完成这个函数，所需要用到的知识
reflect，提供反射机制的package
什么是反射机制，我的理解就是反射机制代码在运行时，也能保留一些源代码信息。因为，实际上，程序运行的时候，在内存中是只有机器语言的。我们的源代码都统一编译成了汇编语言。reflect帮助我们]]></description><category></category></item><item><title><![CDATA[从纯小白开始，在Ubuntu linux上使用golang （一）准备]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/118912647</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/118912647</guid><author>fishyfine</author><pubDate>Mon, 19 Jul 2021 20:35:25 +0800</pubDate><description><![CDATA[几样准备
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.]]></description><category></category></item><item><title><![CDATA[计算机网络 CSMA/CD载波监听多点接入/碰撞检测协议]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/116424843</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/116424843</guid><author>fishyfine</author><pubDate>Wed, 05 May 2021 15:20:02 +0800</pubDate><description><![CDATA[网线上有计算机发送数据时，网线的传输资源就被占用了。但是这个跟计算机内部总线被占用不同，总线的占用有cpu做调节，所以不会争抢，但是网线是没有cpu来调节的，所以连接在网线上的各个主机必须要遵循一个协议，来避免网线的抢占。
用一个形象的比喻这个协议就是，开会发言。会议上的人都保持一个谦逊的态度，每当发言的时候，听到别人也发言了，那么就马上停止发言，等一会，再发言。
这个CSMA/CD就是这样一个协议，每台主机都检测着网线是否被占用，一旦检测到别的主机的信号，就意识到这个网线被别的主机占用了，就立即放弃发送信]]></description><category></category></item><item><title><![CDATA[ida 如何进行vmware linux虚拟机动态调试]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/115588941</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/115588941</guid><author>fishyfine</author><pubDate>Sun, 11 Apr 2021 10:24:19 +0800</pubDate><description><![CDATA[一.查看虚拟机ip
使用命令ifconfig注意是if,windows下是ipconfig,有所不同.
那么我们就可以看到虚拟机得IP了

如果看不着ip,查看一下虚拟机能否上网
虚拟机无法上网得办法可以看看这个https://blog.youkuaiyun.com/fishyfine/article/details/115589468
二.确保你的windows系统可以ping得通虚拟机

如果ping不上,可能虚拟机防火墙没关,用指令sudo ufw disable关一下
三.然后我们就可以打开我们的ida,设置一]]></description><category></category></item><item><title><![CDATA[vmware 虚拟机突然无法上网怎么办]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/115589468</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/115589468</guid><author>fishyfine</author><pubDate>Sun, 11 Apr 2021 10:08:34 +0800</pubDate><description><![CDATA[点击这里

虚拟网络编辑器,经过一段加载时间进入到这样得窗口

点击红色箭头处
经过一段时间得加载

点击红色箭头处,我这里没有点过更改设置所以是无法点击的.点完这个,再次开启虚拟机,应该就可以上网了.

...]]></description><category></category></item><item><title><![CDATA[计算机操作系统 PV题目]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/115419205</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/115419205</guid><author>fishyfine</author><pubDate>Sat, 03 Apr 2021 18:51:20 +0800</pubDate><description><![CDATA[struct Semaphore{
    int value;
  	queue process;  
};

吃水果问题
问题描述:
桌子上有一只盘子,每次只能放一个水果,爸爸专向盘中放苹果,妈妈专向盘中放桔子,儿子专吃盘里的桔子,女儿专吃盘里的苹果.只要盘子空,则爸爸或妈妈可以向盘中放水果,仅当盘中有自己需要的水果时,儿子或女儿可从中取出.
//分析:
//首先爸爸,妈妈,儿子,女儿的动作都不一样,所以应当有四个进程
//一家人都是互斥的访问盘子,需要一个互斥变量
//爸爸女儿同步,需要两个同步变量
]]></description><category></category></item><item><title><![CDATA[计算机操作系统笔记 PV信号量机制解决同步和互斥]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/115405398</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/115405398</guid><author>fishyfine</author><pubDate>Sat, 03 Apr 2021 16:17:38 +0800</pubDate><description><![CDATA[首先说明一下什么叫做PV信号量机制:
信号量,接下来用Semaphore或者S来表示.其意义是代表当前临界资源的数量.正数表示目前空闲的临界资源数量.0表示目前没有临界资源空闲,也没有进程等待临界资源.负数表示目前有多少进程在等待临界资源.
P,V是操作系统内核中定义的两个原语,原语的意思就是说计算机运行的最小单位,在运行原语的时候是不会出现中断的.计算机程序大多都是交替进行的,但是原语程序是一次性完成的.
P原语程序的具体操作为
S-1
如果S-1以后仍然大于等于零,则进程继续进行
如果S-1以后以后小于]]></description><category></category></item><item><title><![CDATA[CTF 从网上下载的ELF为什么无法使用呢.process不行,pwndbg也不行]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/115183659</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/115183659</guid><author>fishyfine</author><pubDate>Wed, 24 Mar 2021 18:09:16 +0800</pubDate><description><![CDATA[把这个执行-&gt;允许文件作为程序执行勾选就行了

]]></description><category></category></item><item><title><![CDATA[如何自己制作鼠标宏]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/115032004</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/115032004</guid><author>fishyfine</author><pubDate>Sat, 20 Mar 2021 18:02:06 +0800</pubDate><description><![CDATA[用AutoHotKey就行,一个可以制作热键脚本的东西
附上下载链接和脚本语法说明书
比如我就制作了一个利用鼠标侧键翻页的小程序,很简单的脚本
XButton1::{LCTRL down}{Tab}{LCTRL up}

]]></description><category></category></item><item><title><![CDATA[如何用Github下工具,以ROPgadgets为例]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/114846696</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/114846696</guid><author>fishyfine</author><pubDate>Mon, 15 Mar 2021 19:16:41 +0800</pubDate><description><![CDATA[github下不了,直接从https://gitee.com/上,解压后用setup.py安装就完事
sudo python ./setup.py install

]]></description><category></category></item><item><title><![CDATA[C# MD5密码加密]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/114754403</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/114754403</guid><author>fishyfine</author><pubDate>Sat, 13 Mar 2021 17:31:02 +0800</pubDate><description><![CDATA[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();
        ]]></description><category></category></item><item><title><![CDATA[Ubuntu上开始我的C/C++编程之路]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/114700907</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/114700907</guid><author>fishyfine</author><pubDate>Fri, 12 Mar 2021 18:02:08 +0800</pubDate><description><![CDATA[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则是替换整个文件]]></description><category></category></item><item><title><![CDATA[Ubuntu 使用python 需要作的准备]]></title><link>https://blog.youkuaiyun.com/fishyfine/article/details/114696353</link><guid>https://blog.youkuaiyun.com/fishyfine/article/details/114696353</guid><author>fishyfine</author><pubDate>Fri, 12 Mar 2021 16:09:50 +0800</pubDate><description><![CDATA[首先先更新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]]></description><category></category></item></channel></rss>