测试文件: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相关推荐

  1. Python培训:Python有哪些函数?你了解几种?

    本期小编要为大家带来的Python教程就是关于Python函数这方面的,我们都知道Python函数,一般是指组织好的.可重复使用的.用来实现单一或相关联功能的代码段,Python函数包含系统中自带的一 ...

  2. 刻意练习:Python基础 -- Task12. 模块

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  3. 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 ...

  4. python第一个公开发行版_Python基础篇【第一篇】:python入门

    python 简介 python是一种解释型.面向对象.改动数据类型的高级程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. python是纯粹的自由 ...

  5. CrazyWing:Python自动化运维开发实战 九、Python数据类型之列表

    导语 序列: 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推,Python已经内置确定序列的长度以及确定最大和最小 ...

  6. python读取序列5之后的数据_Python核心编程读笔 5: python的序列

    第六章 序列:字符串.列表.元组 一.序列 (1)序列类型操作符 seq[ind] 获得下标为 ind 的元素 seq[ind1:ind2] 切片操作 seq * expr 序列重复 expr 次 s ...

  7. Python之路【第二篇】:Python基础(一)

    Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name ...

  8. Seaborn:Python

    Seaborn is a data visualization library built on top of matplotlib and closely integrated with panda ...

  9. 数据可视化及其重要性:Python

    Data visualization is an important skill to possess for anyone trying to extract and communicate ins ...

  10. 【Python基础入门系列】第07天:Python 数据结构--序列

    python内置序列类型最常见的是列表,元组和字符串.(序列是python中最基础的数据结构,而数据结构是计算机存储,组织数据的方式.) 另外还提供了字典和集合的数据结构,但他们属于无顺序的数据集合体 ...

最新文章

  1. 路由守卫 AJAX,vue路由导航守卫 和 请求拦截以及基于node的token认证
  2. 创维oled工厂模式abd_创维电视五大新品释放创新社交属性,让新年「大有可玩」...
  3. 光耀卡服务器维修,3月28日服务器更新维护公告
  4. 介绍一种 Python 更方便的爬虫代理池实现方案
  5. DXUT框架剖析(7)
  6. 2019上半年白领跳槽盘点:仅3成成功跳槽,17%降薪
  7. 开源矿工 - 记一个完整的软件是如何开发和运行的
  8. 树莓派端口i2s_树莓派制造低成本交互式显微镜
  9. android GPS驱动
  10. Java实现分页的几种方式
  11. webpack打包报错 [webpack-cli] TypeError: merge is not a function
  12. 家庭和睦、人生平淡也是一种成功
  13. 前厅(the backrooms)
  14. js实现点赞、取消点赞思路(前端技术适用)
  15. SETCLIENTID
  16. 动手练一练,用纯 CSS 制作一款侧滑显示留言面板的网页组件
  17. 《计算机基础》快捷键
  18. win10如何自动切换壁纸
  19. 我理解的面向接口编程
  20. PHP下载m3u8视频及解析下载ts资源文件

热门文章

  1. HD 1253 胜利大逃亡(bfs)
  2. poj 2355(简单dp)
  3. hdu-1576(A/B)
  4. hdu-Frosh Week(树状数组)
  5. NYOJ 1066 CO-PRIME(数论)
  6. assert()用法
  7. STM32学习笔记——DMA控制器(向原子哥学习)
  8. 利用线程下载网页中的程序并另存到本地
  9. WPF开发中遇到的问题及解决系列(一):How can I programmatically click a Button
  10. Zero-Copysendfile浅析