[BUUCTF misc]Mysterious

如题:

在这里插入图片描述

下载附件得到一个可执行文件

在这里插入图片描述

题目中说打开逆向思维,第一时间想到用逆向工具IDA,先用32位的IDA分析(如果不行换64位的),shift+F12定位关键字符串“well done”

在这里插入图片描述

定位关键函数

在这里插入图片描述

打开关键函数sub_401090并F5反汇编

在这里插入图片描述

发现代码段

if ( a3 == 1000 ){GetDlgItemTextA(hWnd, 1002, String, 260);strlen(String);if ( strlen(String) > 6 )ExitProcess(0);v4 = atoi(String);Value = v4 + 1;if ( v4 == 122 && String[3] == 120 && String[5] == 122 && String[4] == 121 ){strcpy(Text, "flag");memset(v8, 0, sizeof(v8));v9 = 0;v10 = 0;_itoa(Value, Source, 10);strcat(Text, "{");strcat(Text, Source);strcat(Text, "_");strcat(Text, "Buff3r_0v3rf|0w");strcat(Text, "}");MessageBoxA(0, Text, "well done", 0);}SetTimer(hWnd, 1u, 0x3E8u, TimerFunc);}if ( a3 == 1001 )KillTimer(hWnd, 1u);}return 0;

发现我们需要输入一串长度不能超过6的字符串,并且需要满足下列条件

if ( v4 == 122 && String[3] == 120 && String[5] == 122 && String[4] == 121 )

v4为String经过atoi函数转换成的一个整形数,值应该为122(atoi函数讲解)
查找ASCII码表可发现120 121 122对应的字符分别为x y z

所以我们的输入为122xyz

可得到flag

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部