diff --git a/syscall/jasmin_syscall.c b/syscall/jasmin_syscall.c index d85634e..7835e59 100644 --- a/syscall/jasmin_syscall.c +++ b/syscall/jasmin_syscall.c @@ -1,36 +1,31 @@ #include "jasmin_syscall.h" -#if defined(__linux__) +#if defined(__linux__) -#include -#include -#include -#include -#include -#include -#include -#include -#include #include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include - - -uint8_t* __jasmin_syscall_randombytes__(uint8_t* _x, uint64_t xlen) -{ +uint8_t *__jasmin_syscall_randombytes__(uint8_t *_x, uint64_t xlen) { int i; - uint8_t* x = _x; + uint8_t *x = _x; printf("%lx:\n", x); - for (i = 0; i < xlen; i++) - { + for (i = 0; i < xlen; i++) { printf("%02X", _x[i]); } printf("\n"); - return _x; } @@ -54,15 +49,16 @@ uint8_t* __jasmin_syscall_randombytes__(uint8_t* _x, uint64_t xlen) // } // } -uint64_t __jasmin_syscall_open__(uint8_t* x, uint64_t xlen) -{ - uint8_t* mem = (uint8_t*)mmap(NULL, 1024, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0); +uint64_t __jasmin_syscall_open__(uint8_t *x, uint64_t xlen) { + uint8_t *mem = + (uint8_t *)mmap(NULL, 1024, PROT_READ | PROT_WRITE, MAP_SHARED, 3, 0); if (mem == NULL) { puts("mem error"); exit(1); } uintptr_t addr = (uintptr_t)(mem - 4096); - void* futex_mem = mmap((void*)addr, 1024, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0); + void *futex_mem = + mmap((void *)addr, 1024, PROT_READ | PROT_WRITE, MAP_SHARED, 4, 0); if ((uintptr_t)futex_mem != addr) { puts("mem error 2"); exit(1); @@ -88,9 +84,9 @@ uint64_t __jasmin_syscall_open__(uint8_t* x, uint64_t xlen) // return _x; // } -uint8_t* __jasmin_syscall_read__(uint8_t* _x, uint64_t xlen, uint64_t fd) -{ - uint32_t* addr = (uint32_t*)(uintptr_t)fd; +uint8_t *__jasmin_syscall_read__(uint8_t *_x, uint64_t xlen, uint64_t fd) { + printf("Waiting...\n"); + uint32_t *addr = (uint32_t *)(uintptr_t)fd; long ret = syscall(SYS_futex, addr, FUTEX_WAIT, 0x1, NULL, NULL, 0); if (ret == -1) { printf("Agent futex error: %d\n", errno); @@ -100,9 +96,8 @@ uint8_t* __jasmin_syscall_read__(uint8_t* _x, uint64_t xlen, uint64_t fd) return _x; } -uint8_t* __jasmin_syscall_write__(uint8_t* _x, uint64_t xlen, uint64_t fd) -{ - uint32_t* addr = (uint32_t*)(uintptr_t)fd; +uint8_t *__jasmin_syscall_write__(uint8_t *_x, uint64_t xlen, uint64_t fd) { + uint32_t *addr = (uint32_t *)(uintptr_t)fd; *addr = 1; syscall(SYS_futex, addr, FUTEX_WAKE, 1, NULL, NULL, 0); @@ -133,11 +128,12 @@ uint8_t* __jasmin_syscall_write__(uint8_t* _x, uint64_t xlen, uint64_t fd) #include -#if !(defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200) +#if !(defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \ + __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200) #error "macOS version not supported (>= 10.12)" #endif -uint8_t* __jasmin_syscall_randombytes__(uint8_t* x, uint64_t xlen){ +uint8_t *__jasmin_syscall_randombytes__(uint8_t *x, uint64_t xlen) { arc4random_buf(x, xlen); return x; }