Tests failing on x64 GNU/Linux (Ubuntu 22.04.2 LTS)
jimppan opened this issue · 1 comments
[Info] - Trampoline - Bounds of relative addresses accessed [0xffffffffffffffff, (nil)]
[Info] - Trampoline - Attempting to allocate trampoline within +-2GB range of 0x55b6ae5fe2d0
[Info] - Trampoline - Allocated trampoline at 0x55b72e5fd000 (using 1 attempts)
Test: "x64SystemVcall0" was passed
[Info] - Trampoline - Bounds of relative addresses accessed [0xffffffffffffffff, (nil)]
[Info] - Trampoline - Attempting to allocate trampoline within +-2GB range of 0x55b6ae5fe340
[Info] - Trampoline - Allocated trampoline at 0x7efd4c248000 (using 1 attempts)
[Error] - Decoder - Failed to relocate a rip-relative memory instruction. RelocatedRelativeAddress: 0xffffd6b96247eba5
[0x55b6ae5fe348]
[Error] - Decoder - Failed to relocate rip-relative instruction
[Error] - Detour - Relocation of bytes replaced by hook failed
[Error] - Detour - Failed to create trampoline
dynohook_test: DynoHook/build/tests/testx64SystemVcall1.h:77: void testx64SystemVcall1::test(): Assertion `g_PreMyFuncCallCount == 1' failed.
Unsure if its supposed to fully work on x64 linux or not
Current trampoline allocator is not perfect. It requires major rework. I will try to find/implement better solution. May be in some situations where trampoline couldn't be allocated in 2GB range, code-cave approach should be used instead