From 1e487eca2304936919e777f8ad06a99f28c7528d Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Mon, 4 Sep 2023 18:21:18 +0200 Subject: add example objects --- CMakeLists.txt | 1 + example/CMakeLists.txt | 14 ++++++++++++++ example/lib.c | 7 +++++++ example/target.c | 14 ++++++++++++++ src/inject.c | 2 +- 5 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 example/CMakeLists.txt create mode 100644 example/lib.c create mode 100644 example/target.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 288ba2d..11ff281 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,4 +13,5 @@ project(inject_so VERSION 0.0.0 LANGUAGES C) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +add_subdirectory(example) add_subdirectory(src) diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt new file mode 100644 index 0000000..ea5871c --- /dev/null +++ b/example/CMakeLists.txt @@ -0,0 +1,14 @@ + +set(LIB_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/lib.c) +set(TARGET_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/target.c) + +set(CMAKE_SHARED_LIBRARY_PREFIX "") +add_library(lib SHARED ${LIB_SOURCE}) +add_executable(target ${TARGET_SOURCE}) + +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + add_library(lib32 SHARED ${LIB_SOURCE}) + set_target_properties(lib32 PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") + add_executable(target32 ${TARGET_SOURCE}) + set_target_properties(target32 PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") +endif() \ No newline at end of file diff --git a/example/lib.c b/example/lib.c new file mode 100644 index 0000000..6622e56 --- /dev/null +++ b/example/lib.c @@ -0,0 +1,7 @@ +#include +#include + +void __attribute__((constructor)) lib_entry() +{ + printf("Injected into %li\n", getpid()); +} diff --git a/example/target.c b/example/target.c new file mode 100644 index 0000000..fc34b9d --- /dev/null +++ b/example/target.c @@ -0,0 +1,14 @@ +#include +#include + +int main() +{ + printf("pid %li\n", getpid()); + while (1) + { + printf("waiting...\n"); + sleep(2); + } + + return 1; +} \ No newline at end of file diff --git a/src/inject.c b/src/inject.c index 96012b6..58b05c2 100644 --- a/src/inject.c +++ b/src/inject.c @@ -284,7 +284,7 @@ int load_library(pid_t pid, char* lib_path) if (lib_mod.size) return 1; - struct module_s libc_ex = getModule(pid, "libshim.so"); + struct module_s libc_ex = getModule(pid, "libc.so"); uintptr_t offset = getSymbolOffset(libc_ex.path, "dlopen"); // fallback -- cgit v1.2.3