trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1419回复:9

隐藏进程

楼主#
更多 发布于:2004-11-26 16:19
我用驱网的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;
}
大家看看有啥问题!






最新喜欢:

aasa2aasa2
我不仅要金子,我还要点石成金的手指!
aethercat
驱动牛犊
驱动牛犊
  • 注册日期2003-08-20
  • 最后登录2005-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-26 20:00
在两处
if( curr->NextEntryDelta )
{
     //相关处理
}
的地方有问题

另外比较文件名应区分大小写,可能你的是测试程序:)

[编辑 -  11/26/04 by  aethercat]
toadwolf
驱动牛犊
驱动牛犊
  • 注册日期2003-11-30
  • 最后登录2013-11-12
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望67点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-27 02:37
你的prev=curr有问题. 当你的curr需要被隐藏的时候, prev的NextEntryDelta的值改了就可以了, prev本身不需要改.

toad
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-27 10:42
toadwolf
你好!
prev=curr 这里进行遍历, 找下一个要隐藏的节点
如果不对要整样改呢?
aethercat
你好!
大小写是测试
你所说要扎处理呢?
那样改不对吗?
谢谢回付整样给你们分呢?
我不仅要金子,我还要点石成金的手指!
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-27 11:36
现在有很多程序能够查看所有隐藏进程。
你这样做可以 彻底的隐藏吗?

[编辑 -  11/27/04 by  aasa2]
技术交流:aasa2@21cn.com QQ群:10863699
slwqw
驱动大牛
驱动大牛
  • 注册日期2002-07-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望197点
  • 贡献值0点
  • 好评度147点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-11-27 13:29
现在有很多程序能够查看所有隐藏进程。
你这样做可以 彻底的隐藏吗?

[编辑 -  11/27/04 by  aasa2]


什么事情都是相对的,没有绝对的。

楼主的技术应该是用来防止君子,而不是防止小偷。 :cool:
aethercat
驱动牛犊
驱动牛犊
  • 注册日期2003-08-20
  • 最后登录2005-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-27 14:19
只要在那两个地方这样改就行:
if(curr->NextEntryDelta)
{
    prev->NextEntryDelta += curr>NextEntryDelta;
    ((char *)curr += curr->NextEntryDelta);
    continue ;
}
楼上说得有道理,本来各种隐藏技术都不是绝对的,只要驱动程序删除了就什么都看见了,呵呵呵
toadwolf
驱动牛犊
驱动牛犊
  • 注册日期2003-11-30
  • 最后登录2013-11-12
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望67点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-27 17:25
在prev=curr前面加个else就可以了.
pursuer_zhao
驱动牛犊
驱动牛犊
  • 注册日期2003-10-23
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-12-01 20:10
楼主:
我用另一种方法,就是修改系统进行链的方法来隐藏进程,不知道和你的这种方法,哪一种隐藏的更彻底一些?

我们可以交流一下:pursuer_zhao@tom.com
qq:37052768
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2004-12-02 13:53
修改系统进行链的方法来隐藏进程,可以参考PJF的例子,相对来说稍微好点,不过也很容易被发现,最好能结合自己实现线程连表的调度.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
游客

返回顶部