拿到文件pyc,直接反编译

得到源码

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']

思路很清晰的

先异或,再运算,最后拿到input1就是我们想要的

问题是

 num = ((input1[i] + i) % 128 + 128) % 128

的理解

我们看右边会发现+128然后再%128是不必要的

所以改进就是

 num = (input1[i] + i) % 128 

接着看,

左边是个固定值,右边可以不固定,我们可以随机取值,然后确保数值在0~128范围内

由于我们知道code里面数值

所以我们可以这样写

input1[i]我们写成flag[i],num 我们携程str[i]

下面代码采用c++实现

    flag[i] = s[i]-i ;if(flag[i]<0)flag[i]+=128;

问题就解决了

然后写脚本

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char s[]= {'\x1f','\x12','\x1d','(','0','4','\x01','\x06','\x14','4',',','\x1b','U','?','o','6','*',':','\x01','D',';','%','\x13'};char flag[strlen(s)];
int i;
for(i = strlen(s)-2;i>=0;i--)
{
s[i]=s[i]^s[i+1];
}
for( i = 0;i<strlen(s);i++)
{      flag[i] = s[i]-i ;if(flag[i]<0)flag[i]+=128;
}
puts(flag);
}

get flag!

GWHT{Just_Re_1s_Ha66y!}

GWctf-2019-pyre相关推荐

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

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

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

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

  3. BUUCTF Reverse/[GWCTF 2019]pyre

    BUUCTF Reverse/[GWCTF 2019]pyre 下载得到一个pyc文件,用这个在线反编译pyc,pyo反汇编出代码 print 'Welcome to Re World!' print ...

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

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

  5. GWCTF 2019 pyre YuSec

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

  6. [GWCTF 2019]pyre

    通过这道题学到了许多东西,GNU 高精度算法库,密码学python两个常用的函数库 crypto和 gmpy2,以及python的binascii模块,采用yafu来分解n得到q和p,加深了对于RSA ...

  7. BUUCTF 逆向工程(reverse)之[GWCTF 2019]pyre

    下载好题目后,发现后缀名为:.pyc 所以使用python这些反编译工具:https://tool.lu/pyc/ 利用这个网站反编译一下就可以得到Python的源代码 #!/usr/bin/env ...

  8. buuctf GWCTF 2019 pyre

    下载题目发现是一个pyc文件,关于pyc的详细解释,我看到了这篇文章(6条消息) .pyc是什么?_loveliuzz的博客-CSDN博客_.pyc pyc文件是PyCodeObject的一种持久化保 ...

  9. [GWCTF 2019]pyre 题解

    I came,I saw,I conquered. 1.使用在线工具获得源代码 这是一个pyc文件,需要反编译获得源代码(py文件可以直接用记事本打开获取源代码,pyc不可以) 使用在线工具 获取源代 ...

  10. [BUUCTF]REVERSE解题记录 [GWCTF 2019]pyre

    1.首先这是一个python的项目,用从大佬那学习到的python反编译 - 在线工具打开 print 'Welcome to Re World!' print 'Your input1 is you ...

最新文章

  1. 车道检测源码分析系列
  2. python pymysql实例_python-Mysql的操作(pyMysql的介绍)
  3. 关于爬虫中遇到的问题
  4. jQuery 学习笔记(三)——事件与应用
  5. Lombok ——自动化方法生成器
  6. 如果让你选择计算机本科最重要的三门课,会选什么?高手都选他们!
  7. 界面上下固定_【技术浅析】三通道机床自动上下料控制方法应用
  8. servlet-cookie实现向客户端写cookie信息
  9. 按大小排序php,php中按大小进行排序的函数有哪些
  10. strcpy的用法、c语言实现、及注意点
  11. jdbc c3p0 mysql_JDBC+C3P0+DBCP 基本使用
  12. 网页扫雷html css js,HTML+CSS+JS实现WIN7扫雷(中)
  13. 7月23日云栖精选夜读丨前端leader找我谈心:我是如何从刚毕业的前端菜鸟一步步成长为前端工程师的?...
  14. Objective-C 程序设计(第4版)
  15. 网易的爆款密码,藏在Q3财报里
  16. Linux gtk 路由,在linux下使用gtk的gdk
  17. 层次高的人,都拥有成长型思维
  18. linux 安装谷歌浏览器--Google chrome
  19. 传统行业+互联网思维
  20. FFmpeg滤镜:制作图片视频流(续2)

热门文章

  1. 删除照片恢复,最实用的方法快收藏起来!
  2. Java基础语法_循环结构【多测师_何sir】
  3. 穿越梦想 起锚远航──金旭亮新作《.NET 4.0面向对象编程漫谈》
  4. python期末考试编程题练习
  5. 界面开发框架Qt新手入门教程 - 可编辑树模型的示例(一)
  6. 这可能是中文网上关于Twitter信息爬虫检索最全的项目了
  7. 2019年总结——看清目标,继续向前
  8. 课堂练习-搜索MP3文件名
  9. Chrome插件、Postman
  10. FFmpeg+VS2013开发环境配置