获取到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相关推荐

  1. [GWCTF 2019]pyre.pyc [CISCN2018]2ex

    文章目录 [GWCTF 2019]pyre.pyc 反编译 脚本 [CISCN2018]2ex 查看txt 分析 [GWCTF 2019]pyre.pyc 反编译 uncompyle6 pyre.py ...

  2. PYRE 人物剧情 和 游戏技巧小结

    相比<Transistor>,PYRE中的人物更多,性格各不相同,感情线更多了,这里做个小记录. 笔者的救赎顺序: 乔达里尔.鸟妹妹(非新夜翼).Tizo.海蛇.赫得文.大树.恶魔奶爸(非 ...

  3. [BUUCTF]REVERSE——[GWCTF 2019]pyre

    [GWCTF 2019]pyre 附件 步骤: 1.附件是pyc文件,用python打不开,百度后得知用python反编译工具打开,分享一个python反编译在线网站 反编译后是这段代码 #!/usr ...

  4. buuctf pyre

    buuctf 逆向pyre 最近看到不少py逆向,记录一道题 下载原件发现是pyc文件,先利用uncompyle生成py文件(之前用py3.8.6的版本下载死活不行,在老学长的帮助下发现uncompy ...

  5. buuctf GWCTF2019 pyre

    (36条消息) GWCTF 2019 pyre YuSec_顾殇の点的博客-CSDN博客https://blog.csdn.net/weixin_43859686/article/details/10 ...

  6. GWCTF 2019 pyre YuSec

    pyre pyc文件,直接在线反编译得到 print 'Welcome to Re World!' print 'Your input1 is your flag~' l = len(input1) ...

  7. buuctf/re/近日总结/rome,pyre等(详细解释)

    rome: 检测到无壳,32位 直接用IDA打开,转到main函数 int func() {int result; // eaxint v1[4]; // [esp+14h] [ebp-44h]uns ...

  8. BUUCTF pyre

    BUUCTF pyre 拿到的文件是一个后缀是.pyc的文件,有点迷糊,百度了一下发现可以用网上的python反编译在线工具反编译,反编译之后得到代码: #!/usr/bin/env python # ...

  9. buu Reverse学习记录(19) [GWCTF 2019]pyre

    题目链接:https://buuoj.cn/challenges#[GWCTF%202019]pyre 题目是个.pyc文件 现在python中安装 uncompyle 库 运行命令 uncompyl ...

最新文章

  1. html中列表的嵌套
  2. 【前端来刷LeetCode】两数之和与两数相加
  3. CentOS6安装devtoolset(使用高版本gcc)GCC 4.8 GCC 4.9 GCC 5.2
  4. Sentinel(二十一)之Sentinel Dashboard控制台日志路径设置
  5. linux内核驱动工作队列用法
  6. spring学习总结——介绍
  7. End-to-end Recovery of Human Shape and Pose
  8. Spring Mvc:用MultiPartFile上传单个文件,多个文件
  9. 牛头刨床设计matlab生成图片,牛头刨床matlab程序---机械原理课程设计
  10. SPSS如何计算方差膨胀因子
  11. 注册表禁用计算机管理,解除封锁注册表被禁用的几种解决办法
  12. h2o java,h2o深度学习权重和规范化
  13. 清理服务器系统日志,win2008服务器清理系统日志
  14. 扫盲区分IaaS和PaaS
  15. 用友系统服务器架构,用友ERP-U总体架构.DOC
  16. ElasticSearch报错:FORBIDDEN/12/index read-only / allow delete (api)无法写入
  17. 对java导出PDF进行图片,(图片/文字)水印,页眉页脚的添加
  18. Oracle ERP 仓库(inventory) 词汇 2
  19. Quality-Estimation1 (翻译质量评价-复现 WMT2018 阿里论文结果)
  20. IP根域名服务器以及域名服务器对国家安全的真正意义。

热门文章

  1. latex中文加粗失效(楷体)
  2. linux 2.6.30 内核编译 提示 ‘make[1]: *** [arch/x86/vdso/vdso.so.dbg] Error 1’ 错误
  3. mysql修改密码 忘记密码
  4. 评测3款高颜值的安卓mobi阅读器
  5. 基于非线性干扰观测器的直升机滑模反演控制,期刊simulink模型复现
  6. 微信小程序安全系列——文本内容安全识别
  7. 通向顾客潜意识之路(下)
  8. 讲解人工智能中的知识图谱、图灵测试以及深度学习、机器学习
  9. crm软件实现零售的必要性
  10. 05-数据库_数据库基础