0x000.绪论
BUUCTF是一个巨型CTF题库,大致可以类比OIer们的洛谷一样的地方,在BUUCTF上有着分类齐全数量庞大的各方向题目,包括各大CTF的原题
正所谓”不刷BUU非CTFer“(
哪里有过这种奇怪的话啦),作为一名新晋的蒟蒻CTFer&网安专业选手,咱也来做一做BUUCTF上的题,并把题解在博客上存档一份方便后来者学习(快醒醒,哪里会有人看你的博客啦XDBaby Pwner做的都是pwn题,点开即可查看题解
👆在第一篇BUU的题解中我曾经这么说过,但是作为研究二进制安全的新手,同时也作为Baby Pwner,深深地感受到了逆向功底的重要性
为了巩固自己的逆向功底,提高代码审计的功力,今天开始也并行刷一刷Reverse
但愿肝有事,不然岂不是等于一直在划水
0x001.easyre
拖入IDA中就有flag了
1 | flag{this_Is_a_EaSyRe} |
0x002.reverse1
拖入IDA进行分析
存在一个可疑的用括号包着的字符串{hello_world}
同时我们可以发现程序会把该字符串中的'o'
替换成'0'
故得flag
1 | flag{hell0_w0rld} |
0x003.reverse2
拖入IDA进行分析
有个可疑字符串{hacking_for_fun}
main函数中会进行置换,将i
和r
都换成1
故得flag
1 | flag{hack1ng_fo1_fun} |
0x004.内涵的软件
拖入IDA就有flag
需要注意的是把DBAPP
换成flag
1 | flag{49d3c93df25caad81232130f3d2ebfad} |
0x005.新年快乐 - UPX
惯例的拖入IDA,发现啥都没有,推测是加了壳
脱壳以后就可以在IDA中直接得到flag了
1 | flag{HappyNewYear!} |
0x006.[BJDCTF 2nd]guessgame
拖入IDA中就有flag了
1 | flag{S1mple_ReV3r5e_W1th_0D_0r_IDA} |
0x007.helloworld
拖入jadx中就有flag了
1 | flag{7631a988259a00816deda84afb29430a} |
0x008.xor - 异或
拖入IDA进行分析,发现储存了异或加密后的flag
写个脚本解密即可
1 | flag = b'f\nk\fw&O.@\x11x\rZ;U\x11p\x19F\x1Fv\"M#D\x0Eg\x06h\x0FG2O' |
1 | flag{QianQiuWanDai_YiTongJiangHu} |
0x009.reverse3 - base64
拖入IDA进行分析
这个是加密函数
存在base64码表,推测应该是base64
base64加密后还有一个简单的赋值操作
故构造解密脚本如下:
1 | from base64 import * |
得到flag
1 | flag{i_l0ve_you} |
0x00A.不一样的flag
拖入IDA进行分析
得到flag
1 | flag{222441144222} |