xp下通过scheduler线程链表检测隐藏进程的问题
本帖最后由 ineverland 于 2010-3-14 11:53 编辑我需要定位KiWaitListHead 和KiDispatcherReadyListHead这两个链表来搜集系统内的进程。
KiWaitListHead 容易定位就不说了。
KiDispatcherReadyListHead这个表被引用的位置有些不同
sp1 .text:004180FE add eax, 60h.text:00418101 cmp , bl.text:00418104 lea edx, KiDispatcherReadyListHead 指令 8D 14 CD 80 2F 48 00.text:0041810B jz loc_418760.text:00418111 mov esi,
sp2 ntoskrnl.exe 5.1.2600.3654 .text:00404750 test bl, bl.text:00404752 lea edx, _KiDispatcherReadyListHead指令 8D 14 CD 80 2F 48 00.text:00404759 jnz loc_401F0D
sp2 ntoskrnl.exe 5.1.2600.2622 .text:0040570D cmp , 0.text:00405711 lea ecx, _KiDispatcherReadyListHead指令8D 0C C5 80 AD 48 00.text:00405718 jnz loc_405641
另外还有加载ntkrnlpa.exe,ntkrpamp.exe的情况,SP3也是。
这么多变化硬编码恐怕不好,请问做过这个的高手们是不是有比较简单的办法定位这个链表的地址呢?
还请各路高手不吝赐教。
又仔细看了下内核文件的版本,发现是自己没搞清楚。
主要其中单核版的和双核版的相关代码有差别。我上面贴的sp2 ntoskrnl.exe 5.1.2600.2622应该是双核的。它的内部名称是ntkrnlmp.exe(文件属性里)。
单核的情况
sp1、sp2的ntoskrnl.exe和ntkrnlpa.exe都可以用"Detection of the hidden processes"一文中的方法搜索代码。
多核的情况
我看了下SP2的2600.2622和2600.3654的两个ntkrnlmp.exe它们的代码是相同的,也可以搜索代码来找了。
还没看SP3啥样。。。 这种检查方法确实不太通用 啊,这个我就只能帮顶了,哈哈 回复 4# 马大哈
头一次见都有专门给游客的账号,站长的这种风度让我倍感崇敬。 哈哈 马屁帖一个 请笑纳!
页:
[1]