2021-06-05
[GXYCTF2019]CheckIn
題目
dikqTCpfRjA8fUBIMD5GNDkwMjNARkUwI0BFTg==
解題
看到=,用base解
base64解得:
v)L_F0}@H0F49023@FE0#@EN
下面使用ROT47解密
ROT實(shí)際時(shí)凱撒密碼的一種變式
ROT系列:
ROT5、ROT13、ROT18、ROT47 編碼是一種簡單的碼元位置順序替換暗碼。此類編碼具有可逆性,可以自我解密,主要用于應(yīng)對(duì)快速瀏覽,或者是機(jī)器的讀取,而不讓其理解其意。
ROT5 是 rotate by 5 places 的簡寫,意思是旋轉(zhuǎn)5個(gè)位置,其它皆同。下面分別說說它們的編碼方式:
ROT5:只對(duì)數(shù)字進(jìn)行編碼,用當(dāng)前數(shù)字往前數(shù)的第5個(gè)數(shù)字替換當(dāng)前數(shù)字,例如當(dāng)前為0,編碼后變成5,當(dāng)前為1,編碼后變成6,以此類推順序循環(huán)。
ROT13:只對(duì)字母進(jìn)行編碼,用當(dāng)前字母往前數(shù)的第13個(gè)字母替換當(dāng)前字母,例如當(dāng)前為A,編碼后變成N,當(dāng)前為B,編碼后變成O,以此類推順序循環(huán)。
ROT18:這是一個(gè)異類,本來沒有,它是將ROT5和ROT13組合在一起,為了好稱呼,將其命名為ROT18。
ROT47:對(duì)數(shù)字、字母、常用符號(hào)進(jìn)行編碼,按照它們的ASCII值進(jìn)行位置替換,用當(dāng)前字符ASCII值往前數(shù)的第47位對(duì)應(yīng)字符替換當(dāng)前字符,例如當(dāng)前為小寫字母z,編碼后變成大寫字母K,當(dāng)前為數(shù)字0,編碼后變成符號(hào)_。用于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)時(shí)期,某國軍官與一個(gè)音樂家情婦相好,然而自從那時(shí)起,他屢戰(zhàn)屢敗,敵人似乎料事如神。他也有懷疑過他的情婦,但是他經(jīng)過24小時(shí)觀察他的情婦,發(fā)現(xiàn)她每天都只是作曲,然后彈奏給戰(zhàn)地電臺(tái),為士兵們鼓氣,并未有任何逾越。那么,間諜到底是誰?這張曲譜是否有貓膩? (答案為一個(gè)明文字符串,提交獲得的有意義語句通順字符串即可) 注意:得到的 flag 請(qǐng)包上 flag{} 提交
代碼
已知是八進(jìn)制轉(zhuǎn)換為ASCII碼
b=list(input().split(' ')) for i in b:print(chr(int(i,base=8)),end='')注意八進(jìn)制是三個(gè)數(shù)字一組,所以輸入時(shí)要三個(gè)數(shù)字一個(gè)空格:
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)后但未解碼的報(bào)文(hex)
已知其ID為0xFED31F,請(qǐng)繼續(xù)將報(bào)文完整解碼,提交hex。
提示1:曼聯(lián)
曼徹斯特編碼
曼徹斯特編碼(Manchester)又稱裂相碼、同步碼、相位編碼。它也是通過電平的高低轉(zhuǎn)換來表示“0”或“1”,每位中間的電平轉(zhuǎn)換既表示了數(shù)據(jù)代碼,也作為定時(shí)信號(hào)使用。曼徹斯特編碼常常用在以太網(wǎng)中。
編碼原理編輯:
曼徹斯特編碼是將時(shí)鐘和數(shù)據(jù)包含在信號(hào)流中,在傳輸代碼信息的同時(shí),也將時(shí)鐘同步信號(hào)一起傳輸?shù)綄?duì)方。曼徹斯特編碼的每一個(gè)碼元都被調(diào)制成兩個(gè)電平,所以數(shù)據(jù)傳輸速率只有調(diào)制速率的1/2。
看不懂:(
解題
5555555595555A65556AA696AA6666666955轉(zhuǎn)為二進(jì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
對(duì)比ID并不重合,根據(jù)八位倒序傳輸協(xié)議將二進(jìn)制每八位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)容,希望文章能夠幫你解決所遇到的問題。