编码特征
八进制(Octal)
由 0-7 的数字组成,通常以反斜杠\开头,每个编码是 2-3 位(如\143)
十进制(Decimal)
由 0-9 的数字组成,通常用空格或逗号分隔成多个 2-3 位的数字(因为 ASCII 码值在 0-127 之间)(如54 51 55 52 54 54)
十六进制(Hex)
由 0-9 和 A-F(或 a-f)组成,长度通常是偶数,常以0x开头或纯字符(如:0x637466)
ASCII
本身不是编码,而是字符集。可见字符的 ASCII 码值在 32(空格)- 126(~)之间(十进制),是文本编码的基础,10 16进制都是对ASCII的数值化表示

Rabbit编码
有明文,密文,密钥,但密码特性为开头固定U2FsdGVkX1,与密钥无关
Ook编码
特殊编码,由Ook和! . ? 各种特殊字符组合变成的编码,由独立的编码表

Brainfuck编码
Brainfuck 是一种只有 8 个指令的极简型图灵完备编程语言,它通过操作一个字节数组(内存带)和一个指向数组的指针,依靠「移动指针、修改指针指向的字节值、输入输出」这三类核心操作实现所有计算逻辑
特征:

CTF show 热身签到
下载附属文件,发现一大串数字组成的编码不像md5、base64,一瞬间懵逼了

一大串字符都没有超过9,可以说明绝大部分是10进制,那思路就是10进制变成ASCII编码然后转换十六进制变成字符串形式(ASCII表查询)

例如53->ASCII上的6,大致发现是16进制了,那就16进制转字符串形式

得到flag
Bugku 富强民主

考点: 核心价值观编码
很有趣的一道题,我的第一反应是将字符出现多与少进行排序,然后出现最多的为字符1,以此类推,然后取首字符,组成的flag
python
text = "公正公正公正诚信文明公正民主公正法治法治友善平等和谐敬业和谐富强和谐富强和谐文明和谐平等公正公正和谐法治公正公正公正文明和谐民主和谐敬业和谐平等和谐敬业和谐敬业和谐和谐和谐公正法治友善法治"
keywords = ["富强", "民主", "文明", "和谐", "平等", "公正", "法治", "敬业", "诚信", "友善"]
count = {} #空字典用于存放关键词出现的次数
for w in keywords:
count[w] = text.count(w)
sorted_count =sorted(count.items(),key=lambda x:x[1],reverse=True)
print("评率统计: ")
for word,num in sorted_count:
if num > 0:
print(f"{word}: {num}")
letters = ""
for word,num in sorted_count:
if num > 0:
first_char = word[0]
letters += first_char
print(f"\nflag{{{letters}}}")

结果flag错误,没思路了,上网搜索找到核心规则
富强:0
民主:1
文明:2
和谐:3
自由:4
平等:5
公正:6
法治:7
爱国:8
敬业:9
诚信富强:a
诚信民主:b
诚信文明:c
诚信和谐:d
诚信自由:e
诚信平等:f
友善自由:a
友善平等:b
友善公正:c
友善法治:d
友善爱国:e
友善敬业:f
与密文进行一步步替换得到,进行16进制编码即可获得flag
66 6c 61 67 7b 39 30 30 32 35 66 37 66 62 31 39 35 39 39 33 36 7d

CTF show crypto6
下载附件得到一段密文和密钥提示,查看密文开头为U2FsdGVkX1,并且密钥为加密名称为:Rabbit
解密得出flag

Rabbit加解密网址
https://www.sojson.com/encrypt_rabbit.html
CTF show crypto7
下载附件,得到一大堆的Ook,毋庸置疑是Ook编码,可直接使用在线网站进行解密,也可通过手动进行解密



Ook解密网址
https://www.splitbrain.org/services/ook
Ook解密网址2
https://www.dcode.fr/ook-language
手动解密:Bugku CTF------ok_ook解密-CSDN博客
CTF show crypto8
Brainfuck 编码通过8个指令进行编码,< > + - . , [ ]
下载附件看到大量以上符号构建而成的字符串所以,用在线网站直接解密即可
