首页 > 其他分享 >【re】[广东省大学生攻防大赛 2022]pyre --爆破字符

【re】[广东省大学生攻防大赛 2022]pyre --爆破字符

时间:2023-11-09 22:56:45浏览次数:35  
标签:反编译 爆破 -- range re flag 2022 print pyc

附件下载下来,解压,发现是一个python打包的exe

这里用pyinstxtractor进行反编译,后面会得到一个文件夹,里面有一个pyc文件

这里可以用进行网站进行对pyc进行反编译:在线Python pyc文件编译与反编译 (lddgo.net)

反编译的python结果如下:

# Visit https://www.lddgo.net/string/pyc-compile-decompile for more information
# Version : Python 3.7


def check():
    a = input('plz input your flag:')
    c = [
        144,
        163,
        158,
        177,
        121,
        39,
        58,
        58,
        91,
        111,
        25,
        158,
        72,
        53,
        152,
        78,
        171,
        12,
        53,
        105,
        45,
        12,
        12,
        53,
        12,
        171,
        111,
        91,
        53,
        152,
        105,
        45,
        152,
        144,
        39,
        171,
        45,
        91,
        78,
        45,
        158,
        8]
    if len(a) != 42:
        print('wrong length')
        return 0
    b = None
    for i in range(len(a)):
        if ord(a[i]) * 33 % b != c[i]:
            print('wrong')
            return None
    
    print('win')

check()

逻辑还是比较简单的,但就是这个b的值不知道,后面考虑到前四个字符固定是"flag",所以可以先把b给爆破出来,爆破b的脚本如下:

str=[144,163,158,177] flag="flag"
for j in range(len(flag)):     for b in range(1,1000):         if (ord(flag[j])*33)%b==str[j]:             print(b) 运行结果如下:

可以得到b=179,接着跟着代码逻辑继续爆破:

flag="" b=179 for i in range(len(c)):     for num in range(32,127):         if num*33%b==c[i]:             flag+=chr(num) print(flag)   运行结果: flag:flag{2889e7a3-0d6b-4cbb-b6e9-04c0f26c9dca}  ps:如果一开始用uncompyle6进行反编译pyc文件的话,b的值是可以反编译出来的,也就不用去爆破b的值

          

标签:反编译,爆破,--,range,re,flag,2022,print,pyc
From: https://www.cnblogs.com/GGbomb/p/17823072.html

相关文章

  • 表连接和截取字段函数
    selecte.ename,d.dnamefromempeleftjoindeptdone.DEPTNO=d.DEPTNOwheresubstr(e.ename,2,1)='M'; 函数之前需要干干净净,图中 表.函数不符合语法报错了  ......
  • esp32-ledc(pwm)
    这个部分设置比较简单,分三步,配置定时器、配置管道、设置占空比配置定时器配置管道改变占空比......
  • 颜色段均摊(珂朵莉树)
    珂朵莉树的复杂度分析CF896C珂朵莉树起源题LG4979矿洞:坍塌珂朵莉树可以在区间覆盖时顺便把左右的同色段合并了,这样任意时刻相邻的两段都不同色本题询问时判断\([l,r]\)是否同色就可以通过判断\([l,r]\)是否在同一段实现了https://www.luogu.com.cn/problem/P8146......
  • 网络嗅探器的设计与实现
    网络嗅探器的设计与实现1.介绍中国科学院大学软件与系统安全作业:网络嗅探器项目地址:https://github.com/gao79135/network-sniffer/tree/master本人开发的网络嗅探器可以抓取并分析网络数据包,并支持wireshark语法,实现协议的过滤功能。2.项目的技术栈......
  • Planting Trees and Glasses--- Holding Back Soil Erosion
    Plantingtreesandglasses植树种草 Ganzhou, a typical red soil hilly area in Jiangxi province, is a pilot area for high-quality development of soil and water conservation in China. Through a series of following innovative in......
  • linux 安装mysql
    linux安装mysql数据库的教程1.安装数据库1)yum-yinstallmysql-server(简单)yum命令自动从网上寻找mysql服务资源,下载至本地并完成安装2)也可以自己在网上下载mysql服务,通过xftp传输至Linux系统,自己安装(一般安装在usr或opt目录下)2.启动数据库安装完毕,执行命令servicemys......
  • 工厂方法模式
    [实验任务]:加密算法目前常用的加密算法有DES(DataEncryptionStandard)和IDEA(InternationalDataEncryptionAlgorithm)国际数据加密算法等,请用工厂方法实现加密算法系统。 publicinterfaceEncryption{Stringencrypt(Stringtext);Stringdecrypt(Stringciph......
  • 通过一道题目带你深入了解WAF特性、PHP超级打印函数、ASCII码chr()对应表等原理[RoarC
    题目环境:<br/>依此输入以下内容并查看回显结果1+11'index.phpls<br/><br/>到这里没思路了F12查看源代码<br/>一定要仔细看啊,差点没找到,笑哭访问calc.php文件<br/>果然有点东西PHP代码审计error_reporting(0);关闭错误报告通过GET方式传参的参数numsho......
  • 前端学习-JavaScrip学习-sort()函数
    sort()函数默认按照字符串Unicode码排序如果希望按照数字大小排序,需要传参letarr=[2,4,5,6,22,9,10,111,2,1,32];console.log(arr.sort(function(a,b){returna-b;//升序//returnb-a;//降序}));参考链接:js排序——sort()排序用法......
  • 用原型实现Class的各项语法
    本人之前对Class一直不够重视。平时对原型的使用,也仅限于在构造函数的prototype上挂属性。原型尚且用不着,更何况你Class只是原型的一颗语法糖?直到公司开始了一个webgis项目,使用openlayers。看了下openlayers的代码,整个api都是用Class构建的。我才意识到,对Class的使用已经很普遍了......