Xctf 轉輪機加密

2021-10-24 18:40:29 字數 1485 閱讀 6313

xctf-轉輪機加密

題目給的提示是托馬斯·傑斐遜,是轉輪加密。我們先了解一下轉輪加密的原理:托馬斯-傑弗遜轉輪加密由三串字串組成,第一部分為加密表,第二部分為金鑰,第三部分為密文。加密表就是我們需要利用金鑰和密文來進行加密。

方法1:手動解密

通過觀察得到這是乙個26*13的字母表,它的金鑰一共有13個數,故可聯想到行數,首先來看第二行,也就是重新排列,將第二行作為新的第一行;第三行作為新的第二行;依次類推,得到乙個新的字母表

通過尋找密文來對其進行旋轉,即重新排列,密文共有13個字母,即在每一行中尋找相應的字母進行旋轉

密文為:nfqksevoqofnp

即在第一行內尋找字母n作為首字母,對其進行旋轉,以此類推,即可得到新的字母表

對應每一列來看發現只有第18列有譯義,fire in the hole ,即為flag

方法二:利用**來解

(來自別人的**)

import re

sss='''1: < zwaxjgdlubviqhkypntcrmosfe < 2: < kpbelnaczdtrxmjqoyh**sfuwi < 3: < bdmaizvrnsjuwfhteqgyxplock < 4: < rplndvhgfcuktebsxqyizmjwao < 5: < ihfrlabeuotsgjvdkcpmnzqwxy < 6: < amkghiwpnycjbfzdrusloqxvet < 7: < gwthspybxizulvkmrafdceonjq < 8: < nozutwdcvrjlxkisefapmyghbq < 9: < xpltdsrfhenyvubmcqwaoikzgj < 10: < udnajfbowt**rsczqkelmxyihp < 11 < mnbvcxzqwertpoiuyalskdjfhg < 12 < lvncmxzpqoweiurytasbkjdfhg < 13 < jzqawsxcderfvbgtyhnumkilop <

'''m="nfqksevoqofnp"

content=re.findall(r'< (.*?)

iv=[2,3,7,5,13,12,9,1,8,10,4,11,6]

vvv=

ans=""

for i in range(13):

index=content[iv[i]-1].index(m[i])

for i in range(0,26):

flag=""

for j in range(13):

flag+=content[iv[j]-1][(vvv[j]+i)%26]

print flag

執行得到結果

發現只有第18列有譯義,即可得到flag,注意提交格式。

XCTF 黑客精神

雜言 前段時間鍵盤壞了,電腦硬碟也壞了,買東西裝系統再偷個懶放了一周左右假。期間學習鞏固了一下安卓開發的知識。用了固態才知道什麼叫縱享絲滑,當初就不該省這個錢。查殼,無。執行,點選按鈕就跳到註冊活動,輸入註冊碼點選註冊提示註冊碼已經儲存。檔案結構 先看mainactivity 大概就是點選註冊就去到...

xctf 攻防世界 key

好久沒有去攻防世界玩了 主要是這段時間太忙了 有很多 雜事 纏身吧 然後沒事看看堆 就。看自閉了 然後這道題其實還是很簡單的 有很多函式 還有指令其實感覺 用od 或者ida 直接靜態 就能查出來什麼意思 就沒有必要 去深究 裡面的演算法 點進去 主要的函式 發現了這個東西 注意這個 memory ...

XCTF攻防世界warmup

擷取字串從0到?重新賦值給 page page,0 mb strpos page 尋找第乙個?的座標 if in array page,whitelist page urldecode page url解碼 page mb substr page,0,mb strpos page if in arr...