diff --git a/Makefile b/Makefile index 7adc604..dd1d8fc 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ BUILD = build OBJS := $(patsubst %.c,%.o,$(wildcard src/lindbergh/*.c)) -all: lindbergh.so libsegaapi.so +all: lindbergh.so libsegaapi.so libkswapapi.so lindbergh.so: $(OBJS) mkdir -p $(BUILD) @@ -21,5 +21,8 @@ libsegaapi.so: src/libsegaapi/segaapi.o $(LIBSEGA_LD) $(LIBSEGA_LDFLAGS) src/libsegaapi/segaapi.o -L/usr/lib/i386-linux-gnu -lalut -fPIC -shared -o $(BUILD)/libsegaapi.so rm -f src/libsegaapi/*.o +libkswapapi.so: src/libkswapapi/libkswapapi.o + $(LIBSEGA_LD) $(LIBSEGA_LDFLAGS) src/libkswapapi/libkswapapi.o -L/usr/lib/i386-linux-gnu -fPIC -shared -o $(BUILD)/libkswapapi.so + clean: rm -rf $(BUILD) diff --git a/src/libkswapapi/libkswapapi.c b/src/libkswapapi/libkswapapi.c new file mode 100644 index 0000000..698f593 --- /dev/null +++ b/src/libkswapapi/libkswapapi.c @@ -0,0 +1,10 @@ +#include "libkswapapi.h" + +/** + * Hook for the only function provided by kswapapi.so + * @param p No idea this gets discarded + */ +void kswap_collect(void *p) +{ + return; +} diff --git a/src/libkswapapi/libkswapapi.h b/src/libkswapapi/libkswapapi.h new file mode 100644 index 0000000..1dea88e --- /dev/null +++ b/src/libkswapapi/libkswapapi.h @@ -0,0 +1,10 @@ +#ifndef __LIBKSWAP_H +#define __LIBKSWAP_H + +/** + * Hook for the only function provided by kswapapi.so + * @param p No idea this gets discarded + */ +void kswap_collect(void *p); + +#endif /* __LIBKSWAP_H */ diff --git a/src/libkswapapi/libkswapapi.o b/src/libkswapapi/libkswapapi.o new file mode 100644 index 0000000..d480686 Binary files /dev/null and b/src/libkswapapi/libkswapapi.o differ diff --git a/src/lindbergh/patch.c b/src/lindbergh/patch.c index 15ec61a..6d2b2f9 100644 --- a/src/lindbergh/patch.c +++ b/src/lindbergh/patch.c @@ -107,6 +107,9 @@ int initPatch() setVariable(0x0a737f1c, 2); // amSysDataDebugLevel setVariable(0x0a737f20, 2); // bcLibDebugLevel setVariable(0x0a737f24, 0x0FFFFFFF); // s_logMask + detourFunction(0x08320178, amDongleInit); + detourFunction(0x08320459, amDongleIsAvailable); + detourFunction(0x083203c0, amDongleUpdate); } break;