能力值:
( LV2,RANK:10 )
|
-
-
2 楼
然而现在是2004了,而那个文章借鉴的那个syscall方式(原作者称支持win10 2004)也无法正常运行在最新的2004上面, 估计他说的2004是指2004预览版, 新版的2004,修补得更严密了.动不动就给你一个System Thread Exception
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
flarejune
然而现在是2004了,而那个文章借鉴的那个syscall方式(原作者称支持win10 2004)也无法正常运行在最新的2004上面,
估计他说的2004是指2004预览版,
新版的2004,修补得 ...
2004就是19041.... System Thread Exception 是自己的问题...
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
syser
2004就是19041....
System Thread Exception 是自己的问题...
查SSDT Shadow表的操作,调用KeAttachProcess马上就System Thread Exception了. 在2004之前的所有版本都没有这个限制的. 无论是进程附加还是栈内存附加,一律给你System Thread Exception.
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
flarejune
查SSDT Shadow表的操作,调用KeAttachProcess马上就System Thread Exception了.
在2004之前的所有版本都没有这个限制的.
无论是进程附加还是栈内存附 ...
还是自己问题 可以放DUMP上来
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
DUMP个蛋啊,你自己调用KeAttachProcess一次不就知道了.
|
能力值:
( LV3,RANK:30 )
|
-
-
7 楼
好像不能多函数hook 卸载也有问题 重新钩无效
|
能力值:
( LV9,RANK:280 )
|
-
-
8 楼
flarejune
查SSDT Shadow表的操作,调用KeAttachProcess马上就System Thread Exception了.
在2004之前的所有版本都没有这个限制的.
无论是进程附加还是栈内存附 ... 自己的问题,实测19587无任何问题,比19041还高
最后于 2020-5-26 21:19
被hzqst编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
巨硬都被你们气炸了
|
能力值:
( LV6,RANK:90 )
|
-
-
10 楼
好几个月前就放出来了,思路就是继续前边的操作,然后 GetCpuClock = 1,hookKePerformanceCounterRoutine
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
HadesW
好几个月前就放出来了,思路就是继续前边的操作,然后 GetCpuClock = 1,hookKePerformanceCounterRoutine
那个老外的有问题,有人给他改了一下,fin
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
hzqst
flarejune
查SSDT Shadow表的操作,调用KeAttachProcess马上就System Thread Exception了.
在2004之前 ...
#include <ntifs.h>
typedef struct _KPROCESS
{
CHAR _pad0[0x2e8];
ULONG UniqueProcessId;
LIST_ENTRY ActiveProcessLinks;
CHAR _pad1[0x150];
CHAR ImageFileName[15];
CHAR _pad2[0x39];
UINT32 ActiveThreads;
} EPROCESS;
LONG GetProcessIdByName(const char* processName)
{
auto* const startProcess = PsGetCurrentProcess();
auto* currentProcess = startProcess;
do
{
if (!currentProcess->ActiveThreads)
continue;
STRING currentName;
RtlInitString(¤tName, (PCSZ)currentProcess->ImageFileName);
if (_stricmp(processName, currentProcess->ImageFileName) == 0)
return currentProcess->UniqueProcessId;
}
while ((currentProcess = CONTAINING_RECORD(currentProcess->ActiveProcessLinks.Flink, EPROCESS, ActiveProcessLinks)) != startProcess);
return 0;
}
extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT , IN PUNICODE_STRING )
{
const auto explorerPid = GetProcessIdByName("winlogon.exe");
if (explorerPid != 0)
{
PEPROCESS EProcess = nullptr;
if (NT_SUCCESS(PsLookupProcessByProcessId((HANDLE)explorerPid, &EProcess)))
{
//win10 2004 (19041+)必定蓝屏:System Thread Exception Not Handle,19041之前的系统可以正常
KeAttachProcess(EProcess);
KeDetachProcess();
}
}
return STATUS_SUCCESS;
}
|
能力值:
( LV3,RANK:30 )
|
-
-
13 楼
膜拜大肉基。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
插眼!膜拜大佬
最后于 2020-5-27 15:45
被xiaohucode编辑
,原因: 1
|
能力值:
( LV4,RANK:50 )
|
-
-
15 楼
flarejune
#include <ntifs.h>
typedef struct _KPROCESS
{
&nbs ...
本地测了下 ,没问题。
|
能力值:
( LV9,RANK:280 )
|
-
-
16 楼
flarejune
#include <ntifs.h>
typedef struct _KPROCESS
{
&nbs ...
微软都不让用这个api了
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
wowocock
本地测了下 ,没问题。
那么邪门?肯定是有什么细节不一样. 你应该不是在DriverEntry里面调用的,你应该是被RING3的程序间接调用(HOOK),或者是基于驱动IO调用的. 如果是这样调用的话,根本无需AttachProcess了,你本身已经是附加到进程去的了.
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
hzqst
微软都不让用这个api了
正解,新版的WIN10,加入了更多的限制.
|
能力值:
( LV4,RANK:50 )
|
-
-
19 楼
flarejune
那么邪门?肯定是有什么细节不一样.
你应该不是在DriverEntry里面调用的,你应该是被RING3的程序间接调用(HOOK),或者是基于驱动IO调用的.
如果是这样调用的话,根本无需Attac ...
就是DRIVERENTRY里直接写个函数调用的。建议你用个干净的系统测试。
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
wowocock
就是DRIVERENTRY里直接写个函数调用的。建议你用个干净的系统测试。
绝对干净的,在VM Ware 15.5.2里面跑的,全新安装的,打上所有的系统更新. 你居然没事,让我头大了,到底问题出在哪里?
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
flarejune
绝对干净的,在VM Ware 15.5.2里面跑的,全新安装的,打上所有的系统更新.
你居然没事,让我头大了,到底问题出在哪里?
大表哥已经说的很清楚了,微软都不让用KeAttachProcess了,KeStackAttachProcess试
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
tmflxw
大表哥已经说的很清楚了,微软都不让用KeAttachProcess了,KeStackAttachProcess试
当时发现KeAttachProcess不给使用的时候,马上就测试了KeStackAttachProcess,一样不可以了的. 我知道是微软禁止使用了,但是楼主说测试正常使用,我就懵逼了,我严重怀疑他的2004是之前的那个预览版,但是编译号却是19041, 真的蛋疼
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
tmflxw
大表哥已经说的很清楚了,微软都不让用KeAttachProcess了,KeStackAttachProcess试
现在要获取SSDSHADOW,可以使用倒推的方式计算出来,在infinityhook里面判断CallNumber,发现大于0x1000的,就是UserCall,根据CallNumber和当前的FunctionAddress倒推可以推到SSDShadow的表头.
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
lytywg
巨硬都被你们气炸了[em_19]
最后的结果就是进PG或者承认其存在----打不过就加入
|
能力值:
(RANK:0 )
|
-
-
25 楼
打不过就加入,这是不要脸,魔鬼的法,当心啊.
|
|
|