-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
48 lines (34 loc) · 1.27 KB
/
makefile
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
CC = x86_64-w64-mingw32-gcc
CFLAGS = -Iinclude -Iinclude/unwin.h -lntdll -masm=intel
TARGET_PROCNAME ?= \"notepad.exe\"
.PHONY: all debug clean
all: output_dir out/alcatrazLdr.exe
debug: CFLAGS += -DDEBUG -g
debug: clean all
clean:
rm -f out/*
# Ensure the output directory exists
output_dir:
@mkdir -p out
#
# { MAIN BUILD }
#
out/main.o: src/main.c | output_dir
$(CC) src/main.c $(CFLAGS) -DTARGET_PROCESS=$(TARGET_PROCNAME) -o out/main.o -c
out/shellcode.o: src/shellcode/shellcode.c | output_dir
$(CC) src/shellcode/shellcode.c $(CFLAGS) -o out/shellcode.o -c
out/memory.o: src/memory/memory.c | output_dir
$(CC) src/memory/memory.c $(CFLAGS) -o out/memory.o -c
out/injection.o: src/injection/injection.c | output_dir
$(CC) src/injection/injection.c $(CFLAGS) -o out/injection.o -c
out/syscalls.o: src/syscalls/syscalls.c | output_dir
$(CC) src/syscalls/syscalls.c $(CFLAGS) -o out/syscalls.o -c
out/ade.o: src/syscalls/ade.asm | output_dir
nasm -f win64 src/syscalls/ade.asm -o out/ade.o
out/alcatrazLdr.exe: out/main.o out/shellcode.o out/memory.o out/injection.o out/syscalls.o out/ade.o | output_dir
$(CC) out/*.o $(CFLAGS) -o out/alcatrazLdr.exe
#
# { EXTRA }
#
out/objector.exe: tools/objector.c | output_dir
$(CC) tools/objector.c $(CFLAGS) -o out/objector.exe