-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
89 lines (65 loc) · 3.04 KB
/
Makefile
File metadata and controls
89 lines (65 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
CC = gcc
BASE_CFLAGS = -Wall -Wextra -Iinclude -g
# glibc paths
GLIBC_233_PATH = libc-ver/glibc-2.33/compiled
# Ensure glibc is built before compiling challenge 11
# .PHONY: ensure-glibc-11
# ensure-glibc-11:
# @if [ ! -d "$(GLIBC_233_PATH)" ]; then \
# echo "Setting up glibc 2.33..."; \
# ./setup_glibc.sh; \
# fi
# Challenge-specific flags
CFLAGS_1_stack = $(BASE_CFLAGS) -fno-stack-protector -z execstack -no-pie -Wl,-z,norelro
CFLAGS_2_stack = $(BASE_CFLAGS) -fno-stack-protector -z execstack -no-pie -Wl,-z,norelro
CFLAGS_3_stack = $(BASE_CFLAGS) -fno-stack-protector -z execstack -no-pie -Wl,-z,norelro
CFLAGS_4_stack = $(BASE_CFLAGS) -fno-stack-protector -no-pie -Wl,-z,norelro
CFLAGS_5_stack = $(BASE_CFLAGS) -no-pie -Wl,-z,norelro
CFLAGS_6_stack = $(BASE_CFLAGS) -fno-stack-protector -Wl,-z,norelro
CFLAGS_7_stack = $(BASE_CFLAGS) -fno-stack-protector -no-pie -Wl,-z,norelro
CFLAGS_8_stack = $(BASE_CFLAGS) -fno-stack-protector -no-pie -Wl,-z,norelro
CFLAGS_9_stack = $(BASE_CFLAGS) -fno-stack-protector -no-pie -Wl,-z,norelro
CFLAGS_10_stack = $(BASE_CFLAGS) -fno-stack-protector -no-pie -Wl,-z,norelro
# CFLAGS_11_stack = $(BASE_CFLAGS) -fno-stack-protector -no-pie -Wl,-z,norelro -Wl,--rpath=$(GLIBC_233_PATH) -Wl,--dynamic-linker=$(GLIBC_233_PATH)/ld-linux-x86-64.so.2
CFLAGS_12_stack = $(BASE_CFLAGS) -fno-stack-protector -m32 -no-pie -Wl,-z,norelro
CFLAGS_13_stack = $(BASE_CFLAGS) -fno-stack-protector -no-pie -Wl,-z,norelro
CFLAGS_14_stack = $(BASE_CFLAGS) -fno-stack-protector -no-pie -Wl,-z,norelro
SRC_DIR = src
BIN_DIR = bin
# Challenge files
CHALLENGES = 1_stack 2_stack 3_stack 4_stack 5_stack 6_stack 7_stack 8_stack 9_stack 10_stack 12_stack 13_stack 14_stack
CHALLENGE_BINS = $(addprefix $(BIN_DIR)/, $(CHALLENGES))
all: $(CHALLENGE_BINS)
$(BIN_DIR)/1_stack: $(SRC_DIR)/1_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_1_stack) -o $@ $<
$(BIN_DIR)/2_stack: $(SRC_DIR)/2_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_2_stack) -o $@ $<
$(BIN_DIR)/3_stack: $(SRC_DIR)/3_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_3_stack) -o $@ $<
$(BIN_DIR)/4_stack: $(SRC_DIR)/4_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_4_stack) -o $@ $<
$(BIN_DIR)/5_stack: $(SRC_DIR)/5_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_5_stack) -o $@ $<
$(BIN_DIR)/6_stack: $(SRC_DIR)/6_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_6_stack) -o $@ $<
$(BIN_DIR)/7_stack: $(SRC_DIR)/7_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_7_stack) -o $@ $<
$(BIN_DIR)/8_stack: $(SRC_DIR)/8_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_8_stack) -o $@ $<
$(BIN_DIR)/9_stack: $(SRC_DIR)/9_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_9_stack) -o $@ $<
$(BIN_DIR)/10_stack: $(SRC_DIR)/10_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_9_stack) -o $@ $<
$(BIN_DIR)/11_stack: $(SRC_DIR)/11_stack.c | $(BIN_DIR) ensure-glibc-11
$(CC) $(CFLAGS_11_stack) -o $@ $<
$(BIN_DIR)/12_stack: $(SRC_DIR)/12_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_12_stack) -o $@ $<
$(BIN_DIR)/13_stack: $(SRC_DIR)/13_stack.py | $(BIN_DIR)
python3 $<
$(BIN_DIR)/14_stack: $(SRC_DIR)/14_stack.c | $(BIN_DIR)
$(CC) $(CFLAGS_14_stack) -o $@ $<
$(BIN_DIR):
mkdir -p $(BIN_DIR)
clean:
rm -rf $(BIN_DIR)
.PHONY: all clean