[GWCTF 2019]pyre

[GWCTF 2019]pyre

得到的是 .pyc 文件,需要转换成 .py 文件

可以通过在线网站转换

也可以使用 uncompyle6 库

pip install uncompyle6
uncompyle6 -o attachment.py attachment.pyc

打开得到的 .py 文件
img

可以看到逻辑如下:
(1)最终的输出的code,上面是一个for循环对code进行 code[i] = code[i] ^ code[i + 1]处理
(2)在往上是将 input 的内容进行操作后,通过中间变量 num,再加到 code 上

因此我们直接逆着往回求,编写解密脚本

code = ['\x1f', '\x12', '\x1d', '(', '0', '4', '\x01', '\x06', '\x14', '4', ',', '\x1b', 'U', '?', 'o', '6', '*', ':',
        '\x01', 'D', ';', '%', '\x13']
str1 = ''

for i in range(len(code) - 2, -1, -1):
    code[i] = chr(ord(code[i]) ^ ord(code[i + 1]))
for i in range(len(code)):
    code[i] = chr((ord(code[i]) - i + 128) % 128)
    str1 += code[i]

print(code)
print(str1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值