From b45c249ed9a2f44162dc0e863268b9fdcc6edb16 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Thu, 8 Apr 2021 15:35:38 +0200 Subject: Added a few more wrapped libc functions --- src/wrapped/generated/functions_list.txt | 1 + src/wrapped/generated/wrapper.c | 3 +++ src/wrapped/generated/wrapper.h | 1 + src/wrapped/wrappedlibc_private.h | 4 ++-- 4 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 18507ec7..09245b14 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -527,6 +527,7 @@ #() LFpLLp #() LFpLpp #() LFppii +#() LFppip #() LFppLL #() LFppLp #() LFpppp diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 92ae4a7d..9216086e 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -560,6 +560,7 @@ typedef uintptr_t (*LFpuuu_t)(void*, uint64_t, uint64_t, uint64_t); typedef uintptr_t (*LFpLLp_t)(void*, uintptr_t, uintptr_t, void*); typedef uintptr_t (*LFpLpp_t)(void*, uintptr_t, void*, void*); typedef uintptr_t (*LFppii_t)(void*, void*, int64_t, int64_t); +typedef uintptr_t (*LFppip_t)(void*, void*, int64_t, void*); typedef uintptr_t (*LFppLL_t)(void*, void*, uintptr_t, uintptr_t); typedef uintptr_t (*LFppLp_t)(void*, void*, uintptr_t, void*); typedef uintptr_t (*LFpppp_t)(void*, void*, void*, void*); @@ -1712,6 +1713,7 @@ void LFpuuu(x64emu_t *emu, uintptr_t fcn) { LFpuuu_t fn = (LFpuuu_t)fcn; R_RAX=( void LFpLLp(x64emu_t *emu, uintptr_t fcn) { LFpLLp_t fn = (LFpLLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); } void LFpLpp(x64emu_t *emu, uintptr_t fcn) { LFpLpp_t fn = (LFpLpp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void LFppii(x64emu_t *emu, uintptr_t fcn) { LFppii_t fn = (LFppii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } +void LFppip(x64emu_t *emu, uintptr_t fcn) { LFppip_t fn = (LFppip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX); } void LFppLL(x64emu_t *emu, uintptr_t fcn) { LFppLL_t fn = (LFppLL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX); } void LFppLp(x64emu_t *emu, uintptr_t fcn) { LFppLp_t fn = (LFppLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); } void LFpppp(x64emu_t *emu, uintptr_t fcn) { LFpppp_t fn = (LFpppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } @@ -2797,6 +2799,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &LFpLLp) return 1; if (fun == &LFpLpp) return 1; if (fun == &LFppii) return 1; + if (fun == &LFppip) return 1; if (fun == &LFppLL) return 1; if (fun == &LFppLp) return 1; if (fun == &LFpppp) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 19b5dece..e448afa9 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -557,6 +557,7 @@ void LFpuuu(x64emu_t *emu, uintptr_t fnc); void LFpLLp(x64emu_t *emu, uintptr_t fnc); void LFpLpp(x64emu_t *emu, uintptr_t fnc); void LFppii(x64emu_t *emu, uintptr_t fnc); +void LFppip(x64emu_t *emu, uintptr_t fnc); void LFppLL(x64emu_t *emu, uintptr_t fnc); void LFppLp(x64emu_t *emu, uintptr_t fnc); void LFpppp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index 40b0224f..af97f312 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -1865,8 +1865,8 @@ GO(__strtoul_internal, LFppii) //GOW(strtoul_l, GOW(strtoull, LFppi) //GO(__strtoull_internal, -//GOW(__strtoull_l, -//GOW(strtoull_l, +GOW(__strtoull_l, LFppip) +GOW(strtoull_l, LFppip) //GO(strtoumax, //GOW(strtouq, //GO(__strverscmp, -- cgit 1.4.1