From bd52b1a5a3100daff8a937aa7ead4222af4ed66a Mon Sep 17 00:00:00 2001 From: hakril Date: Mon, 10 Feb 2025 15:26:41 +0100 Subject: [PATCH] More tests adaptation for arm64 --- tests/pfwtest.py | 2 +- windows/winobject/handle.py | 2 ++ windows/winobject/system_module.py | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/pfwtest.py b/tests/pfwtest.py index 2e3969b..e0fad45 100644 --- a/tests/pfwtest.py +++ b/tests/pfwtest.py @@ -21,7 +21,7 @@ windows_64bit_only = pytest.mark.skipif(not is_windows_64_bits, reason="Test for process_32bit_only = pytest.mark.skipif(not is_process_32_bits, reason="Test for 32bits process only") process_64bit_only = pytest.mark.skipif(not is_process_64_bits, reason="Test for 64bits process only") -process_syswow_only = pytest.mark.skipif(not is_process_syswow, reason="Test for syswow process only") +process_syswow_only = pytest.mark.skipif((not is_process_syswow) or windows.current_process._is_x86_on_arm64, reason="Test for syswow process only (ARM64 computer not supported)") require_admin = pytest.mark.skipif(not is_admin, reason="Test must be launched as admin") def process_architecture_only(target_archi): diff --git a/windows/winobject/handle.py b/windows/winobject/handle.py index 03ba471..eb4deea 100644 --- a/windows/winobject/handle.py +++ b/windows/winobject/handle.py @@ -144,6 +144,8 @@ def enumerate_handles(): def enumerate_handles_syswow64(): + if windows.current_process._is_x86_on_arm64: + raise NotImplementedError("Crossing heaven gate x86 -> arm64 not implemented") size_needed = gdef.ULONG() # Should at least be sizeof(gdef.SYSTEM_HANDLE_INFORMATION) tmp_buffer = windows.utils.BUFFER(gdef.SYSTEM_HANDLE_INFORMATION64)() diff --git a/windows/winobject/system_module.py b/windows/winobject/system_module.py index cb65ff2..5d8977e 100644 --- a/windows/winobject/system_module.py +++ b/windows/winobject/system_module.py @@ -44,6 +44,8 @@ def enumerate_kernel_modules(): return list(modules) def enumerate_kernel_modules_syswow64(): + if windows.current_process._is_x86_on_arm64: + raise NotImplementedError("Crossing heaven gate x86 -> arm64 not implemented") cbsize = gdef.DWORD() windows.syswow64.NtQuerySystemInformation_32_to_64(gdef.SystemModuleInformation, None, 0, ctypes.addressof(cbsize)) raw_buffer = (cbsize.value * gdef.BYTE)()