Learning Haskell Note - 01
这学期上了一门《程序语义分析与验证》的课,老实说我对其中的数学证明不太感冒(对我来说,有点“过于”严谨了),但是其中介绍的函数式编程语言非常吸引我,打算趁这个机会玩一玩。 这个系列不会用来记录繁杂的知识点,而是写下一些偶尔的想法。 函数的柯里化 在编写”根据key查找map中数据”的时候,刚开始我编写了基础版本的程序: book = [("a", 12), ("b", 13), ("c"...
这学期上了一门《程序语义分析与验证》的课,老实说我对其中的数学证明不太感冒(对我来说,有点“过于”严谨了),但是其中介绍的函数式编程语言非常吸引我,打算趁这个机会玩一玩。 这个系列不会用来记录繁杂的知识点,而是写下一些偶尔的想法。 函数的柯里化 在编写”根据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...
这一题断断续续尝试了1天,从泄漏栈指针、任意位置读写,到远程dump ELF、泄漏got表、获得libc地址,到最后尝试写入ROP链,实在是非常梦幻() 然而可惜的是在最后一步总是遇到 remote connection closed with EOF的情况。赛后查看大佬们的wp发现和我写的不是同一个return addr. 除了最后一个小节,都会记录我当时的探索过程,因此有些过程可能是错的...
0x01 页面要求点击1000000000次, 通过控制台查看,使用了flutter。 搜索核心字符串,发现在main.dart.wasm里 尝试使用wasm cheat engine, 但是没有找到能用的( 下载main.dart.wasm,然后用ghidra wasm plugin或者wasm2wat,但都无法打开。 赛后有大佬解释了原因: Yeah https://g...
0x01 初步分析:控制流混淆,花指令,运算符重载 UPX去壳后,很容易定位核心函数所在的位置。其中sub_7FF70E1FD3E8和sub_7FF70E1FD4B5都是字节序变换的函数,真正棘手的是for循环中的sub_7FF70E1FD5AC,会执行6轮,每次使用8字节进行变换(后续称呼为fuck函数) // bad sp value at call has been detected...
在SekaiCTF-2025中,面对一个程序,我用繁琐的动态调试方法来手动dump数据,每次运行都需要按下几十次 F9, 甚是繁琐,在被折磨一通耻辱下播(bushi)。比赛结束后我学习了一位大佬的解法,他使用了frida脚本来一键dump, 深深地震惊了我:这就是科技的力量吗?虽然很早以前就听过hook技术,但却没有想过还能这么玩。 不久后的FortID CTF中,其中有一道名为toile...
0x01 直接运行显示权限不够,sudo运行后显示监听本机的端口 /* WARNING: Enum "__rlimit_resource": Some values do not have unique names */ /* DWARF original prototype: Result<(),_alloc::boxed::Box<dyn_core::error::...
0x01 pyinstaller-cookie 运行后程序要求输入。尝试反汇编的时候一股浓烈的工业气息扑面而来: __int64 __fastcall sub_1400040D0(__int64 a1) { ...... v2 = _acrt_iob_func(2u); setbuf(v2, 0i64); if ( (int)sub_140003FC0(a1 + 16) &l...
0x01 程序分析 使用ghidra反汇编: /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ undefined8 FUN_0010108c(void) { int iVar1; size_t sVar2; undefined1 auStack_130 ...