[FTZ] level10 풀이

μ΅œλŒ€ 1 λΆ„ μ†Œμš”

πŸ’‘ FTZ level10 풀이

문제

계정 : level10/interesting to hack!

hint


두λͺ…μ˜ μ‚¬μš©μžκ°€ λŒ€ν™”λ°©μ„ μ΄μš©ν•˜μ—¬ λΉ„λ°€μŠ€λŸ° λŒ€ν™”λ₯Ό λ‚˜λˆ„κ³  μžˆλ‹€.
κ·Έ λŒ€ν™”λ°©μ€ 곡유 λ©”λͺ¨λ¦¬λ₯Ό μ΄μš©ν•˜μ—¬ λ§Œλ“€μ–΄μ‘ŒμœΌλ©°,
key_t의 값은 7530이닀. 이λ₯Ό μ΄μš©ν•΄ 두 μ‚¬λžŒμ˜ λŒ€ν™”λ₯Ό λ„μ²­ν•˜μ—¬
level11의 κΆŒν•œμ„ 얻어라.

- λ ˆλ²¨μ„ μ™„λ£Œν•˜μ…¨λ‹€λ©΄ μ†ŒμŠ€λŠ” μ§€μš°κ³  λ‚˜κ°€μ£Όμ„Έμš”.

풀이

곡유 λ©”λͺ¨λ¦¬μ— μ‘΄μž¬ν•˜λŠ” λ¬Έμžμ—΄μ„ μ½μ–΄μ˜€λŠ” λ¬Έμ œμž…λ‹ˆλ‹€.

β€˜λ¦¬λˆ…μŠ€ 곡유 λ©”λͺ¨λ¦¬β€™ λ₯Ό ꡬ글에 κ²€μƒ‰ν•΄μ„œ κ°€μž₯ 상단에 μžˆλŠ” ν¬μŠ€νŒ…μ„ μ°Έκ³ ν•˜μ—¬ μ½”λ“œλ₯Ό μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

image

전체 μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

prog.c

#include <sys/ipc.h>
#include <sys/shm.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int main(){
  int shmid;
  char *secret;
  key_t key=7530;
  void *memory_segment = NULL;

  shmid = shmget(key,0,0);  //key 값을 톡해 곡유 λ©”λͺ¨λ¦¬ id μ–»κΈ°
  memory_segment = shmat(shmid,NULL,0); // 곡유 λ©”λͺ¨λ¦¬ μœ„μΉ˜

  secret = (char*)memory_segment; //char*둜 μΊμŠ€νŒ…
  printf("%s\n",secret);
}

컴파일 ν›„ μ‹€ν–‰ν•΄ μ€λ‹ˆλ‹€. λΉ„λ°€λ²ˆν˜ΈλŠ” what!@#$?μž…λ‹ˆλ‹€.

[level10@ftz tmp]$ gcc -o prog prog.c
[level10@ftz tmp]$ ./prog
멍멍: level11의 νŒ¨μŠ€μ›Œλ“œλŠ”?
ꡬ타: what!@#$?

νƒœκ·Έ:

μΉ΄ν…Œκ³ λ¦¬:

μ—…λ°μ΄νŠΈ:

λŒ“κΈ€λ‚¨κΈ°κΈ°