-
[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