2014. 4. 28. 13:16

[ 직업 작업 했을때의 컴파일 옵션 ]


#gcc -fPIC -c libstrcpy2.c -m32


#gcc -m32 -shared -Wl,-soname,libstrcpy2.so -o libstrcpy2.so libstrcpy2.o


#gcc -o vulnDeadmon vulnDeadmon.c -m32 -fno-stack-protector -z execstack -fno-builtin -mpreferred-stack-boundary=4 -L ./ -lstrcpy2




[ makefile 만들기 ]


[ 설명 ]


위와같은 옵션을 가지고 컴파일을 매번 다시 해줘야하는 것을 makefile 파일로 만들어두면 편함.

변수명 설정은 C 표준과 같고, 호출은 $(변수명) 으로 호출이 가능함. (shell 명령어와도 같은기능을함)


18번째 줄부터 보면 make 명령어를 하면 all 을 default 로 하여금 make 가 됨. 

all : $(TARGET) 은 all을 실행하는데 $(TARGET)이 잘 구성되어 있지 않으면 ALL 을 실행하지 않음


[ 20번째줄 ] 

$(TARGET) : $(LIB_NAME)  : TARGET을 구성하는데 LIB_NAME 이 제대로 구성되어 있지 않으면 LIB_NAME부터 다시 실행함


[ 23번째줄 ]

$(LIB_NAME) : $(OBJS) : LIB_NAME 을 구성하는데 OBJS가 제대로 구성되어 있지 않으면 OBJS 부터 수행함


[ 26번째줄 ]

$(OBJS) : 

OBJS 를 수행함. $(CC) = gcc $(OBJ_OPTION)= -fPIC -m32 -c  $(LIB_SOURCE_FILE)   = libstrcpy2.c


[ 29번째줄 ]

clean : 

#make clean 이란 옵션으로 실행 될수 있는 부분. 재빌드를 할때 이미 파일이 존재하고 있는 경우를 없애기 위함.


Posted by k1rha