C语言学习笔记(更新中)
字符串函数这些str开头的函数均包含在string.h头文件中 strlen(const char*str) 用于统计字符串的长度 strcat(char*str1,const char*str2) 将str2拼接在str1后,返回值是拼接第二个字符串后第一个字符串的地址 strncat(char*str1,const char*str2,size_t n) 解决了strcat中分配给str1的空间不够大,溢出到相邻存储单元的问题。第三个参数指定了最大添加字符数 strcmp(const char*str1,const char*str2) 比较字符串,返回0时字符串相等,>0时str1>str2,<0时str1<str2 strncmp(const char*str1,const char*str2,size_t n) 可以限定只查比较n个字符 strcpy(const char*str1,const char*str2) 将str2复制到str1 strncpy(const char*str1,const char*str2,size_t n) ...
XYCTF 2025 Re复现
WARMUPVBS逆向,用VScode等文本编辑器打开.vbs文件,将开头处的Execute修改为wscript.echo再运行即可得到源码如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051MsgBox "Dear CTFER. Have fun in XYCTF 2025!" flag = InputBox("Enter the FLAG:", "XYCTF") wefbuwiue = "90df4407ee093d309098d85a42be57a2979f1e51463a31e8d15e2fac4e84ea0df622a55c4ddfb535ef3e51e8b2528b826d5347e165912e99118333151273cc3fa8b2b3b413cf2bdb1e8c9c52865efc095a8dd89b3b3cfbb200bbadbf4a6cd...
IDA linux远程调试
安装调试服务端程序在IDA的目录下找到以下位置的文件:IDAPro/dbgsrv/linux_server和linux_server64。将这两个文件拖入linux虚拟机中的合适位置。 查看虚拟机IP地址在虚拟机命令行中输入 1ifconfig 可看到以下内容,其中inet后面的就是虚拟机的IP地址: 查看虚拟机远程调试服务端口在终端打开之前调试服务端程序所在位置,然后输入以下命令: 12chmod 777 linux_server64 # 为文件获取足够的权限 ./linux_server64 # 启动调试服务端程序 此时终端就会显示远程服务的端口号: 配置IDA远程调试将要动态调试的程序也放在那个目录下,然后打开IDA,在菜单栏中找到并点击Debugger,选择Remote Linux debuger,然后进行如下配置: 其中,填入信息如下: 选项 应填入的信息 Application 待调试文件在Linux上的路径(包括待调试文件) Director 调试文件所在的文件夹路径 Parameters 运行参数,例如运行可执...
DeepSeek本地部署过程
现今DeepSeek作为一款性能出色的国产的开源AI大模型,性能与ChatGPT已不相上下,其在国内外均掀起了一片浪潮,登陆其官方网站即可开始使用。但是对于CTF手来说,进行线下断网的比赛时就无法使用网页版了,因此我们可将其部署到本地,以便在断网的情况下也能使用。 安装OllamaOllama是一款帮助用户在本地计算机上运行和交互大型语言模型(LLM)的工具。它简化了开源LLM的下载、管理和实验流程,无需依赖云服务。 可在官网上下载Ollama:https://ollama.com/download 下载DeepSeek模型在Ollama中根据自己电脑的配置选择合适的DeepSeek模型下载 地址:https://ollama.com/library/deepseek-r1:1.5b 根据下载界面复制下载对应的指令,复制到Cmd命令行里运行即可下载 下载完成后即可在命令行中与DeepSeek进行对话了 下载Chatbox虽然在上一步已经可以和Deepseek在命令行中对话了,但是命令行界面实在是不太美观和方便,故我们可以下载Chatbox来引入图形化界面便于使用 可在官网上下...
16位汇编学习笔记
一、常见的寄存器1. 通用寄存器包括: AX累加寄存器 BX基址寄存器(常用于存放要使用数据的偏移地址,即放在[]中的数据) CX计数寄存器(使用Loop指令循环时其会存放要循环的次数) DX数据寄存器 注:数据在寄存器中以小端序方式进行填充,低8位构成AL寄存器,高八位构成AH寄存器 2. 段寄存器CS代码段寄存器 DS数据段寄存器 SS堆栈段寄存器 ES附加段寄存器 3. 指针寄存器SP堆栈指针寄存器(指向堆栈的当前栈顶) BP基址指针寄存器(用于基址寻址) SI源变址寄存器 DI目的变址寄存器 IP指令指针寄存器(指向下一条即将执行指令的地址) 4. 标志寄存器FLAG寄存器由若干标志位组成,反映指令执行后的状态或控制CPU的行为,其包含的常用标志位有: ZF零标志位 记录相关指令执行后结果是否为0 ,如果结果为0,则其为1,反之为0(标志寄存器的第6位) PF奇偶标志位 记录相关指令执行后结果中所有bit位中1的个数是否为偶数 ,如果是偶数,则其为1,反之为0(标志寄存器的第2位) SF符号标志位 记录相关指令执行后结果是否为负 ,若为负,则其为1,反之为...
个人博客搭建过程
一些”原理”做一件事知道了原理再去做,常常会让我们的方向更加明晰。所以,在开头处先来分享一点我个人对搭建博客的理解。这里使用的是Hexo这种生成博客页面的工具。首先,我们通过Github建立一个仓库的博客,里面存放着我们博客中的内容,然后通过Git将本地的一个存放着博客中的原始数据的文件夹与Github中的那个仓库链接起来,接着通过Hexo这个工具把我们编写的博客内容和一些配置文件转化为博客网页中的实际数据和代码存放在Github的仓库中,最终实现对博客网站内容的编辑。(仅为个人主观理解的想法,可能不太准确) 准备工作已知了前面的”原理”,我们不难发现要准备的无非是三样东西:Github Git Hexo,那么我们要做的准备工作也就很明晰了 注册Github 账号可在Github官网按照引导完成注册 下载Git可点击此处的链接前往官网下载Git 配置HexoHexo的实现基于Node.js,所以需要下载。可点击此处的链接前往官网下载安装包,按照自己电脑的系统选择合适的安装包下载并进行安装即可 可用如下命令查看自己安装后Node的版本以确认是否成功安装 1node -v 安...
