# IntroductionУ нас есть программа которая выводит строку `Добро пожаловать на тест по математике. Если вы получите идеальный результат, я распечатаю флаг!`.
# Analyzing IDA PROВ `main()` задается вопрос и просит ввести результат:
```int __cdecl main(int argc, const char **argv, const char **envp){  int i; // [rsp+Ch] [rbp-4h]
  puts("Welcome to the math test. If you get a perfect score, I will print the flag!");  puts("All questions will have non-negative integer answers.\n");  for ( i = 0; i < NUM_Q; ++i )  {    printf("Question #%d: ", (unsigned int)(i + 1));    puts((&questions)[i]);    __isoc99_scanf("%llu", &submitted[i]);  }  return grade_test();}```Например:
![image](https://user-images.githubusercontent.com/55994705/180990331-af35757f-7d61-4a46-a899-51db647829f1.png)
Посмотрим на функцию `grade_test()`
```int grade_test(){  int i; // [rsp+8h] [rbp-8h]  unsigned int v2; // [rsp+Ch] [rbp-4h]
  v2 = 0;  for ( i = 0; i < NUM_Q; ++i )  {    if ( submitted[i] == answers[i] )      ++v2;  }  printf("You got %d out of 10 right!\n", v2);  if ( v2 != 10 )    return puts("If you get a 10 out of 10, I will give you the flag!");  puts("Wow! That's a perfect score!");  puts("Here's the flag:");  return generate_flag();}```
Ага, есть массив `answers[i]`, с которым сравнивается наш ввод.
![image](https://user-images.githubusercontent.com/55994705/180990827-669303a8-52c3-4748-9994-ff72d1d658da.png)
# SolutionВведем такие же числа и получим 
flag is: `LITCTF{y0u_must_b3_gr8_@_m4th_i_th0ught_th4t_t3st_was_imp0ss1bl3!}`