当前位置:首页 » 操作系统 » ssdthook源码

ssdthook源码

发布时间: 2022-05-29 12:09:42

㈠ 谁可以给个SSDT挂钩NtWriteVirtualMemory函数源码

要想做到是非常麻烦的,因为没有拿个API能保护自己的程序不被结束,如果真挂钩: 用户态下有SSDT HOOK 内核态下有Inline HOOK Inline HOOK更强大一

㈡ ssdt hook未导出函数问题

函数(function)表示每个输入值对应唯一输出值的一种对应关系。函数f中对应输入值的输出值x的标准符号为f(x)。

㈢ inline HOOK和SSDT HOOK各自有啥特性的哦

inline hook 是直接在以前的函数替里面修改指令,用一个跳转或者其他指令来达到挂钩的目的。

ssdt是利用api来挂钩的,相当于替换API,用ICESword可以很简单的判断出来。

底下是我在网上看过一篇文章的说的一个比喻,刚好能回答你的问题:

如果说SSDT Hook只是把某位"内核API先生"绑架,然后用我们的“自己人”来接管其工作,而ICESword却可以从其他联系途径找到被绑架的"内核API先生"并“报警”,那么——Inline Hook可以说是给"内核API先生"动了手术,让他成为"我们阵营的一分子"。

呵呵,很幽默的一个比喻

㈣ 哪些杀毒软件不用“SSDT hook”技术

MSE似乎不是,是用微软自己的技术的,好像微软也不太推荐用ssdthook的

㈤ 帮忙在pudn上下载一个东西

请下载附件吧,文件已给你上传,希望对你的研究有所帮助,还望采纳

SSDT HOOK VB实现源码,调用底层函数,实现的SSDT HOOK.适合VB研究驱动

㈥ 遍历SSDT,检测是否被hook

槔锩妗R簿褪茄罢襍SDT导出NT函数的原始地址。此方法不适合检测 inline Hook。typedef struct _SYSTEM_MODULE_INFORMATION { ULONG Reserved[2]; PVOID Base; ULONG Size; ULONG Flags; USHORT Index; USHORT Unknown; USHORT LoadCount; USHORT MoleNameOffset; CHAR ImageName[256]; } SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION; typedef struct _tagSysMoleList { ULONG ulCount; SYSTEM_MODULE_INFORMATION smi[1]; } SYSMODULELIST, *PSYSMODULELIST; 以上是SSDT模块信息的结构和链表。 NTSTATUS MyEnumSSDT() { NTSTATUS status = STATUS_UNSUCCESSFUL; PULONG SSDT_Function_Address; //SSDT表函数地址 ULONG SSDT_Function_Number; //SSDT表函数个数 PSYSMODULELIST pSysMoleList; SYSTEM_MODULE_INFORMATION SystemMoleInfo;//模块结构 PVOID pBuffer;//SSDT总大小缓冲区 ULONG uBufferSize; ULONG i = 0; ULONG j = 0; ULONG uMoleBase; ULONG uMoleMax; CHAR strMdoulePath[255]; SSDT_Function_Address = (PULONG)KeServiceDescriptorTable->ServiceTableBase; SSDT_Function_Number = KeServiceDescriptorTable->NumberOfService; KdPrint(("SSDT_Function_Address:%x,SSDT_Function_Number:%d\n",SSDT_Function_Address,SSDT_Function_Number)); ZwQuerySystemInformation(SystemMoleInformation,NULL,0,&uBufferSize);//枚举SSDT表Path大小 if (!uBufferSize) { KdPrint(("ZwQuerySystemInformation1 error!\n")); return status; } pBuffer = ExAllocatePoolWithTag(NonPagedPool,uBufferSize,MEM_TAG);//申请内存存放 if (!pBuffer) { KdPrint(("ExAllocatePoolWithTag error!\n")); return status; } status = ZwQuerySystemInformation(SystemMoleInformation,pBuffer,uBufferSize,NULL);//第二次遍历,填充pBuffer缓冲区 if (!NT_SUCCESS(status)) { KdPrint(("ZwQuerySystemInformation2 error!\n")); return status; } pSysMoleList = (PSYSMODULELIST)pBuffer;//将所有SSDT函数缓冲区换成链表来访问 for (j = 0; j < pSysMoleList->ulCount; j++) //遍历获取ntkrnlpa.exe模块所在地址和大小 { SystemMoleInfo = pSysMoleList->smi[j]; strcpy(strMdoulePath,(SystemMoleInfo.ImageName + SystemMoleInfo.MoleNameOffset)); if (strncmp("ntkrnlpa.exe",strMdoulePath,12) == 0) { uMoleBase = (ULONG)SystemMoleInfo.Base; uMoleMax = uMoleBase + SystemMoleInfo.Size; } } //遍历SSDT表,对比地址检测是否被hook for (i = 0; i < SSDT_Function_Number; i++) { if (uMoleBase < (ULONG)SSDT_Function_Address && (ULONG)SSDT_Function_Address < uMoleMax) { KdPrint(("UnHook:%03d Address:%X Path:%s\n",i,*(SSDT_Function_Address + i),strMdoulePath)); } else { KdPrint(("Hook:%03d Address:%X Path:%s\n",i,*(SSDT_Function_Address + i),strMdoulePath)); } } if (pBuffer) { ExFreePool(pBuffer); pBuffer = NULL; } return status; }总的来说还是比较简单的,还差了一个获取SSDT导出函数名字。下一篇补全。

㈦ 不断SSDT HOOK该怎么恢复

应该是他也有一个进程在轮询SSDT表吧我想。。找到这个进程或者服务杀之。就能解决了。。或者有些工具不是可以看出来ssdthook是被哪个模块sys给hook的。然后你吧这个sys删掉就行了吧。

㈧ 易语言超级模块怎样进行SSDT HOOK

typedef struct ServiceDescriptorEntry {
unsigned int *ServiceTableBase;
unsigned int *ServiceCounterTableBase;
unsigned int NumberOfServices;
unsigned char *ParamTableBase;
} ServiceDescriptorTableEntry_t, *PServiceDescriptorTableEntry_t;

㈨ windows内核方面的书籍有哪些

驱网的3本只出了2本,都不适合入门.寒江独钓虽然讲得详细,但是没有系统的结构.
建议以张凡那本来入门,虽然不是讲内核安全的.但是作为系统的学习驱动入门是很好的书.
毛德操的不适合去完全把它读完.它只是在读系统的源码.你完全可以自己去看wrk的源码.不过这书的第二章我还是建议你读一下的.
至于windows internals 那是必备的了.
如果你想了解ssdt hook,idt hook之类的可以上网找些文章看.我暂时还没有发现有哪本书讲这些的.可以寒江独钓会讲.但我没仔细看

㈩ SSDT Hook卸载驱动时蓝屏的问题

先根据蓝屏代码来搜索下,此代码具体是因为什么引起的;然后重启电脑按F8,选择进入安全模式把出现错误的驱动给卸载掉;可以用网络电脑专家里的蓝屏修复工具来修复下的。

然后再根据找出驱动出现问题的设备,重新安装驱动也可以用该设备自带的驱动盘来安装驱动,也可根据设备的品牌去官网上下载驱动来安装,这样就可以解决问题了。

热点内容
ftp源码怎么发 发布:2024-10-28 17:09:36 浏览:837
解压玩假水 发布:2024-10-28 17:09:31 浏览:179
我的世界神奇宝贝服务器推荐电脑版 发布:2024-10-28 17:09:30 浏览:781
360借贷为什么提醒服务器繁忙 发布:2024-10-28 17:07:06 浏览:930
加密移动硬盘盒评测 发布:2024-10-28 17:07:04 浏览:797
c语言源程序是怎么编译 发布:2024-10-28 17:06:21 浏览:592
java的jdbc 发布:2024-10-28 17:00:58 浏览:703
默纳克万能服务器巨人通力怎么用 发布:2024-10-28 16:51:46 浏览:623
ip访问量用什么服务器好 发布:2024-10-28 16:51:41 浏览:400
java培训机构达内 发布:2024-10-28 16:31:18 浏览:245