diff options
author | comex | 2015-01-19 19:12:32 -0500 |
---|---|---|
committer | comex | 2015-01-19 19:12:32 -0500 |
commit | c25b9e2337aad02073a199619f6f754f15cccd38 (patch) | |
tree | 603f3bcdc6eb687c11c077f350cde53fc1700898 /lib/substrate-compat.c | |
parent | some reorganization (diff) | |
download | substitute-c25b9e2337aad02073a199619f6f754f15cccd38.tar.gz |
more reorganization - move OS X/iOS specific stuff into its own directory
Diffstat (limited to 'lib/substrate-compat.c')
-rw-r--r-- | lib/substrate-compat.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/lib/substrate-compat.c b/lib/substrate-compat.c deleted file mode 100644 index 3658ac7..0000000 --- a/lib/substrate-compat.c +++ /dev/null @@ -1,55 +0,0 @@ -#include "substitute.h" -#include "substitute-internal.h" -#include <syslog.h> -#include <mach-o/dyld.h> - -EXPORT -void *SubGetImageByName(const char *filename) __asm__("SubGetImageByName"); -void *SubGetImageByName(const char *filename) { - return substitute_open_image(filename); -} - -EXPORT -void *SubFindSymbol(void *image, const char *name) __asm__("SubFindSymbol"); -void *SubFindSymbol(void *image, const char *name) { - if (!image) { - const char *s = "SubFindSymbol: 'any image' specified, which is incredibly slow - like, 2ms on a fast x86. I'm going to do it since it seems to be somewhat common, but you should be ashamed of yourself."; - syslog(LOG_WARNING, "%s", s); - fprintf(stderr, "%s\n", s); - /* and it isn't thread safe, but neither is MS */ - for(uint32_t i = 0; i < _dyld_image_count(); i++) { - const char *im_name = _dyld_get_image_name(i); - struct substitute_image *im = substitute_open_image(im_name); - if (!im) { - fprintf(stderr, "(btw, couldn't open %s?)\n", im_name); - continue; - } - void *r = SubFindSymbol(im, name); - substitute_close_image(im); - if (r) - return r; - } - return NULL; - } - - substitute_sym *sym; - if (substitute_find_private_syms(image, &name, &sym, 1) || !sym) - return NULL; - return substitute_sym_to_ptr(image, sym); -} - -/* -EXPORT -void SubHookFunction(void *symbol, void *replace, void **result) __asm__("SubHookFunction"); -void SubHookFunction(void *symbol, void *replace, void **result) { - // ... -} -*/ - -#ifdef __APPLE__ -/*void SubHookMessageEx(Class _class, SEL sel, IMP imp, IMP *result) __asm__("SubHookMessageEx"); -void SubHookMessageEx(Class _class, SEL sel, IMP imp, IMP *result) { - -}*/ - -#endif |