buuojCTF pyre
获取到pyc文件,将其加载到在线反编译中反编译
python反编译 - 在线工具
这个工具感觉挺好的
#!/usr/bin/env python
# visit https://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) % 128code += numfor 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那一堆。
我们先逆向异或部分,因为一个数异或另一个数两次还是那个数,即a^b^b=a,由此我们可以求得到异或之前的数,分析他的正向异或我们能知道,最后一个数没有进行预算,所以我们可以倒着来。
即
for i in range(l - 2,-1,-1):code[i] = chr(ord(code[i]) ^ ord(code[i + 1]))
其中chr函数能将数变成字符,ord函数能将字符变成数,因为字符无法进行异或运算。
之后再进行逆运算第一步运算,因为(a+b)%c=(a%c+b%c)%c,所以原运算可以等于
num = (input1[i] + i) % 128
因为A=(B-C)%D,那么B=(A+C)%D
所以逆运算即为
for i in range(l):code[i] = chr((ord(code[i]) - i) % 128)
所以
code = ['\x1f', '\x12', '\x1d', '(', '0', '4', '\x01', '\x06', '\x14', '4', ',', '\x1b', 'U', '?', 'o', '6', '*', ':','\x01', 'D', ';', '%', '\x13']
l = len(code)
flag = ''
for i in range(l - 2,-1,-1):code[i] = chr(ord(code[i]) ^ ord(code[i + 1]))
for i in range(l):code[i] = chr((ord(code[i]) - i) % 128)flag=flag+code[i]
print(flag)
得到flag
GWHT{Just_Re_1s_Ha66y!}
buuojCTF pyre相关推荐
- [GWCTF 2019]pyre.pyc [CISCN2018]2ex
文章目录 [GWCTF 2019]pyre.pyc 反编译 脚本 [CISCN2018]2ex 查看txt 分析 [GWCTF 2019]pyre.pyc 反编译 uncompyle6 pyre.py ...
- PYRE 人物剧情 和 游戏技巧小结
相比<Transistor>,PYRE中的人物更多,性格各不相同,感情线更多了,这里做个小记录. 笔者的救赎顺序: 乔达里尔.鸟妹妹(非新夜翼).Tizo.海蛇.赫得文.大树.恶魔奶爸(非 ...
- [BUUCTF]REVERSE——[GWCTF 2019]pyre
[GWCTF 2019]pyre 附件 步骤: 1.附件是pyc文件,用python打不开,百度后得知用python反编译工具打开,分享一个python反编译在线网站 反编译后是这段代码 #!/usr ...
- buuctf pyre
buuctf 逆向pyre 最近看到不少py逆向,记录一道题 下载原件发现是pyc文件,先利用uncompyle生成py文件(之前用py3.8.6的版本下载死活不行,在老学长的帮助下发现uncompy ...
- buuctf GWCTF2019 pyre
(36条消息) GWCTF 2019 pyre YuSec_顾殇の点的博客-CSDN博客https://blog.csdn.net/weixin_43859686/article/details/10 ...
- GWCTF 2019 pyre YuSec
pyre pyc文件,直接在线反编译得到 print 'Welcome to Re World!' print 'Your input1 is your flag~' l = len(input1) ...
- buuctf/re/近日总结/rome,pyre等(详细解释)
rome: 检测到无壳,32位 直接用IDA打开,转到main函数 int func() {int result; // eaxint v1[4]; // [esp+14h] [ebp-44h]uns ...
- BUUCTF pyre
BUUCTF pyre 拿到的文件是一个后缀是.pyc的文件,有点迷糊,百度了一下发现可以用网上的python反编译在线工具反编译,反编译之后得到代码: #!/usr/bin/env python # ...
- buu Reverse学习记录(19) [GWCTF 2019]pyre
题目链接:https://buuoj.cn/challenges#[GWCTF%202019]pyre 题目是个.pyc文件 现在python中安装 uncompyle 库 运行命令 uncompyl ...
最新文章
- html中列表的嵌套
- 【前端来刷LeetCode】两数之和与两数相加
- CentOS6安装devtoolset(使用高版本gcc)GCC 4.8 GCC 4.9 GCC 5.2
- Sentinel(二十一)之Sentinel Dashboard控制台日志路径设置
- linux内核驱动工作队列用法
- spring学习总结——介绍
- End-to-end Recovery of Human Shape and Pose
- Spring Mvc:用MultiPartFile上传单个文件,多个文件
- 牛头刨床设计matlab生成图片,牛头刨床matlab程序---机械原理课程设计
- SPSS如何计算方差膨胀因子
- 注册表禁用计算机管理,解除封锁注册表被禁用的几种解决办法
- h2o java,h2o深度学习权重和规范化
- 清理服务器系统日志,win2008服务器清理系统日志
- 扫盲区分IaaS和PaaS
- 用友系统服务器架构,用友ERP-U总体架构.DOC
- ElasticSearch报错:FORBIDDEN/12/index read-only / allow delete (api)无法写入
- 对java导出PDF进行图片,(图片/文字)水印,页眉页脚的添加
- Oracle ERP 仓库(inventory) 词汇 2
- Quality-Estimation1 (翻译质量评价-复现 WMT2018 阿里论文结果)
- IP根域名服务器以及域名服务器对国家安全的真正意义。
热门文章
- latex中文加粗失效(楷体)
- linux 2.6.30 内核编译 提示 ‘make[1]: *** [arch/x86/vdso/vdso.so.dbg] Error 1’ 错误
- mysql修改密码 忘记密码
- 评测3款高颜值的安卓mobi阅读器
- 基于非线性干扰观测器的直升机滑模反演控制,期刊simulink模型复现
- 微信小程序安全系列——文本内容安全识别
- 通向顾客潜意识之路(下)
- 讲解人工智能中的知识图谱、图灵测试以及深度学习、机器学习
- crm软件实现零售的必要性
- 05-数据库_数据库基础