easyre

拖进ida,得到flag

helloworld

将文件拖入apk改之理,
BUUCTF Re部分wp(一)
得到flag

xor

拖进ida,
BUUCTF Re部分wp(一)
BUUCTF Re部分wp(一)
就是简单异或,写脚本

 
glo=[0x66,0x0a,0x6b,0x0c,0x77,0x26,0x4f,0x2e,0x40,0x11,0x78,0x0d,0x5a,0x3b,0x55,0x11,0x70,0x19,0x46,0x1f,0x76,0x22,0x4d,0x23,0x44,0x0e,0x67,0x06,0x68,0x0f,0x47,0x32,0x4f]
x='f'
for i in range(1,len(glo)):
    x+=chr(glo[i]^glo[i-1])
print(x)

得到flag

新春快乐

exe拖入ida,发现有壳,查壳
BUUCTF Re部分wp(一)
upx,用upx -d脱壳,再拖入ida
BUUCTF Re部分wp(一)
得到flag

reserve1

exe,拖入ida,有大量的函数,于是先看字符串
BUUCTF Re部分wp(一)
看到可疑字符串,点进去
BUUCTF Re部分wp(一)
找到了调用的函数,再点进去
BUUCTF Re部分wp(一)
找到关键函数,分析,将字符串str2中所有的o替换为0即为flag

Mysterious

这题出在MISC里了,先找字符串
BUUCTF Re部分wp(一)
跟随
BUUCTF Re部分wp(一)
找到关键函数
BUUCTF Re部分wp(一)
这里有个atoi()将字符串换为整形之后减一了,所以输入122xyz
BUUCTF Re部分wp(一)
得到flag

(这flag不是直接给了吗,感觉自己以前好傻。。。)

不一样的flag

许久未见的迷宫题,进main
BUUCTF Re部分wp(一)
十分贴心的已经将上下左右分好了,然后看_data_start___这就是迷宫
BUUCTF Re部分wp(一)
由*开始,由#结束,每五个一换行

*1111
01000
01010
00010
1111#
走一遍的flag

SimpleRev

拖进ida,可以找到关键函数decry,
BUUCTF Re部分wp(一)
BUUCTF Re部分wp(一)
看key1,3,
BUUCTF Re部分wp(一)
BUUCTF Re部分wp(一)
可以得到 text=killshadow,key=ADSFKNDCLS
然后程序对key进行了一番花里胡哨但其实就是把key变成小写的操作,于是得key=adsfkndcls,而我们要求的是v1,写脚本

#include<stdio.h>
int main(void)
{
        char text[10]="killshadow";
        char key[10]="adsfkndcls";
        int v3=0;
        int v5=10;
        char flag[10];
        for(int i=0;i<10;i++)
        {
                for(char j='A';j<='Z';j++){
                        char temp;
                        temp=(j-39-key[i]+97)%26+97;
                        if(temp==text[i])
                                flag[i]=j;
                }
        }
        printf("%s",flag);
        return 0;
}

得到flag

内涵的软件

签到题,拖进ida,得到flag

reverse2

先看string

BUUCTF Re部分wp(一)

找到关键函数

BUUCTF Re部分wp(一)

把flag中i,r替换为1,得到 flag

reverse3

拖入ida,找到主函数

BUUCTF Re部分wp(一)

看str2

BUUCTF Re部分wp(一)

将输入转换后与str2比较,看sub_4110BE

BUUCTF Re部分wp(一)

BUUCTF Re部分wp(一)

是base64加密,知道这一点就很容易了

import base64
str2='e3nifIH9b_C@n@dH'
flag=''
for i in range(0,len(str2)):
    flag+=chr(ord(str2[i])-i)

print(base64.b64decode(flag))

得到flag

8086

拖进ida

 

 BUUCTF Re部分wp(一)

f="]U[du~|t@{z@wj.}.~q@gjz{z@wzqW~/b"
flag=""
for i in range(len(f)):
    flag+=chr(ord(f[i])^0x1f)
print(flag)

得到flag

pyre

code = [31, 18, 29, 40, 48, 52, 1, 6, 20, 52, 44, 27, 85, 63, 111, 54, 42, 58, 1, 68, 59, 37, 19]
code.reverse()
for i in range(len(code)-1):
    code[i+1]=code[i]^code[i+1]
code.reverse()
for i in range(len(code)):
    code[i]=(code[i]-i+128)%128
for i in range(len(code)):
    print(chr(code[i]),end="")

[WUSTCTF2020]level2

32elf,脱upx得flag

 

相关文章: