WHUSESC数据结构考纲算法模版
0x00数据结构实验期末考试复习,搓了考纲内的简单算法模版,仅作参考 0x01...
WHUSESC数据结构实验往年题解
0x00WHUSESC 23-24 和 22-23 的数据结构实训期末考核题解源码笔者手写,仅供参考 0x01 23-24一、H 遍历算法设计在森林上定义一种特殊的遍历次序,称为 H 遍历。规则如下:对于有多棵子树的森林,先遍历第一棵子树 T1,再遍历第二棵子树 T2,依次按顺序遍历完所有子树。在每一棵子树内部,比如 T1 的内部,先遍历 T1 的第一棵子树,再访问 T1 的根结点,再遍历 T1 的其余的子树森林。 如图所示,该树的 H 遍历结果是:EBFACHIJKGD。 因为任意的树都可以转换为对应的二叉树,如上图所示的树,可以转换成下图所示的二叉树: 请设计一个算法,能够在以二叉链表表示的树(即孩子兄弟链结构)上输出 H 遍历次序。 具体要求(1) 定义二叉树的结点的数据类型,并使用动态内存分配的方式向二叉树中插入新的结点。 (2) 定义栈元素的数据类型,以满足遍历二叉链表结构的需要。概念上是一个二叉树的结点入栈,同时应该表明该结点是其父结点的左孩子还是右孩子。这样可以方便判断回溯时是从左子树上来的还是从右子树上来的。 (3)...
DASCTF2025-winter
0x00简单放下 wp , 复现了一下最后的 vm 0x01 rcms菜单 1234567891011121314151617181920212223242526272829303132333435363738394041int __fastcall main(int argc, const char **argv, const char **envp){ __int64 v3; // rdx __int64 v4; // rcx __int64 v5; // r8 __int64 v6; // r9 int v8; // [rsp+Ch] [rbp-14h] BYREF _QWORD *v9; // [rsp+10h] [rbp-10h] unsigned __int64 v10; // [rsp+18h] [rbp-8h] v10 = __readfsqword(0x28u); init(argc, argv, envp); sandbox(*(__int64 *)&argc, (__int64)argv, v3, v4, v5,...
OCCTF2025
0x00老乡鸡CTF,奇妙的组合,遂打来玩玩 0x01 bad-with-numbers没啥好说的,过于简单 1234567891011121314151617181920212223242526272829303132333435#!/usr/bin/env python3from pwn import *context(os='linux', arch='amd64', log_level='debug')filename = "pwn_patched"libcname = "/home/r3t2/.config/cpwn/pkgs/2.39-0ubuntu8.6/amd64/libc6_2.39-0ubuntu8.6_amd64/usr/lib/x86_64-linux-gnu/libc.so.6"host = "challenge.cyclens.tech"port = 30100elf = context.binary =...
RCTF2025
0x00打了 RCTF2025,放下wp再复现几题 0x01 only经过逆向发现堆部分以及其他部分没有什么洞,但是可以写shellcode 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859unsigned __int64 backdoor(){ _QWORD *addr_1; // rax int n2; // [rsp+8h] [rbp-28h] BYREF int i; // [rsp+Ch] [rbp-24h] __int64 *v4; // [rsp+10h] [rbp-20h] unsigned __int64 v5; // [rsp+18h] [rbp-18h] void *addr; // [rsp+20h] [rbp-10h] unsigned __int64 v7; // [rsp+28h] [rbp-8h] __int64 savedregs; //...
关于top-chunk的利用
0x00还是 nssctf 的每日一题,发现是对于top chunk的利用,还没有总结过,于是记录一下 0x01 house of orange主要应对没有free的情况,通过溢出修改top chunk的size字段,改小后并绕过一些检查即可将top chunk放入unsortedbin;因为只适用于比较古早的版本(glibc2.29-)就不放源码过多分析了;具体见 wiki上的叙述只要满足: 伪造的 size 必须要对齐到内存页 size 要大于 MINSIZE(0x10) size 要小于之后申请的 chunk size + MINSIZE(0x10) size 的 prev inuse 位必须为 1 这样再申请一个大于top chunk伪造size的chunk,即可将top chunk放入unsorted bin,后续就可以再从这个old top-chunk中切割chunk来leak出libc地址或者进行一些堆风水构造出uaf,具体情况具体应用,不赘述 0x02 house of...
记一次off-by-null利用--无法控制pre_size
0x00笔者昨天打开nssctf的每日一题,发现是个off-by-null的堆题,但似乎和常规的不太一样…贴上几篇关于off-by-null的参考博客 https://tttang.com/archive/1614/#toc_expglibc231ubuntu2004 https://bbs.kanxue.com/thread-269146.htm...
moectf2025 & newstarctf2025(before week3)
0x00粗糙地贴一份moectf2025以及newstarctf2025(至week3) pwn方向的全解。笔者已经不是新生,贴全题解也不是为了享受炸鱼快感。原本不打算发布,只是因为一些事,有一些感慨,所以发布此题解,仅仅希望能帮助到正在看的你,也权且算是笔者投身 pwn 的一次回望。0x01 - 0x16 为 moectf2025题解,0x17及以后为 newstarctf2025 week3前的题解 0x01 boom12345678910111213141516171819202122232425262728293031323334353637383940414243#!/usr/bin/env python3from pwn import *import ctypescontext(os='linux', arch='amd64', log_level='debug')filename = "pwn_patched"libcname =...
关于stdin的利用
0x00之前写了一篇关于stdout的利用,stdin一直拖着,强网杯2025 遇到了一个 stdin 来任意地址写的应用,于是补充一下 0x01 _IO_file_xsgetn / _IO_new_file_underflow在 glibc2.39 找到_IO_file_xsgetn定义 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192size_t_IO_file_xsgetn (FILE *fp, void *data, size_t n){ size_t want, have; ssize_t count; char *s = data; want = n; if (fp->_IO_buf_base == NULL) // 缓冲区未分配 ...
强网杯2025
0x00也是第一次参加这么重量级的比赛,回想起第一次参加正式比赛是学校的校赛,真是感慨良多 0x01 flag-market题目 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970__int64 __fastcall main(__int64 a1, char **a2, char **a3){ int i; // [rsp+Ch] [rbp-84h] int fd; // [rsp+14h] [rbp-7Ch] FILE *stream; // [rsp+18h] [rbp-78h] char filename[9]; // [rsp+27h] [rbp-69h] BYREF char s[16]; // [rsp+30h] [rbp-60h] BYREF char s_1[72]; // [rsp+40h] [rbp-50h] BYREF ...


