# Сборка учебных программ апокрифа 4.
# Все цели собираются без root; запуск эксплойт-подобных целей — только в ВМ.

CC      ?= gcc
CFLAGS  ?= -O2 -Wall -Wextra
BINS     = cred_model mem_write modprobe_trigger dirtypipe_poc

.PHONY: all check clean

all: $(BINS)

cred_model: cred_model.c
	$(CC) $(CFLAGS) -o $@ $<

mem_write: mem_write.c
	$(CC) $(CFLAGS) -o $@ $<

modprobe_trigger: modprobe_trigger.c
	$(CC) $(CFLAGS) -o $@ $<

dirtypipe_poc: dirtypipe_poc.c
	$(CC) $(CFLAGS) -o $@ $<

# Проверки, которые не трогают систему: инвентаризация, утечки, разбор oops.
check:
	./surface.sh
	./check_leaks.sh
	./cred_model
	./cap_decode.py 0x0000000000000084
	./oops_read.py samples/oops.txt

clean:
	rm -f $(BINS) *.o
