본문 바로가기

system

[protostar]stack2

반응형
Stack2 looks at environment variables, and how they can be set.

This level is at /opt/protostar/bin/stack2

Stack2에선 환경변수를 보고 그 변수들이 어떻게 세팅되는지 확인한다고 한다.

아래의 경로에서 작업하면 된다.

 

-stack2.c

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
  volatile int modified;
  char buffer[64];
  char *variable;

  variable = getenv("GREENIE");

  if(variable == NULL) {
      errx(1, "please set the GREENIE environment variable\n");
  }

  modified = 0;

  strcpy(buffer, variable);

  if(modified == 0x0d0a0d0a) {
      printf("you have correctly modified the variable\n");
  } else {
      printf("Try again, you got 0x%08x\n", modified);
  }

}

main함수에서 modified, buffer, variable이 선언된다.

variable엔 "GREENIE"라는 환경변수를 get한다.

variable이 널이면 환경변수를 set하라는 메시지가 나온다.

 

버퍼에는 variable을 넣는다.

modified가 0x0d0a0d0a면 잘 변경됐다고 나오고 아니면 modified가 나온다.

 

 

반응형

'system' 카테고리의 다른 글

[protostar]stack6.c  (0) 2020.11.02
[protostar]stack4.c  (0) 2020.09.24
[protostar]stack3.c  (0) 2020.09.22
[protostar]stack0  (0) 2020.09.22
[protostar]stack1.c  (0) 2020.09.22