PicoCTF2022 二进制 writeup

警告
本文最后更新于 2023-01-29,文中内容可能已过时。

#RE

file-run1

运行即可

file-run2

同上

#GDB Test Drive

按照题干调试

patchme.py

将if判断语句段注释掉

运行即可

patchme

Safe Opener

打开java源码

里面有串base64 是flag

unpackme.py

打开源码 加一行print(plain)即可

unpackme.py

bloat.py

![OSK3VGZU4R6QK@B3AQB)GX.png

打开是一堆被混淆过的文本和混乱命名的函数名

按照逻辑看下去会发现flag在 arg122

print就行

Fresh Java

其实不用下什么反编译

IDEA就能反编译class

![~%%GLE(6DL%(WOBFD@@2}3.png

倒序打出来就行

bbbbloat

反编译 然后发现输入549255就可以

bbbbloat

#PWN

basic-file-exploit

给了一个程序 漏洞点在读取区,长度溢出即可

buffer overflow 0

nc连接然后输入大量字符溢出即得到flag

CVE-XXXX-XXXX

根据题干搜索CVE编号

就是flag

buffer overflow 1

溢出到win函数的基地址即可

RPS

剪刀石头布 连胜5次得到flag

用脚本爆破

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
    from pwn import *
    #context.log_level = 'normal'
    p = remote ('saturn.picoctf.net','52473')
    
    for i in range(2000):
    	a = "1"
    	b = "scissors"
    	resu = ""
    	p.sendlineafter("to exit the program",a)
    	p.sendlineafter('paper',b)
    	resu = p.recvuntil("Type '1' to play a game",drop=False)
    	if "flag" in str(resu):
    		print(resu)
    		break
0%