“轩辕杯”云盾砺剑CTF挑战赛
字数 1604 2025-08-29 22:41:10

"轩辕杯"云盾砺剑CTF挑战赛解题技术文档

写在前面

本文档详细分析"轩辕杯"云盾砺剑CTF挑战赛中出现的多个题目,涵盖逆向工程、加密算法分析和漏洞利用等技术要点。

ezBase题目分析

题目特征

  • 使用UPX魔改壳进行加壳
  • 核心加密逻辑包含base64变种

解题步骤

  1. 查壳与脱壳

    • 使用查壳工具识别UPX魔改壳
    • 进行脱壳处理
  2. 主函数分析

    • 定位到关键比较函数sub_140001130
    • 识别特征值0x3F,判断为base64变种
  3. 加密逻辑

    • base64编码表被替换,新表存储在aAabbccddeeffgg中
    • 编码后进行了异或操作
  4. 解密脚本

# 伪代码示例
custom_table = "从aAabbccddeeffgg中提取的表"
encoded_data = "密文"
xor_key = 0xXX  # 需要分析确定的异或值

# 实现自定义base64解码和异或操作

最终flagflag{Y0u_@R3_Upx_4nd_b45364_m4st3r!}

你知道base吗题目分析

加密结构

题目分为两部分加密:

  1. 第一部分:TEA加密
  2. 第二部分:RC4加密(使用TEA解密得到的key)

第一部分:TEA加密分析

  • 标准TEA加密算法实现
  • 解密得到key作为第二部分RC4的密钥

第二部分:RC4魔改分析

  1. 识别RC4加密函数
  2. 发现魔改点:
    • 最后进行的是加法操作而非标准异或
  3. 逆向得到比较table

最终加密层:base32

  • 对之前得到的table截取1-32位作为base32码表
  • 使用赛博厨子工具解密base32

最终flagflag{y0u__rea11y__k1ow__Base!}

无由持一碗,寄与爱茶人题目分析

加密结构

  • 两段TEA加密:
    1. 第一段:无魔改TEA
    2. 第二段:标准XTEA

解题要点

  • 题目未在正式赛事中出现
  • 提供密钥和密文
  • 直接实现XTEA解密算法

最终flagflag{XTe@_1s_s0_sO_g00d_D3ink_s0mE_TEA?}

封印题目分析

题目特征

  • Python打包的应用程序
  • 使用RC4加密

解题步骤

  1. 使用pyinstxtractor解包
  2. 分析解包后的Python代码
  3. 解密流程:
    • 先解URL编码
    • 提取hex数组
    • 实现RC4解密

最终flagflag{REAL_EZ_RC4}

HockMe题目分析

题目特征

  • 考察hook技术
  • 使用JADX进行初步分析
  • 核心是RC4加密

解题步骤

  1. 静态分析

    • 使用JADX找到native层函数调用
    • 识别correctCiphertext比较点
  2. 动态分析

    • 编写hook脚本获取加密后的十六进制串
    • 方法1:构造特定输入hook密钥流
    • 方法2:IDA调试so文件
  3. IDA调试技巧

    • 定位Java_com_example_hookme_MainActivity_rc4Encrypt函数
    • 关键点:
      • 输入长度限制处理
      • PRGA函数内while循环修改
      • 寄存器(RAX/AL)数据提取
  4. 数据拼接

    • 分多次获取加密数据
    • 组合完整flag

Matlab_SMC题目分析

题目特征

  • 需要创建flag.xlsx文件
  • 数据加密特征分析

解题步骤

  1. 环境准备

    • 创建flag.xlsx,复制enc文件
    • 构造测试数据(1-10,含小数,重复值)
  2. 加密分析

    • 对比输入输出数据
    • 发现特征:
      • 第一列和第二列加密算法相同
      • 相同输入→相同输出(无顺序依赖)
      • 独立数据处理
  3. 算法推导

    • 输入输出丢给GPT分析
    • 确定加密函数:y = 5x² + 2x + 1
  4. 最终处理

    • 计算题目指定案例的平均值
    • 保留三位小数
    • MD5加密结果

最终flagflag{7ce3c18d1e03070c79cf5074a195a240}

总结

本CTF赛事涵盖了多种安全技术:

  1. 逆向工程(UPX脱壳、native层分析)
  2. 加密算法(TEA/XTEA、RC4、base32/64变种)
  3. 动态分析(hook技术、调试技巧)
  4. 数据分析与算法推导
  5. 文件格式处理(Python打包、Excel)

每个题目都考察了不同的技术栈,需要综合运用多种技能进行解题。

"轩辕杯"云盾砺剑CTF挑战赛解题技术文档 写在前面 本文档详细分析"轩辕杯"云盾砺剑CTF挑战赛中出现的多个题目,涵盖逆向工程、加密算法分析和漏洞利用等技术要点。 ezBase题目分析 题目特征 使用UPX魔改壳进行加壳 核心加密逻辑包含base64变种 解题步骤 查壳与脱壳 : 使用查壳工具识别UPX魔改壳 进行脱壳处理 主函数分析 : 定位到关键比较函数sub_ 140001130 识别特征值0x3F,判断为base64变种 加密逻辑 : base64编码表被替换,新表存储在aAabbccddeeffgg中 编码后进行了异或操作 解密脚本 : 最终flag : flag{Y0u_@R3_Upx_4nd_b45364_m4st3r!} 你知道base吗题目分析 加密结构 题目分为两部分加密: 第一部分:TEA加密 第二部分:RC4加密(使用TEA解密得到的key) 第一部分:TEA加密分析 标准TEA加密算法实现 解密得到key作为第二部分RC4的密钥 第二部分:RC4魔改分析 识别RC4加密函数 发现魔改点: 最后进行的是加法操作而非标准异或 逆向得到比较table 最终加密层:base32 对之前得到的table截取1-32位作为base32码表 使用赛博厨子工具解密base32 最终flag : flag{y0u__rea11y__k1ow__Base!} 无由持一碗,寄与爱茶人题目分析 加密结构 两段TEA加密: 第一段:无魔改TEA 第二段:标准XTEA 解题要点 题目未在正式赛事中出现 提供密钥和密文 直接实现XTEA解密算法 最终flag : flag{XTe@_1s_s0_sO_g00d_D3ink_s0mE_TEA?} 封印题目分析 题目特征 Python打包的应用程序 使用RC4加密 解题步骤 使用pyinstxtractor解包 分析解包后的Python代码 解密流程: 先解URL编码 提取hex数组 实现RC4解密 最终flag : flag{REAL_EZ_RC4} HockMe题目分析 题目特征 考察hook技术 使用JADX进行初步分析 核心是RC4加密 解题步骤 静态分析 : 使用JADX找到native层函数调用 识别correctCiphertext比较点 动态分析 : 编写hook脚本获取加密后的十六进制串 方法1:构造特定输入hook密钥流 方法2:IDA调试so文件 IDA调试技巧 : 定位Java_ com_ example_ hookme_ MainActivity_ rc4Encrypt函数 关键点: 输入长度限制处理 PRGA函数内while循环修改 寄存器(RAX/AL)数据提取 数据拼接 : 分多次获取加密数据 组合完整flag Matlab_ SMC题目分析 题目特征 需要创建flag.xlsx文件 数据加密特征分析 解题步骤 环境准备 : 创建flag.xlsx,复制enc文件 构造测试数据(1-10,含小数,重复值) 加密分析 : 对比输入输出数据 发现特征: 第一列和第二列加密算法相同 相同输入→相同输出(无顺序依赖) 独立数据处理 算法推导 : 输入输出丢给GPT分析 确定加密函数:y = 5x² + 2x + 1 最终处理 : 计算题目指定案例的平均值 保留三位小数 MD5加密结果 最终flag : flag{7ce3c18d1e03070c79cf5074a195a240} 总结 本CTF赛事涵盖了多种安全技术: 逆向工程(UPX脱壳、native层分析) 加密算法(TEA/XTEA、RC4、base32/64变种) 动态分析(hook技术、调试技巧) 数据分析与算法推导 文件格式处理(Python打包、Excel) 每个题目都考察了不同的技术栈,需要综合运用多种技能进行解题。