iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0

編碼在CTF中算是各個領域的基礎

所以我們今天就來學一些題目中很常用到的編碼吧

常見編碼介紹

ASCII

  • 全稱為American Standard Code for Information Interchange,美國標準資訊交換碼
  • 基於拉丁字母的一套電腦字元編碼標準
  • 局限在於只能顯示26個基本拉丁字母、阿拉伯數字和英式標點符號,因此,現在的軟體系統大多採用Unicode
  • 使用python進行轉換
    • chr():ASCII轉字元
    • ord():字元轉ASCII
      https://ithelp.ithome.com.tw/upload/images/20250831/20169105MRf2CDU7NR.png

Unicode

Binary(二進位)

  • Binary 是電腦中最基本的數字表示方式,使用兩種狀態:0 和 1
  • 每一位(bit)只能是 0 或 1,8 個 bit 組成 1 個 byte
  • 常見用途
    • 表示資料(例如文字、圖片)
    • 加密演算法中的位元操作(例如 XOR、AND、OR)
  • 使用python進行轉換:
    • 二進位轉文字:bin(ord('字符'))
    • 文字轉二進位:chr(int('二進位', 2))

base16 ( Hex )

  • Hexadecimal,也就是base16
  • 轉換為ASCII時,每兩個十六進位數字對應一個ASCII字符
  • 開頭通常為0x
  • 使用python進行轉換:
    • bytes.fromhex() : 將一個十六進制字符串轉換為 bytes 類型
    • .hex() : 將 bytes 類型的數值轉換為一個十六進制字符串

base 32/64

  • Base32:使用數字 2-7(6個)和字母 A-Z(26個),共32個字元。
  • Base64:使用數字 0-9、大寫字母 A-Z、小寫字母 a-z、以及符號 "+" 和 "/",共64個
  • 均使用 "=" 作為填充符號
  • 使用python進行轉換 ( 需先 import base64 )
    • b32編碼:base64.b32encode(var1.encode()).decode()
    • b32解碼:base64.b32decode(var2.encode()).decode()
    • b64編碼:base64.b64encode(var3.encode()).decode()
    • b64解碼:base64.b64decode(var4.encode()).decode()

morse-code

  • 一種時通時斷的訊號代碼,通過不同的排列順序來表達不同的英文字母、數字和標點符號
  • 長度與字元出現的頻率成反比
  • 解碼器:

https://ithelp.ithome.com.tw/upload/images/20250831/2016910571uhwUAsC5.png

題目練習

ASCII:Nice netcat…

Binary:convertme.py、2Warm、binhexa

base16:Warmed Up、Lets Warm Up

base64:repetitions、Bases

morse-code:morse-code

混和:Based、ASCII Numbers


以上就是今天的內容啦~明天會教一些基礎的python語法~

想看更多,記得明天再來喔~


上一篇
Day 4 - git
下一篇
Day 6 - python
系列文
一天一題picoCTF:從Easy開始的新手生活6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言