找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5156|回复: 4

xp下通过scheduler线程链表检测隐藏进程的问题

  [复制链接]

5

主题

14

回帖

0

精华

初来乍到

积分
20
发表于 2010-3-14 11:45:23 | 显示全部楼层 |阅读模式
本帖最后由 ineverland 于 2010-3-14 11:53 编辑

我需要定位KiWaitListHead KiDispatcherReadyListHead这两个链表来搜集系统内的进程。
KiWaitListHead 容易定位就不说了。
KiDispatcherReadyListHead这个表被引用的位置有些不同


sp1

.text:004180FE add eax, 60h

.text:00418101 cmp [ebp+var_1], bl

.text:00418104 lea edx, KiDispatcherReadyListHead[ecx*8] 指令 8D 14 CD 80 2F 48 00

.text:0041810B jz loc_418760

.text:00418111 mov esi, [edx]


sp2 ntoskrnl.exe 5.1.2600.3654

.text:00404750 test bl, bl

.text:00404752 lea edx, _KiDispatcherReadyListHead[ecx*8]  指令 8D 14 CD 80 2F 48 00

.text:00404759 jnz loc_401F0D



sp2 ntoskrnl.exe 5.1.2600.2622

.text:0040570D cmp [ebp+var_1], 0

.text:00405711 lea ecx, _KiDispatcherReadyListHead[eax*8]  指令8D 0C C5 80 AD 48 00

.text:00405718 jnz loc_405641



另外还有加载ntkrnlpa.exe,ntkrpamp.exe的情况,SP3也是。
这么多变化硬编码恐怕不好,请问做过这个的高手们是不是有比较简单的办法定位这个链表的地址呢?
还请各路高手不吝赐教。




5

主题

14

回帖

0

精华

初来乍到

积分
20
 楼主| 发表于 2010-3-14 15:06:29 | 显示全部楼层
又仔细看了下内核文件的版本,发现是自己没搞清楚。

主要其中单核版的和双核版的相关代码有差别。我上面贴的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啥样。。。

5

主题

14

回帖

0

精华

初来乍到

积分
20
 楼主| 发表于 2010-3-14 15:07:22 | 显示全部楼层
这种检查方法确实不太通用

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2010-3-17 12:44:38 | 显示全部楼层
啊,这个我就只能帮顶了,哈哈
我就是嗷嗷叫的老马了......

5

主题

14

回帖

0

精华

初来乍到

积分
20
 楼主| 发表于 2010-3-17 16:29:30 | 显示全部楼层
回复 4# 马大哈


    头一次见都有专门给游客的账号,站长的这种风度让我倍感崇敬。 哈哈 马屁帖一个 请笑纳!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表