Hgame第二周(Pro的python教室(二))

拿到题目是PYC文件,在网上进行反编译的得到py代码

# uncompyle6 version 3.2.4
# Python bytecode 2.7 (62211)
# Decompiled from: Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)]
# Embedded file name: secend.py
# Compiled at: 2019-02-01 21:18:58
print "Welcome to Processor's Python Classroom Part 2!\n"
print "Now let's start the origin of Python!\n"
print 'Plz Input Your Flag:\n'
enc = raw_input()
len = len(enc)
enc1 = []
enc2 = ''
aaa = 'ioOavquaDb}x2ha4[~ifqZaujQ#'
for i in range(len):
    if i % 2 == 0:
        enc1.append(chr(ord(enc[i]) + 1))
    else:
        enc1.append(chr(ord(enc[i]) + 2))

s1 = []
for x in range(3):
    for i in range(len):
        if (i + x) % 3 == 0:
            s1.append(enc1[i])

enc2 = enc2.join(s1)
if enc2 in aaa:
    print "You 're Right!"
else:
    print "You're Wrong!"
    exit(0)

 思路已经很清晰,

enc为input,for循环进行奇偶不同的加密 ,奇数位+2 偶数位+1 ,之后再进行如果整除3提取出来加到末尾(例如0123456,加密过后就是0362514)   最后与aaa里的字符进行对比.

写出exp

# -*- coding: UTF-8 -*-
aaa ="ioOavquaDb}x2ha4[~ifqZaujQ#"
aa = []
for i in aaa:
        aa.append(i)
a = []
for i in range(3):
        for x in range(27):
                if(i+x)%3==0:
                        a.append(x)
for i in range(len(aa)):
        aa[a[i]] = aaa[i]
flag = ""
for y in aa:
        flag += y
flags = ""
for i in range(27):
    if i % 2 == 0:
        flags+=(chr(ord(flag[i]) - 1))
    else:
            flags+=(chr(ord(flag[i]) - 2))
 
print (flags)

#out :hgame{Now_Y0u_got_th3_PYC!}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值