diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-04-03 19:15:19 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-04-03 19:15:19 +0200 |
| commit | f667ec631d5be32be14b8b3be00cd3f602ee1429 (patch) | |
| tree | 993c34bb95f2b8c882e529d35ff3f30870e66e29 | |
| parent | 7bcf1cc0aed10ff948367f2dbe7ee9a815c9a9bc (diff) | |
| download | box64-f667ec631d5be32be14b8b3be00cd3f602ee1429.tar.gz box64-f667ec631d5be32be14b8b3be00cd3f602ee1429.zip | |
Added some more libc wrapped functions
| -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_private.h | 10 |
4 files changed, 9 insertions, 5 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 599a9bca..c4b97fe7 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -42,6 +42,7 @@ #() dFd #() dFp #() lFE +#() lFv #() lFi #() lFl #() lFp diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 9c525227..975ffac0 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -75,6 +75,7 @@ typedef double (*dFu_t)(uint32_t); typedef double (*dFd_t)(double); typedef double (*dFp_t)(void*); typedef intptr_t (*lFE_t)(x64emu_t*); +typedef intptr_t (*lFv_t)(void); typedef intptr_t (*lFi_t)(int32_t); typedef intptr_t (*lFl_t)(intptr_t); typedef intptr_t (*lFp_t)(void*); @@ -1172,6 +1173,7 @@ void dFu(x64emu_t *emu, uintptr_t fcn) { dFu_t fn = (dFu_t)fcn; emu->xmm[0].d[0] void dFd(x64emu_t *emu, uintptr_t fcn) { dFd_t fn = (dFd_t)fcn; emu->xmm[0].d[0]=fn(emu->xmm[0].d[0]); } void dFp(x64emu_t *emu, uintptr_t fcn) { dFp_t fn = (dFp_t)fcn; emu->xmm[0].d[0]=fn((void*)R_RDI); } void lFE(x64emu_t *emu, uintptr_t fcn) { lFE_t fn = (lFE_t)fcn; R_RAX=(intptr_t)fn(emu); } +void lFv(x64emu_t *emu, uintptr_t fcn) { lFv_t fn = (lFv_t)fcn; R_RAX=(intptr_t)fn(); } void lFi(x64emu_t *emu, uintptr_t fcn) { lFi_t fn = (lFi_t)fcn; R_RAX=(intptr_t)fn((int64_t)R_RDI); } void lFl(x64emu_t *emu, uintptr_t fcn) { lFl_t fn = (lFl_t)fcn; R_RAX=(intptr_t)fn((intptr_t)R_RDI); } void lFp(x64emu_t *emu, uintptr_t fcn) { lFp_t fn = (lFp_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 642f68a4..da6e5244 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -72,6 +72,7 @@ void dFu(x64emu_t *emu, uintptr_t fnc); void dFd(x64emu_t *emu, uintptr_t fnc); void dFp(x64emu_t *emu, uintptr_t fnc); void lFE(x64emu_t *emu, uintptr_t fnc); +void lFv(x64emu_t *emu, uintptr_t fnc); void lFi(x64emu_t *emu, uintptr_t fnc); void lFl(x64emu_t *emu, uintptr_t fnc); void lFp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index bd32a3ad..877a7cd0 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -722,7 +722,7 @@ GOW(inet_pton, iFipp) //GO(__inet_pton_length, //GO(initgroups, //GO(init_module, -//GOW(initstate, +GOW(initstate, pFupL) //GOW(initstate_r, //GO(innetgr, GO(inotify_add_watch, iFipu) @@ -1080,7 +1080,7 @@ GOW(localtime_r, pFpp) //GO(lockf, //GOW(lockf64, //DATAB(locs, -//GOW(_longjmp, vFEpi) +GOM(_longjmp, vFEpi) //Weak GOM(longjmp, vFEpi) //weak GOM(__longjmp_chk, vFEpi) //GO(lrand48, @@ -1449,7 +1449,7 @@ GOM(qsort_r, vFEpLLpp) //Weak //GO(quotactl, //GO(raise, GO(rand, iFv) -//GOW(random, +GOW(random, lFv) //GOW(random_r, GO(rand_r, iFp) GO(__rawmemchr, pFpi) @@ -1646,7 +1646,7 @@ GOW(setrlimit64, iFip) GOW(setsockopt, iFiiipu) //GO(setsourcefilter, //GO(setspent, -//GOW(setstate, +GOW(setstate, pFp) //GOW(setstate_r, //GOW(settimeofday, //GOW(setttyent, @@ -1723,7 +1723,7 @@ GOM(__sprintf_chk, iFEpilpV) GOW(srand, vFu) //GO(srand48, //GOW(srand48_r, -//GOW(srandom, +GOW(srandom, vFu) //GOW(srandom_r, GOM(sscanf, iFEppV) //GOW(ssignal, |