diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-07-03 10:32:48 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-07-03 10:32:48 +0200 |
| commit | 112bc0d83fa4d4012cf6df4a91ccad45ea115cea (patch) | |
| tree | 719115876ceca16cfe45c56c80c50b4d860385ed /src | |
| parent | 501a4a8956e75596fdcb12820169a2072c75bc64 (diff) | |
| download | box64-112bc0d83fa4d4012cf6df4a91ccad45ea115cea.tar.gz box64-112bc0d83fa4d4012cf6df4a91ccad45ea115cea.zip | |
More libc wrapped functions
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 1 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc_private.h | 10 |
4 files changed, 10 insertions, 5 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 6d6315a2..13a611b6 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -34,6 +34,7 @@ #() uFv #() uFi #() uFu +#() uFU #() uFd #() uFp #() UFv diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 906e7828..bda81e95 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -68,6 +68,7 @@ typedef uint16_t (*WFp_t)(void*); typedef uint64_t (*uFv_t)(void); typedef uint64_t (*uFi_t)(int64_t); typedef uint64_t (*uFu_t)(uint64_t); +typedef uint64_t (*uFU_t)(uint64_t); typedef uint64_t (*uFd_t)(double); typedef uint64_t (*uFp_t)(void*); typedef uint64_t (*UFv_t)(void); @@ -1369,6 +1370,7 @@ void WFp(x64emu_t *emu, uintptr_t fcn) { WFp_t fn = (WFp_t)fcn; R_RAX=(unsigned void uFv(x64emu_t *emu, uintptr_t fcn) { uFv_t fn = (uFv_t)fcn; R_RAX=(uint64_t)fn(); } void uFi(x64emu_t *emu, uintptr_t fcn) { uFi_t fn = (uFi_t)fcn; R_RAX=(uint64_t)fn((int64_t)R_RDI); } void uFu(x64emu_t *emu, uintptr_t fcn) { uFu_t fn = (uFu_t)fcn; R_RAX=(uint64_t)fn((uint64_t)R_RDI); } +void uFU(x64emu_t *emu, uintptr_t fcn) { uFU_t fn = (uFU_t)fcn; R_RAX=(uint64_t)fn((uint64_t)R_RDI); } void uFd(x64emu_t *emu, uintptr_t fcn) { uFd_t fn = (uFd_t)fcn; R_RAX=(uint64_t)fn(emu->xmm[0].d[0]); } void uFp(x64emu_t *emu, uintptr_t fcn) { uFp_t fn = (uFp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI); } void UFv(x64emu_t *emu, uintptr_t fcn) { UFv_t fn = (UFv_t)fcn; R_RAX=fn(); } @@ -2678,6 +2680,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &uFv) return 1; if (fun == &uFi) return 1; if (fun == &uFu) return 1; + if (fun == &uFU) return 1; if (fun == &uFd) return 2; if (fun == &uFp) return 1; if (fun == &UFv) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index d20a1459..2ef5376b 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -64,6 +64,7 @@ void WFp(x64emu_t *emu, uintptr_t fnc); void uFv(x64emu_t *emu, uintptr_t fnc); void uFi(x64emu_t *emu, uintptr_t fnc); void uFu(x64emu_t *emu, uintptr_t fnc); +void uFU(x64emu_t *emu, uintptr_t fnc); void uFd(x64emu_t *emu, uintptr_t fnc); void uFp(x64emu_t *emu, uintptr_t fnc); void UFv(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index 10723f26..a76c5235 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -655,11 +655,11 @@ GOW(globfree64, vFp) GO(gmtime, pFp) GO(__gmtime_r, pFpp) GOW(gmtime_r, pFpp) -//GOW(gnu_dev_major, -//GOW(gnu_dev_makedev, -//GOW(gnu_dev_minor, -//GOW(gnu_get_libc_release, -//GOW(gnu_get_libc_version, +GOW(gnu_dev_major, uFU) +GOW(gnu_dev_makedev, UFii) +GOW(gnu_dev_minor, uFU) +GOW(gnu_get_libc_release, pFv) +GOW(gnu_get_libc_version, pFv) //GO(grantpt, //GOW(group_member, //GOW(gsignal, |