BugkuCTF-MISC题普通的二维码
生活随笔
收集整理的這篇文章主要介紹了
BugkuCTF-MISC题普通的二维码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
考點在八進制轉字符串
下載文件file.zip解壓得到一張二維碼,掃描沒有flag
通過010editor打開,在尾部有一串數字
字符串為:
146154141147173110141166145137171060125137120171137163143162151160164137117164143137124157137124145156137101163143151151041175@xjseck!
保存在八進制.txt
考點在八進制轉字符串
3個一組~
觀察這段數據發現只有0-7,沒有8和9,很容易想到是8進制數據,可以將其轉換成10進制,然后再轉成ascii字符。一開始看這個數字總長126個,2的倍數,加上以前轉換16進制的慣性思維,讓我以為這里也是兩兩一對的轉換,轉換出來自然不正確,一堆亂碼,后來發現兩位的8進制數據最大077(數字前加0表示8進制),轉換成10進制63也表示不完ascii碼表上的字符啊,而且126剛好也是3的倍數,所以三個一組來轉換,如下腳本:
f=open('八進制.txt') temp=[] while True:k=f.read(3)if k:temp.append(k) """append()方法用于在列表末尾添加新的對象。"""else:break f.close()for i in temp:num='0o'+inum=int(num,8) """將這個八進制數,int一下,也就是轉換為十進制數,將第二個參數換成2,則可以實現二進制轉換為十進制,換成16,可以實現16進制轉換為十進制。"""num=chr(num) """num=chr(num) chr(i)用于范圍在range(256)內的(就是0~255)整數作參數,返回一個對應的字符。i可為10進制也可為16進制的數字,返回值為當前整數對應的ASCII字符。"""print(num,end='') "print若不加end,默認換行"運行此腳本
得到flag
總結
以上是生活随笔為你收集整理的BugkuCTF-MISC题普通的二维码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lock锁详细讲解
- 下一篇: C语言 __LINE__ - C语言零基