Python Note - 01
python中的match 多值匹配: match x: case 1 | 2 | 3: print("small") case _: # fallback print("big") 条件匹配: match x: case n if n > 10: print("big") 匹配元组(联想到了haske...
python中的match 多值匹配: match x: case 1 | 2 | 3: print("small") case _: # fallback print("big") 条件匹配: match x: case n if n > 10: print("big") 匹配元组(联想到了haske...
各项评分主观性极高. 如果同一IP有游戏、动漫等多部作品,选择长板进行评分. 剧情:故事是否精彩. 反转、伏笔回收、催泪、笑点等都是加分项; 对日常番来说主要看平时描绘的故事是否丰富/有趣/有深度. 角色:有魅力的人物塑造;可爱、性格讨喜的角色 观感:节奏是否舒适;是否没有硬伤情节 音乐:是否有几首令人印象深刻的...
这一题是赛后做出来的(而且一开始没注意到srand的种子是clock_gettime的地址,感觉无从下手)。感觉比前面的tcademy和adventure都简单,但是比赛过程中这一题解出的人反而比较少,应该这一题需要大量枚举,打远程环境网络不好太折磨了。 0x01 寻找溢出 很容易发现run()中能够修改两个地址的2字节: int __fastcall main(int argc, con...
0x01 analyze heap题. int __fastcall main(int argc, const char **argv, const char **envp) { char *v3; // rdi char nptr[4]; // [rsp+4h] [rbp-Ch] BYREF unsigned __int64 v6; // [rsp+8h] [rbp-8h] ...
虽然是pwn题,但感觉难度完全在逆向上… 直接尝试让ai还原原始代码(但就算看c代码还是花了一些时间理解) 0x01 AI还原代码 // Reconstructed from IDA/objdump: abyss::main // This file is a commented reverse-engineering note, not the original source. #inc...
0x01 编写gdb脚本辅助ai分析 程序要求输入一个32字节的key, 直接让ai静态分析,但是效果不好. 让ai生成需要dump的断点: ## 1) charset 检查(main.main.func2) ### 断点A:0x499a4c(取当前字符) - IDA语义:r = k[i](对应伪代码里的 r) - 观察变量: - i -> rcx ...
比赛期间这一题根本没看,赛后学习了@j0xnd03大佬的脚本,涉及到了large bin attack, unsafe-unlink等以前还没有学过的技术,期间看了很多blog恶补相关知识,一晚上+一上午才终于理清了攻击思路。第一次见到这么长的利用链,真让人兴奋! 0x01 - 语义分析 程序实现了一个简易虚拟机: void __fastcall __noreturn main(__int...
用patchelf设置binary路径 使用 --set-interpreter可以设置解释器路径,--set-rpath设置搜索动态库的路径。其中$ORIGIN是一个特殊的值,意为“根据当前的目录,相对地寻找lib”. 但是注意,这个选项对于–interpreter无效。 一个错误示范: (venv14) woc@myarch:ehaxCTF/revenge_womp $ ls . ...
// 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...