
你呀~~用了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内存等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)