diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-29 20:28:50 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-29 20:28:50 +0200 |
| commit | b69f9b953637a8e3246a449e15b1a2388d204cb1 (patch) | |
| tree | bf083bf11f4168a13c4f0ec0de97fb991cc9cb0d /src | |
| parent | 6dbc4d44a8b02619a0edaf33800fcd6e0f0fecbb (diff) | |
| download | box64-b69f9b953637a8e3246a449e15b1a2388d204cb1.tar.gz box64-b69f9b953637a8e3246a449e15b1a2388d204cb1.zip | |
Added wrapped syslog and __syslog_chk
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 1 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc.c | 16 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc_private.h | 4 |
5 files changed, 22 insertions, 2 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 800b6dca..4f4e1052 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -544,6 +544,7 @@ #() pFpppL #() pFpppp #() pFSppi +#() vFEiipV #() vFEpuup #() vFEpLLp #() vFEpppp diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 57990bce..a1247ac6 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -577,6 +577,7 @@ typedef void* (*pFpppu_t)(void*, void*, void*, uint32_t); typedef void* (*pFpppL_t)(void*, void*, void*, uintptr_t); typedef void* (*pFpppp_t)(void*, void*, void*, void*); typedef void* (*pFSppi_t)(void*, void*, void*, int32_t); +typedef void (*vFEiipV_t)(x64emu_t*, int32_t, int32_t, void*, void*); typedef void (*vFEpuup_t)(x64emu_t*, void*, uint32_t, uint32_t, void*); typedef void (*vFEpLLp_t)(x64emu_t*, void*, uintptr_t, uintptr_t, void*); typedef void (*vFEpppp_t)(x64emu_t*, void*, void*, void*, void*); @@ -1668,6 +1669,7 @@ void pFpppu(x64emu_t *emu, uintptr_t fcn) { pFpppu_t fn = (pFpppu_t)fcn; R_RAX=( void pFpppL(x64emu_t *emu, uintptr_t fcn) { pFpppL_t fn = (pFpppL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); } void pFpppp(x64emu_t *emu, uintptr_t fcn) { pFpppp_t fn = (pFpppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } void pFSppi(x64emu_t *emu, uintptr_t fcn) { pFSppi_t fn = (pFSppi_t)fcn; R_RAX=(uintptr_t)fn(io_convert((void*)R_RDI), (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX); } +void vFEiipV(x64emu_t *emu, uintptr_t fcn) { vFEiipV_t fn = (vFEiipV_t)fcn; fn(emu, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); } void vFEpuup(x64emu_t *emu, uintptr_t fcn) { vFEpuup_t fn = (vFEpuup_t)fcn; fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); } void vFEpLLp(x64emu_t *emu, uintptr_t fcn) { vFEpLLp_t fn = (vFEpLLp_t)fcn; fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); } void vFEpppp(x64emu_t *emu, uintptr_t fcn) { vFEpppp_t fn = (vFEpppp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 6dc17259..e04ce7cf 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -574,6 +574,7 @@ void pFpppu(x64emu_t *emu, uintptr_t fnc); void pFpppL(x64emu_t *emu, uintptr_t fnc); void pFpppp(x64emu_t *emu, uintptr_t fnc); void pFSppi(x64emu_t *emu, uintptr_t fnc); +void vFEiipV(x64emu_t *emu, uintptr_t fnc); void vFEpuup(x64emu_t *emu, uintptr_t fnc); void vFEpLLp(x64emu_t *emu, uintptr_t fnc); void vFEpppp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c index ae75aa9f..451d9b6d 100755 --- a/src/wrapped/wrappedlibc.c +++ b/src/wrapped/wrappedlibc.c @@ -34,6 +34,9 @@ #include <setjmp.h> #include <sys/vfs.h> #include <spawn.h> +#include <syslog.h> +#undef LOG_INFO +#undef LOG_DEBUG #include "wrappedlibs.h" @@ -817,6 +820,19 @@ EXPORT void my_vwarn(x64emu_t* emu, void* fmt, void* b) { #endif } #endif +EXPORT void my_syslog(x64emu_t* emu, int priority, const char* fmt, uint64_t* b) +{ + myStackAlign(emu, fmt, b, emu->scratch, R_EAX, 2); + PREPARE_VALIST; + return vsyslog(priority, fmt, VARARGS); +} +EXPORT void my___syslog_chk(x64emu_t* emu, int priority, int flags, const char* fmt, uint64_t* b) +{ + myStackAlign(emu, fmt, b, emu->scratch, R_EAX, 3); + PREPARE_VALIST; + return vsyslog(priority, fmt, VARARGS); +} + EXPORT int my___swprintf_chk(x64emu_t* emu, void* s, size_t n, int32_t flag, size_t slen, void* fmt, uint64_t* b) { myStackAlignW(emu, (const char*)fmt, b, emu->scratch, R_EAX, 5); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index d4e580f8..f09c84e8 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -1924,8 +1924,8 @@ GOW(sysconf, lFi) DATA(_sys_errlist, sizeof(void*)) DATA(sys_errlist, sizeof(void*)) //GOW(sysinfo, -//GO(syslog, -//GO(__syslog_chk, +GOM(syslog, vFEipV) +GOM(__syslog_chk, vFEiipV) //DATA(sys_sigabbrev, //DATA(sys_sigabbrev, //DATA(_sys_siglist, |