找不到映像,如何查找修改SSDT的源头望专家指点

找不到映像,如何查找修改SSDT的源头望专家指点,第1张

你呀~~用了2中强力清理软件都不行呀~~呵呵~~既然病毒调用Win32 API HOOK隐藏了~ 建议你用System Repair Engineer重新试试!!!

Rootkit Unhooker是说你遇到了无法查找的模块名称,所以你用SRE再试试!!!分先送我~~

劫持函数?被hook的意思吗

像一般的ssdt的函数表hook,直接再map一份ntoskrnl,导出表里找KeServiceDescriptorTable,然后对比表里的指针,一般的inline hook,改函数头前5字节或8字节,同理和镜像的ssdt函数头的节对比就行,当然你想做高级一些可以加入行为判断等方法,或者判断当前进程是否跳进了其他内核模块执行(常规rootkit),其他感觉就没啥了,如果要恢复最简单粗暴的方法就是内核重载。以上是一些常规的ssdt hook监测思路,有兴趣可以看看xp遁甲的源码或者其他一些开源的ARK软件源码。

简单的,直观的看hs钩了

ntwriteprocessmemory

ntreadprocessmemory

ntopenprocess

3个 *** 作进程内存的函数

他们在ring3(用户态,就是一般程序员制作的程序运行的环境)的对应api是

writeprocessmemory<-zwwriteprocessmemory

freadprocessmemory<-zwreadprocessmemory

openprocess<-zwopenprocess

然后在说下内存修改流程

zwopenprocess获得句柄(这里可以理解成一个访问许可值,有了他就可以访问他代表的对象)然后就可以使用

writeprocessmemory

readprocessmemory

写/读内存了。

ok,这里我们看到了,hs在最上层钩住了这个函数(其实准确的说是函数的实际工作体)。那怎么做才可以 *** 作内存呢?

这里hs使用的是在ssdt 里对函数做的hook(钩子)

ssdt是一张表,他保存了函数的入口地址,和函数的序号(通过修改他保存的函数入口地址就可以实现hook了,要查看这个表可以下载hips软件[小小做个广告,可以下载葡萄守护者查看])

而这张表是在从用户态向内核态切换时才有效的,也就是说你在用户态下调用被hook的函数就被会被截获,导致调用失败。 哦?这里出现了一个问题,如果我是从内核态直接调用呢?哈哈,hs并没有做进一步的hook(比如inline),所以你可以放心的使用了

而fs13没有写驱动是如何做到的呢?

这里有2种方法

1、通过工作区\\Device\\PhysicalMemory *** 作内存2、windows里存在一个可以从用户态直接 *** 作内核态内存的函数->SystemDebugControl

用法自己baidu,我就不说了,这里只说原理

恩,好了,再说说ce是怎么做的,他用了驱动,但是却没有调用任何以上列出的3个函数中的任何一个,这么做就可以实现即便是保护程序进一步对那3个函数做了hook也是没效果的。

而实现起来其实我下面说起来你就会发现,非常简单有效,而且比调用系统函数效率要高很多,毕竟要少走个nt的acl环节,呵呵。

首先KeAttachProcess,切换到目标进程环境

这里就可以想使用自己进程内内存那样使用目标进程啦,想干什么就干什么,呵呵

最后KeDetachProcess,把进程环境切换回来

要突破内存保护,方法大体如此

以上就是关于找不到映像,如何查找修改SSDT的源头望专家指点全部的内容,包括:找不到映像,如何查找修改SSDT的源头望专家指点、windows 怎么分析内核函数劫持、街头篮球HackShield内存等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9528682.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存