- 2024-10-16OS-Lab4-多线程编程基础
实验目的事先编辑好数据文件1.dat和2.dat,它们的内容分别为12345678910和-1-2-3-4-5-6-7-8-9-10。根据示例代码和其运行效果设计一个程序,在这个程序中一共有3个线程,其中两个线程负责从文件读取数据到公共的缓冲区,另外一个线程从缓冲区读取数据作不同的处理(加和
- 2024-06-20#C:比如有如下两个字符串:“hello“、“helhehe“不能使用库函数完成字符串的比较
#include<stdio.h>#include<string.h>voidtest00()//比如有如下两个字符串:"hello"、"helhehe"不能使用库函数完成字符串的比较{ //时刻需要注意变量i的值 charbuf1[128]=""; printf("请输入第一个字符串buf1:"); //scanf("%s",buf1);
- 2024-03-20操作系统综合题之“采用记录型信号量机制实现进程INPUT、PROCESS和OUTPUT的同步算法(代码补充)”
1.问题:系统中有有三个进程INPUT、PROCESS和OUTPUT,共用两个缓冲区BUF1和BUF2。假期设BUF1中最多可放10个数据,现已放入了2个数据;BUF2最多可放5个数据。INPUT进程负责不断将输入的原始数据推送入BUF1,PROCESS进程负责从BUF1中取出原始数据进行处理,并将处理后的结果数据送入到BUF2中,OUT
- 2023-11-28Tea总结(例题形式)
Tea总结(例题形式)[GDOUCTF2023]Tea老规矩,pe查壳,无壳64位,拖进IDA中在Function模块中没有找到main函数,看看String里面有没有发现了fake_flag,点进去看看发现sub,跟进看到以下内容发现sub_140011339中的sub_1400117D0有有用内容那么key的值就是key[]=再跟进到sub_1400112B7下
- 2023-10-27golang 中使用 writev (sendmsg) 系统调用来一次发送多块数据
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯writev,或者说sendmsg等系统调用,能够发送多个数据块。从节约系统调用次数的角度说,这个api非常好。下面演示如何在golang中使用sendmsg系统调用:funcsendmsg
- 2023-09-28ret2lib2
ret2libc2查看文件ROP$checksecret2libc2[*]'/home/pwn/桌面/题目/ROP/ret2libc2'Arch:i386-32-littleRELRO:PartialRELROStack:NocanaryfoundNX:NXenabledPIE:NoPIE(0x8048000)IDA静态查看将文件放入32位IDA
- 2023-08-21字符集
一,Charset1,字符集-编码:字符串---字节数组-解码:字节数组---字符串packagecom.momo.demo;importjava.nio.ByteBuffer;importjava.nio.CharBuffer;importjava.nio.charset.CharacterCodingException;importjava.nio.charset.Charset;importjava.nio.charset.CharsetDecoder;impo
- 2023-06-15nodejs 一些零碎buffer操作
demo1constbuf1=Buffer.from([0x24,0x40,0x24,0x40]);console.log(buf1);console.log(buf1[0]);console.log(buf1[1]);console.log(buf1[2]);console.log(buf1[3]);constbuf2=Buffer.from([24,40,24,40]);console.log(buf2);console.log(buf2[0]);
- 2023-04-06【c&c++】C语言 char*和char[]用法
char[]定义的是一个字符数组,注意强调是数组。char*定义的是一个字符串指针,注意强调是指针。char*s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:当char*s=“hello”;后,不能使用s[0]=‘a’;语句进行赋值。这是将提示内存不能为"written"
- 2022-08-30Stack Migration(栈迁移)
StackMigration(栈迁移)原理1.通过overflow覆盖prevebp的值,让程序在执行完当前函数后执行leave(movesp,ebp;popebp)恢复栈帧时,获取到错误的prevebp从而让ebp跳转到
- 2022-08-24C++编程 使用openssl加载der证书文件
当需要编程加载der证书的时候可以这样unsignedcharbuf2[1024]={0};FILE*fp=fopen("d:/test.der","rb");intn=fread(buf2,1,1024,