CTF-MISC(编码篇)
字数 1332 2025-08-18 11:39:23
CTF-MISC编码篇全面解析
一、进制编码
1. 进制基础概念
- 定义:进位计数制,人为定义的带进位的计数方法
- 常见进制:
- 二进制:逢二进一
- 八进制:逢八进一
- 十进制:逢十进一
- 十六进制:逢十六进一
2. CTF中的进制应用
- 混合进制解码:题目常混合多种进制编码
- 例题解析:
d87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46- 前缀标识:
d开头:十进制x开头:十六进制o开头:八进制b开头:二进制
- 前缀标识:
3. 二进制处理技巧
- 二进制转十六进制:4位二进制对应1位十六进制
- 二进制文件重建:识别文件头特征(如
rar) - 二进制图像重建:当数据长度为完全平方数时(如625=25×25),可构建为二维图像
二、BASE家族编码
1. BASE64
- 字符集:A-Z, a-z, 0-9, +, /, =(填充)
- 变种:
- BASE64异或:需先解码再进行异或运算
- BASE64转图片:解码后重建为二进制文件
2. BASE32
- 字符集:A-Z, 2-7, =(填充)
3. BASE16
- 字符集:0-9, A-F
4. BASE58
- 特点:去除了易混淆字符(0, O, I, l, +, /)
- 应用:比特币地址编码
三、图片编码
1. 二维码
- 常见题型:
- 反色处理:黑白反转后扫描
- 修复损坏:修复定位标记
- 隐藏数据:在文件尾部或元数据中
- 解题步骤:
- 使用Hex编辑器检查文件尾部
- 发现八进制数据(如
146 154 141 147对应"flag") - 转换为ASCII获取flag
2. 条形码
- 处理技巧:
- 使用PS补全水平线条
- 反色处理后扫描
3. PDF417码
- 特点:高密度二维条码
- 解题方法:反色处理后在线扫描
四、其他编码类型
1. URL编码
- 特征:%后跟两个十六进制数字
- 双重编码:浏览器会自动解码一次,需二次编码
- 例:
h→%68→%2568
- 例:
2. Unicode编码
- 形式:
\u前缀:\u8fd9\u662f- HTML实体:
这是
3. Quoted-printable
- 特征:
=后跟两个十六进制数字 - 应用:邮件传输编码
4. UUENCODE/XXencode
- 特征:以
begin开头,end结尾 - 区别:使用不同的可打印字符集
五、混淆与加密
1. JavaScript混淆
- JSFuck:仅用6个字符
[]()!+编写代码 - jjencode/aaencode:转换为颜文字形式
2. 其他语言混淆
- PPENCODE:Perl→纯字母
- rrencode:Ruby→特殊符号
- Brainfuck:仅用
+-><.,[]8种符号
3. 图片语言
- Npiet:通过彩色像素块表示指令
六、实战技巧总结
- 多进制混合:注意前缀标识,编写脚本批量转换
- BASE家族识别:通过字符集和结尾填充判断类型
- 图片编码处理:
- 检查文件头和尾部
- 尝试反色、修复、元数据分析
- 编码套娃:多次解码直到可读
- 工具链准备:
- 脚本语言(Python)
- 十六进制编辑器
- 在线解码平台
- 图像处理软件
通过系统掌握这些编码知识和解题技巧,可以有效应对CTF比赛中绝大多数MISC编码类题目。