This commit is contained in:
Karmaz95
2024-02-18 15:35:56 +01:00
parent 73bf3b3aa0
commit 464f5317ae
3 changed files with 32 additions and 0 deletions

8
V. Dyld/custom/hello.c Normal file
View File

@@ -0,0 +1,8 @@
// clang -o hello hello.c
#include <stdio.h>
int main() {
printf("Hello!\n");
return 0;
}

View File

@@ -0,0 +1,22 @@
// clang -dynamiclib -o libinterpose.dylib interpose.c
#include <stdio.h>
// Define the interpose macro
#define DYLD_INTERPOSE(_replacement,_replacee) \
__attribute__((used)) static struct { \
const void* replacement; \
const void* replacee; \
} \
_interpose_##_replacee \
__attribute__ ((section ("__DATA,__interpose,interposing"))) = { \
(const void*)(unsigned long)&_replacement, \
(const void*)(unsigned long)&_replacee };
// Define the replacement function
int my_printf(const char *format, ...) {
int ret = printf("Hello from my_printf!\n");
return ret;
}
// Apply the interposing macro to replace printf with my_printf
DYLD_INTERPOSE(my_printf, printf)

View File

@@ -1480,6 +1480,8 @@ class SnakeV(SnakeIV):
for cmd in all_dyld_env:
print(cmd.value)
### --- ARGUMENT PARSER --- ###
class ArgumentParser:
def __init__(self):