-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
100 lines (71 loc) · 2.75 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
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
94
95
96
97
98
99
100
CC=gcc
FLAGS=-g -std=gnu99 -O0
DEBUG= -DCOLOR -DDEBUG
LDFLAGS=-ldl -g -lpthread
PWD=`pwd`
LIB=
LINKER=gcc
all : mvh build_server
build_server: main_mvh_server.c mvh_server.c error.c
${CC} ${DEBUG} ${FLAGS} -lpthread main_mvh_server.c mvh_server.c error.c -o mvh_server
mvh : main.o mvh.o error.o preload.so
${LINKER} main.o mvh.o error.o -o mvh
mvh.o: mvh.c
${CC} mvh.c -c ${DEBUG} ${FLAGS} -o mvh.o
main.o : main.c
${CC} main.c -c ${DEBUG} ${FLAGS} -o main.o
tls.o: tls.c
${CC} tls.c -fPIC -c ${DEBUG} ${FLAGS} -o tls.o
error.o: error.c
${CC} error.c -fPIC -c ${DEBUG} ${FLAGS} -o error.o
sandbox.o: sandbox.c
${CC} sandbox.c -fPIC -c ${DEBUG} ${FLAGS} -o sandbox.o
trusted_thread.o: trusted_thread.c
${CC} trusted_thread.c -fPIC -c ${DEBUG} ${FLAGS} -o trusted_thread.o
maps.o: maps.c
${CC} maps.c -fPIC -c ${FLAGS} ${DEBUG} -o maps.o
bpf-filter.o: bpf-filter.c
${CC} bpf-filter.c -fPIC -c ${FLAGS} ${DEBUG} -o bpf-filter.o
library.o: library.c
${CC} library.c -fPIC -c ${FLAGS} ${DEBUG} -o library.o
mmalloc.o: mmalloc.c
${CC} mmalloc.c -fPIC -c ${FLAGS} ${DEBUG} -o mmalloc.o
x86_decoder.o: x86_decoder.c
${CC} x86_decoder.c -fPIC -c ${FLAGS} ${DEBUG} -o x86_decoder.o
fault.o: fault.S
${CC} fault.S -fPIC -c ${FLAGS} ${DEBUG} -o fault.o
syscall_entrypoint.o: syscall_entrypoint.c
${CC} syscall_entrypoint.c -fPIC -c ${FLAGS} ${DEBUG} -o syscall_entrypoint.o
syscall_table.o: syscall_table.c
${CC} syscall_table.c -fPIC -c ${FLAGS} ${DEBUG} -o syscall_table.o
preload.o: preload.c
${CC} preload.c -fPIC -c ${FLAGS} ${DEBUG} -o preload.o
preload.so: tls.o syscall_table.o fault.o mmalloc.o library.o maps.o sandbox.o preload.o error.o trusted_thread.o bpf-filter.o x86_decoder.o syscall_entrypoint.o
${LINKER} ${LDFLAGS} -fPIC -shared error.o tls.o fault.o syscall_table.o x86_decoder.o library.o bpf-filter.o maps.o mmalloc.o preload.o syscall_entrypoint.o sandbox.o trusted_thread.o -o preload.so
run: mvh preload.so
@ ./mvh --private -s 127.0.0.1 -p 5555 /bin/ls -a
# @ ./mvh toys/function_address.out
ls: mvh preload.so toys
@ ./mvh /bin/ls
toys: function_address.out
function_address.out: toys/function_address.c
${CC} toys/function_address.c -o toys/function_address.out
read_maps.out : toys/read_maps.c
${CC} toys/read_maps.c -c ${FLAGS} ${DEBUG} -o toys/read_maps.o
${LINKER} -g toys/read_maps.o mmalloc.o error.o library.o maps.o x86_decoder.o -o toys/read_maps.out
thread:
@ ./mvh --public ./toys/thread.out
clone:
@ ./mvh --public ./toys/clone.out
server: build_server
@ ./mvh_server
public:
@ ./mvh --public /bin/ls
private:
@ ./mvh --private /bin/ls
gdb: mvh preload.so
@ gdb ./mvh
strace:
@ strace -ff ./mvh /bin/ls -o calls.txt
clean:
rm *.o *.so mvh mvh_server