首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【愚公系列】2021年12月 攻防世界-简单题-REVERSE-003(python-trade)

【愚公系列】2021年12月 攻防世界-简单题-REVERSE-003(python-trade)

作者头像
愚公搬代码
发布2021-12-27 08:14:45
发布2021-12-27 08:14:45
2770
举报
文章被收录于专栏:历史专栏历史专栏

文章目录


一、python-trade

题目链接:https://adworld.xctf.org.cn/task/task_list?type=reverse&number=4&grade=0&page=1

二、使用步骤

1.反编译

在命令窗口执行

代码语言:javascript
复制
uncompyle6 test.pyc > test.py

得到py文件

代码语言:javascript
复制
import base64

def encode(message):
    s = ''
    for i in message:
        x = ord(i) ^ 32
        x = x + 16
        s += chr(x)

    return base64.b64encode(s)


correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
    print 'correct'
else:
    print 'wrong'
# okay decompiling test.pyc

2.解密

通过查看这段Python2代码,我们知道flag进行encode函数中的操作,得到‘XlNkVmtUI1MgXWBZXCFeKY+AaXNt’。

因此,我们只要反过来执行,就能够得到flag,写出代码

代码语言:javascript
复制
import base64

def decode(message):
    s = ''
    imessage = base64.b64decode(message)

    for i in imessage:
        x = ord(i) - 16
        x = x ^ 32
        s += chr(x)

    return s

correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'

flag = decode(correct)
print(flag)

得到flag:nctf{d3c0mpil1n9_PyC}


总结

  • uncompyle6
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、python-trade
  • 二、使用步骤
    • 1.反编译
    • 2.解密
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档