本来刷题是不打算再这么频繁地写博客的,可这题实在是太好玩了
我的解法
检查
无壳,32位
cmd运行试试
发现要一个登录密码,一开始猜想密码就是flag,然后拖入ida静态分析
静态分析
进入主要函数,看到程序开始运行所显示的一些内容,随便下了个断点开始逐步分析
一直到输入密码的地方,发现有个strcmp
函数
发现是与字符串HelloWorld作比较,再打开程序,验证密码,发现密码正确,进入一个新界面
发现有个flag的东西,就尝试控制方向键选中flag打开
得到一个所谓虚假的flag:V2h5IGRvbid0IHlvdSB0cnkgdGhlIG1hZ2ljIGJyaWNrIGdhbWU=
像是base64编码,解码后是一句话“Why don’t you try the magic brick game”
砖块游戏?我便打开“打砖块”游戏,也没咋玩,过一会游戏结束flag显现
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