1 min read

西電 CTF 終端 - CCCC writeup (zh-TW)

西電 CTF 終端 - CCCC writeup (zh-TW)

題目資訊

  • 分類: 安全雜項/計算機基礎
  • 描述: C语言是学习计算机基础中的基础,也是计算机第一学期的必修课。本题你需要配置一个能够编译运行C语言程序的环境,并且运行题目给出的代码来获取flag。
  • 附件: CCCCC.c
  • 題目連結: https://ctf.xidian.edu.cn/training/13?challenge=489&tab=terminal

解題過程

Step 1: 查看源代碼

#include <stdio.h>
#include <string.h>
unsigned char flag[]={146,144,154,156,139,153,132,207,151,160,134,207,138,160,156,158,145,160,141,138,145,160,158,160,188,160,143,141,207,152,141,158,146,222,130,0};
僅列出部分程式碼~

🔍 關鍵發現

  • flag 陣列儲存加密後的數據
  • 使用 ^ 0xff 進行 XOR 運算
  • 逐字元輸出解密結果

Step 2: 理解 XOR 加密

XOR 0xff 的特性:

0xff = 11111111 (二進制)
XOR 0xff = 位元反轉

範例:
146 (10010010) ^ 255 (11111111) = 109 (01101101) = 'm'

Step 3: 編譯並執行

直接運行

gcc CCCCC.c -o CCCCC
./CCCCC

🎉 成功獲得 Flag!

學習重點

1. XOR 運算的特性

  • 可逆性: A ^ B ^ B = A
  • 應用: 簡單加密、校驗和、差異比較
  • 0xff 特殊性: 與 0xff 做 XOR 等同於位元反轉

經驗分享

這是筆者找到的一個新CTF練習網站,裡面有區分訓練、比賽形式,是非常值得嘗試的CTF練習網站喔!