lactf - ScarbAsm
// chall.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <sys/mman.h> #include <unistd.h> #define HAND_SIZE 14 #define B...
// chall.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <sys/mman.h> #include <unistd.h> #define HAND_SIZE 14 #define B...
格式化字符串漏洞,但是这一题只会执行一次输入,也就是说,没有“泄露信息”的机会。 0x01 尝试劫持got表 首先想到的是:利用一次任意位置写的机会,劫持控制流。比如修改got表: pwndbg> checksec File: /ctf/pragyan26/talking_mirror/challenge Arch: amd64 RELRO: Partial...
没有防护,直接栈溢出 pwndbg> checksec File: /ctf/pragyan26/dirty_laundry/chal Arch: amd64 RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000)...
解出来的第一道heap相关的题,还是挺有成就感的。 0x00 调试方法 这一题给了 libc-2.27和一个比较老的libstdc++,直接在当前目录下把附件libc命名为libc.so.6会出问题,似乎是版本太过古老,会导致当前的shell命令都出问题,连ls都不能执行。咨询yxy学姐后,建议我用patchelf修改,但是这一题还有libstdc++,有一堆依赖不太好办。 无奈之下我开始...
最近闲来无事,又翻出了这一道题。起初我尝试用gdb脚本解,但是只解出了最后几个字符;后来看discord群里有大佬是用unicorn做的,也体验了一下这个工具,发现确实挺不错的。 0x01 gdb脚本尝试 刚拿到程序,发现是一个stack vm,含有大量gadget 函数 .text:00000000004013E0 .text:00000000004013E1 .text:0000000...
hyprland中全屏 可以使用fullscreen命令. 另外发现了hyprland的配置支持SHIFT组合键,丰富了常用按键的功能 .config/hypr/hyprland.conf # Win + Shift + K 全屏模式 bind = $mainMod SHIFT, K, fullscreen # Win + Shift + J 水平/竖直切换 bind = $mainM...
记录一些离散的知识点/感悟 String 和 &str String -> &str : .as_str() &str -> String : .to_string() 其次是编写函数的参数类型选择上,基本原则是:&str只是副本,函数是只需要获得其值,还是真的需要获得“本尊”? enum to String ...
这学期上了一门《程序语义分析与验证》的课,老实说我对其中的数学证明不太感冒(对我来说,有点“过于”严谨了),但是其中介绍的函数式编程语言非常吸引我,打算趁这个机会玩一玩。 这个系列不会用来记录繁杂的知识点,而是写下一些偶尔的想法。 函数的柯里化 在编写”根据key查找map中数据”的时候,刚开始我编写了基础版本的程序: book = [("a", 12), ("b", 13), ("c"...
在使用vim的时候,我已经习惯了将esc和capslock互换位置,不得不说是真的爽。 而对于emacs派,则流行将left ctrl和capslock呼唤,这样按C-a, C-b, C-f等快捷键就不会那么痛苦。 去年我试过一个keymap软件(名字忘了)来实现vim流的映射, 但结果一言难尽 —— 在vscode里,互换就不会生效,还有其它的一些小bug, 不久就被我遗弃了。 最近发...
(lambda x=int(input('> '),16): (all((int(bin(y).translate(str.maketrans('1b','fx')),0)&x).bit_count()==15 for y in [511,261632,1838599,14708792,117670336,133955584,68585259008,35115652612096...