CTF【解密】使用Python得出WriteUp

CTF-解密: 找出flag

task.py

WriteUp:

由上述加密代码可知,我们要找的flag是以'flag{'开始的字符串,flag和加密后strNew中的字符都在strAlphabet中,不在的都原字符添加到strNew中,下标存在对应关系。

f对应l

l对应D

a对应w

g对应o

(29*num -30) % 52是对52取余数,取得整数可能是0, 1, 2, …

因此,解码如下:

main.py

运行结果如下:

flg{Welcome_to_the_CTF_Chllenge}

由于a对应w,所以

加密后:'lDwO{kIDCmgI_bm_brI_cBL_crwDDIJOI}'
加密前:'flag{Welcome_to_the_CTF_Challenge}'

则,flag就是'flag{Welcome_to_the_CTF_Challenge}'

为什么for nTemp in range(0, 28):中nTemp最大取值是27,这是因为strAlphabet字符串最大索引值是51,(index + 52*nTemp + 30) // 29 =51,那么nTemp=(1449-index)//52,可以看出index最小值是0,nTemp最大可以取值27。


获取源代码地址:

源代码


如果本文对您有所帮助,请关注微信公众号“捷创源科技”