basic

linux 환경의 메모리 보호기법을 알아보자(5)

linux 환경의 메모리 보호기법을 알아보자 (5) salen 선원이 linux 메모리 보호기법 시리즈에서 주구장창 등장하는 checksec.sh 를 자세히 들여다 보았습니다. 후다닥 퍼다 날라봅니다 :3 1. chechsec.sh 개요 지금껏 우리는 예제 프로그램을 만들고, 예제 프로그램에 어떤 메모리

Continue reading

linux 환경의 메모리 보호기법을 알아보자(4)

linux 환경의 메모리 보호기법을 알아보자(4) 이번 편은 linux 환경에서의 메모리 보호 기법 알아보기의 마지막 편입니다!! 3편에서 살펴봤던 PIC(Position Independent Code)는 공유 라이브러리에서 이용되지만 이번 편에서 살펴볼 PIE(Position Independent Executable

Continue reading

linux 환경의 메모리 보호기법을 알아보자(3)

linux 환경의 메모리 보호기법을 알아보자(3) 이번 편에서는 다음 편에서 다룰 PIE라는 개념을 위해 먼저 PIC에 대해 알아보도록 하겠습니다! 배경 지식들과 함께 알아봅시다. 실습 환경 Ubuntu 15.10 32bits 정적 라이브러리와 공유 라이브러리 1) 정적

Continue reading

linux 환경의 메모리 보호기법을 알아보자(2)

linux 환경의 메모리 보호기법을 알아보자(2) 이번 편에서는 RELRO에 대해 알아보겠습니다!! RELRO 설명에 앞서 필요한 개념들을 하나씩 알아봅시다. Lazy Binding이란? Dynamic Linking 방식으로 컴파일이 된 ELF 바이너리는 공유 라이브러리 내

Continue reading

linux 환경의 메모리 보호기법을 알아보자(1)

linux 환경의 메모리 보호기법을 알아보자(1) 지금부터 Linux 환경에서의 메모리 보호 기법에 대해 알아봅시다! 이번 편에서는 ASLR, NX, ASCII-Armor, Stack canary에 대해 알아보겠습니다. 위키를 통해 “메모리 보호”라는 말의 정의를 알아보고 넘어갑시다

Continue reading

(完)우리집에 GDB 있는데... 메모리 보고갈래? #03

(完)우리집에 GDB 있는데… 메모리 보고갈래? #03 Day#3 이쯤 했으면 이제 그만 엔터치자 오늘부터 1일♡ 1. DEBUGGING (IDA, GDB 사용) 우리는 이미 tomato.c 소스가 있지만, 보통 소스는 잘 안주잖아여 없다는 가정하에 디버깅을 해봅씨다! (1) IDA (취

Continue reading

우리집에 GDB 있는데... 메모리 보고갈래? #번외

문제푸는 입장에서 다시보는 소소한(?) 것들 부제 : 기술이사님 만족하심까 feat. Big Engian & Little Endian, 로컬 환경이면서 socat으로 리모트 환경인 척 하기 이사님이 자세히 쓰라거하셔서 준비해씀다 필요한데 헷갈리고 정리안되는 것들 정리해드려

Continue reading

우리집에 GDB 있는데... 메모리 보고갈래? #02

우리집에 GDB 있는데… 메모리 보고갈래? #02 Day#2 애프터 신청 (너 gdb 사용법, 갖고싶다.. 너란 stack ) tomato.c //tomato.c #include <string.h>#include <stdio.h>#include <stdlib.h> void func2() { puts("func2()"); } void sum(int a, int b) { printf("sum : %d\n", a+b); func2(); } int main(int argc, char *argv[]) { int num=0; char arr[10]; sum(1,2); strcpy(arr,argv[1]); printf("arr: %s\n", arr); if(num==1){ system("/bin/sh"); } return 0; } compile $ gcc -fno-stack-protector -o tomato tomato.c -fno-stack-protector

Continue reading