- UID
- 2
- 精华
- 积分
- 7736
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
楼主 |
发表于 2015-10-2 15:17:20
|
显示全部楼层
TsFltMgr.sys 深度分析
TsFltMgr.sys分析报告
该驱动为qq管家函数过滤驱动,提供SSDT、SSSDT、进程和线程回调等过滤操作,导出接口给TsKsp.sys使用,2者共同做函数过滤操作,TsFltMgr提供设置函数过滤的框架,而实际拦截过程在TsKsp中。设备名\\Device\\TsFltMgr ,符号名\\DosDevices\\TsFltMgr 。加密手段:Rabbit算法、MD5算法。通过InlineHook KifastCallEntry实现挂钩。
目录
TsFltMgr.sys分析报告 1
一、 驱动入口DriverEntry 2
1.1 过滤模型 3
1.2 检查当前系统是否为默认挂钩系统 3
1.3 打开TsFltMgr日志记录 4
1.4 控制信息 4
1.5 全局表 4
1.6 Proxy*函数模型 19
二、 驱动接口Interface 22
2.1 DeviceExtension接口 22
2.2 SetEvaluateTime 22
2.3 AddDisablePrevFilter 23
2.4 SetPostFilter 23
2.5 ExecOriginFromPacket 23
2.6 AddPrevFilter 23
2.7 RemovePrevFilter 24
2.8 GetCurrentHookInfo 25
2.9 GetDProxyTable 26
三、 控制码 27
四、 默认派遣例程 28
3.1 根据进程id结束进程 28
五、 基础库 29
5.1 获取注册表键值 29
5.2 通过进程名获取进程ID 31
六、 InlineHook KiFastCallEntry 32
6.1 获取SSDT/SSSDT/Hook点 33
6.2 从KiSystemService获取KiFastCallEntry 36
6.3 获取SSSDT信息 36
6.4 初始化InlineHook KiFastCallEntry跳转表 38
6.5 获取系统服务号的2种方式 41
6.6 InlineHook过程 42
6.7 构造InlineHook跳转后的执行语句 45
6.8 强制单核互斥执行指定Procedure 48
6.9 进行SSDT hook 49
6.10 对重要回调(进程回调、线程回调、映像加载回调)的挂钩 52
6.11 Hook KeUserModeCallback 54
6.12 交换内存 55
6.13 获取函数Iat偏移 55
6.14 另一种方式获取ShadowSSDT信息 56
一、 驱动入口DriverEntry
创建\\Device\\TSSysKit设备和\\DosDevices\\TSSysKit符号链接
设置DeviceExtension为通信接口(Interface函数指针)
分别注册IRP_MJ_CREATE、IRP_MJ_CLOSE、IRP_MJ_DEVICE_CONTROL、IRP_MJ_SHUTDOWN(关机回调)派遣例程为,CreateCloseDispatch、DeviceIoControlDispatch、ShutdownDispatch
注册”Boot驱动加载结束”回调DriverReinitializationRoutine
为注册表日志记录分配资源RegLogSpace
检查当前系统是否为注册表version键指定的系统,如果在列表中则在挂钩KiFastCallEntry时需要做额外工作
设置注册表键IsBsod为1,用于检测该驱动是否引起蓝屏(正常关机置0)
获取系统BuildNumber
分配和设置”内核Api代理”结构
挂钩KiFastCallEntry
挂钩重要回调
启动注册表日志记录
挂钩KeUserModeCallback
记录当前配置
1.1 过滤模型
① Ntdll.NtCreateFile通过Sysenter调用进入nt.KiFastCallEntry
② 在nt.KiFastCallEntry 执行call ebx(原始为nt.NtCreateFile)前跳到TsFltMgr. InlineKiFastCallEntry
③ 执行进入TsFltMgr.HookFilter,在这里通过ServiceMapTable表映射到对应Dproxy元素,将Dproxy->ProxyNtCreateFile设置到ebx,将其设置为ebx
④ Nt.KiFastCallEntry执行call ebx,进入ProxyNtCreateFile
⑤ 构造FilterPacket结构(用于承载参数、原始api和PostFilterFunc执行的所有过滤函数都用到),依次执行Dproxy->PrevFilterSlot的16个过滤函数(PrevFilter是Tsksp事先设置好的)
⑥ 依次执行单个Tsksp.PrevFilter,进行真正的过滤或对packet. PostFilterSlot进行设置
⑦ 返回TsFltMgr.ProxyNtCreateFile,执行nt.NtCreateFile
⑧ 执行packet. PostFilterSlot的16个过滤函数(Tsksp)
⑨ 返回nt.KiFastCallEntry
1.2 检查当前系统是否为默认挂钩系统
- BOOLEAN IsUnSupportedSystem()
- {
- /*注:\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Services\\TSKS version
- 存放没有预存 函数调用号ServiceIndex 的系统版本列表 格式:
- BuildNumber1;BuildNumber2;...
- 对于这些版本在进行SSDT Hook时,会临时取得服务号
- */
- NTSTATUS status;
- ULONG BuildNumber = 0,MajorVersion,MinorVersion;
- const int BufSize = 1024;
- ULONG Size,Type;
- WCHAR BuildNumberStr[10] = {0};
- BOOLEAN Match = FALSE;
- UNICODE_STRING UBuildNumber;
- WCHAR* Buffer = (WCHAR*)ExAllocatePool(NonPagedPool,BufSize);
- status = GetRegDataWithSizeAndType(L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Services\\TSKSP",L"version",
- Buffer,BufSize,&Size,&Type);
- if(NT_SUCCESS(status) && Type == REG_SZ && Size)
- {
- Buffer[510] = 0;
- RtlInitUnicodeString(&UBuildNumber,BuildNumberStr);
- PsGetVersion(&MajorVersion,&MinorVersion,&BuildNumber,NULL);
- RtlIntegerToUnicodeString(BuildNumber,10,&UBuildNumber);
- if(wcsstr((wchar_t*)Buffer,UBuildNumber.Buffer))
- Match = TRUE;
- }
- ExFreePool(Buffer);
- return Match;
- }
复制代码 1.3 打开TsFltMgr日志记录
在无保护情况下为\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Services\\TsFltMgr添加TsDbgLog键,内容设置为目标文件路径(例如\??\C:\TsDbgLog.txt),如果不存在会自动创建文件,重启生效。内容示例:
[0x00000000] 2015.09.27 20:05:24.109 TS TsFltMgr DbgHelper
[0x00000001] 2015.09.27 20:06:13.750 [Sysnap DbgLog] Block--> TableIndex 0, Process spoolsv.exe[1800]
[0x00000002] 2015.09.27 20:10:35.156 [Sysnap DbgLog] Block--> TableIndex 4, Process regedit.exe[2296]
[0x00000003] 2015.09.27 20:13:46.500 [Sysnap DbgLog] Block--> TableIndex 4, Process regedit.exe[2296]
DriverReinitializationRoutine中做初始化,此时最后一个boot驱动初始化完毕
在执行KiFastCallEntry hook时再次尝试启动打印日志线程
ExecPrevSlotFunc中,如果存在过滤函数进行了放行和拦截,都会打印日志
1.4 控制信息
禁止hook
\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Services\\TsFltMgr dws=1
\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\services\\QQSysMon\\DWS dws!=0
强制SSDT hook
\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Services\\TsFltMgr thm=1
关机回调
设置\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Services\\TsFltMgr IsBsod=0,以便下次启动检测是否TsFltMgr引起蓝屏
1.5 全局表
系统Build号与全局表索引对应关系
BuildNumber:
Win2000
2195 1
WinXp
2600 2
WinServer2003
3790 3
WinVista
6000 4
6001 5
6002 6
Win7
7600 7
7601 8
Win8
8102 9
8250 10
8400 11
8432 12
8441 12
8520 13
Win8.1
9200 14
9600 15
Win10
9841 16
9860 17
9926 18
10041 19
10049 20
未知 0
- enum
- {
- WIN2000=1,
- WINXP,
- WINXPSP3,
- WINVISTA,
- WINVISTASP1,
- WINVISTASP2,
- WIN7,
- WIN7SP1,
- WIN8_8102,
- WIN8_8250,
- WIN8_8400,
- WIN8_8432,
- WIN8_8441=WIN8_8432,
- WIN8_8520,
- WIN81_9200,
- WIN81_9600,
- WIN10_9841,
- WIN10_9860,
- WIN10_9926,
- WIN10_10041,
- WIN10_10049,
- BUILDMAX,
- };
- enum
- {
- SSDT=0,
- SSSDT=1,
- END=2,
- CALLBACK=3,
- };
- #define APINUMBER 105
- struct SProxy
- {
- ULONG ServiceTableType;//0:SSDT 1:Shadow SSDT 2:结束符
- PWCHAR ApiName;//函数名
- ULONG ProxyFunc;//代理函数地址
- ULONG ServiceIndex[BUILDMAX];
- ULONG IndexInTable;//在全局表中的索引
- };
- struct DProxy
- {
- ULONG ServiceTableType;//0:SSDT 1:Shadow SSDT 2:结束符 3:回调函数
- ULONG ServiceIndex;//服务号
- PWCHAR ApiName;//函数名
- ULONG TableIndex;//自定义序号
- BOOLEAN IsInitialized;
- ULONG PrevFilterRefCount;//引用计数
- ULONG PostFilterRefCount;//引用计数
- ULONG OriginFuncAddr;//原始函数地址
- ULONG ProxyFuncAddr;//代理函数地址
- PVOID Log;//用于记录日志
- KEVENT Lock;
- BOOLEAN DisablePrevFilter;//关闭Filter
- ULONG UsedSlotCount;// 当前使用的Slot个数
- FILTER_SLOT PrevFilterSlot[16];//过滤函数结构
- };
- struct FILTER_SLOT
- {
- ULONG Tag;
- ULONG CallCount;
- ULONG DeleteCount;
- KTIMER Timer;
- ULONG Filter;
- };
- struct FilterPacket
- {
- ULONG CurrentSlot;//当前Filter序号
- ULONG ParamNumber;//参数个数
- ULONG Params[12];//参数
- ULONG TagSlot[16];//标志过滤函数用,也可用于传递修改参数
- NTSTATUS Status;//执行结果
- ULONG OriginFuncAddr;//原始函数
- ULONG IndexInTable;//在DProxyTable中的索引
- ULONG Access;//访问权限
- ULONG PostFilterSlot[16];//过滤函数
- ULONG UsedSlotCount;//当前使用的Slot个数
- };
复制代码
TsFltMgr有3张表与函数过滤相关:
静态Api代理表SProxy SProxyTable[APINUMBER+1] 用于初始化后面2个表
动态Api代理表DProxy* DProxyTable[APINUMBER+1] 用于Proxy*函数中进行实际过滤操作 方便用SProxy指定的序号配置
DProxy* ServiceMapTable[2][1024] 用于InlineHook KiFastCallEntry改变ebx,映射ServiceIndex到Proxy*函数。函数前1024个用于存储SSDT函数,后1024用于存储SSSDT函数
可以用简单的python命令自动获取到g_ProxyApiTable内容
addr=0x25200
index=0
while index < 106:
if Dword(addr) == 0:
type="SSDT"
elif Dword(addr) == 1:
type="SSSDT"
else:
type="END"
ApiName=GetString(Dword(addr+4),-1,ASCSTR_UNICODE)
ProxyFunc="Proxy"+ApiName
print "{\n\t%s,L\"%s\",%s,\n\t{" %(type,ApiName,ProxyFunc)
print "\t\t%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d" %(Dword(addr+12),Dword(addr+16),Dword(addr+20),Dword(addr+24),Dword(addr+28),Dword(addr+32),Dword(addr+36),Dword(addr+40),Dword(addr+44),Dword(addr+48),Dword(addr+52),Dword(addr+56),Dword(addr+60),Dword(addr+64),Dword(addr+68),Dword(addr+72),Dword(addr+76),Dword(addr+80),Dword(addr+84),Dword(addr+88),Dword(addr+92))
print "\t},%d\n}," %(Dword(addr+96))
addr=addr+100
index=index+1
- struct SProxy SProxyTable[APINUMBER+1] =
- {
- {
- SSDT,L"ZwCreateKey",ProxyZwCreateKey,
- {
- 1023,35,41,43,64,64,64,70,70,347,351,351,350,350,350,354,355,355,356,359,359
- },0
- },
- {
- SSDT,L"ZwTerminateProcess",ProxyZwTerminateProcess,
- {
- 1023,224,257,266,338,334,334,370,370,35,35,35,35,35,35,35,36,36,36,36,36
- },1
- },
- {
- SSDT,L"ZwSetInformationFile",ProxyZwSetInformationFile,
- {
- 1023,194,224,233,305,301,301,329,329,78,79,79,78,78,78,81,82,82,82,82,82
- },2
- },
- {
- SSDT,L"ZwWriteFile",ProxyZwWriteFile,
- {
- 1023,237,274,284,359,355,355,396,396,4,5,5,5,5,5,6,7,7,7,7,7
- },3
- },
- {
- SSDT,L"ZwSetValueKey",ProxyZwSetValueKey,
- {
- 1023,215,247,256,328,324,324,358,358,48,48,48,48,48,48,49,50,50,50,50,50
- },4
- },
- {
- SSDT,L"ZwWriteVirtualMemory",ProxyZwWriteVirtualMemory,
- {
- 1023,240,277,287,362,358,358,399,399,1,2,2,2,2,2,3,4,4,4,4,4
- },5
- },
- {
- SSDT,L"ZwCreateFile",ProxyZwCreateFile,
- {
- 1023,32,37,39,60,60,60,66,66,351,356,356,355,355,355,360,361,361,362,365,365
- },6
- },
- {
- SSDT,L"ZwOpenProcess",ProxyZwOpenProcess,
- {
- 1023,106,122,128,194,194,194,190,190,220,222,222,221,221,221,224,225,225,226,227,227
- },7
- },
- {
- SSDT,L"ZwDeleteKey",ProxyZwDeleteKey,
- {
- 1023,53,63,66,123,123,123,103,103,310,314,314,313,313,313,317,318,318,319,321,321
- },8
- },
- {
- SSDT,L"ZwDeleteValueKey",ProxyZwDeleteValueKey,
- {
- 1023,55,65,68,126,126,126,106,106,307,311,311,310,310,310,314,315,315,316,318,318
- },9
- },
- {
- SSDT,L"ZwRequestWaitReplyPort",ProxyZwRequestWaitReplyPort,
- {
- 1023,176,200,208,275,276,276,299,299,108,110,110,109,109,109,112,113,113,114,114,114
- },10
- },
- {
- SSDT,L"ZwQueryValueKey",ProxyZwQueryValueKey,
- {
- 1023,155,177,185,252,252,252,266,266,143,145,145,144,144,144,147,148,148,149,149,149
- },11
- },
- {
- SSDT,L"ZwEnumerateValueKey",ProxyZwEnumerateValueKey,
- {
- 1023,61,73,77,136,136,136,119,119,292,296,296,295,295,295,299,300,300,301,303,303
- },12
- },
- {
- SSDT,L"ZwCreateThread",ProxyZwCreateThread,
- {
- 1023,46,53,55,78,78,78,87,87,330,334,334,333,333,333,337,338,338,339,342,342
- },13
- },
- {
- SSDT,L"ZwDuplicateObject",ProxyZwDuplicateObject,
- {
- 1023,58,68,71,129,129,129,111,111,300,304,304,303,303,303,307,308,308,309,311,311
- },14
- },
- {
- SSDT,L"ZwLoadDriver",ProxyZwLoadDriver,
- {
- 1023,85,97,101,165,165,165,155,155,255,257,257,256,256,256,259,260,260,261,263,263
- },15
- },
- {
- SSDT,L"ZwDeviceIoControlFile",ProxyZwDeviceIoControlFile,
- {
- 1023,56,66,69,127,127,127,107,107,304,308,308,307,307,307,311,312,312,313,315,315
- },16
- },
- {
- SSDT,L"ZwAlpcSendWaitReceivePort",ProxyZwAlpcSendWaitReceivePort,
- {
- 1023,1023,1023,1023,38,38,38,39,39,381,386,386,385,385,385,390,391,391,393,396,396
- },17
- },
- {
- SSDT,L"ZwSetSystemInformation",ProxyZwSetSystemInformation,
- {
- 1023,208,240,249,321,317,317,350,350,56,56,56,56,56,56,57,58,58,58,58,58
- },18
- },
- {
- SSDT,L"ZwDeleteFile",ProxyZwDeleteFile,
- {
- 1023,52,62,65,122,122,122,102,102,311,315,315,314,314,314,318,319,319,320,322,322
- },19
- },
- {
- SSDT,L"ZwOpenSection",ProxyZwOpenSection,
- {
- 1023,108,125,131,197,197,197,194,194,216,218,218,217,217,217,220,221,221,222,222,222
- },20
- },
- {
- SSDT,L"ZwCreateSection",ProxyZwCreateSection,
- {
- 1023,43,50,52,75,75,75,84,84,333,337,337,336,336,336,340,341,341,342,345,345
- },21
- },
- {
- SSDT,L"ZwSuspendThread",ProxyZwSuspendThread,
- {
- 1023,221,254,263,335,331,331,367,367,38,38,38,38,38,38,38,39,39,39,39,39
- },22
- },
- {
- SSDT,L"ZwTerminateThread",ProxyZwTerminateThread,
- {
- 1023,225,258,267,339,335,335,371,371,34,34,34,34,34,34,34,35,35,35,35,35
- },23
- },
- {
- SSDT,L"ZwSystemDebugControl",ProxyZwSystemDebugControl,
- {
- 1023,222,255,264,336,332,332,368,368,37,37,37,37,37,37,37,38,38,38,38,38
- },24
- },
- {
- SSDT,L"ZwProtectVirtualMemory",ProxyZwProtectVirtualMemory,
- {
- 1023,1023,137,143,210,210,210,215,215,194,196,196,195,195,195,198,199,199,200,200,200
- },38
- },
- {
- SSDT,L"ZwCreateSymbolicLinkObject",ProxyZwCreateSymbolicLinkObject,
- {
- 1023,45,52,54,77,77,77,86,86,331,335,335,334,334,334,338,339,339,340,343,343
- },39
- },
- {
- SSDT,L"ZwSetContextThread",ProxyZwSetContextThread,
- {
- 1023,1023,213,221,293,289,289,316,316,91,92,92,91,91,91,94,95,95,95,95,95
- },40
- },
- {
- SSDT,L"ZwRenameKey",ProxyZwRenameKey,
- {
- 1023,1023,192,200,267,267,267,290,290,117,119,119,118,118,118,121,122,122,123,123,123
- },41
- },
- {
- SSDT,L"ZwOpenThread",ProxyZwOpenThread,
- {
- 1023,111,128,134,201,201,201,198,198,214,214,214,213,213,213,216,217,217,218,218,218
- },42
- },
- {
- SSDT,L"ZwGetNextThread",ProxyZwGetNextThread,
- {
- 1023,1023,1023,1023,372,368,368,140,140,271,271,271,270,270,270,273,274,274,275,277,277
- },43
- },
- {
- SSDT,L"ZwCreateThreadEx",ProxyZwCreateThreadEx,
- {
- 1023,1023,1023,1023,388,382,382,88,88,333,333,333,332,332,332,336,337,337,338,341,341
- },44
- },
- {
- SSDT,L"ZwRestoreKey",ProxyZwRestoreKey,
- {
- 1023,1023,204,212,279,280,280,302,302,105,107,107,106,106,106,109,110,110,111,111,111
- },55
- },
- {
- SSDT,L"ZwReplaceKey",ProxyZwReplaceKey,
- {
- 1023,1023,193,201,268,268,268,292,292,115,117,117,116,116,116,119,120,120,121,121,121
- },56
- },
- {
- SSDT,L"ZwGetNextProcess",ProxyZwGetNextProcess,
- {
- 1023,1023,1023,1023,371,367,367,139,139,270,272,272,271,271,271,274,275,275,276,278,278
- },45
- },
- {
- SSDT,L"ZwUnmapViewOfSection",ProxyZwUnmapViewOfSection,
- {
- 1023,231,267,277,352,348,348,385,385,19,19,19,19,19,19,19,20,20,20,20,20
- },46
- },
- {
- SSDT,L"ZwAssignProcessToJobObject",ProxyZwAssignProcessToJobObject,
- {
- 1023,18,19,21,42,42,42,43,43,377,382,382,381,381,381,386,387,387,389,392,392
- },47
- },
- {
- SSDT,L"ZwAllocateVirtualMemory",ProxyZwAllocateVirtualMemory,
- {
- 1023,16,17,18,18,18,18,19,19,403,407,407,406,406,406,411,412,412,415,418,418
- },57
- },
- {
- SSDT,L"ZwFreeVirtualMemory",ProxyZwFreeVirtualMemory,
- {
- 1023,71,83,87,147,147,147,131,131,278,281,281,280,280,280,284,285,285,286,288,288
- },58
- },
- {
- SSSDT,L"NtUserFindWindowEx",ProxyNtUserFindWindowEx,
- {
- 1023,368,378,377,391,391,391,396,396,455,457,458,459,460,459,460,462,466,466,466,467
- },25
- },
- {
- SSSDT,L"NtUserBuildHwndList",ProxyNtUserBuildHwndList,
- {
- 1023,302,312,311,322,322,322,323,323,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },26
- },
- {
- SSSDT,L"NtUserQueryWindow",ProxyNtUserQueryWindow,
- {
- 1023,466,483,481,504,504,504,515,515,478,480,481,482,483,482,483,485,489,489,489,490
- },27
- },
- {
- SSSDT,L"NtUserGetForegroundWindow",ProxyNtUserGetForegroundWindow,
- {
- 1023,393,404,403,418,418,418,423,423,426,428,429,430,430,429,430,431,435,435,435,435
- },28
- },
- {
- SSSDT,L"NtUserWindowFromPoint",ProxyNtUserWindowFromPoint,
- {
- 1023,568,592,588,617,617,617,629,629,640,643,646,648,650,649,652,658,664,665,666,667
- },29
- },
- {
- SSSDT,L"NtUserSetParent",ProxyNtUserSetParent,
- {
- 1023,510,529,526,550,550,550,560,560,582,585,587,589,591,590,593,595,601,602,603,604
- },30
- },
- {
- SSSDT,L"NtUserSetWindowLong",ProxyNtUserSetWindowLong,
- {
- 1023,525,544,540,566,566,566,578,578,560,562,564,566,567,566,569,571,575,576,576,577
- },31
- },
- {
- SSSDT,L"NtUserMoveWindow",ProxyNtUserMoveWindow,
- {
- 1023,449,465,464,484,484,484,495,495,499,501,502,503,504,503,505,507,511,511,511,512
- },32
- },
- {
- SSSDT,L"NtUserSetWindowPos",ProxyNtUserSetWindowPos,
- {
- 1023,527,546,542,568,568,568,580,580,558,560,562,564,565,564,567,569,573,574,574,575
- },33
- },
- {
- SSSDT,L"NtUserSetWindowPlacement",ProxyNtUserSetWindowPlacement,
- {
- 1023,526,545,541,567,567,567,579,579,559,561,563,565,566,565,568,570,574,575,575,576
- },34
- },
- {
- SSSDT,L"NtUserShowWindow",ProxyNtUserShowWindow,
- {
- 1023,536,555,551,579,579,579,591,591,547,549,551,553,554,553,556,558,562,563,563,564
- },35
- },
- {
- SSSDT,L"NtUserShowWindowAsync",ProxyNtUserShowWindowAsync,
- {
- 1023,537,556,552,580,580,580,592,592,546,548,550,552,553,552,555,557,561,562,562,563
- },36
- },
- {
- SSSDT,L"NtUserSendInput",ProxyNtUserSendInput,
- {
- 1023,481,502,500,525,525,525,536,536,606,609,611,613,615,614,617,619,625,626,627,628
- },37
- },
- {
- SSSDT,L"NtUserSetWinEventHook",ProxyNtUserSetWinEventHook,
- {
- 1023,533,552,548,576,576,576,588,588,550,552,554,556,557,556,559,561,565,566,566,567
- },49
- },
- {
- SSSDT,L"NtUserClipCursor",ProxyNtUserClipCursor,
- {
- 1023,0,330,329,343,343,343,348,348,333,334,335,335,335,335,337,338,342,342,342,342
- },48
- },
- {
- SSSDT,L"NtUserSetWindowsHookEx",ProxyNtUserSetWindowsHookEx,
- {
- 1023,530,549,545,573,573,573,585,585,553,555,557,559,560,559,562,564,568,569,569,570
- },50
- },
- {
- SSDT,L"ZwMakeTemporaryObject",ProxyZwMakeTemporaryObject,
- {
- 1023,1023,105,110,174,174,174,164,164,246,248,248,247,247,247,250,251,251,252,254,254
- },59
- },
- {
- SSDT,L"ZwCreateUserProcess",ProxyZwCreateUserProcess,
- {
- 1023,1023,1023,1023,1023,383,383,93,93,322,326,326,325,325,325,329,330,330,331,334,334
- },60
- },
- {
- SSSDT,L"NtUserMessageCall",ProxyNtUserMessageCall,
- {
- 1023,444,460,459,479,479,479,490,490,504,506,507,508,509,508,510,512,516,516,516,517
- },61
- },
- {
- SSSDT,L"NtUserPostMessage",ProxyNtUserPostMessage,
- {
- 1023,459,475,474,497,497,497,508,508,486,488,489,490,491,490,492,494,498,498,498,499
- },62
- },
- {
- SSSDT,L"NtUserPostThreadMessage",ProxyNtUserPostThreadMessage,
- {
- 1023,460,476,475,498,498,498,509,509,485,487,488,489,490,489,491,493,497,497,497,498
- },63
- },
- {
- SSSDT,L"NtUserBuildHwndList_WIN8",ProxyNtUserBuildHwndList_WIN8,
- {
- 1023,1023,1023,1023,1023,1023,1023,1023,1023,358,359,360,360,360,360,362,363,367,367,367,367
- },64
- },
- {
- SSDT,L"ZwFsControlFile",ProxyZwFsControlFile,
- {
- 1023,1023,84,1023,150,150,150,134,134,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },65
- },
- {
- SSSDT,L"NtUserSetImeInfoEx",ProxyNtUserSetImeInfoEx,
- {
- 1023,1023,517,1023,1023,1023,1023,550,550,1023,1023,1023,1023,1023,600,603,605,611,612,613,1023
- },66
- },
- {
- SSDT,L"ZwCreateProcessEx",ProxyZwCreateProcessEx,
- {
- 1023,1023,48,50,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },72
- },
- {
- SSSDT,L"NtUserGetRawInputData",ProxyNtUserGetRawInputData,
- {
- 1023,1023,428,1023,1023,1023,1023,448,448,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },67
- },
- {
- SSSDT,L"NtUserGetRawInputBuffer",ProxyNtUserGetRawInputBuffer,
- {
- 1023,1023,427,1023,1023,1023,1023,447,447,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },68
- },
- {
- SSSDT,L"NtUserGetAsyncKeyState",ProxyNtUserGetAsyncKeyState,
- {
- 1023,1023,383,1023,1023,1023,1023,402,402,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },69
- },
- {
- SSSDT,L"NtUserGetKeyState",ProxyNtUserGetKeyState,
- {
- 1023,1023,416,1023,1023,1023,1023,436,436,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },70
- },
- {
- SSSDT,L"NtUserGetKeyboardState",ProxyNtUserGetKeyboardState,
- {
- 1023,1023,414,1023,1023,1023,1023,434,434,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },71
- },
- {
- SSDT,L"ZwQueueApcThread",ProxyZwQueueApcThread,
- {
- 1023,1023,180,1023,1023,1023,1023,269,269,1023,1023,1023,1023,1023,139,142,143,143,144,144,144
- },74
- },
- {
- SSDT,L"ZwSetSecurityObject",ProxyZwSetSecurityObject,
- {
- 1023,1023,237,1023,1023,1023,1023,347,347,1023,1023,1023,1023,1023,59,60,61,61,61,61,61
- },75
- },
- {
- SSDT,L"ZwOpenFile",ProxyZwOpenFile,
- {
- 1023,1023,116,1023,1023,1023,1023,179,179,1023,1023,1023,1023,1023,232,235,236,236,237,238,238
- },76
- },
- {
- SSDT,L"ZwQueueApcThreadEx",ProxyZwQueueApcThreadEx,
- {
- 1023,1023,1023,1023,1023,1023,1023,270,270,1023,1023,1023,1023,1023,138,141,142,142,143,143,143
- },77
- },
- {
- SSDT,L"ZwCreateMutant",ProxyZwCreateMutant,
- {
- 1023,1023,43,45,67,67,67,74,74,1023,1023,1023,1023,1023,346,350,351,351,352,355,355
- },78
- },
- {
- SSDT,L"ZwQuerySystemInformation",ProxyZwQuerySystemInformation,
- {
- 1023,1023,173,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },79
- },
- {
- SSDT,L"ZwQueryIntervalProfile",ProxyZwQueryIntervalProfile,
- {
- 1023,1023,158,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },80
- },
- {
- SSDT,L"ZwSetInformationProcess",ProxyZwSetInformationProcess,
- {
- 1023,1023,228,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },81
- },
- {
- SSSDT,L"NtGdiAddFontMemResourceEx",ProxyNtGdiAddFontMemResourceEx,
- {
- 1023,1023,4,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },82
- },
- {
- SSDT,L"ZwReplyWaitReceivePortEx",ProxyZwReplyWaitReceivePortEx,
- {
- 1023,1023,196,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },83
- },
- {
- END,L"KeUserModeCallback",ProxyKeUserModeCallback,
- {
- 1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },51
- },
- {
- SSDT,L"ZwOpenKey",ProxyZwOpenKey,
- {
- 1023,1023,119,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },84
- },
- {
- SSDT,L"ZwMapViewOfSection",ProxyZwMapViewOfSection,
- {
- 1023,1023,108,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },85
- },
- {
- SSDT,L"ZwSetIntervalProfile",ProxyZwSetIntervalProfile,
- {
- 1023,1023,231,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },86
- },
- {
- SSSDT,L"NtGdiAddFontResourceW",ProxyNtGdiAddFontResourceW,
- {
- 1023,1023,2,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },87
- },
- {
- SSSDT,L"NtGdiAddRemoteFontToDC",ProxyNtGdiAddRemoteFontToDC,
- {
- 1023,1023,3,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },88
- },
- {
- SSDT,L"ZwQueryInformationProcess",ProxyZwQueryInformationProcess,
- {
- 1023,1023,154,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },89
- },
- {
- SSDT,L"ZwQueryInformationThread",ProxyZwQueryInformationThread,
- {
- 1023,1023,155,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },90
- },
- {
- SSDT,L"ZwCreateProfile",ProxyZwCreateProfile,
- {
- 1023,1023,49,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },91
- },
- {
- SSDT,L"ZwVdmControl",ProxyZwVdmControl,
- {
- 1023,1023,268,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },92
- },
- {
- SSDT,L"ZwCreateProcess",ProxyZwCreateProcess,
- {
- 1023,1023,47,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },93
- },
- {
- SSSDT,L"NtGdiAddEmbFontToDC",ProxyNtGdiAddEmbFontToDC,
- {
- 1023,1023,214,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },94
- },
- {
- SSDT,L"NtDebugActiveProcess",ProxyNtDebugActiveProcess,
- {
- 1023,1023,57,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },95
- },
- {
- SSDT,L"NtAlpcCreatePort",ProxyNtAlpcCreatePort,
- {
- 1023,1023,1023,1023,1023,1023,1023,23,23,1023,1023,1023,1023,1023,401,406,407,407,410,413,413
- },96
- },
- {
- SSDT,L"NtCreatePort",ProxyNtCreatePort,
- {
- 1023,1023,46,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },97
- },
- {
- SSDT,L"ZwAdjustPrivilegesToken",ProxyZwAdjustPrivilegesToken,
- {
- 1023,1023,11,1023,1023,1023,1023,12,12,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },98
- },
- {
- SSDT,L"ZwConnectPort",ProxyZwConnectPort,
- {
- 1023,1023,31,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },99
- },
- {
- SSDT,L"ZwSecureConnectPort",ProxyZwSecureConnectPort,
- {
- 1023,1023,210,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },100
- },
- {
- SSDT,L"ZwQueryKey",ProxyZwQueryKey,
- {
- 1023,1023,160,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },101
- },
- {
- SSDT,L"ZwEnumerateKey",ProxyZwEnumerateKey,
- {
- 1023,1023,71,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },102
- },
- {
- SSDT,L"ZwClose",ProxyZwClose,
- {
- 1023,1023,25,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },103
- },
- {
- SSSDT,L"NtUserSystemParametersInfo",ProxyNtUserSystemParametersInfo,
- {
- 1023,1023,559,1023,1023,1023,1023,559,595,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023
- },104
- },
- {
- END,NULL,NULL,
- {
- -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- },105
- }
- };
复制代码 |
|