附件链接:https://wwvc.lanzouj.com/iIqq218z5x0d



给了一个pyc文件

利用命令将pyc转换为py文件

uncompyle6 ezPython.pyc > ezPython.py

打开py文件

# uncompyle6 version 3.9.0
# Python bytecode version base 3.7.0 (3394)
# Decompiled from: Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)]
# Embedded file name: .\ezPython.py
# Compiled at: 2022-09-03 23:53:44
# Size of source mod 2**32: 444 bytes
from Crypto.Util.number import *
import base64, base58
password = open('password.txt', 'r').read()
tmp = bytes_to_long(password.encode('utf-8'))
ans = base64.b64encode(base58.b58encode(str(tmp))).decode()
print("I've forgot my password,could you please help me find the password?")
if ans == 'M0hBajFITHVLcWV6R1BOcEM5MTR0R0J3eGZVODV6MTJjZUhGZFNHQw==':
print('You get the password!')
else:
print('Wrong! try again')
# okay decompiling ezPython.pyc

这段代码是Python中的字符串和编码转换操作。

首先,password是一个字符串,使用encode()方法将其转换为字节类型(bytes),采用UTF-8编码方式进行转换。接下来,tmp使用bytes_to_long函数将字节序列转换为一个长整型数值。

然后,tmp的值通过先使用Base58编码,再使用Base64编码的方式进行转换。base58.b58encode()和base64.b64encode()分别是对应的编码函数。

最后,使用decode()方法将编码后的结果转换为字符串类型。使加密后的值也就是ans等于M0hBajFITHVLcWV6R1BOcEM5MTR0R0J3eGZVODV6MTJjZUhGZFNHQw==

整个过程就是将密码转换为经过Base58编码和Base64编码的字符串,以ans变量保存结果。

解码过程:

先将ans进行base64解密,再进行base58解密

3HAj1HLuKqezGPNpC914tGBwxfU85z12ceHFdSGC

22385992650816784030032474165

再用python跑出bytes字节类型转换为长整型数值

from Crypto.Util.number import *
import base64, base58
password = '22385992650816784030032474165'
tmp = long_to_bytes(password.encode('utf-8'))
print(tmp) # b'HUBUCTF@1405'

password为HUBUCTF@1405



根据题目描述,flag为md5(password),一般取md5加密都是32位小写



故flag:NSSCTF{fd78ee3399dd6a3c1d0b637fdca0c075}

[HUBUCTF 2022 新生赛]ezPython的更多相关文章

  1. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  2. SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告

            题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音?       ...

  3. Codeforces 801 A.Vicious Keyboard & Jxnu Group Programming Ladder Tournament 2017江西师大新生赛 L1-2.叶神的字符串

    A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  4. [ACTF2020 新生赛]BackupFile && [ACTF2020 新生赛]Upload &&[GYCTF2020]Blacklist

    [ACTF2020 新生赛]BackupFile 尝试找到源代码,加上题目是备份文件,猜测备份文件里面有网站的源代码,御剑扫描一下,就扫到index.php 访问index.php.bak 下载源代码 ...

  5. [BUUCTF]REVERSE——[ACTF新生赛2020]Oruga

    [ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A( ...

  6. [BUUCTF]REVERSE——[ACTF新生赛2020]usualCrypt

    [ACTF新生赛2020]usualCrypt 附件 步骤: 例行检查,无壳,32位程序 32位ida载入,直接看main函数 逻辑很简单,一开始让我们输入一个字符串,然后该字符串经过sub_4010 ...

  7. [BUUCTF]REVERSE——[ACTF新生赛2020]rome

    [ACTF新生赛2020]rome 附件 步骤 无壳,32位程序 32位ida载入,根据提示字符串"You are correct!",找到关键函数func v15 = 'Q'; ...

  8. [BUUCTF]REVERSE——[ACTF新生赛2020]easyre

    [ACTF新生赛2020]easyre 附件 步骤 查壳,32位程序,upx壳儿 脱完壳儿,扔进ida 分析 一开始给我们定义了一个数组, v4=[42,70,39,34,78,44,34,40,73 ...

  9. GDOU-CTF-2023新生赛Pwn题解与反思

    第一次参加CTF新生赛总结与反思 因为昨天学校那边要进行天梯模拟赛,所以被拉过去了.16点30分结束,就跑回来宿舍开始写.第一题和第二题一下子getshell,不用30分钟,可能我没想那么多,对比网上 ...

  10. SCNU ACM 2016新生赛决赛 解题报告

    新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...

随机推荐

  1. Galaxy Release 20.05 发布,新增多项可视化体验

    Galaxy Project(https://galaxyproject.org/)是在云计算背景下诞生的一个生物信息学可视化分析开源项目. 该项目由美国国家科学基金会(NSF).美国国家人类基因组研 ...

  2. [C#] FFmpeg 音视频开发总结

    为什么选择FFmpeg? 延迟低,参数可控,相关函数方便查询,是选择FFmpeg作为编解码器最主要原因,如果是处理实时流,要求低延迟,最好选择是FFmpeg. 如果需要用Opencv或者C#的Emgu ...

  3. 文字生成图像 AI免费工具第一弹 StableDiffusion

    随着ChatGPT的爆火,text-to-image文字生成图像.以及更广义的AIGC(AI Generated Content)相关的话题最近一直热度不减.相信大家这几天经常会在各类的自媒体.甚至是 ...

  4. 消失的死锁:从 JSF 线程池满到 JVM 初始化原理剖析

    一.问题描述 在一次上线时,按照正常流程上线后,观察了线上报文.接口可用率十分钟以上,未出现异常情况,结果在上线一小时后突然收到jsf线程池耗尽的报警,并且该应用一共有30台机器,只有一台机器出现该问 ...

  5. LLE算法的应用场景和案例:详解LLE算法在实际问题中的效果和表现

    目录 引言 随着深度学习技术的不断发展,神经网络模型在人工智能领域的应用越来越广泛.其中,LLE(Largely Element-wise Linear) 神经网络是一种常用的神经网络模型,其基本思想 ...

  6. 高可用只读,让RDS for MySQL更稳定

    摘要:业务应用对数据库的数据请求分写请求(增删改)和读请求(查).当存在大量读请求时,为避免读请求阻塞写请求,数据库会提供只读实例方案.通过主实例+N只读实例的方式,实现读写分离,满足大量的数据库读取 ...

  7. MODBUS RTU转 EtherNet/IP 网关连接森兰变频器与欧姆龙系统通讯

      捷米特JM-EIP-RTU(Modbus转Ethernet/Ip)网关,用于将多个 MODBUS 从站设备接入 ETHERNET/IP 主站网络,实现 MODBUS 转 ETHERNET/IP 功 ...

  8. 浅谈REFS文件系统数据恢复研发经历(1)

    作为80后技术员, 我一直很喜欢李玟, 是我们那个时代的偶像, 一直也很喜欢听他的歌, 看到她的噩耗, 还是很那么的无法理解, 一个那么好的人怎么会得抑郁症呢, 心里多少还是无法接受. 不过联想到自己 ...

  9. 深入JS——理解闭包可以看作是某种意义上的重生

    JS中有一个非常重要但又难以完全掌握的概念,那就是闭包.很多JS程序员自以为已经掌握了闭包,但实质上是一知半解,就像"JS中万物皆为对象"这个常见的错误说法一样,很多前端开发者到现 ...

  10. 论文翻译: FREEVC:朝着高质量、无文本、单次转换声音的目标迈进

    原文:FREEVC: TOWARDS HIGH-QUALITY TEXT-FREE ONE-SHOT VOICE CONVERSION 原文地址:https://ieeexplore.ieee.org ...