词条 | 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 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。