diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | C/HF/chap8/Makefile | 24 | ||||
| -rwxr-xr-x | C/HF/chap8/bin/ecat | bin | 12944 -> 0 bytes | |||
| -rw-r--r-- | C/HF/chap8/bin/libs/libencrypt.a | bin | 3754 -> 0 bytes | |||
| -rw-r--r-- | C/HF/chap8/src/libs/encrypt2.c | 11 |
5 files changed, 37 insertions, 0 deletions
@@ -1 +1,3 @@ *.o +*.so +*.a diff --git a/C/HF/chap8/Makefile b/C/HF/chap8/Makefile index df3283e..8377c1b 100644 --- a/C/HF/chap8/Makefile +++ b/C/HF/chap8/Makefile @@ -13,3 +13,27 @@ bin/libs/xor.o: $(INCLUDE_DIR)/libs/xor.h src/libs/xor.c bin/libs/encrypt.o: $(INCLUDE_DIR)/libs/encrypt.h src/libs/encrypt.c cc -I $(INCLUDE_DIR) -c src/libs/encrypt.c -o bin/libs/encrypt.o + +# Create DSO and PIC versions +# +ecatS: bin/libs/libencrypt.a + cc -I $(INCLUDE_DIR) -L bin/libs -o bin/ecats src/ecat.c -lencrypts + +bin/libs/libencrypts.so: bin/libs/xor-pic.o bin/libs/encrypt-pic.o + cc -I $(INCLUDE_DIR) -shared -o bin/libs/libencrypts.so bin/libs/xor-pic.o bin/libs/encrypt-pic.o + +# This creates the same lib with a broken encrypt_arr call. +# We can run the same program passing the different lib at runtime +# and change the behavior of encrypt_arr at runtime +bin/broken_libs/libencrypts.so: bin/libs/xor-pic.o bin/libs/encrypt2-pic.o + cc -I $(INCLUDE_DIR) -shared -o bin/broken_libs/libencrypts.so bin/libs/xor-pic.o bin/libs/encrypt2-pic.o + + +bin/libs/xor-pic.o: $(INCLUDE_DIR)/libs/xor.h src/libs/xor.c + cc -fPIC -I $(INCLUDE_DIR) -c src/libs/xor.c -o bin/libs/xor-pic.o + +bin/libs/encrypt-pic.o: $(INCLUDE_DIR)/libs/encrypt.h src/libs/encrypt.c + cc -fPIC -I $(INCLUDE_DIR) -c src/libs/encrypt.c -o bin/libs/encrypt-pic.o + +bin/libs/encrypt2-pic.o: $(INCLUDE_DIR)/libs/encrypt.h src/libs/encrypt2.c + cc -fPIC -I $(INCLUDE_DIR) -c src/libs/encrypt2.c -o bin/libs/encrypt2-pic.o diff --git a/C/HF/chap8/bin/ecat b/C/HF/chap8/bin/ecat Binary files differdeleted file mode 100755 index 1167d31..0000000 --- a/C/HF/chap8/bin/ecat +++ /dev/null diff --git a/C/HF/chap8/bin/libs/libencrypt.a b/C/HF/chap8/bin/libs/libencrypt.a Binary files differdeleted file mode 100644 index f609c17..0000000 --- a/C/HF/chap8/bin/libs/libencrypt.a +++ /dev/null diff --git a/C/HF/chap8/src/libs/encrypt2.c b/C/HF/chap8/src/libs/encrypt2.c new file mode 100644 index 0000000..939df8b --- /dev/null +++ b/C/HF/chap8/src/libs/encrypt2.c @@ -0,0 +1,11 @@ +#include <stdio.h> +#include <libs/encrypt.h> + +void encrypt(char *message, encrypt_fn_t encrypt_fn) { + encrypt_fn(message); +} + +void encrypt_arr(char *message, encrypt_arr_t fn_arr, int size) +{ + printf("BROKEN LIB\n"); +} |
