본문 바로가기

Let's Study/Programming

[2014 Christmas CTF] The Magic Picture Book write up이 풀려있기 때문에 슬슬 소스, 바이너리, 플래그파일을 뿌립니다. http://gon.kaist.ac.kr/?cat=1 여기 링크는 카이스트 곤 동아리 분들이 푼 write up 사이트입니다. 제가 아직 지식이 부족해서 바이너리를 복잡하게 꼬았어요. 미안합니다 ㅠ 다음엔 더 질좋고 공부하기에도 좋은 문제를 만들도록 하겠습니다.열심히 공부할게요. 문제는 이런식으로 생겼고 Weights and Measures 와 같이 exploit 코드는 공개하지 않겠습니다. signal()을 쓰면 fork()로 연결된 child 프로세스가 종료될 때 종료되지 않고 남아있는 걸 해결할 수 있다네요. 바이너리 사용법은 간단합니다. ./The_Magic_Picture_Book 4940 이런식으로 바이너리 옆에 사.. 더보기
[2014 Christmas CTF] Weights and Measures write up도 다들 올리시고들 하니, 이번에 냈던 2014년 크리스마스 ctf 알고리즘 문제 Weights and Measures 바이너리파일, C코드, 플래그 파일 올립니다. ..... 카이스트 곤 분들이 제 문제를 첫번째, 두번째 순서로 올려놔주셨네요. 감사합니다 ㅠ http://gon.kaist.ac.kr/?cat=1 여기 링크로 가시면 카이스트 곤 크리스마스 ctf 문제풀이를 보실 수 있습니다. 제가 임의로 짠 exploit 코드는 공개하지 않겠습니다. 제가 예상하지도 못한 방법으로 풀었던 우수한 write up들이 많기 때문이지요. 문제를 만들면서 많이 배웠습니다. 앞으로 더 재밌는 문제 준비할게요. 감사합니다. 사용법은 간단합니다../turtle 4940 같이 바이너리 옆에 사용할 포트를 .. 더보기
[OpenGL] 그래픽스 자유곡선 그리기 #include #include #include #define TRUE 1 #define FALSE 0 GLint TopLeftX, TopLeftY, BottomRightX, BottomRightY; //마우스의 좌표값을 저장하는 변수 GLfloat R = 0.0, G = 0.0, B = 0.0; //선의 색상 정할 때 이용되는 변수 GLboolean Line = TRUE; //TRUE로 설정을 해서 처음 실행하면 직선을 그린다. bool identify = TRUE; //마우스를 누르고있으면 false, 안누르면 true. false일 때 자유곡선을 그린다. bool click = TRUE; // 화면 초기화 안되게 막아주는 변수 void MyDisplay() { if(click == TRUE) // .. 더보기
초기화되지 않은 변수에 쓰레기값이 들어있는 이유 동아리방에서 이런 얘기가 오고가서 글을 올려봅니다. printf로 초기화되지 않은 a의 값을 출력하는데 "쓰레기값이 왜 들어있는거에요?" 이건 printf 이전에 메모리할당으로 넘어갑니다. 변수를 선언하기 이전의 메모리 모습입니다. 여기엔 이상한 값들이 들어가있어요. int형 a 변수를 선언했을 때의 메모리 모습입니다. 처음 a 변수를 선언했을 시, a의 앞으로 4바이트 뒤로 200바이트정도에 모두 cc값을 넣어서 스택을 할당합니다. 이 cc가 흔히 말하는 쓰레기값이죠. 보는 바와 같이 a 변수에 4를 초기화시켜서 a엔 4, 그 위로는 b의 값인 5가 들어갑니다. 나머지 cc cc cc cc, cc cc cc cc, cc cc cc cc 는 초기화되지 않은 변수 c, d, e로 들어가게 되는거죠. 결론은.. 더보기