标题：hookport.sys
hookport.sys：
产品名称(Product name)            360安全中心
公司名称(Company name)         360安全中心
文件描述(File description)          360安全卫士 - HookPort
内部名称(Internal name)             HookPort
原始文件名(Original filename)    HookPort.sys
法律版权(Legal copyright)          版权所有 (C) 2006-2010 360安全中心
产品版本(Product version)         1, 0, 0, 1005
文件版本(File version)               1, 0, 0, 1005
位置：                                       \Windows\System32\Drivers\Hookport.sys
Hookport.sys是360安全卫士对系统进行挂钩操作的核心模块。其中主要方式对SSDT和shadowSSDT安装钩子函数。但其使用了一种较为特殊的实现方法，使众多常规ARK软件很难检测出360安全卫士所的钩子。由于此方法对系统表操作很少，比较稳定。
Hookport.sys只提供了最为基本的过滤操作和桩函数，本身并没有实现策略部分。策略部分由360SelfProtection.sys实现，并通过设备扩展进行沟通。
整体框架简介
HookPort总共Hook了57h个SSDT或SHADOWSSDT函数，其实现不是通过修改KeServiceDescriptorTable或KeServiceDescriptorShadowTable中函数地址完成，而是通过HookKiFastCallEntry函数实现的。HookPort准备了两个表，SERVICE_FILTER_INFO_TABLE和FILTERFUN_RULE_TABLE。前者保存了SSDT和ShadowSSDT中的原函数地址和Hook函数地址，是按照函数在SSDT中的位置为索引的，后者保存了过滤函数的地址和规则，是按照57h个函数作为索引的。
当程序因为系统调用而进入KiFastCallEntry函数时，会经过两次跳转进入到一个函数中，这个函数会返回一个函数地址，这个地址可能是SSDT中原函数的地址，也可能是SERVICE_FILTER_INFO_TABLE表中Hook函数的地址。到底返回哪个要根据FILTERFUN_RULE_TABLE中的规则来判断。这样就达到了SSDTHOOK的目的。
被Hook的57h个函数名称：
服务名称                                   索引    
==============================================================================
NtCreateKey                               0x00   
NtQueryValueKey                           0x01   
NtDeleteKey                               0x02    
NtDeleteValueKey                       0x03  
NtRenameKey                          0x04 
NtReplaceKey                          0x05   
NtRestoreKey                          0x06  
NtSetValueKey                             0x07    
NtCreateFile                          0x08  
NtFsControl                          0x09   
NtSetInformationFile                   0x0A   
NtWriteFile                         0x0B   
NtWriteFileGather                    0x0B    //和NtWriteFile共用一个过滤函数
NtCreateProcess                           0x0D   
NtCreateProcessEx                      0x0E   
NtCreateUserProcess                    0x0F    //OnlyonVista orlater
NtCreateThread                         0x10   
NtCreateThreadEx                           0x10 //与NtCreateThread共用同一个过滤函数
NtOpenThread                           0x11    
NtDeleteFile                           0x12    
NtOpenFile                             0x13    
NtReadVirtualMemory                     0x14   
NtTerminateProcess                     0x15   
NtQueueApcThread                       0x16   
NtSetContextThread                     0x17   
NtSetInformationThread                     0x18    
NtProtectVirtualMemory                     0x19    
NtWriteVirtualMemory                    0x1A   
NtAdjustGroupToken                     0x1B 
NtAdjustPrivilegesToken                 0x1C    
NtRequestWaitReplyPort                  0x1D 
NtCreateSection                            0x1E 
NtOpenSecton                           0x1F
NtCreateSymbolicLinkObject                 0x20 
NtOpenSymbolicLinkObject                   0x21 
NtLoadDriver                               0x22 
NtUnloadDriver                         0x22  //和NtLoadDriver共用一个过滤函数
NtQuerySystemInformation                 0x23   
NtSetSystemInformation                   0x24 
NtSetSystemTime                        0x25   
NtSystemDebugControl                    0x26  
NtUserBuildHwndList                    0x27 
NtUserQueryWindow                       0x28  
NtUserFindWindowEx                     0x29   
NtUserWindowFromPoint                      0x2A 
NtUserMessageCall                          0x2B   
NtUserPostMessage                       0x2C   
NtUserSetWindowsHookEx                  0x2D  
NtUserPostThreadMessage                 0x2E   
NtOpenProcess                              0x2F  
NtDeviceIoControlFile                   0x30 
NtUserSetParent                        0x31   
NtOpenKey                             0x32 
NtDuplicateObject                      0x33   
NtResumeThread                         0x34   
NtUserChildWindowFromPointEx              0x35   
NtUserDestroyWindow                    0x36   
NtUserInternalGetWindowText              0x37   
NtUserMoveWindow                       0x38 
NtUserRealChildWindowFromPoint            0x39 
NtUserSetInformationThread               0x3A  
NtUserSetInternalWindowPos                0x3B 
NtUserSetWindowLong                     0x3C 
NtUserSetWindowPlacement                 0x3D       
NtUserSetWindowPos                      0x3E  
NtUserSetWindowRgn                      0x3F        
NtUserShowWindow                        0x40  
NtUserShowWindowAsync                   0x41 
NtQueryAttributesFile                   0x42 
NtUserSendInput                        0x43  
NtAlpcSendWaitReceivePort                0x44  
NotifyRoutine                              0x45//SetCreateProcessNotifyRoutine中的函数
NtUnmapViewOfSection                    0x46   
NtUserSetWinEventHook                   0x47  
NtSetSecurityObject                        0x48   
NtUserCallHwndParamLock                 0x49  
NtUserRegisterUserApiHok                 0x4A   
KeUserModeCallback                        0x4B 
NtUserRegisterWindowMessage                0x4C
NtUserCallNoParam                         0x4D
NtAllocateVirtualMemory                   0x4E
NtUserCallOneParam                        0x4F
NtCreateMutant                            0x50
NtOpenMutant                              0x51
NtVdmControl                              0x52
NtGetNextThread                            0x53
NtGetNextProcess                           0x54
NtRequestPort                             0x55
NtFreeVirtualMemory                        0x56