首页 > 其他分享 >CTFshow Reverse 签退 wp

CTFshow Reverse 签退 wp

时间:2023-11-01 22:12:53浏览次数:38  
标签:text re3 bytes remain part CTFshow str wp 签退

1.使用uncompyle把re3.pyc反编译为re3.py

uncompyle6 re3.pyc > re3.py

 查看re3.py文件,并分析源码(见注释)

查看代码
# uncompyle6 version 3.6.4
# Python bytecode 2.7 (62211)
# Decompiled from: Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26) [MSC v.1500 64 bit (AMD64)]
# Embedded file name: re3.py
# Compiled at: 2020-03-06 17:43:28
import string
c_charset = string.ascii_uppercase + string.ascii_lowercase + string.digits + '()'
flag = 'BozjB3vlZ3ThBn9bZ2jhOH93ZaH9'    #这个是最后输出的密文

def encode(origin_bytes):    #这个函数是base64加密
    c_bytes = [ ('{:0>8}').format(str(bin(b)).replace('0b', '')) for b in origin_bytes ]
    resp = ''
    nums = len(c_bytes) // 3
    remain = len(c_bytes) % 3
    integral_part = c_bytes[0:3 * nums]
    while integral_part:
        tmp_unit = ('').join(integral_part[0:3])
        tmp_unit = [ int(tmp_unit[x:x + 6], 2) for x in [0, 6, 12, 18] ]
        resp += ('').join([ c_charset[i] for i in tmp_unit ])
        integral_part = integral_part[3:]
    if remain:
        remain_part = ('').join(c_bytes[3 * nums:]) + (3 - remain) * '0' * 8
        tmp_unit = [ int(remain_part[x:x + 6], 2) for x in [0, 6, 12, 18] ][:remain + 1]
        resp += ('').join([ c_charset[i] for i in tmp_unit ]) + (3 - remain) * '.'
    return rend(resp)    #这个代码说明先进行base64加密,然后进行凯撒加密

def rend(s):
    def encodeCh(ch):    #这个函数是凯撒加密
        f = lambda x: chr((ord(ch) - x + 2) % 26 + x)
        if ch.islower():
            return f(97)
        if ch.isupper():
            return f(65)
        return ch
    return ('').join(encodeCh(c) for c in s)
# okay decompiling re3.pyc

2.先使用凯撒密码进行解密

把解密后的密文写入base.txt文件中

3.编写脚本,进行解密

#! /usr/bin/env python
# _*_  coding:utf-8 _*_
import base64
filename = "base64.txt"
f = open(filename,'r')
while True:
    text_base =f.readline()
    if not text_base:
        break
    else:
        text_str = str(base64.b64decode(text_base))
        if "flag" in text_str:
            text_str =text_str.replace("'","").replace("b","")
            print(text_str)

得到flag{c_t_f_s_h_0_w_!}


标签:text,re3,bytes,remain,part,CTFshow,str,wp,签退
From: https://www.cnblogs.com/ethan269/p/ctfshow_re10.html

相关文章

  • ACTF 2023 部分WP
    来自密码手的哀嚎:玩不了一点,太难了。CRYPTOMDHDescriptionMalin’sDiffile-HellmanKeyExchange.task.sagefromhashlibimportsha256fromsecretimportflagr=128c=96p=30895560686888555112023086146261287307810558304715693017945971779871510962......
  • [17章+电子书]C#速成指南-从入门到进阶,实战WPF与Unity3D开发
    点击下载:[17章+电子书]C#速成指南-从入门到进阶,实战WPF与Unity3D开发  提取码:a3s5 《C#速成指南--从入门到进阶,实战WPF与Unity3D开发》完整讲解了C#语言的核心知识和高阶编程技巧,并结合WPF客户管理系统和Unity3D切水果游戏两大实战项目,帮你实现技术的精通,完成从Zero到Hero的蜕变......
  • 春秋云镜 Brute4Board WP
    扫描[*]Icmpalivehostslenis:139.99.148.22:22open39.99.148.22:21open39.99.148.22:80open39.99.148.22:6379open[*]aliveportslenis:4startvulscan[*]WebTitle:http://39.99.148.22code:200len:4833title:WelcometoCentOS[+]Redis:3......
  • CTFshow Reverse flag白给 wp
    1.exe程序,upx脱壳,ida分析ida没有解析出main函数,shift+F12打开字符串窗口,发现一个和exe窗口相同的字符串HackAv交叉引用过去,来到TForm1_Button1Click函数2.将输入的字符串和已知的明文字符串"HackAv"比较直接输入即可验证成功flag{HackAv}......
  • c# 通过代码调用WPS将Word转为PDF
    最近在使用Spire.Doc的过程中,发现在将word文件转为PDF时,一旦页数过多(具体超过多少页会报错暂未求证),会直接报错(Objectreferencenotsettoaninstanceofanobject.),堆栈信息如下:当然,我这是免费版的,功能被阉割很正常,所以这两天一直在寻找替代品。中间了解到可以使用微软官方......
  • 界面控件DevExpress WPF Gauge组件 - 轻松实现个性化商业仪表盘
    DevExpressWPFGauge(仪表)控件包含了多种圆形仪表类型、水平和垂直线性仪表、分段和矩阵数字仪表以及状态指示器,同时还具有最终用户交互性的集成支持。P.S:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着......
  • 2023 SHCTF-校外赛道 PWN WP
    WEEK1nc连接靶机直接梭hardnc同样是nc直接连,但是出题人利用linux命令的特性,将部分flag放在了特殊文件中利用ls-a查看所有文件,查看.gift,可以得到前半段然后再lsgift2以及cat相关的内容得不到任何数据。。。因此考虑到会不会是进入目录下找,再更换到gift2目录中,查看flag2,......
  • wpf prism 自定义委托命令DelegateCommand
    //构造函数publicMainWindowViewModel(){EditCommand=newDelegateCommand(_editCommand);}//命令声明一publicDelegateCommandEditCommand{get;set;}//构造函数中实例化委托void_editCommand(){MessageBox.Show("EditCommand");}//命令生命......
  • NewStarCTF 2023 公开赛道 WEEK4|MISC 部分WP
    R通大残1、题目信息R通大残,打了99,补!2、解题方法仔细分析题目,联想到隐写的R通道。首先解释一下:R是储存红色的通道,通道里常见有R(红)、G(绿)、B(蓝)三个通道,如果关闭了R通道图片就没有红色的部分,G、B同理。因此我们想到R大残应该是不显示红色了,猜测结果就在R通道里,所以使用Stegsolv......
  • CTFshow Reverse 数学不及格 wp
    1.elf文件使用IDA反汇编main函数,主要逻辑写在注释里,要算出除程序名之外的4个参数2.根据伪代码分析数据前三个check相加,有(v9-v10)+(v9-v11)+(v9-v12)=3*v9-(v10+v11+v12)=0x233F0E151C+0x1B45F81A32+0x244C071725=0x62d10d4673而check4v4+v10+v11+v12=0x13A31412F8C两个等......