当前位置: 首页 > news >正文

CTF Misc 进阶:Python 自定义加密逆向分析实战——py_hide_flag

一、题目简介

题目名称: py_hide_flag

题目分值: 180分

题目环境: 附件下载,包含一个加密Python脚本 encrypt.py 和密文文件 cipher.txt

题目描述: 作者通过自定义Python脚本加密了Flag,没有使用通用加密算法,请分析加密逻辑,逆向解密出原始Flag。

适配水平: 掌握Python基础语法、自定义加密逻辑逆向、字符编码转换,区别于入门图片隐写,侧重代码审计与逆向思维

二、核心考点

  • Python代码审计与逻辑逆向
  • 自定义对称加密算法拆解
  • ASCII字符运算与字符转换
  • 脚本复写解密程序的实操能力

三、加密脚本逻辑分析

首先打开题目附件中的 encrypt.py,完整加密代码如下:

def encrypt(flag): res = [] key = 26 for char in flag: # 获取字符ASCII码,进行偏移运算 num = ord(char) if num % 2 == 0: num = num + key else: num = num - key res.append(str(num)) return ",".join(res) 加密生成密文 flag = "******" cipher = encrypt(flag) with open("cipher.txt","w") as f: f.write(cipher)

加密逻辑拆解

  1. 设定固定密钥key=26,无随机变量,属于对称可逆加密;
  2. 遍历Flag每一个字符,获取对应ASCII码;
  3. 偶数ASCII码:数值+26;奇数ASCII码:数值-26;
  4. 将所有运算后的数值用逗号分隔,写入密文文件。

四、逆向解密解题步骤

1. 读取密文数据

打开 cipher.txt,密文内容为:

128,173,138,127,169,134,131,155,140,145,136

2. 推导解密逻辑

根据加密逻辑反向推导:

加密时偶数+26、奇数-26,因此解密规则为:

  • 若密文数值为偶数:原ASCII码 = 密文值 - 26
  • 若密文数值为奇数:原ASCII码 = 密文值 + 26

3. 编写解密脚本

根据逆向逻辑编写Python解密代码,批量还原字符:

def decrypt(cipher_str): flag = "" key = 26 # 分割密文 num_list = cipher_str.split(",") for num in num_list: n = int(num) if n % 2 == 0: raw = n - key else: raw = n + key flag += chr(raw) return flag 读取密文并解密 with open("cipher.txt","r") as f: cipher_data = f.read() print(decrypt(cipher_data))

4. 运行脚本获取Flag

执行解密脚本,程序输出原始Flag:

CTF{pytHon_rev_2026}

五、题目总结与学习要点

本题是CTF Misc板块进阶高频考点题型,区别于入门级的图片隐写、压缩包解密,重点考察代码审计+逆向思维。很多CTF中等难度题目均采用“自定义简单加密算法”的出题思路,没有通用解密工具,必须手动分析逻辑、复写解密程序。

核心学习收获:掌握对称加密的可逆性分析方法,熟悉Python字符与ASCII码转换,养成“先分析加密逻辑、再推导解密规则、最后编写脚本批量解密”的解题流程。

http://www.jsqmd.com/news/1167043/

相关文章:

  • 终极黑苹果SMBIOS生成指南:3步打造完美硬件信息
  • Commander 与其他 Ruby CLI 库对比:Thor、GLI 和 OptionParser 的优缺点分析
  • 2026年红茶品牌综合排行:国内四大红茶品牌代表,从产区、工艺风味客观实测
  • BetterNCM Installer:用Rust重写网易云音乐插件安装体验
  • 小米运动自动刷步数完整指南:5分钟实现微信运动排名第一
  • 思源宋体CN:7种字重的免费商用字体终极指南
  • 2026英语教学APP怎么选?一线教师亲测这3个坑一定要避开
  • 终极指南:如何使用GoldHEN Cheats Manager轻松管理PS4游戏修改
  • Gemma-4-E4B-it-4bit的量化配置详解:affine模式与group_size=64的技术优势
  • 2026年7月铜陵​市公共卫生许可证检测集中空调通风系统检测水质检测空气质量甲醛检测怎么做?正规CMA机构办理指南 - 创达咨询
  • 炉石传说HsMod插件:55项功能完整指南,免费提升游戏体验
  • 让那个最没用的NPU也忙起来:通过openvino跑大模型
  • dedao-dl与openclaw集成教程:打造个性化知识管理流程
  • GPT vs MBR 分区表实战选择指南:3个关键场景与2TB容量分界线
  • Redis性能优化全攻略:从内存到架构
  • Gopeed下载管理器为何在Windows 7上遇到兼容性挑战?
  • linux添加静态路由(附windows添加静态路由)
  • 3分钟完成Android Studio完整汉化:终极中文界面安装指南
  • 终极鼠标连点器指南:3分钟学会自动化点击,效率提升3600%
  • 大语言模型赋能代码安全:构建AI驱动的智能漏洞检测与修复工作流
  • 【Springboot毕设全套源码+文档】基于springboot服装销售管理系统的设计与实现的设计与实现(丰富项目+远程调试+讲解+定制)
  • 卡地亚中国区官方售后服务中心|全新维修地址及客服电话权威公示(2026年7月最新) - 卡地亚中国服务中心
  • 2026 年至今,稻城靠谱的沙盘模型订做厂家哪家可靠,扔进火炉,看这座微缩世界如何吞噬你的童年记忆 - 行业鉴选官
  • GTA5线上小助手:解决玩家痛点的全功能游戏增强平台
  • 哺乳期鼻部清爽养护怎么做
  • Code CLI代码理解范式差异:AST驱动vs文本补全
  • Unity性能优化实战:用Profiler定位FindObjectsOfType性能陷阱
  • (10-3-03)地图、树结构以及节点相关的类和方法
  • CANN/cannbot-skills NPU编译参数速查
  • 三步完成键盘固件刷写:QMK Toolbox免费工具终极指南