- 博客(9)
- 收藏
- 关注
原创 ctfshow pwn刷题记录
正式开始栈溢出了,先来一个最最最最简单的吧首先使用checksec查保护:32位程序,开启了堆栈不可执行保护。首先运行一下:发现他会打开根目录下的文件,但是并不对其进行输出。这里使用ida进行反编译:发现,程序读取文件后存入flag变量中,但不打印,然后打印字符串,进入验证argv[1]的值,但是程序中并没有给定输入argv数组的功能,然后根据argv[1]的值输出不同的字符,其中,当argc >= 1时,会进入ctfshow函数中,进入观察:发现使用strcpy。
2025-04-18 20:03:32
387
原创 C语言--mmap()函数
mmap函数是QNX操作系统中内存管理的核心,可以使用该函数将一个指向共享内存对象的文件描述符(或者一部分)映射仅进程地址空间中。还可以使用该函数将普通文件或类型化内存对象(typed memory objects)映射到进程地址空间中。mmap。
2025-04-18 14:40:41
299
原创 西电ctf平台pwn刷题记录
可以看到,read函数的接受值可以由用户进行控制的,同时会打印出nbytes_4的地址,最后将nbytes_4读入。的地址即为name的地址,返回到name地址后,第一步便会执行mprotect进行提权,然后执行shellcode。首先,name所在的.bss段是可以写入的,并且可写入字节数足够大,但不可以执行,所以,我们首先构造使用。不知道为什么,我在做的时候一直会卡在这一步,导致我一直以为我的exp是错误的,一直改改改,😭。然后利用栈迁移,跟exp1的构造方法差不多,都是迁移到name段开始执行代码。
2025-04-17 19:15:02
387
原创 C语言--mprotect()函数
需要指出的是:锁指定的内存区间必需包含整个内存页(4K)。区间开始的地址start必需是一个内存页的起始地址,并且区间len必须是页大小的整数倍。mprotect()函数把自start开始的,长度为len的内存去的保护属性修改为prot指定的值。PROT_NOCACHE: 禁用该区域的缓存(例如用于访问双端口内存),在ARM架构上,PROT_NONE: 表示内存段中的内存不可被访问(不可读、不可写、不可执行);PORT_EXEC: 表示内存段中的内容可执行,要成功使用改标志,进程必需启用。
2025-04-17 17:00:58
148
原创 网安学习——Linux操作系统
在Linux操作系统中,命令格式是:命令 选项 参数,中间用空格隔开。而在命令的输入中,需要注意区分大小写,大小写错误可能会导致命令执行错误,还需要注意空格的使用,而对于顺序并没有太多的要求。
2023-08-16 03:24:52
130
1
原创 网安学习——Linux操作系统
内核是一个资源管理程序。负责将可用的共享资源(CPU时间、磁盘空间、网络连接等)分配得到各个系统进程。用于管理进程、内存、驱动、文件和网络。
2023-08-04 13:46:17
278
1
空空如也
火绒剑和wirshark抓ip
2023-08-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人