文件拖入IDA查看WinMain发现DialogFunc函数,跟进,F5查看伪C代码
可以看到当输入的String是8位时会对String进行修改。继续向下会发现执行sub_4010F0函数,跟进。
可以发现是一个修改String的函数,直接复制到C代码中并简单修改。
由于转换后也要输出字符串,所以应使用char型数组来进行计算。运行得到转换后的结果。
继续向下分析伪C代码。
可以看到v4和v5在进行了sub_401000函数后,v4=’ak1w‘,v5=’V1Ax‘。跟进sub_401000函数查看对v4和v5的处理,发现了一个可疑函数byte_407830。
跟进查看后发现是对v4和v5进行base64加密
解密后得到v4=‘jMp’,v5=‘WP1’。然后继续向下分析。
if循环中:
String的第一位变成了转换后字符串的第一位加上34也就是U,第二位变成了转换后字符串的第五位也就是J,第三位经过运算后是W,第四位经过运算后是P,联想到之前的v4和v5可以猜测flag就是flag{UJWP1jMp}。
提交得到正确结果。
BUUCTF刮开有奖wp
最新推荐文章于 2021-09-09 02:35:13 发布