题目链接(提取码:8fw3 )
查看文件信息

通过Pyinstaller的python二进制程序,通过pyinstxtractor提取 PyInstaller 生成的 Windows 可执行文件。

项目地址:https://github.com/extremecoders-re/pyinstxtractor


提取后通过Uncompyle6对pyc文件进行反编译。

项目地址:https://github.com/rocky/python-uncompyle6/

结果这里就出现问题了,一直报错:

查了相关资料,解决办法是将struct二进制文件的前八个字节的内容进行替换即可。这个就是魔数的概念了,详细可以看这个uncompyle6反编译报错和PYC 文件的简单分析

省流:把py打包成exe的时候,pyc文件前面的8个字节会被抹掉,所以反编译的时候需要加回来,pyc同目录struct文件前8个字节就是需要的内容。
以下是run.py的反编译源码:

# uncompyle6 version 3.8.0
# Python bytecode 3.7.0 (3394)
# Decompiled from: Python 3.9.12 (main, Apr  4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)]
# Embedded file name: run.py
from new import *
print('welcome!!!')
flag_input = input('please input flag:')
if set(word) >= set(flag_input):pt = mmo(flag_input)flag = pt()if flag == '5WEU5ROREb0hK+AurHXCD80or/h96jqpjEhcoh2CuDh=':print('right!!!')print('your flag: flag{' + flag_input + '}')else:print('Error')
else:print('please input again!')
# okay decompiling .\run.pyc

观察到flag好像是base64加密,结果解密无果。。。
查看调用引用库“new”,查询python没有第三方库,于是猜测可能调用了pyc文件,于是发现下图文件:

将起名字改为new.pcy,程序得以成功运行。(卡了好久,我不知道为什么pycharm还会报红,但是可以运行,算是踩的一个坑了吧!)

简单测试,发现字符串超过一定长度会发生错误:

这里有一个集合大小的判断函数,所以flag_input的内容一定是word集合里面的字符集。


base64直接解码不可以得出!!!

和本题无关
补充: base64的编码规则是三个字符转化为四个字符,根据恒等式“ ’3‘ * 8 == 6 * ’4‘ ”进行转换,不足三个字符的用等号补齐,所以base64编码后的字符串长度一定是4的倍数。
随便输入几下发现了类似于base64,三位换四位,但是后面的结果和前面的有关。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qWhuLdU4-1661822715475)(http://www.furrydragon.top/upload/2022/08/image-1661595328795.png)]

所以三位为一个单位进行暴力破解即可得出flag的真实值:
前30位:

from new import *a=list(set(word))
print(len(a))
enc= '5WEU5ROREb0hK+AurHXCD80or/h96jqpjEhcoh2CuDh='
b64flag = ''
for i in range(0, 9):for a1 in a:for a2 in a:for a3 in a:t = b64flag + a1 +a2+ a3pt = mmo(t)flag = pt()if enc.startswith(flag):# 如果存在将其按顺序重新组合b64flag = tprint(t)
print(b64flag)

后两位:

from new import *a=list(set(word))
print(len(a))
enc= '5WEU5ROREb0hK+AurHXCD80or/h96jqpjEhcoh2CuDh='
for a1 in a:for a2 in a:t = '8b98aa2e10ac53e21240ee10a9054b' + a1 + a2pt = mmo(t)flag = pt()if enc.startswith(flag):print("flag is " + t)


解毕!
欢迎留言交流!!!
交流VX:GGBOND-0229

欢迎加入个人二进制学习圈:write-bug学习圈码:40060343

2022长城杯Reverse-baby_reWP相关推荐

  1. [长城杯 2022]办公室爱情

    [长城杯 2022]办公室爱情 复现过程如下: 先把沃德.doc复制到kali中,修改后缀名后为沃德.zip,然后解压文件. 使用grep进行匹配 grep -irE "flag|==|10 ...

  2. 【2022羊城杯WriteUp By EDISEC】

    2022羊城杯WriteUp By EDISEC Web little_db Safepop rce_me step_by_step-v3 ComeAndLogin simple_json Misc ...

  3. 2021 长城杯ctf wp

    2021 长城杯 wp Misc 签到 你这flag保熟吗 Crypto baby_rsa Reverse Just_cmp funny_js Web java_url ez_python Pwn K ...

  4. 2022高教杯思路合集!!全国大学生数学建模竞赛

    2022高教杯将于9.15开赛 思路贴将于晚10点前发布 粉丝可见 17日0:00转免 国一F奖3年数学建模经验团队 交流Q群:882663918 下文是2022年美赛的思路示例: 要求由于公司的规定 ...

  5. 2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结

    2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结 Paper & Code:https://github.com/Fly-Pluche/2022-mathematical-m ...

  6. 2022长安杯复盘——lucid凡

    2022长安杯案情背景:某地警方接到受害人报案称其在某虚拟币交易网站遭遇诈骗,该网站号称使用"USTD币"购买所谓的"HT币",受害人充值后不但 "H ...

  7. 2022春秋杯联赛 传说殿堂赛道 sql_debug题目解析

    2022春秋杯联赛 传说殿堂赛道 sql_debug题目解析 前言 sql_debug sql_debug 题⽬介绍 dsn_from_uri 触发phar反序列化 Linux下PHP内核调试⼩知识 ...

  8. 2022长安杯-wp

    2022长安杯案情背景:某地警方接到受害人报案称其在某虚拟币交易网站遭遇诈骗,该网站号称使用"USTD币"购买所谓的"HT币",受害人充值后不但 "H ...

  9. 2022华中杯、五一竞赛赛事备战

    问题A是一个典型的优化问题,难点是建立指派模型,这里面的难点就是运动距离尽可能均衡的约束,这个可以参考飞机运输模型中的平衡约束 [2022"华中杯"A题相关资料与文献分享]比赛期间 ...

最新文章

  1. SpringBoot-web开发(四): SpringMVC的拓展、接管(源码分析)
  2. Redhat 图形模式与命令行模式的切换
  3. 一站式体验腾讯云音视频及融合通信技术
  4. node+koa2+mysql搭建博客后台
  5. jenkins修改pom文件_jenkins使用小技巧:pom.xml文件里的版本随着每次发布变化怎么办?...
  6. C#LeetCode刷题之#441-排列硬币(Arranging Coins)
  7. python商品管理系统_python 函数写商城管理系统
  8. Android系统Recovery工作原理之使用update.zip升级过程分析(四)
  9. 23种设计模式(三)组件协作之策略模式
  10. 无线WAPI网络AS鉴权服务器,WAPI是什么意思?苹果iPhone手机启用WAPI有什么作用?...
  11. 《吴军-信息论40讲》摘录
  12. Java 6-3 锥体体积计算
  13. 月薪5000和年薪百万的差距在哪里?
  14. 北上广深也不相信口水
  15. 树莓派11bullseye换源/Opencv安装
  16. 为ibus输入法框架制作新世纪五笔码表
  17. git配置姓名和邮箱
  18. 北京师范大学计算机研究生毕业去向,北京师范大学的计算机科研实力怎么样啊?我想考北..._考研_帮考网...
  19. A.Jelly (简单BFS三维)
  20. 新浪邮箱开启POP3/SMTP服务

热门文章

  1. Kafka的备份机制
  2. socks服务搭建总结
  3. 我为什么要放弃微软offer
  4. 物联网实验光控小夜灯
  5. 记录使用log4cpp析构报错
  6. 创意编程-创意自画像
  7. 用OkHttpClient 获取cookie
  8. PostgreSql安装过程
  9. MySQL定时任务(每天凌晨3点钟执行)
  10. 论文答辩:一场师生之间的演技大赛