# Makefile
# Kazuya Sakai, Ph.D
# Tokyo Metropolitan University
# Mar. 25, 2018

CC     = gcc
NASM = nasm
SRC1   = bypass2
SRC2 = privesc
OPTION = -fno-stack-protector -z execstack -g
FILE   = Makefile *.c *.asm *.txt
DIR	= privesc

all: c asm

c:
	$(CC) $(OPTION) -o $(SRC1) $(SRC1).c

asm:
	$(NASM) -f elf64 -o $(SRC2).o $(SRC2).asm
	$(LD) -o $(SRC2) $(SRC2).o
	objdump -D -M intel $(SRC2)

code:asm
	objdump -M intel -d $(SRC2) | grep '^ ' | cut -f2 | perl -pe 's/(\w{2})\s+/\\x\1/g'


pkg:
	# directory
	if [ ! -d $(DIR) ]; then \
		mkdir $(DIR); \
	fi
	
	# copy files
	for var in $(FILE); do\
		cp $$var $(DIR)/$$var; \
	done \
	
	# tar.gz
	tar zcvf $(DIR).tar.gz $(DIR)
	rm -r $(DIR)

clean:
	rm $(SRC1) $(SRC2) $(SRC2).o $(SRC3)

