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

ctfshow愚人杯 re easy_pyc wp

一、反编译题目pyc文件

题目下载解压后是一个.pyc文件,那就去反编译看看呗,因为之前用过uncompyle6,直接去命令行执行
uncompyle6 -o ez_re.py ez_re.pyc
得到ez_re.py源码一份~

但是这里我用uncompyle6反编译的结果不知道为啥就出来很多奇怪的b,感觉不太对就又用在线网站反编译了一下,嗯,果然没有多余的b了。

用的在线工具网站是:https://tool.lu/pyc/
以下是uncompyle6反编译的结果,可以看到code变量中有好多元素前面带b:

# uncompyle6 version 3.8.0
# Python bytecode 2.7 (62211)
# Decompiled from: Python 3.8.10 (v3.8.10:3d8993a744, May  3 2021, 08:55:58) 
# [Clang 6.0 (clang-600.0.57)]
# Embedded file name: enpyc.py
# Compiled at: 2023-03-29 18:30:23
print 'Welcome to CTFshow Re!'
print 'your flag is here!'
flag = ''
l = len(flag)
for i in range(l):num = ((flag[i] + i) % 114514 + 114514) % 114514code += chr(num)code = map(ord, code)
for i in range(l - 4 + 1):code[i] = code[i] ^ code[(i + 1)]print code
code = ['\x16', '\x1d', '\x1e', '\x1a', '\x18', '\t', b'\xff', b'\xd0', ',', '\x03', '\x02', '\x14', '8', 'm', '\x01', 'C', 'D', b'\xbd', b'\xf7', '*', '\r', b'\xda', b'\xf9', '\x1c', '&', '5', "'", b'\xda', b'\xd4', b'\xd1', '\x0b', b'\xc7', b'\xc7', '\x1a', b'\x90', 'D', b'\xa1']

我就手动处理下code了,把多余的b去掉,可以直接复制粘贴拿去用:

code = ['\x16', '\x1d', '\x1e', '\x1a', '\x18', '\t', '\xff', '\xd0', ',', '\x03', '\x02', '\x14', '8', 'm', '\x01', 'C', 'D', '\xbd', '\xf7', '*', '\r', '\xda', '\xf9', '\x1c', '&', '5', "'", '\xda', '\xd4', '\xd1', '\x0b', '\xc7', '\xc7', '\x1a', '\x90', 'D', '\xa1']

二、分析源码

可以看出是有两个操作:flag[i] + i(我感觉了一下114514在这里运算与否不影响结果)和code[i] = code[i] ^ code[(i + 1)],注意异或的操作是没有处理最后三个元素的

那想得到flag的话,大体的思路就是先倒过来异或再减去下标值就可以了。

因为异或的操作是没有处理最后三个元素的,即倒过来时最先计算的是「倒数第四个元素=倒数第四个元素^倒数第三个元素」,然后依次往前,倒数第五个元素=倒数第五个元素^倒数第四个元素,依此类推,最后是第一个元素=第一个元素^第二个元素。中间操作都是用ascii码进行的,这里不太容易描述的很具体(好像该说的也都说了),直接上脚本吧。

三、解题脚本

code = ['\x16', '\x1d', '\x1e', '\x1a', '\x18', '\t', '\xff', '\xd0', ',', '\x03', '\x02', '\x14', '8', 'm', '\x01', 'C', 'D', '\xbd', '\xf7', '*', '\r', '\xda', '\xf9', '\x1c', '&', '5', "'", '\xda', '\xd4', '\xd1', '\x0b', '\xc7', '\xc7', '\x1a', '\x90', 'D', '\xa1']temp=list(map(ord,code)) #将code中的字符转换成ascii码值放入temp#temp=[22, 29, 30, 26, 24, 9, 255, 208, 44, 3, 2, 20, 56, 109, 1, 67, 68, 189, 247, 42, 13, 218, 249, 28, 38, 53, 39, 218, 212, 209, 11, 199, 199, 26, 144, 68, 161]for i in range(len(temp)-3)[::-1]: #从倒数第四个元素开始异或处理temp[i]=temp[i]^temp[i+1]#temp=[99, 117, 104, 118, 108, 116, 125, 130, 82, 126, 125, 127, 107, 83, 62, 63, 124, 56, 133, 114, 88, 85, 143, 118, 106, 76, 121, 94, 132, 80, 129, 138, 77, 138, 144, 68, 161]for i in range(len(temp)):print(chr(temp[i]-i),end='') #目测这里没有小于下标i的数所以不用关心模数运算(可以这么说吗?#ctfshow{Just_F00l's_D@y_R3_Ch3ck-in!}

相关文章:

ctfshow愚人杯 re easy_pyc wp

一、反编译题目pyc文件 题目下载解压后是一个.pyc文件,那就去反编译看看呗,因为之前用过uncompyle6,直接去命令行执行 uncompyle6 -o ez_re.py ez_re.pyc 得到ez_re.py源码一份~ 但是这里我用uncompyle6反编译的结果不知道为啥就出来很多奇…...

Ubuntu18.04 系统中本地代码上传至Gitlab库

主要步骤如下: 设置SSH Key 上传项目 1.创建SSH Key 每次上传可重新设置一个SSH Key或者使用已有SSH Key (1)创建SSH Key 创建一个新的SSH Key,终端输入以下指令,其中 “xxxxxx163.com” 是邮箱账号: s…...

Leetcode.1665 完成所有任务的最少初始能量

题目链接 Leetcode.1665 完成所有任务的最少初始能量 Rating : 1901 题目描述 给你一个任务数组 tasks,其中 tasks[i] [actuali, minimumi]: actuali是完成第 i 个任务 需要耗费 的实际能量。minimumi是开始第 i 个任务前需要达到的最低能…...

【C++笔试强训】第一天

选择题 解析&#xff1a;在for循环的循环条件(y 123) && (x < 4)中 &#xff0c;&& 表示逻辑与&#xff0c;从左向右判断两边条件是否成立&#xff0c;只有当两边的条件都为真时&#xff0c;这条语句才为真。左边y 123是赋值语句&#xff0c;一直为真&…...

【网络安全软件】上海道宁与Cybereason为您提供未雨绸缪的攻击保护,终结对端点、整个企业以及网络上任何角落的网络攻击

Cybereason可收集 计算机网络内任何活动方面的数据 如运行当中的程序 被用户访问的文件以及 员工及任何获授权使用网络中的计算机人的 键盘输入和鼠标移动情况 Cybereason提供 即时结束网络攻击的精确度 在计算机、移动设备、服务器和云中 到战斗移动的任何地方 一、开…...

基于RK3568的Android11 适配 MIPI 屏幕

文章目录 前言一、mipi接口是什么?二、原理图三、屏幕点亮流程四、屏幕关键参数1.General Specification2. Power on/off sequence3.Timing五、屏幕初始化序列改写如何把原厂给的数据转换为设备需要的时序dcs小知识:初始化时序:退出时序:总结前言 在本小节会学习到如何适配…...

Ubuntu安装python

CentOS 安装 Python3 没什么坑&#xff0c;按照步骤一步步来就可以了。 但 Ubuntu 安装 Python3 的坑却不少&#xff0c;这里总结一下&#xff0c;避免以后继续踩坑。 我用的是 ubuntu16.04&#xff0c;安装最新版本的 Python3.8.3 第1步&#xff1a;安装编译环境 安装之前…...

django 运用pycharm的各种故障汇总(1)

一.用django入门第一个问题:pycharm的[community]社区版-免费开源与[professional]专业版注册收费两个版本:用django只能有[professional]版本便捷、专业; 解决方案的各种学习总结: 1.破解版:网上找了很多资料,基本已经没效果,不要报太大希望; 2.找中间途径然后有:Python 、…...

【设计模式】单例模式Singleton(Java)

文章目录定义类图Java经典实现懒汉Lazy Mode&#xff1a;饿汉Eager Mode&#xff1a;在饿汉下的多线程案例在懒汉下的多线程案例总结定义 单例模式&#xff08;单件模式&#xff09;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。——HeadFirst 单例模式通过过防…...

机器学习中的公平性

文章目录机器学习公平性评估指标群体公平性指标个人公平性指标引起机器学习模型不公平的潜在因素提升机器学习模型公平性的措施机器学习公平性 定义&#xff1a; 机器学习公平性主要研究如何通过解决或缓解“不公平”来增加模型的公平性&#xff0c;以及如何确保模型的输出结果…...

Docker镜像之Docker Compose讲解

文章目录1 docker-compose1.1 compose编排工具简介1.2 安装docker-compose1.3 编排启动镜像1.4 haproxy代理后端docker容器1.5 安装socat 直接操作socket控制haproxy1.6 compose中yml 配置指令参考1.6.1 简单命令1.6.2 build1.6.3 depends_on1.6.4 deploy1.6.5 logging1.6.6 ne…...

蓝桥杯30天真题冲刺|题解报告|第三十天

大家好&#xff0c;我是snippet&#xff0c;今天是我们这次蓝桥省赛前一起刷题的最后一天了&#xff0c;今天打了一场力扣周赛&#xff0c;前面3个题都是有思路的&#xff0c;第三个题只过了一半的案例&#xff0c;后面看完大佬们的题解彻悟&#xff0c;下面是我今天的题解 目录…...

配置 Git Husky 代码提交约束

介绍 Git Husky 是一个可以管理 Git Hooks 的工具&#xff0c;它可以帮助我们在代码提交的时候运行脚本&#xff0c;以确保代码提交符合特定的规范和约定。 在 Git 中&#xff0c;允许在操作特定的事件时执行特定的脚本&#xff0c;这些事件我们称之为 Hooks。 Git Husky 利…...

IntelliJ IDEA 2023.1 最新变化

文章目录IntelliJ IDEA 2023.1 最新变化一. 主要更新1. 新 UI 增强 测试版启用新 UI2. 在项目打开时更早提供 IDE 功能3. 更快地导入 Maven 项目4.后台提交检查5. Spring Security 匹配器和请求映射的导航 Ultimate二. 用户体验1. 全 IDE 缩放2. 保存多个工具窗口布局的选项3. …...

stm32学习笔记-9 USART串口

9 USART串口 文章目录9 USART串口9.1 串口通信协议9.2 stm32的片上外设-USART9.3 USART收发相关实验9.3.1 实验1&#xff1a;串口发送9.3.2 实验2&#xff1a;移植printf函数9.3.3 实验3&#xff1a;串口发送接收9.4 USART串口数据包9.5 USART数据包相关实验9.5.1 实验1&#x…...

【蓝桥杯】每日四道编程题(两道真题+两道模拟)| 第四天

专栏&#xff1a; 蓝桥杯——每日四道编程题&#xff08;两道真题两道模拟&#xff09; “蓝桥杯就要开始了&#xff0c;这些题刷到就是赚到” ₍ᐢ..ᐢ₎♡ 另一个专栏&#xff1a; 蓝桥杯——每日四道填空题&#xff08;两道真题两道模拟题&#xff09; 目录 专栏&#xff1…...

大家有没有时候觉得,递归,分治,回溯,傻傻分不清楚?

递归&#xff0c;分治&#xff0c;回溯的定义 递归&#xff08;Recursion&#xff09; 递归是一种解决问题的方法&#xff0c;它将一个问题分解成一个或多个较小的相同类型的子问题&#xff0c;然后通过递归调用自身来解决这些子问题。递归通常包括一个基本情况&#xff08;b…...

Java 8 - Lambda 表达式

1. 函数式接口 当一个接口中只有一个非 default 修饰的方法&#xff0c;这个接口就是一个函数式接口用 FunctionalInterface 标注 1&#xff09;只有一个抽象方法 FunctionalInterface public interface MyInterface {void print(int x); } 2&#xff09;只有一个抽象方法和…...

【Ruby学习笔记】4.Ruby 类和对象及类案例

前言 本章介绍Ruby的类和对象及类案例。 Ruby 类和对象 Ruby 是一种完美的面向对象编程语言。面向对象编程语言的特性包括&#xff1a; 数据封装数据抽象多态性继承 这些特性将在 面向对象的 Ruby 中进行讨论。 一个面向对象的程序&#xff0c;涉及到的类和对象。类是个别…...

分享一个计算表格内单元格合并的工具,支持行合并、列合并等常见场景

分享一个计算表格内单元格合并的工具&#xff0c;支持行合并、列合并等常见场景 效果图 安装 cj-toolkit-x/table-cell-merger 插件 npm i cj-toolkit-x/table-cell-merger使用方法 import {TableCellMerger} from "cj-toolkit-x/table-cell-merger" // 创建一个单…...

突破限制与全版本支持:MediaCreationTool.bat重新定义Windows安装介质制作

突破限制与全版本支持&#xff1a;MediaCreationTool.bat重新定义Windows安装介质制作 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreatio…...

安全测试入门:开发与测试都需要知道的OWASP TOP 10

为何OWASP TOP 10是测试人员的必修课&#xff1f;在数字化浪潮席卷全球的今天&#xff0c;软件已深度融入商业运营与社会生活。每一次点击、每一次数据交换的背后&#xff0c;都潜藏着安全风险。对于软件测试从业者而言&#xff0c;功能与性能测试仅是基础&#xff0c;安全测试…...

DeepCAD实战指南:AI驱动CAD模型生成的终极解决方案

DeepCAD实战指南&#xff1a;AI驱动CAD模型生成的终极解决方案 【免费下载链接】DeepCAD code for our ICCV 2021 paper "DeepCAD: A Deep Generative Network for Computer-Aided Design Models" 项目地址: https://gitcode.com/gh_mirrors/de/DeepCAD DeepC…...

OpenSpeedy高效构建与分发指南:从源码到部署的全流程实践

OpenSpeedy高效构建与分发指南&#xff1a;从源码到部署的全流程实践 【免费下载链接】OpenSpeedy &#x1f3ae; An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy OpenSpeedy作为一款专注于提升GitHub资源访问速度的开源…...

Vim编辑器的.swp文件:安全隐患与防范措施全解析

Vim编辑器.swp文件安全风险深度剖析与实战防护指南 当你深夜加班修改服务器配置文件时&#xff0c;突然断电导致Vim异常退出。第二天发现.nginx.conf.swp文件被恶意用户下载&#xff0c;内含未保存的数据库密码——这种场景在运维工作中并不罕见。.swp文件作为Vim的自动备份机制…...

Arcgis林业资源管理实战:从GPS打点到小班成图的完整工作流

ArcGIS林业资源管理实战&#xff1a;从GPS打点到小班成图的完整工作流 林业资源调查是森林经营管理的基石&#xff0c;而GIS技术正在彻底改变传统林业调查的工作模式。记得去年参与某林场资源普查时&#xff0c;我们团队用传统方法完成一个林班调查需要两周&#xff0c;而采用A…...

数据库运维与数据安全:备份恢复、日志分析与故障排查

下面的内容大家根据实际情况&#xff0c;公司的业务还有重点择机选择&#xff0c;不是所有的蓝翔都有挖掘机 如果说之前的索引优化是“飙车”&#xff0c;那么今天的主题就是“系安全带”和“买保险”。 在运维的世界里&#xff0c;没有“如果”&#xff0c;只有“万一”。当…...

从生活沟通到AI对话:写好提示词,用好AI的魔法钥匙

一个顿悟&#xff1a;从复杂技术到简单提示最近与一位从事软件开发的朋友交流&#xff0c;他提出了一个颇具启发性的构想&#xff1a;将软件的售后客服工作交给AI来处理。起初&#xff0c;他的思路充满了技术复杂性——计划向AI提供核心代码库、训练一个专属的客服模型、进行深…...

多层PCB内部结构与HDI技术深度解析

1. 多层PCB内部结构全解析作为一名硬件工程师&#xff0c;第一次拆解十层PCB板时&#xff0c;那种震撼感至今难忘。密密麻麻的过孔像微型城市的地下管网&#xff0c;精密排布的走线如同错综复杂的立体交通网。今天我就用最直观的立体解剖图&#xff0c;带你看透各种叠层结构的P…...

【WEB模型】CS架构BS架构HTMLCSSJS

一、CS架构 - Client/Server 客户端/服务器pc安装软件&#xff1a;安卓应用、ios应用需要安装专门软件才能用&#xff0c;软件直接跟服务器通信开发成本高&#xff0c;各个平台都有对应的开发工程师好处&#xff1a;功能强大二、BS架构 - Browser/Server 浏览器/服务器不需要安…...