only guess
用IDA打开
dict数组保存了各种字符串:
基本逻辑就是读入的pass和数组dict比较,同时&dest和数组dict的值比较,若一样则为good password。所以实际上&dest就是我们要输入的值。1234567891011int main(){ char dest; long long src = 0x736564656372656d; memcpy(&dest, &src, 9uLL); printf("%s",&dest); return 0;}
但是我测试时只输出了mercede?(
,所以这不是最后的password,需要修正。想了一个曲线救国的方法。用命令strings re50 > tmp
把数组dict中的内容输出到tmp文件中,在tmp文件中查找开头为mercede
的值。最终确定password为:1mercedes
最终的flag:1Bugs_Bunny{mercedes}
rev100
拖进IDA查看。
main函数中,将A,B两处的字符串拷贝后进行异或并存储到C中。用下面的脚本得到flag:
|
|
得到flag:1Bugs_Bunny{X0r_1s_fun}