2021-06-05
[GXYCTF2019]CheckIn
題目
dikqTCpfRjA8fUBIMD5GNDkwMjNARkUwI0BFTg==
解題
看到=,用base解
base64解得:
v)L_F0}@H0F49023@FE0#@EN
下面使用ROT47解密
ROT實際時凱撒密碼的一種變式
ROT系列:
ROT5、ROT13、ROT18、ROT47 編碼是一種簡單的碼元位置順序替換暗碼。此類編碼具有可逆性,可以自我解密,主要用于應(yīng)對快速瀏覽,或者是機器的讀取,而不讓其理解其意。
ROT5 是 rotate by 5 places 的簡寫,意思是旋轉(zhuǎn)5個位置,其它皆同。下面分別說說它們的編碼方式:
ROT5:只對數(shù)字進行編碼,用當(dāng)前數(shù)字往前數(shù)的第5個數(shù)字替換當(dāng)前數(shù)字,例如當(dāng)前為0,編碼后變成5,當(dāng)前為1,編碼后變成6,以此類推順序循環(huán)。
ROT13:只對字母進行編碼,用當(dāng)前字母往前數(shù)的第13個字母替換當(dāng)前字母,例如當(dāng)前為A,編碼后變成N,當(dāng)前為B,編碼后變成O,以此類推順序循環(huán)。
ROT18:這是一個異類,本來沒有,它是將ROT5和ROT13組合在一起,為了好稱呼,將其命名為ROT18。
ROT47:對數(shù)字、字母、常用符號進行編碼,按照它們的ASCII值進行位置替換,用當(dāng)前字符ASCII值往前數(shù)的第47位對應(yīng)字符替換當(dāng)前字符,例如當(dāng)前為小寫字母z,編碼后變成大寫字母K,當(dāng)前為數(shù)字0,編碼后變成符號_。用于ROT47編碼的字符其ASCII值范圍是33-126,具體可參考ASCII編碼。
ROT解密網(wǎng)址
https://www.qqxiuzi.cn/bianma/rot5-13-18-47.php
答案
ROT47解得:GXY{Y0u_kNow_much_about_Rot}
所以答案為:flag{Y0u_kNow_much_about_Rot}
密碼學(xué)的心聲
題目
二戰(zhàn)時期,某國軍官與一個音樂家情婦相好,然而自從那時起,他屢戰(zhàn)屢敗,敵人似乎料事如神。他也有懷疑過他的情婦,但是他經(jīng)過24小時觀察他的情婦,發(fā)現(xiàn)她每天都只是作曲,然后彈奏給戰(zhàn)地電臺,為士兵們鼓氣,并未有任何逾越。那么,間諜到底是誰?這張曲譜是否有貓膩? (答案為一個明文字符串,提交獲得的有意義語句通順字符串即可) 注意:得到的 flag 請包上 flag{} 提交
代碼
已知是八進制轉(zhuǎn)換為ASCII碼
b=list(input().split(' ')) for i in b:print(chr(int(i,base=8)),end='')注意八進制是三個數(shù)字一組,所以輸入時要三個數(shù)字一個空格:
111 114 157 166 145 123 145 143 165 162 151 164 171 126 145 162 171 115 165 143 150
答案
ILoveSecurityVeryMuch
傳感器
題目
5555555595555A65556AA696AA6666666955
這是某壓力傳感器無線數(shù)據(jù)包解調(diào)后但未解碼的報文(hex)
已知其ID為0xFED31F,請繼續(xù)將報文完整解碼,提交hex。
提示1:曼聯(lián)
曼徹斯特編碼
曼徹斯特編碼(Manchester)又稱裂相碼、同步碼、相位編碼。它也是通過電平的高低轉(zhuǎn)換來表示“0”或“1”,每位中間的電平轉(zhuǎn)換既表示了數(shù)據(jù)代碼,也作為定時信號使用。曼徹斯特編碼常常用在以太網(wǎng)中。
編碼原理編輯:
曼徹斯特編碼是將時鐘和數(shù)據(jù)包含在信號流中,在傳輸代碼信息的同時,也將時鐘同步信號一起傳輸?shù)綄Ψ健B鼜厮固鼐幋a的每一個碼元都被調(diào)制成兩個電平,所以數(shù)據(jù)傳輸速率只有調(diào)制速率的1/2。
看不懂:(
解題
5555555595555A65556AA696AA6666666955轉(zhuǎn)為二進制,得到:
01010101 01010101 01010101 01010101 10010101 01010101 01011010 01100101 01010101 01101010 10100110 10010110 10101010 01100110 01100110 01100110 01101001 01010101
根據(jù)01->1,10->0。可得到:
0101->11
0110->10
1010->00
1001->01
解碼得到:
11111111 11111111 01111111 11001011 11111000 00100110 00001010 10101010 10011111
對比ID并不重合,根據(jù)八位倒序傳輸協(xié)議將二進制每八位reverse,轉(zhuǎn)hex即可得到FFFFFED31F645055F9
代碼
cipher='5555555595555A65556AA696AA6666666955' tmp='' for i in range(len(cipher)):a=bin(eval('0x'+cipher[i]))[2:].zfill(4)tmp=tmp+a[1]+a[3]#print(tmp) plain=[hex(int(tmp[i:i+8][::-1],2))[2:] for i in range(0,len(tmp),8)] print(''.join(plain).upper())答案
FFFFFED31F645055F9
總結(jié)
以上是生活随笔為你收集整理的2021-06-05的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。