ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HackerSchool] Level10
    오래된/HackerSchool 2011. 4. 29. 19:49

    [level10@ftz level10]$ cat hint

    두명의 사용자가 대화방을 이용하여 비밀스런 대화를 나누고 있다.
    그 대화방은 공유 메모리를 이용하여 만들어졌으며,
    key_t의 값은 7530이다. 이를 이용해 두 사람의 대화를 도청하여
    level11의 권한을 얻어라.

    - 레벨을 완료하셨다면 소스는 지우고 나가주세요.

    [ level10 hint ]

    1. Shared Memory

    프로세스간 데이터 전송통로로 사용되는 메모리 공간으로 명시한 크기의 영역을 할당 받은 후 권한을 설정하여 사용 할 수 있다.

    메모리 공간을 할당 받기 위해서는 shmget 함수를 사용하게 되며, 할당 받은 영역을 사용하기 위해서는 shmat 함수를 사용하게 된다. 또한 영역에 대한 사용이 모두 끝난 경우 shmdt 를 통해 프로세스를 해당 영역에서 detach 시키게 된다.

    2. 문제풀이 방법

    shmget 함수를 이용 해당 key 값을 가지는 공유메모리 영영의 shmid 를 얻어 낸다. 인자 중 size 는 새로운 할당시 필요한 값이기 때문에 굳이 고민하여 값을 설정할 필요는 없다.
    shmid 를 shmat 의 인자로 넣어 해당 영역의 메모리 주소값을 얻어내고 해당 주소의 문자열을 출력 하도록 한 뒤,
    shmdt 함수를 이용하여 프로세스를 해당 영역에서 detach 시켜주면 되겠다.

    '오래된 > HackerSchool' 카테고리의 다른 글

    [HackerSchool] Level12  (0) 2011.05.06
    [HackerSchool] Level11  (0) 2011.04.29
    [HackerSchool] Level9  (0) 2011.04.28
    [HackerSchool] Level8  (0) 2011.04.27
    [HackerSchool] Level7  (0) 2011.04.27

    댓글

Designed by Tistory.