BUUCTF--不一样的flag

Posted mayfly-nymph

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BUUCTF--不一样的flag相关的知识,希望对你有一定的参考价值。

测试文件:https://buuoj.cn/files/91b89e765c9aff8e82690c0868975b37/0bf39b5d-5f2f-4095-a921-fb5c20f53f21.zip?token=eyJ0ZWFtX2lkIjpudWxsLCJ1c2VyX2lkIjoxOTAzLCJmaWxlX2lkIjoxNDl9.XXmYkQ.5edzFDlCw_3UHmzs0yvtlqN2pqk

 

1.准备

技术图片

获取信息

  1. 32位文件

 

2.IDA打开

将main函数反编译为C语言代码

 1 int __cdecl main(int argc, const char **argv, const char **envp)
 2 
 3   char v3; // [esp+17h] [ebp-35h]
 4   int v4; // [esp+30h] [ebp-1Ch]
 5   int v5; // [esp+34h] [ebp-18h]
 6   signed int v6; // [esp+38h] [ebp-14h]
 7   int i; // [esp+3Ch] [ebp-10h]
 8   int v8; // [esp+40h] [ebp-Ch]
 9 
10   __main();
11   v4 = 0;
12   v5 = 0;
13   qmemcpy(&v3, _data_start__, 0x19u);
14   while ( 1 )
15   
16     puts("you can choose one action to execute");
17     puts("1 up");
18     puts("2 down");
19     puts("3 left");
20     printf("4 right\\n:");
21     scanf("%d", &v6);
22     if ( v6 == 2 )
23     
24       ++v4;
25     
26     else if ( v6 > 2 )
27     
28       if ( v6 == 3 )
29       
30         --v5;
31       
32       else
33       
34         if ( v6 != 4 )
35 LABEL_13:
36           exit(1);
37         ++v5;
38       
39     
40     else
41     
42       if ( v6 != 1 )
43         goto LABEL_13;
44       --v4;
45     
46     for ( i = 0; i <= 1; ++i )
47     
48       if ( *(&v4 + i) < 0 || *(&v4 + i) > 4 )
49         exit(1);
50     
51     if ( *((_BYTE *)&v8 + 5 * v4 + v5 - 41) == 1 )
52       exit(1);
53     if ( *((_BYTE *)&v8 + 5 * v4 + v5 - 41) == # )
54     
55       puts("\\nok, the order you enter is the flag!");
56       exit(0);
57     
58   
59 

 

3.代码分析

查看第13行代码中的_data_start__ 

.data:00402000 __data_start__  db *11110100001010000101111#,0

又通过第16~20行代码,第51~53行代码,我们能够知道这是一个迷宫题。

 

通过第51行5 * v4,这是一个5行5列的迷宫(一共25个字符)

*1111
01000
01010
00010
1111#

 

从*走到#即可

 

4.get flag!

flag222441144222

以上是关于BUUCTF--不一样的flag的主要内容,如果未能解决你的问题,请参考以下文章

BUUCTF reverse题解汇总

BUUCTF_Misc题目题解记录

buuctf web 随便注

BUUCTF-[极客大挑战 2019]HardSQL(报错注入)

BuuCTF Web Writeup 第二部分

BUUCTF-MISC-图片隐藏的秘密