zoukankan      html  css  js  c++  java
  • [BUUCTF]REVERSE——[GWCTF 2019]pyre

    [GWCTF 2019]pyre

    附件

    步骤:
    1.附件是pyc文件,用python打不开,百度后得知用python反编译工具打开,分享一个python反编译在线网站

    反编译后是这段代码

    #!/usr/bin/env python
    # visit http://tool.lu/pyc/ for more information
    print 'Welcome to Re World!'
    print 'Your input1 is your flag~'
    l = len(input1)              #输入字符串的长度
    for i in range(l):           
        num = ((input1[i] + i) % 128 + 128) % 128  #对字符串的每一位进行加密,确保在128的范围内
        code += num
    
    for i in range(l - 1):
        code[i] = code[i] ^ code[i + 1]   #字符串的前一位与后一为进行异或运算后赋值给前一位
    
    print code
    code = [
        'x1f',
        'x12',
        'x1d',
        '(',
        '0',
        '4',
        'x01',
        'x06',
        'x14',
        '4',
        ',',
        'x1b',
        'U',
        '?',
        'o',
        '6',
        '*',
        ':',
        'x01',
        'D',
        ';',
        '%',
        'x13']
    

    程序很简单,将code字符串逆向一下上方的两个算法即可

    exp

    code = ['x1f','x12','x1d','(','0','4','x01','x06','x14','4',
            ',','x1b','U','?','o','6','*',':','x01','D',';','%','x13']
    
    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)):
        print(chr((ord(code[i])-i)%128),end="")
    

    在这里插入图片描述

  • 相关阅读:
    FTP 协议和 HTTP 协议的比较
    HttpURLConnection的post请求,什么时候发出,writeData存在什么地方
    装饰器
    函数参数以及名称空间作用域
    函数的调用
    函数的返回值
    定义函数的三种方式
    函数
    day05
    day04
  • 原文地址:https://www.cnblogs.com/xlrp/p/14273656.html
Copyright © 2011-2022 走看看