XCTF-Reverse:python-trade
测试文件:https://adworld.xctf.org.cn/media/task/attachments/69c8f29912ae4f679d92a6cd36c33196.pyc
pyc反编译在线:https://tool.lu/pyc/
#!/usr/bin/env python
# visit http://tool.lu/pyc/ for more information
import base64def encode(message):s = ''for i in message:x = ord(i) ^ 32 # ord()可用于字符转成ASCII码x = x + 16s += chr(x) # 转字符return base64.b64encode(s) # 返回s通过base64加密之后的值# 分析可知返回值一定等于'XlNkVmtUI1MgXWBZXCFeKY+AaXNt' 只要逆着分析就能得到messagecorrect = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:print 'correct'
else:print 'wrong'
base64.b64encode()用法 / base64 decode用法:
编写python脚本:
# 解题思路:
# 1、correct用base64解密
# 2、然后通过
# for i in message:
# x=ord(i)^32
# x=x+16
# s+=char(x)
# 倒推出flag
#
import base64
correct="XlNkVmtUI1MgXWBZXCFeKY+AaXNt"
mid_flag=base64.b64decode(correct)
print(mid_flag)
flag=''
for i in mid_flag:j=i-16j=j^32flag+=chr(j)
print(flag)
# 异或: (如下关系只有异或满足)
# a^b=c c^b=a c^a=b
# 0011
# 0001
# ————
# 0010 # 相异的时候才为1
nctf{d3c0mpil1n9_PyC}
XCTF-Reverse:python-trade相关推荐
- Python培训:Python有哪些函数?你了解几种?
本期小编要为大家带来的Python教程就是关于Python函数这方面的,我们都知道Python函数,一般是指组织好的.可重复使用的.用来实现单一或相关联功能的代码段,Python函数包含系统中自带的一 ...
- 刻意练习:Python基础 -- Task12. 模块
背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...
- python读取字符串的list dict_转:Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...
1 创建列表2 sample_list = ['a',1,('a','b')]3 4 Python 列表操作5 sample_list = ['a','b',0,1,3]6 7 得到列表中的某一个值8 ...
- python第一个公开发行版_Python基础篇【第一篇】:python入门
python 简介 python是一种解释型.面向对象.改动数据类型的高级程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. python是纯粹的自由 ...
- CrazyWing:Python自动化运维开发实战 九、Python数据类型之列表
导语 序列: 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推,Python已经内置确定序列的长度以及确定最大和最小 ...
- python读取序列5之后的数据_Python核心编程读笔 5: python的序列
第六章 序列:字符串.列表.元组 一.序列 (1)序列类型操作符 seq[ind] 获得下标为 ind 的元素 seq[ind1:ind2] 切片操作 seq * expr 序列重复 expr 次 s ...
- Python之路【第二篇】:Python基础(一)
Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1: name ...
- Seaborn:Python
Seaborn is a data visualization library built on top of matplotlib and closely integrated with panda ...
- 数据可视化及其重要性:Python
Data visualization is an important skill to possess for anyone trying to extract and communicate ins ...
- 【Python基础入门系列】第07天:Python 数据结构--序列
python内置序列类型最常见的是列表,元组和字符串.(序列是python中最基础的数据结构,而数据结构是计算机存储,组织数据的方式.) 另外还提供了字典和集合的数据结构,但他们属于无顺序的数据集合体 ...
最新文章
- 路由守卫 AJAX,vue路由导航守卫 和 请求拦截以及基于node的token认证
- 创维oled工厂模式abd_创维电视五大新品释放创新社交属性,让新年「大有可玩」...
- 光耀卡服务器维修,3月28日服务器更新维护公告
- 介绍一种 Python 更方便的爬虫代理池实现方案
- DXUT框架剖析(7)
- 2019上半年白领跳槽盘点:仅3成成功跳槽,17%降薪
- 开源矿工 - 记一个完整的软件是如何开发和运行的
- 树莓派端口i2s_树莓派制造低成本交互式显微镜
- android GPS驱动
- Java实现分页的几种方式
- webpack打包报错 [webpack-cli] TypeError: merge is not a function
- 家庭和睦、人生平淡也是一种成功
- 前厅(the backrooms)
- js实现点赞、取消点赞思路(前端技术适用)
- SETCLIENTID
- 动手练一练,用纯 CSS 制作一款侧滑显示留言面板的网页组件
- 《计算机基础》快捷键
- win10如何自动切换壁纸
- 我理解的面向接口编程
- PHP下载m3u8视频及解析下载ts资源文件