From b01ab80795a982203511c7da3bda28eadc7932f7 Mon Sep 17 00:00:00 2001 From: Bobby Dilley Date: Thu, 1 Sep 2022 20:16:47 +0100 Subject: [PATCH] Add Harley network hook --- src/lindbergh/hook.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/lindbergh/hook.c b/src/lindbergh/hook.c index 3264109..0e22c45 100644 --- a/src/lindbergh/hook.c +++ b/src/lindbergh/hook.c @@ -9,6 +9,10 @@ #include #include #include +#include +#include +#include +#include #include "hook.h" @@ -361,8 +365,28 @@ float powf(float base, float exponent) } /* -int futex(int *uaddr, int op, int val, const struct timespec *timeout, int *uaddr2, int val3) +int sem_wait(sem_t *sem) { + int (*original_sem_wait)(sem_t * sem) = dlsym(RTLD_NEXT, "sem_wait"); return 0; } */ + +/** + * Hook function used by Harley Davidson to change IPs to localhost + * Currently does nothing. + */ +int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) +{ + int (*_connect)(int sockfd, const struct sockaddr *addr, socklen_t addrlen) = dlsym(RTLD_NEXT, "connect"); + + + struct sockaddr_in *in_pointer = (struct sockaddr_in *)addr; + + // Change the IP to connect to to 127.0.0.1 + //in_pointer->sin_addr.s_addr = inet_addr("127.0.0.1"); + char *some_addr = inet_ntoa(in_pointer->sin_addr); + printf("Connecting to %s\n", some_addr); + + return _connect(sockfd, addr, addrlen); +}