buu-re-15

本来刷题是不打算再这么频繁地写博客的,可这题实在是太好玩了

我的解法

检查

无壳,32位

cmd运行试试

1
发现要一个登录密码,一开始猜想密码就是flag,然后拖入ida静态分析

静态分析

进入主要函数,看到程序开始运行所显示的一些内容,随便下了个断点开始逐步分析

一直到输入密码的地方,发现有个strcmp函数
2

发现是与字符串HelloWorld作比较,再打开程序,验证密码,发现密码正确,进入一个新界面
3

发现有个flag的东西,就尝试控制方向键选中flag打开

得到一个所谓虚假的flag:V2h5IGRvbid0IHlvdSB0cnkgdGhlIG1hZ2ljIGJyaWNrIGdhbWU=

像是base64编码,解码后是一句话“Why don’t you try the magic brick game”

砖块游戏?我便打开“打砖块”游戏,也没咋玩,过一会游戏结束flag显现
4
flag{f5dfd0f5-0343-4642-8f28-9adbb74c4ede}

网上别人的wp

看了别人wp才知道,正确flag是一个base58解码

2i9Q8AtFJTfL3ahU2XGuemEqZJ2ensozjg1EjPJwCHy4RY1Nyvn1ZE1bZe

转:flag{f5dfd0f5-0343-4642-8f28-9adbb74c4ede}

base58编码算法的特征

这里记一下base58的特征,下次好认得

编码表

123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ

无‘0’数字+大小写字母

编码步骤

ascii码(看成256进制)->转成10进制 ->转成58进制 ->对应编码表

Comments