Gemfory
29.01.2026, 01:14
C-подобный:
mov rcx
,
[
hKernel32
]
lea rdx
,
[
sGetSystemInfo
]
call
[
_GetProcAddress
]
lea rcx
,
[
sys_info
]
call rax
mov eax
,
dword
[
sys_info
+
32
]
cmp eax
,
2
jl
.
ne_found
Вообщем, сделал реализацию анти-эмуляции дефендера, просто проверяю как он реагирует. Если ядер меньше двух - процесс отключается.
Чисто в теории, это может спасти от эмуляции на 11 винде?
Если нет, просьба рассказать про какие-то другие методы, мейби намного интереснее, хотелось бы для себя что-то новое узнать.
У меня в планах было просто запустить цикл на пару миллионов тактов чтобы дефендер не смог дойти до OEP и эмуляция упала.
А вообще, та же EDR детектит подобную манипуляцию банально через хук на GetSystemInfo:
C:
void
WINAPI
HookGetSystemInfo
(
LPSYSTEM_INFO lpSystemInfo
)
{
pGetSystemInfoOriginal
(
lpSystemInfo
)
;
if
(
lpSystemInfo
->
dwNumberOfProcessors
dwNumberOfProcessors
=
8
;
}
}
Это так, для тех кто думает что это какая-то супер техника.
mov rcx
,
[
hKernel32
]
lea rdx
,
[
sGetSystemInfo
]
call
[
_GetProcAddress
]
lea rcx
,
[
sys_info
]
call rax
mov eax
,
dword
[
sys_info
+
32
]
cmp eax
,
2
jl
.
ne_found
Вообщем, сделал реализацию анти-эмуляции дефендера, просто проверяю как он реагирует. Если ядер меньше двух - процесс отключается.
Чисто в теории, это может спасти от эмуляции на 11 винде?
Если нет, просьба рассказать про какие-то другие методы, мейби намного интереснее, хотелось бы для себя что-то новое узнать.
У меня в планах было просто запустить цикл на пару миллионов тактов чтобы дефендер не смог дойти до OEP и эмуляция упала.
А вообще, та же EDR детектит подобную манипуляцию банально через хук на GetSystemInfo:
C:
void
WINAPI
HookGetSystemInfo
(
LPSYSTEM_INFO lpSystemInfo
)
{
pGetSystemInfoOriginal
(
lpSystemInfo
)
;
if
(
lpSystemInfo
->
dwNumberOfProcessors
dwNumberOfProcessors
=
8
;
}
}
Это так, для тех кто думает что это какая-то супер техника.