首页 > 其他分享 >Reverse|[GWCTF 2019]pyre

Reverse|[GWCTF 2019]pyre

时间:2023-05-06 14:11:55浏览次数:35  
标签:逆向 code range print GWCTF 2019 128 pyre x01

pyc文件反编译

uncompyle6 -o pcat.py attachment.pyc

pcat.py

# uncompyle6 version 3.8.0
# Python bytecode 2.7 (62211)
# Decompiled from: Python 3.10.6 (main, Aug 30 2022, 04:58:14) [Clang 13.1.6 (clang-1316.0.21.2.5)]
# Embedded file name: encode.py
# Compiled at: 2019-08-19 21:01:57
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) % 128
    code += num

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

得到源码直接逆向即可

异或逆向:
A ^ A =0,A ^ 0 =A
13、14行使code[i]=code[i]code[i+1],i从0取到l-1-1。处理后,code[l-1]没有变,那么要逆向,则令x从l-2取到0,使code[x]=code[x]code[x+1](abb=a)。
取模逆向:
(a%c+b%c)%c=(a+b)%c
所以逆向为(input1[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):
    flag += chr((ord(code[i]) - i) % 128)
print(flag)
GWHT{Just_Re_1s_Ha66y!}

标签:逆向,code,range,print,GWCTF,2019,128,pyre,x01
From: https://www.cnblogs.com/scarecr0w7/p/17377100.html

相关文章

  • [HDCTF2019]Maze 1
    查壳有壳,脱了进入IDA:会发现我们看不了伪代码,那么看看爆在哪了:这有标红的,那么把这里改了(IDA改的有点麻烦,建议用OD贼快)这里注意哦,报错点上边还有一个jnz跳转指令,这个是指向报错点的,那么要不要改呢?小小的期待一下:接下来演示怎么改,这里注意这个call占了很多个字节,我们只要改一......
  • Unity 2019中对象池的用法
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassExamplePool:MonoBehaviour{privateObjectPool<GameObject>objectPool;publicGameObjectobjectType;publicintpoolSize=10;voidStart()......
  • [2019红帽杯]easyRE 1
    查壳:64位,进IDA找主函数:挺长的,慢慢来吧,先找正确的判断输出:涉及到了v11,又涉及到到方法sub_400E44,跟进方法看看:出现位运算,和aAbcdefghijklmn,跟进看看:标准base64编码,那就是说v11是根据v18base64加密了10次得到的,我们再看看,sub_400360的另一个参数off_6CC090,跟进:拿这个去解密......
  • C++ - VS2019配置pthread线程库
    说明在VS里用MS编译器不能直接调用pthread库,需要先自行下载该库:http://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip解压后用的到的只有Pre-built.2文件夹下的文件。 配置如下图分别配置三大项:包含目录-->...pthreads-w32-2-9-1-release\Pre-built.......
  • [GUET-CTF2019]re 1
    查壳:有个壳,脱一下,upx脱壳方法讲过了,(这里注意,低版本的upx是脱不掉壳的,换高版本哈)可以去:https://www.cnblogs.com/TFOREVERY/p/17366210.html不赘述了:64位进IDA老思想进主函数:对输入flag进行一个方法加密sub_4009AE:跟进:emm。menu优秀:简单的做一个逆运算就好了,这里有一个小坑,......
  • 商汤视觉跟踪算法两部曲之SiamMask , CVPR 2019商汤提出了对视觉目标(VOT)和对视频目标(VO
    商汤视觉跟踪算法两部曲之SiamMask,CVPR2019商汤提出了对视觉目标(VOT)和对视频目标(VOS)的统一框架。将跟踪的初始化只需要提供视频跟踪的box输入即可,输出时却能同时得到box和mask两个输出。只需要在Siamese网络中额外增加一个Mask分支即可。本工程提供复现该论文的C++工程代码及......
  • [极客大挑战 2019]HardSQL,wp
    一:分析既然说了是HardSQL,肯定就不是万能密码这种简单的了1.首先判断字符型还是数字型我们首先输入payload:username=admin'--+&password=1发现好像有什么被过滤掉了。然后检查过滤符号,这里可以直接用bp爆破看看过滤了哪些字符,也可以简单测试一下这里我猜测过滤了空格, 然......
  • pyre
    养成习惯,不管它是啥,都先查壳可以看出这是一个.py的文件,所以要反编译成py的文件,这里用的是uncompyle6安装如下:cmd命令下输入如下:pipinstalluncompyle6(回车)使用如下:uncompyle6(目标文件)>(转换成的文件的名字).py(这里注意,要在对应路径下使用,不然找不到文件)得到对应的py......
  • 2019-推荐文章
    前言记录平时遇到的优质技术文章,按时间先后排序。内容2019-05-11《博客园美化教程大集合----极致个性化你的专属博客(超详细,看这篇就够了)》网上写图文教程的人,还真是贴心。2019-09-06https://www.yuque.com/sxc/front/kvokg4作者在语雀上的系列文章,都值得一看。2019-1......
  • 2019年-前端日记
    2019-04-02Vue屏幕宽度自适应:https://blog.csdn.net/qq_25386583/article/details/77161478https://blog.csdn.net/xuaner8786/article/details/815652192019-04-07控制iframe中的页面只显示一部分:https://blog.csdn.net/iteye_18722/article/details/819185632019-04-09......