西電 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練習網站喔!
Member discussion