原理读取CPU每一个核心上的_KPRCB +8 的CurrenThread 然后转EPROCEESS
然后在平常方式获取的EPROCESS列表里面查找 未能找到判定为隐藏的线程或进程
signed int v0; // edi
unsigned __int8 i; // bl
__int64 (*v2)(void); // rax
__int64 v3; // rcx
unsigned __int8 j; // bl
__int64 v5; // rcx
__int64 v6; // rax
__int64 v8[33]; // [rsp+20h] [rbp-108h]
sub_140076D40(v8, 0i64, 0x100ui64);
v0 = KeNumberProcessors[0];KeNumberProcessors获取CPU核心数
if ( KeNumberProcessors[0] > 32 )
v0 = 32;
for ( i = 0; i < v0; v8[v3] = (__int64)v2 )
{
v2 = sub_14003F930();//获取KPRCB
v3 = i++;
}
do
{
if ( byte_1401242F0 )
break;
for ( j = 0; j < v0; ++j )
{
v5 = v8[j];
if ( v5 )
{
v6 = PsGetThreadProcess(*(_QWORD )(v5 + 8));//struct _KTHREAD CurrentThread; //0x8
sub_140043FA0(v6);
}
}
}
while ( sub_140039270(10u) );