bbox WriteUp

WriteUp

题目信息

名称:bbox.exe
分类:Reverse
描述:找到程序的flag

题目链接: https://pan.baidu.com/s/1u8bGbKcUF6_gLaw63L3jyA?pwd=h8r5 提取码: h8r5

解题思路

首先用DIE分析文件的结构,发现这是一个无壳的32位程序。

于是直接用32位IDA打开该文件进行反汇编,得到如下情况:

为方便阅读代码,将v13改为input,首先发现input需要满足63位长度,然后查看sub_401120函数,并将其初始化内容改为16进制,发现这是md5的标准幻数。

从而观察sub_401150, sub_401200函数,发现这分别是md5 update和final过程,最后将md5加密字符串和unk_403010内的字符串进行比对。于是,考虑将unk_403010对应数据提取出来,其数据为:

提取出来以后,将其进行md5解密,但是查询不到该解密结果。

于是考虑换一种思路,继续分析代码,发现flag的结果依赖于byte_403024,其数据为:

而该变量各位都对v3异或,并且v3是char类型,所以我们可以直接写脚本进行爆破。

首先可以利用LazyIDA插件提取出byte_403024的数据,得到如下结果:

[0x64, 0x00, 0x47, 0x47, 0x43, 0x04, 0x46, 0x50, 0x6B, 0x05, 0x47, 0x6B, 0x40, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x6B, 0x58, 0x04, 0x04, 0x53, 0x15]

然后编写如下脚本

爆破后发现如下字符串:

P4ssw0rd_1s_t00000000000000000000000000000000000000000000_l00g!

最后运行bbox.exe,得到最终flag

使用工具

DIE
IDA

工具链接: https://pan.baidu.com/s/1dzK8gcFjYEvnj_aA0UjBeQ?pwd=ry2d 提取码: ry2d

Flag

flag{P4ssw0rd_1s_t00000000000000000000000000000000000000000000_l00g!}

总结

通过本次题目学习到:
md5算法回顾
爆破思想
LazyIDA的使用

posted @ 2025-03-05 16:44  Binary-0  阅读(37)  评论(0)    收藏  举报