CTF萌新赛-re_signin解题思路分享
前言心得总结
此题目是考点是冒泡法排序,根据分析代码中的等式逻辑,计算出flag。
- 下载题目
1、下载ZIP压缩包,具体如下图
- 点击“View Hint”,获得提示“冒泡排序次数”,具体如下图
- 分析过程
根据提示“冒泡排序次数”,此题目大概率是计算冒泡排序的次数得到flag,具体操作还需要根据下载下来的代码进行分析。
三、解题过程和结果
1、反编译
解压以后的文件为flag.pyc,经过反编译后得到flag.py,具体反编译指令如下
uncompyle6 D:\ctf\learn\web\001re_signin\so_ez_re\flag.pyc > D:\ctf\learn\web\001re_signin\so_ez_re\flag.py
2、分析冒泡排序原理
分析一下,这个代码就一个冒泡排序,然后当count==c[t]的时候,C[t]是ord(flag)得到的,所以当count与ord(flag[i])相等的时候输出,根据描述count is times,结合那个flag.txt的内容,可以知道就是将每行拿去冒泡排序并计算排序次数,就可以得到flag了,具体代码如下图:
运行好后的到如下结果:
synt{jrypbzr_gb_arjfpgs
3、Rot13解密
看到synt的时候,首先想到跟flag的位数一样,应该经过古典的加密方法,优先使用Rot13解密后得到如下结果:
密文:
synt{jrypbzr_gb_arjfpgs
Rot13解密后的原文:
flag{welcome_to_newsctf
4、最终flag
看到解密结果为flag{welcome_to_newsctf,补充一下最后边的},得到最终的flag为flag{welcome_to_newsctf} 。
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录