比赛质量很高,可惜只做了一天,第二天有事出去了一天,再做题的时候发现已经结束了,后面的题目复现的时候慢慢加上。
re
Microsoft ❤️ Linux
这题比较简单但是很有意思。
先用IDA打开,发现是一个32位的ELF文件,做了一个循环左移,但是对一个8bit数左移13位很奇怪
1 | void __noreturn start() |
解出来只有一半的flag,按照提示尝试windows下不能直接运行,有可能是DOS,用ghidra打开,调成16bit解析,发现是异或
1 | 0000:00d6 83 fe 12 CMP SI,0x12 |
正好异或的是13,和前面对应
1 | package main |
turbocrab
rust题,用Iced_x86跑了一段代码,前面的部分都可以直接调试过去,直接找到执行的部分,仅仅是进行了一些简单的操作,唯一的问题在于存在多解的可能,要慢慢调整
1 | package main |
hackermans dungeon
这题赛后复现的,比赛的时候都逆完了但是没什么解决思路,赛后发现就是crack一个sha256的hash
1 | if ( (int)v17 > 0 ) |
首先对输入有一个编码,然后就是一通md5,sha256,chacha20,crc32的操作,在这里卡了很久因为根本求解不出来,赛后看到直接对sha256跑一个字典,非常常用的rockyou.txt
就可以了,试了一下,直接就可以解出来。
1 | package main |
pwn
babypwn
格式化字符串加栈溢出,泄露libc_base然后构造rop
1 | #!/usr/bin/env python3 |
这里做麻烦了一些,可以使用libc里的gadgets,就可以不用泄露binary base。
Comments