包含标签 Crypto 的文章

AAEncode

0 条评论 crypto Crypto 雾島风起時

AAEncode

话不多说,直接上题(BUUCTF)

前面步骤是 ForeMost 分离后拿到一个 txt

AAEncode 是一种简单的 JavaScript 加密/混淆工具,可以将 JavaScript 代码转换成一系列看似无意义的颜文字字符

AAEncode 编码特点:

一堆颜文字构成的 JS 代码

Ook!

0 条评论 crypto Crypto 雾島风起時

Ook!

话不多说,直接上题(BUUCTF)

在 Ook! 编程语言中,每个命令都是通过不同的 “Ook!” 词组来表示的,主要有两种格式:

  1. “Ook.” 表示一个句点
  2. “Ook!” 表示感叹号

通过这些词组的排列组合,Ook! 语言能够执行与 Brainfuck 相同的功能,但它的语法完全由“Ook!”和不同的变体组合而成

例如:

+ -> Ook. Ook!
- -> Ook! Ook.
> -> Ook. Ook.
< -> Ook! Ook!
. -> Ook. Ook. Ook.
, -> Ook! Ook! Ook!
[ -> Ook. Ook. Ook!
] -> Ook! Ook. Ook.

Ook! 编码特点:

Ook. 和 Ook! 组成

第三方网站解码即可

核心价值观

0 条评论 crypto Crypto 雾島风起時

核心价值观

话不多说,直接上题(BUUCTF)

查看图片属性发现编码

核心价值观编码特点:

就那 16 个词语

UUencode

0 条评论 crypto Crypto 雾島风起時

UUencode

话不多说,直接上题(BUUCTF)

UUencode 将每三个字节的二进制数据分割为四个可打印字符

具体来说:

每 3 字节(24 位)被拆分为 4 个 6 位的组
每个 6 位的组对应一个 ASCII 字符(共 64 个字符,从 ! 到 ~)

因此,UUencode 编码的每个字符是由原始数据的 6 位表示,使用了一个特定的字符集,字符集中的每个字符是从 ASCII 字符集中选择的

编码后的文本总是按 4 字符一组呈现

Unencode 编码特点:

对于长消息来说,每行开头都是M
对于短消息特征就是字符串有 '($<>) 这类字符

.

中文电码

0 条评论 crypto Crypto 雾島风起時

中文电码

话不多说,直接上题(BUUCTF)

中文电码表采用了四位阿拉伯数字作代号,从0001到9999按四位数顺序排列,用四位数字表示最多一万个汉字、字母和符号

中文电码特点:

每四位数字组成一个字符,可以理解为长度是 4 的倍数,并且全都是数字

Quoted-printable

0 条评论 crypto Crypto 雾島风起時

Quoted-printable

话不多说,直接上题(BUUCTF)

Quoted-printable 编码规则相对简单,它将字符转换为 ASCII 可打印字符(尤其是 7 位字符集)

其核心思想是将非 ASCII 字符和某些特殊字符转换为等效的 ASCII 字符表示,并且用 = 符号作为转义符

编码规则:

ASCII 字符(可打印字符):例如字母、数字和一些常见符号,在编码后保持不变

非 ASCII 字符:这些字符使用 = 符号后跟两位十六进制表示:
    例如,字符 é(ASCII 码 233)被编码为 =E9

特殊字符(如空格、换行符等):
    空格( )如果位于行尾会被编码为 =20
    换行符(\n)通常被编码为 =0A 或 =0D=0A(根据不同的操作系统,Windows 使用 CRLF 即 \r\n,Unix/Linux 使用 LF 即 \n)

最大行长度:根据 MIME 标准,每行最大长度为 76 字符,如果一行超过 76 字符,则在换行处插入一个 = 符号

例子:

字符 `A`(ASCII 65)直接表示为 `A`,因为它是一个可打印字符
字符 `é`(ASCII 233)编码为 `=E9`
字符换行(`\n`)被编码为 `=0A`

Quoted-printable 编码特点:

编码由 = + 两个十六进制数组成

URL

0 条评论 crypto Crypto 雾島风起時

URL

话不多说,直接上题(BUUCTF)

URL 编码通过将每个非字母数字字符(包括特殊符号和空格)转换为 % 后跟两位十六进制数的形式来实现

例如,空格字符()在 URL 中会被编码为 %20

在 URL 编码中,每个字符都用 3 个字符表示:

`%` 表示转义开始
接下来的两位数字是该字符的十六进制 ASCII 值

例如:

空格字符(` `)的 ASCII 值是 32,转换为十六进制是 `20`,所以空格在 URL 中编码为 `%20`
特殊字符 `#` 的 ASCII 值是 35,十六进制表示为 `23`,因此 `#` 被编码为 `%23`

URL 编码特点:

每个字符以 % 开头 + 十六进制

Base64

0 条评论 crypto Crypto 雾島风起時

Base64

话不多说,直接上题(BUUCTF)

Base64 编码步骤

步骤 1:将数据按 3 字节分组

  • 二进制数据按每 3 字节(24 位)为一组拆分
    例如:字符串 "Man" 的 ASCII 码为 0x4D 0x61 0x6E

步骤 2:将 24 位拆分为 4 个 6 位块

  • 3 字节(24 位) → 分割为 4 个 6 位块
    示例:
    0x4D (01001101) + 0x61 (01100001) + 0x6E (01101110)
    合并为 24 位:010011 010110 000101 101110
    对应 4 个 6 位值:1922546

步骤 3:将 6 位值映射到 Base64 字符表

  • 查表(索引 0~63 对应 A-Z,a-z,0-9,+,/):
    19→T22→W5→F46→u
    结果:"TWFu"

步骤 4:处理不足 3 字节的情况

  • 情况 1:剩余 1 字节(8 位)
    • 补 4 个 0 位 → 生成 2 个 6 位块,后补 ==
      例如:"A"0x41)→ 010000 010000"QQ=="
  • 情况 2:剩余 2 字节(16 位)
    • 补 2 个 0 位 → 生成 3 个 6 位块,后补 =
      例如:"BC"0x42 0x43)→ 010000 100100 001100"QkM="

Base64 解码步骤

  1. 移除填充的 =,计算有效字符数
  2. 每个字符查表转换为 6 位二进制
  3. 合并所有 6 位块,按 8 位分组恢复原始数据

Base64 编码特点:

由 A-Za-z0-9+/= 组成的 64 个字符,通常末尾有 == 的就是 Base64

flag{THE_FLAG_OF_THIS_STRING}