Buuctf Reverse Writeup

Taboo 发布于 2023-11-02 300 次阅读


easyre

下载附件,解压,用ida64打开

按tab生成伪代码

分析代码,即输入两个相同的整型即可输出flag,或者说,printf函数中的字符串即为flag

flag{this_Is_a_EaSyRe}

reverse1

下载附件,解压,用ida64打开

按shift+F12,发现有flag相关的字符串

双击wrong flag,再右键交叉引用字段,进入该函数中

按tab查看反编译伪代码

分析代码得,程序要求输入str1,与进行处理后的str2进行对比,处理方式为将字符o替换为字符0,处理后得到的str2即为flag,双击Str2查看

得到{hello_world},将o替换为0即为flag

flag{hell0_w0rld}

reverse2

下载附件,解压,用ida64打开

按tab查看反编译伪代码

分析代码得,处理为将字符i和字符r替换为字符1,双击flag字段查看处理前flag

得到{hacking_for_fun},将字符i和字符r替换为字符1即为flag

flag{hack1ng_fo1_fun}

内涵的软件

下载附件,用ida64打开

查看_main_0函数,得到以下字符串,加上flag{}即可

flag{49d3c93df25caad81232130f3d2ebfad}

新年快乐

下载附件,解压,放入Exeinfo PE里面查看是否有壳

发现有upx壳,使用upx.exe进行脱壳

再次查看是否有壳

没有壳,放入ida32中反编译

分析代码得到flag

flag{HappyNewYear!}

xor

考点:按位异或

下载附件,解压,发现无壳,放入ida64中,按tab反编译

除第一位,其他位一次与前一位异或,结果与global值对比,查看global值

编写运行exp,得到flag

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]
flag =''
for i in range(len(glo)-1, 0, -1):
	glo[i]^=glo[i-1]
for i in glo:
	flag+=chr(i)
print(flag)

flag{QianQiuWanDai_YiTongJiangHu}

helloword

考点:apk包反编译

下载附件,使用jdax打开

搜索flag{,得到flag

flag{7631a988259a00816deda84afb29430a}

reverse3

考点:自定义Base64

下载附件解压,32位无壳,放入ida32中,查看字符串

发现相关字符串,跳转至处理函数

进入字符串处理函数

发现Base64字符串,为使用自定义Base64处理,返回查看Str2

按位减去j

str='e3nifIH9b_C@n@dH'
str2=''
char=''
for i in range(0,len(str)):
    char=chr(ord(str[i])-i)
    str2+=char
print(str2)

输出字符串e2lfbDB2ZV95b3V9,放入Base64转换

套上flag,得到flag

flag{i_l0ve_you}

不一样的flag

下载附件,解压,用ida32打开,按tab反编译

发现特殊字符串,分析代码,类似于用这个特殊字符串进行走迷宫,将字符串以5字符一组分开得到

*1111
01000
01010
00010
1111#

即从字符*处走到字符#处,不能碰到字符1,得到flag

flag{222441144222}

SimpleRev

考点:大小端存储

下载附件,解压,放入ida64,按tab反编译

分析代码,得到text和key字符串,注意字符串的后半部分都是大端存储的,所以取倒序,编写exp,得到flag

text="killshadow"
key="adsfkndcls"
flag=''
for i in range(10):
    for j in range(65,123):
        char=(j-39-ord(key[i])+97)%26+97
        if char==ord(text[i]):
            flag+=chr(j)
            break
print('flag{'+flag+'}')

flag{KLDQCUDFZO}

(未完待续)

此作者没有提供个人介绍
最后更新于 2024-01-09