diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-12-10 18:06:10 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-12-10 18:06:10 +0100 |
| commit | b4b8617a92ab7768d7a33451321cd64cb3e8ad8b (patch) | |
| tree | f9e135b94c6e760a8f11a77da6fec3df1aed0024 | |
| parent | 20bad4e126843e6e8fbc014d903714752bd116c4 (diff) | |
| download | box64-b4b8617a92ab7768d7a33451321cd64cb3e8ad8b.tar.gz box64-b4b8617a92ab7768d7a33451321cd64cb3e8ad8b.zip | |
[BOX32][WRAPPER] Fixed time signature (now steamcmd connect)
| -rw-r--r-- | src/wrapped32/generated/functions_list.txt | 3 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.c | 6 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.h | 3 | ||||
| -rwxr-xr-x | src/wrapped32/wrappedlibc_private.h | 4 |
4 files changed, 10 insertions, 6 deletions
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt index ef74009e..434e26ea 100644 --- a/src/wrapped32/generated/functions_list.txt +++ b/src/wrapped32/generated/functions_list.txt @@ -120,7 +120,7 @@ #() vFbp_ -> vFB #() iFbp_ -> iFB #() iFBp_ -> iFB -#() LErl_ -> LEB +#() LEBL_ -> LEB #() lFrll_ -> lFB #() iEBllll_ -> iEB #() vFbuuipWCCp_ -> vFB @@ -478,6 +478,7 @@ #() iEiup -> iEiup #() iEill -> iEill #() iEiLi -> iEiLi +#() iEiLp -> iEiLp #() iFipi -> iFipi #() iEipi -> iEipi #() iEipu -> iEipu diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c index c337ac67..9645c703 100644 --- a/src/wrapped32/generated/wrapper32.c +++ b/src/wrapped32/generated/wrapper32.c @@ -211,7 +211,7 @@ typedef void* (*XFp_t)(void*); typedef void (*vFbp__t)(struct_p_t*); typedef int32_t (*iFbp__t)(struct_p_t*); typedef int32_t (*iFBp__t)(struct_p_t*); -typedef uintptr_t (*LErl__t)(struct_l_t*); +typedef uintptr_t (*LEBL__t)(struct_L_t*); typedef intptr_t (*lFrll__t)(struct_ll_t*); typedef int32_t (*iEBllll__t)(struct_llll_t*); typedef void (*vFbuuipWCCp__t)(struct_uuipWCCp_t*); @@ -569,6 +569,7 @@ typedef int32_t (*iEiuu_t)(int32_t, uint32_t, uint32_t); typedef int32_t (*iEiup_t)(int32_t, uint32_t, void*); typedef int32_t (*iEill_t)(int32_t, intptr_t, intptr_t); typedef int32_t (*iEiLi_t)(int32_t, uintptr_t, int32_t); +typedef int32_t (*iEiLp_t)(int32_t, uintptr_t, void*); typedef int32_t (*iFipi_t)(int32_t, void*, int32_t); typedef int32_t (*iEipi_t)(int32_t, void*, int32_t); typedef int32_t (*iEipu_t)(int32_t, void*, uint32_t); @@ -1864,7 +1865,7 @@ void XFp_32(x64emu_t *emu, uintptr_t fcn) { XFp_t fn = (XFp_t)fcn; R_EAX = to_pt void vFbp__32(x64emu_t *emu, uintptr_t fcn) { vFbp__t fn = (vFbp__t)fcn; struct_p_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_p(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void iFbp__32(x64emu_t *emu, uintptr_t fcn) { iFbp__t fn = (iFbp__t)fcn; struct_p_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_p(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void iFBp__32(x64emu_t *emu, uintptr_t fcn) { iFBp__t fn = (iFBp__t)fcn; struct_p_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } -void LErl__32(x64emu_t *emu, uintptr_t fcn) { LErl__t fn = (LErl__t)fcn; errno = emu->libc_err; struct_l_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_l(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ulong(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); emu->libc_err = errno; } +void LEBL__32(x64emu_t *emu, uintptr_t fcn) { LEBL__t fn = (LEBL__t)fcn; errno = emu->libc_err; struct_L_t arg_4={0}; R_EAX = to_ulong(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); emu->libc_err = errno; } void lFrll__32(x64emu_t *emu, uintptr_t fcn) { lFrll__t fn = (lFrll__t)fcn; struct_ll_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_ll(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_long(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); } void iEBllll__32(x64emu_t *emu, uintptr_t fcn) { iEBllll__t fn = (iEBllll__t)fcn; errno = emu->libc_err; struct_llll_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_llll(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); emu->libc_err = errno; } void vFbuuipWCCp__32(x64emu_t *emu, uintptr_t fcn) { vFbuuipWCCp__t fn = (vFbuuipWCCp__t)fcn; struct_uuipWCCp_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_uuipWCCp(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_uuipWCCp(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } @@ -2222,6 +2223,7 @@ void iEiuu_32(x64emu_t *emu, uintptr_t fcn) { iEiuu_t fn = (iEiuu_t)fcn; errno = void iEiup_32(x64emu_t *emu, uintptr_t fcn) { iEiup_t fn = (iEiup_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); emu->libc_err = errno; } void iEill_32(x64emu_t *emu, uintptr_t fcn) { iEill_t fn = (iEill_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_long(from_ptri(long_t, R_ESP + 12))); emu->libc_err = errno; } void iEiLi_32(x64emu_t *emu, uintptr_t fcn) { iEiLi_t fn = (iEiLi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12)); emu->libc_err = errno; } +void iEiLp_32(x64emu_t *emu, uintptr_t fcn) { iEiLp_t fn = (iEiLp_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12)); emu->libc_err = errno; } void iFipi_32(x64emu_t *emu, uintptr_t fcn) { iFipi_t fn = (iFipi_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); } void iEipi_32(x64emu_t *emu, uintptr_t fcn) { iEipi_t fn = (iEipi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); emu->libc_err = errno; } void iEipu_32(x64emu_t *emu, uintptr_t fcn) { iEipu_t fn = (iEipu_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); emu->libc_err = errno; } diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h index c30933a9..d8657ce4 100644 --- a/src/wrapped32/generated/wrapper32.h +++ b/src/wrapped32/generated/wrapper32.h @@ -161,7 +161,7 @@ void XFp_32(x64emu_t *emu, uintptr_t fnc); void vFbp__32(x64emu_t *emu, uintptr_t fnc); void iFbp__32(x64emu_t *emu, uintptr_t fnc); void iFBp__32(x64emu_t *emu, uintptr_t fnc); -void LErl__32(x64emu_t *emu, uintptr_t fnc); +void LEBL__32(x64emu_t *emu, uintptr_t fnc); void lFrll__32(x64emu_t *emu, uintptr_t fnc); void iEBllll__32(x64emu_t *emu, uintptr_t fnc); void vFbuuipWCCp__32(x64emu_t *emu, uintptr_t fnc); @@ -519,6 +519,7 @@ void iEiuu_32(x64emu_t *emu, uintptr_t fnc); void iEiup_32(x64emu_t *emu, uintptr_t fnc); void iEill_32(x64emu_t *emu, uintptr_t fnc); void iEiLi_32(x64emu_t *emu, uintptr_t fnc); +void iEiLp_32(x64emu_t *emu, uintptr_t fnc); void iFipi_32(x64emu_t *emu, uintptr_t fnc); void iEipi_32(x64emu_t *emu, uintptr_t fnc); void iEipu_32(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped32/wrappedlibc_private.h b/src/wrapped32/wrappedlibc_private.h index 307bbff8..8cc9ce30 100755 --- a/src/wrapped32/wrappedlibc_private.h +++ b/src/wrapped32/wrappedlibc_private.h @@ -724,7 +724,7 @@ GO(inotify_rm_watch, iEii) //DATA(_IO_2_1_stdout_, 152) //GO(_IO_adjust_column, uEupi) // _IO_adjust_wcolumn -GO(ioctl, iEiip) //the vararg is just to have optional arg of various type, but only 1 arg +GO(ioctl, iEiLp) //the vararg is just to have optional arg of various type, but only 1 arg //GO(_IO_default_doallocate, iES) //GO(_IO_default_finish, vESi) //GO(_IO_default_pbackfail, iESi) @@ -1815,7 +1815,7 @@ GO(tcsetpgrp, iEii) GO(tempnam, pEpp) //GOW(textdomain, pEp) // tfind // Weak -GO(time, LErl_) +GO(time, LEBL_) GO(timegm, LEriiiiiiiiilt_) // timelocal // Weak GO(timerfd_create, iEii) |