diff options
author | van Hauser <vh@thc.org> | 2021-07-28 08:34:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-28 08:34:21 +0200 |
commit | 6d8813eb1a54a78f086e3f9b49642f67903218f3 (patch) | |
tree | d2b47c7aaff6e2d93bb1494cc0b4016f879b1044 /frida_mode/test/osx-lib/harness2.c | |
parent | 2a51358b1554ccb05d312487eec7d9deee53aaee (diff) | |
parent | d7caf1b0f2bba283de36f546efb658d29ad488e1 (diff) | |
download | afl++-6d8813eb1a54a78f086e3f9b49642f67903218f3.tar.gz |
Merge pull request #1046 from WorksButNotTested/osx-lib
Changes to add additional FASAN configurations to osx-lib
Diffstat (limited to 'frida_mode/test/osx-lib/harness2.c')
-rw-r--r-- | frida_mode/test/osx-lib/harness2.c | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/frida_mode/test/osx-lib/harness2.c b/frida_mode/test/osx-lib/harness2.c index 83983c99..464614ee 100644 --- a/frida_mode/test/osx-lib/harness2.c +++ b/frida_mode/test/osx-lib/harness2.c @@ -5,15 +5,21 @@ #include <dlfcn.h> -extern void crashme(const uint8_t *Data, size_t Size); +//typedef for our exported target function. +typedef void (*CRASHME)(const uint8_t *Data, size_t Size); + +//globals +CRASHME fpn_crashme = NULL; + int LLVMFuzzerTestOneInput(const unsigned char* data, size_t size){ - crashme(data, size); + fpn_crashme(data, size); return 0; } -void run (int argc, const char * argv[]) +int main(int argc, const char * argv[]) { + for (int i = 1; i < argc; i++) { fprintf(stderr, "Running: %s\n", argv[i]); FILE *f = fopen(argv[i], "r"); @@ -29,12 +35,35 @@ void run (int argc, const char * argv[]) free(buf); fprintf(stderr, "Done: %s: (%zd bytes)\n", argv[i], n_read); } + + return 0; } -int main(int argc, const char * argv[]) -{ +__attribute__((constructor())) +void constructor(void) { + // handles to required libs + void *dylib = NULL; - run(argc, argv); + dylib = dlopen("./libcrashme2.dylib", RTLD_NOW); + if (dylib == NULL) + { - return 0; + printf("[-] Failed to load lib\n"); + printf("[-] Dlerror: %s\n", dlerror()); + exit(1); + + } + + printf("[+] Resolve function\n"); + + fpn_crashme = (CRASHME)dlsym(dylib, "crashme"); + if (!fpn_crashme) + { + + printf("[-] Failed to find function\n"); + exit(1); + + } + + printf("[+] Found function.\n"); } |